You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

847 lines
36 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

define(function (require, exports, module) {
let BaseBiz = require('apps/rht/base/rhtBiz');
let Service = require('./dst200104service');
let rhtComm = require('../../comm/rhtComm');
let multiWindow = require("system/views/pages/multiwindow/multiwindow");
/**
* 控制按钮的可用
* @param opCode 按钮编码
* @return [description]
*/
function Biz(vm) {
//继承第一步,构造继承
BaseBiz.call(this, vm);
vm.remark = ''
}
//继承第二步,方法继承
inherits(Biz, BaseBiz);
let IsMdKwMng = rhtComm.getRhtOptionValue('*', 'STK', 'IsMdKwMng', '1');
let Dst_IsUseBarCode = rhtComm.getRhtOptionValue('*', 'DST', 'Dst_IsUseBarCode', '0');
let Dst_MultiPluNoteType = rhtComm.getRhtOptionValue('*', 'DST', 'Dst_MultiPluNoteType', '1');
//功能初始化完毕调用该方法
Biz.prototype.initCompleted = function () {
if (Dst_IsUseBarCode == "0") {
if (Dst_MultiPluNoteType == "0") {
this.dsDetail.multiType = "1";
this.dsDetail.multiFields = "PluCode,PluType";
this.dsDetail.multiMsg = "不能重复录入商品!";
}
else if (Dst_MultiPluNoteType == "1") {
this.dsDetail.multiType = "2";
this.dsDetail.multiFields = "PluCode,PluType";
this.dsDetail.multiMsg = "当前商品重复录入!";
}
else {
this.dsDetail.multiType = "0";
this.dsDetail.multiFields = "";
this.dsDetail.multiMsg = "";
}
}
return this.super('initCompleted');
};
//增加后
Biz.prototype.afterAdd = function () {
let masterRow = this.dsMaster.currentRow;
let InOrgCode = rhtComm.GetInOrgCode(Store.logOn.orgCode).message;
masterRow.setColumnText('InOrgCode', InOrgCode);
masterRow.setColumnText('PlnShDate', rhtComm.GetServerDate(1));
return true;
};
//保存前校验
Biz.prototype.beforeSave = function () {
let masterRow = this.dsMaster.currentRow;
if (masterRow) {
let sBillNo = masterRow ? TypeUtil.toString(masterRow['BillNo']) : '';
let sPlnShDate = masterRow ? TypeUtil.toString(masterRow['PlnShDate']) : '';
let sShEtpCode = masterRow ? TypeUtil.toString(masterRow['ShEtpCode']) : '';
let sOrgCode = masterRow ? TypeUtil.toString(masterRow['OrgCode']) : '';
let sShOrgCode = masterRow ? TypeUtil.toString(masterRow['ShOrgCode']) : '';
let sShOrgName = masterRow ? TypeUtil.toString(masterRow['ShOrgName']) : '';
let sDepCode = masterRow ? TypeUtil.toString(masterRow['DepCode']) : '';
let sCurrCode = masterRow ? TypeUtil.toString(masterRow['CurrCode']) : '';
if (sPlnShDate < rhtComm.GetServerDate(0)) {
masterRow.setColumnError('BillNo', '计划送货日期必须大于或等于当前日期!');
return false;
}
if (sShEtpCode.length <= 0) {
masterRow.setColumnText('ShEtpCode', sShOrgCode);
}
let retSaleCtrl = Service.getSlideMenuData("BeforeSave", "UGetSaleCtrl", sDepCode, sShOrgCode, "", "", "");
if (retSaleCtrl.result !== 1) {
masterRow.setColumnError('BillNo', '可用信用额度出错:' + retSaleCtrl.message);
return false;
}
//可用信用额度检查
let JSONObject = { YwBillNo: sBillNo, YwType: "2003", OrgCode: Store.logOn.orgCode, DepCode: sDepCode, OppOrgCode: sShOrgCode, StlCurrCode: sCurrCode };
let ret = Service.getSlideMenuData("pubsysBaseBL", "UWslGetCustCredit", JSONObject, "", "", "", "");
if (ret.result === 1) {
let fKyCredit = 0.0
if (ret.data != null) {
fKyCredit = TypeUtil.toFloat(ret.data.KyCredit);
}
if (fKyCredit < TypeUtil.toFloat(masterRow['StlCurrPsTotal'])) {
masterRow.setColumnError('BillNo', "客户(" + sShOrgCode + "-" + sShOrgName + ")的配送金额不能大于可用信用额度:" + fKyCredit);
return false;
}
}
else {
masterRow.setColumnError('BillNo', '可用信用额度出错:' + ret.message);
return false;
}
let retYsYe = Service.getSlideMenuData("BeforeSave", "GetPreYsYeTotal", sOrgCode, sShOrgCode, sCurrCode, "", "");
if (retYsYe.result === 1) {
masterRow.setColumnValue('PreYsYeTotal', retYsYe.message);
}
this.setServerBiz('cn.qdhezheng.rht.app.dst.dst200104.SavePlugin');
}
return this.super('beforeSave');
};
//保存后
Biz.prototype.afterSave = function () {
let masterRow = this.dsMaster.currentRow;
if (masterRow) {
let sShOrgCode = masterRow ? TypeUtil.toString(masterRow['ShOrgCode']) : '';
let sDepCode = masterRow ? TypeUtil.toString(masterRow['DepCode']) : '';
let retPsCycle = Service.getSlideMenuData("BeforeSave", "USetDstHeadPsCycle", sDepCode, sShOrgCode, "", "", "");
if (retPsCycle.result !== 1) {
Store.messager.err(retPsCycle.message);
//masterRow.setColumnError('BillNo', retPsCycle.message);
//return false;
} /*
let sBillNo = masterRow ? TypeUtil.toString(masterRow['BillNo']) : '';
let retLock = Service.getSlideMenuData("LockLsKcByYwBill","",sBillNo,"2003","0","","");
if (retLock.result !== 1) {
Store.messager.err('锁定库存失败:'+retLock.message);
//masterRow.setColumnError('BillNo', '锁定库存失败:'+retLock.message);
//return false;
} */
}
this.super('afterSave');
};
//单据删除前处理
Biz.prototype.beforeDelete = function () {
let masterRow = this.dsMaster.currentRow;
let sBillNo = TypeUtil.toString(masterRow['BillNo']);
/*
let ret= Service.getSlideMenuData("LockLsKcByYwBill","",sBillNo,"2003","1","","");
if (ret.result !== 1) {
masterRow.setColumnError('BillNo', '删除锁定库存失败:'+ret.message);
return false;
}
this.setServerBiz('cn.qdhezheng.rht.app.dst.dst200104.SavePlugin');
*/
if (masterRow) {
let retDel = Service.getSlideMenuData("actExecute", "beforeDelete", sBillNo, "", "", "", "");
if (retDel.result !== 1) {
masterRow.setColumnError('BillNo', retDel.message);
return false;
}
else {
Store.messager.tip("删除成功!");
this.opRouter('refresh');
return false;
}
}
return this.super('beforeDelete');
};
//明细行单行提交触发的校验
Biz.prototype.dataRowValidate = function (dataSrc, dr) {
if (dataSrc.uiObjCode === this.dsDetail.uiObjCode) {
let masterRow = this.dsMaster.currentRow;
let sBillNo = TypeUtil.toString(masterRow['BillNo']);
let sPsType = TypeUtil.toString(masterRow['PsType']);
let sPluCode = TypeUtil.toString(dr['PluCode']);
let sPluName = TypeUtil.toString(dr['PluName']);
let sPluID = TypeUtil.toString(dr['PluID']);
let fPsCount = TypeUtil.toFloat(dr['PsCount']);
let fPlnCount = TypeUtil.toFloat(dr['PlnCount']);
if (sPluCode.length > 0) {
if (fPsCount < 0) {
return '配送数量不能小于零!';
}
if ((fPsCount == 0) && (this._state == "add")) {
return '配送数量不能等于零!';
}
let sAskType = TypeUtil.toString(dr['AskType']);
if (((sAskType == "3") || (sAskType == "4") || (sAskType == "5")) && ((PsCount > 0) && (PsCount != fPlnCount))) {
return '组合类配送不允许对配送数量进行修改或只能修改为0';
}
if (sPsType == "0") {
let sInOrgCode = rhtComm.GetInOrgCode(Store.logOn.orgCode).message;
let sCkCode = TypeUtil.toString(masterRow['CkCode']);
let sDepID = TypeUtil.toString(dr['DepID']);
let sDepCode = TypeUtil.toString(dr['DepCode']);
let sExPluCode = TypeUtil.toString(dr['ExPluCode']);
let sPluType = TypeUtil.toString(dr['PluType']);
let Params = sBillNo + ";" + "2003;*;" + sInOrgCode + ";" + sDepID + ";" + sCkCode + ";" + sPluID + ";" + sExPluCode + ";" + sPluType + ";";
let JSONObject = { DataType: "7", Params: Params };
let retKyCount = Service.getSlideMenuData("pubsysBaseBL", "MSysGetLsKcKyCount", JSONObject, "", "", "", "");
if (retKyCount.result === 1) {
if (fPsCount > TypeUtil.toFloat(retKyCount.message)) {
let errmsg = "商品[" + sPluCode + "-" + sPluName + "]的配送数量不能多于商品的库存[组织:" + sInOrgCode + "、仓库:" +
sCkCode + "、部门:" + sDepCode + "、商品类型:" + sPluType + "] <br> 当前可用数量:" + retKyCount.message;
return errmsg;
}
}
else {
return "查询商品库存失败:" + retKyCount.message;
}
}
let PackUnit = TypeUtil.toString(dr['PackUnit']);
if (PackUnit == "") {
dr.setColumnValue('PackCount', "0");
}
}
else {
return '商品编码不能为空!';
}
}
return true;
};
// 列校验,列赋值时调用,发生异常表示校验失败
Biz.prototype.dataColumnValidate = function (dataSrc, dr, dc, value) {
let self = this;
if (dataSrc.uiObjCode === this.dsDetail.uiObjCode) {
if (this.dsDetail.rows.length == 0) {
let masterRow = self.dsMaster.currentRow;
let sOrgCode = masterRow ? TypeUtil.toString(masterRow['OrgCode']) : '';
let sShOrgCode = masterRow ? TypeUtil.toString(masterRow['ShOrgCode']) : '';
let sHtCode = masterRow ? TypeUtil.toString(masterRow['HtCode']) : '';
if (sShOrgCode.length <= 0) {
return "请输入收货组织编码!";
}
let JSONObject = { OrgCode: sOrgCode, EtpCode: sShOrgCode };
let ret = Service.getSlideMenuData("pubsysBaseBL", "UOrgIsDlHs", JSONObject, "", "", "", "");
if (ret.result === 1) {
if (sHtCode.length <= 0) {
return "当前组织和收货组织不是同一核算组织,必须输入配送合同!";
}
}
}
}
return this.super('dataColumnValidate');
};
//校验小数精度
Biz.prototype.getPrecision = function (dataSrc, dr, dc, defaultPrecision) {
if (dataSrc.uiObjCode == this.dsDetail.uiObjCode) {
//把这里改成需要控制的字段
if (dc.fieldName == 'SglCount') {
return TypeUtil.toInt(dr['R_DotDecimal']);
}
}
return this.super('getPrecision', dataSrc, dr, dc, defaultPrecision);
};
//字段变化触发事件
Biz.prototype.fieldChanged = function (dataSrc, dr, dc) {
if (dataSrc.uiObjCode === this.dsMaster.uiObjCode) {
switch (dc.fieldName) {
case 'OrgType':
this.fieldChangedOrgType(dataSrc, dr, dc);
break;
case 'ShOrgCode':
this.fieldChangedShOrgCode(dataSrc, dr, dc);
break;
case 'HtCode':
this.fieldChangedHtCode(dataSrc, dr, dc);
break;
case 'ShEtpCode':
this.fieldChangedShEtpCode(dataSrc, dr, dc);
break;
case 'CkCode':
this.fieldChangedCkCode(dataSrc, dr, dc);
break;
}
}
if (dataSrc.uiObjCode === this.dsDetail.uiObjCode) {
switch (dc.fieldName) {
case 'PluCode':
this.fieldChangedPluCode(dataSrc, dr, dc);
break;
case 'PackCount':
this.fieldChangedPackCount(dataSrc, dr, dc);
break;
case 'PackUnit':
this.fieldChangedPackUnit(dataSrc, dr, dc);
break;
case 'SglCount':
this.fieldChangedSglCount(dataSrc, dr, dc);
break;
case 'StlCurrPsPrice':
this.fieldChangedStlCurrPsPrice(dataSrc, dr, dc);
break;
}
}
this.super('fieldChanged');
};
//OrgType 字段变化执行事件
Biz.prototype.fieldChangedOrgType = function (dataSrc, dr, dc) {
let sOrgType = TypeUtil.toString(dr['OrgType']);
if (sOrgType.length > 0) {
dr.setColumnValue('ShOrgCode', "");
dr.setColumnValue('HtCode', "");
dr.setColumnValue('HtName', "");
dr.setColumnValue('CntID', "0");
dr.setColumnValue('JyMode', "0");
dr.setColumnValue('JsCode', "0");
dr.setColumnText('YwIOType', sOrgType);
}
return true;
};
//ShOrgCode 字段变化执行事件
Biz.prototype.fieldChangedShOrgCode = function (dataSrc, dr, dc) {
let sShOrgCode = dr ? TypeUtil.toString(dr['ShOrgCode']) : '';
let sCkCode = dr ? TypeUtil.toString(dr['CkCode']) : '';
if (sShOrgCode === '') return false;
if (sCkCode === ''){
dr.setColumnError(dc.fieldName, "仓库编码不能为空!");
return false;
}
let ret = Service.getSlideMenuData("DoOnMasterCalcRule", "ShOrgCode", dr.getData(), "", "", "", "");
if (ret.result !== 1) {
dr.setColumnError(dc.fieldName, ret.message);
return false;
}
if (ret.data != null) {
dr.setColumnValue('CurrCode', ret.data.currcode);
dr.setColumnValue('ExchangeRate', ret.data.exchangerate);
dr.setColumnValue('IsStdCurr', ret.data.isstdcurr);
let sInOrgCode = rhtComm.GetInOrgCode(sShOrgCode).message;
if (sInOrgCode != "*") {
dr.setColumnValue('InShOrgCode', sInOrgCode);
}
dr.setColumnValue('HtCode', "");
dr.setColumnValue('HtName', "");
dr.setColumnValue('CntID', "0");
dr.setColumnValue('PsPath', ret.data.pspath);
dr.setColumnValue('PathSerialNo', ret.data.pathno);
dr.setColumnValue('Address', ret.data.address);
}
dr.setColumnText('ShEtpCode', sShOrgCode);
return true;
};
//HtCode 字段变化执行事件
Biz.prototype.fieldChangedHtCode = function (dataSrc, dr, dc) {
let sHtCode = dr ? TypeUtil.toString(dr['HtCode']) : '';
if (sHtCode.length == 0) {
dr.setColumnValue('HtName', "");
dr.setColumnValue('CntID', "0");
dr.setColumnValue('JyMode', "0");
dr.setColumnValue('JsCode', "0");
}
else {
dr.setColumnValue('JyMode', dc.getRefValue('jymode'));
dr.setColumnValue('JsCode', dc.getRefValue('jscode'));
}
return true;
};
//ShEtpCode 字段变化执行事件
Biz.prototype.fieldChangedShEtpCode = function (dataSrc, dr, dc) {
let sShEtpCode = dr ? TypeUtil.toString(dr['ShEtpCode']) : '';
let sShOrgCode = dr ? TypeUtil.toString(dr['ShOrgCode']) : '';
let sShOrgName = dr ? TypeUtil.toString(dr['ShOrgName']) : '';
if (sShEtpCode == sShOrgCode) {
dr.setColumnValue('ShEtpName', sShOrgName);
}
return true;
};
//CkCode 字段变化执行事件
Biz.prototype.fieldChangedCkCode = function (dataSrc, dr, dc) {
let sCkCode = dr ? TypeUtil.toString(dr['CkCode']) : '';
if (sCkCode === '') return false;
let ret = Service.getSlideMenuData("DoOnMasterCalcRule", "CkCode", dr.getData(), "", "", "", "");
if (ret.result !== 1) {
dr.setColumnError(dc.fieldName, ret.message);
return false;
}
if (ret.data != null) {
dr.setColumnValue('PsPath', ret.data.pspath);
dr.setColumnValue('PathSerialNo', ret.data.pathno);
}
return true;
};
//PluCode 字段变化执行事件
Biz.prototype.fieldChangedPluCode = function (dataSrc, dr, dc) {
let masterRow = this.dsMaster.currentRow;
let sShOrgCode = TypeUtil.toString(masterRow['ShOrgCode']);
let sIsStdCurr = TypeUtil.toString(masterRow['IsStdCurr']);
let sPluCode = dr ? TypeUtil.toString(dr['PluCode']) : '';
let sPluID = dr ? TypeUtil.toString(dr['PluID']) : '';
let sInOrgCode = rhtComm.GetInOrgCode(sShOrgCode).message;
let JSONObject = null;
if (sPluCode === '') return false;
let retchk = Service.getSlideMenuData("DoOnDetailCalcRule", "PluCodeCheck", sShOrgCode, sPluCode, "", "", "");
if (retchk.result === 1) {
if (retchk.data != null) {
if (retchk.data.IsPs == "0") {
if (!Store.confirm("商品属性对于此客户设置为不允许配送,是否继续配送?")) {
return false;
}
}
}
}
dr.setColumnValue('PackUnit', "");
let ret = Service.getSlideMenuData("DoOnDetailCalcRule", "PluCode", masterRow.getData(), dr.getData(), "", "", "");
if (ret.result !== 1) {
dr.setColumnError(dc.fieldName, ret.message);
return false;
}
if (ret.data != null) {
let fPsPrice = TypeUtil.toFloat(ret.data[0].price);
let fXTaxRate = TypeUtil.toFloat(ret.data[0].xtaxrate);
dr.setColumnValue('JdRate', ret.data[0].jdrate);
dr.setColumnValue('PsPrice', ret.data[0].price);
dr.setColumnValue('StlCurrPsPrice', ret.data[0].stlcurrprice);
dr.setColumnValue('LsPrice', ret.data[0].lsprice);
dr.setColumnValue('ZkRate', ret.data[0].zkrate);
if (sIsStdCurr == "0") {
if ((ret.data[0].pricetype == "1") || (ret.data[0].pricetype == "2")) {
dr.setColumnError(dc.fieldName, "结算币不是本位币,当前商品不支持成本价和加点价!");
return false;
}
}
dr.setColumnText('PriceType', ret.data[0].pricetype);
dr.setColumnText('DepCode', ret.data[0].depcode);
dr.setColumnValue('WPsPrice', (fPsPrice / (1 + fXTaxRate / 100)).round(4));
dr.setColumnValue('XTaxRate', fXTaxRate);
//获取包装信息
JSONObject = { psPluCode: sPluCode, psYwType: "2003" };
let retPacket = Service.getSlideMenuData("pubsysBaseBL", "GetDefaultPluPackUnitByYwType", JSONObject, sPluCode, "", "", "");
if (retPacket.result === 1) {
if (retPacket.data != null) {
dr.setColumnValue('PackUnit', retPacket.data.Unit);
dr.setColumnValue('PackQty', retPacket.data.Qty);
dr.setColumnValue('PackCount', "0");
dr.setColumnText('SglCount', "0");
}
}
}
JSONObject = { OrgCode: sShOrgCode, PluCode: sPluCode, PluID: sPluID, FieldNameGrp: "Price", FieldCount: 1 };
let retEx = Service.getSlideMenuData("pubsysBaseBL", "USkuGetPluExPropInfo", JSONObject, "", "", "", "");
if (retEx.result === 1) {
if (retEx.data != null) {
dr.setColumnValue('Price', retEx.data.Price);
}
else {
JSONObject = { OrgCode: sInOrgCode, PluCode: sPluCode, PluID: sPluID, FieldNameGrp: "Price", FieldCount: 1 };
let retExB = Service.getSlideMenuData("pubsysBaseBL", "USkuGetPluExPropInfo", JSONObject, "", "", "", "");
if (retExB.result === 1) {
if (retExB.data != null) {
dr.setColumnValue('Price', retExB.data.Price);
}
}
}
}
else {
dr.setColumnError('BillNo', retEx.message);
return false;
}
if (IsMdKwMng == "1") {
let sCkCode = TypeUtil.toString(masterRow['CkCode']);
JSONObject = { CurInOrgCode: sInOrgCode, CkCode: sCkCode, PluID: sPluID };
let retKwCode = Service.getSlideMenuData("pubsysBaseBL", "GetPluKw", JSONObject, "", "", "", "");
if (retKwCode.result === 1) {
if (retKwCode.data != null) {
dr.setColumnValue('KwCode', retKwCode.data.KwCode);
}
}
else {
dr.setColumnError('BillNo', retKwCode.message);
return false;
}
}
JSONObject = { PluCode: sPluCode, PluID: sPluID, FieldNameGrp: "ClsID", FieldCount: 1 };
let retCls = Service.getSlideMenuData("pubsysBaseBL", "USkuGetPluPropInfo", JSONObject, "", "", "", "");
if (retCls.result === 1) {
if (retCls.data != null) {
dr.setColumnText('ClsID', retCls.data.ClsID);
}
}
return true;
};
//PackUnit 字段变化执行事件
Biz.prototype.fieldChangedPackUnit = function (dataSrc, dr, dc) {
let PackUnit = TypeUtil.toString(dr['PackUnit']);
let sAskType = TypeUtil.toString(dr['AskType']);
if ((sAskType == "3") || (sAskType == "4") || (sAskType == "5")) {
dr.setColumnError(dc.fieldName, '组合类配送不允许对配送包装进行修改!');
return false;
}
if (PackUnit == "") {
dr.setColumnValue('PackQty', "0");
}
dr.setColumnText('PackCount', "0");
return true;
};
//PackCount 字段变化执行事件
Biz.prototype.fieldChangedPackCount = function (dataSrc, dr, dc) {
let masterRow = this.dsMaster.currentRow;
let fExchangeRate = TypeUtil.toFloat(masterRow['ExchangeRate']);
let sIsStdCurr = masterRow ? TypeUtil.toString(masterRow['IsStdCurr']) : '0';
let fPackCount = TypeUtil.toFloat(dr['PackCount']);
let fPackQty = TypeUtil.toFloat(dr['PackQty']);
let fSglCount = TypeUtil.toFloat(dr['SglCount']);
let sPluCode = dr ? TypeUtil.toString(dr['PluCode']) : '';
let fStlCurrPsPrice = TypeUtil.toFloat(dr['StlCurrPsPrice']);
let fXTaxRate = TypeUtil.toFloat(dr['XTaxRate']);
let fPrice = TypeUtil.toFloat(dr['Price']);
let fPsCount = fPackCount * fPackQty + fSglCount;
if (sPluCode === '') return false;
let fStlCurrPsTotal = (fStlCurrPsPrice * fPsCount).round(2);
let fPsTotal = (fStlCurrPsTotal * fExchangeRate).round(2);
let fWPsTotal = (fPsTotal / (1 + fXTaxRate / 100)).round(2);
let fPsPrice = 0.0;
if (sIsStdCurr == "1") {
fPsPrice = fStlCurrPsPrice;
}
else {
if (fPsTotal == 0) {
fPsPrice = (fStlCurrPsPrice * fExchangeRate).round(4);
}
else {
if (fPsCount == 0) {
fPsPrice = 0;
}
else {
fPsPrice = (fPsTotal / fPsCount).round(4);
}
}
}
let fWPsPrice = 0.0;
if (fXTaxRate == 0) {
fWPsPrice = 0;
}
else {
if (fWPsTotal == 0) {
fWPsPrice = (fPsPrice / (1 + fXTaxRate / 100)).round(4);
}
else {
if (fPsCount == 0) {
fWPsPrice = 0;
}
else {
fWPsPrice = (fWPsTotal / fPsCount).round(4);
}
}
}
let fXTaxTotal = fPsTotal - fWPsTotal;
let fSTotal = (fPsCount * fPrice).round(2);
if (fPsCount < 0) {
dr.setColumnError(dc.fieldName, '配送数量不能为负数!');
return false;
}
dr.setColumnValue('PsCount', fPsCount);
dr.setColumnValue('StlCurrPsTotal', fStlCurrPsTotal);
dr.setColumnValue('PsTotal', fPsTotal);
dr.setColumnValue('WPsTotal', fWPsTotal);
dr.setColumnValue('PsPrice', fPsPrice);
dr.setColumnValue('WPsPrice', fWPsPrice);
dr.setColumnValue('XTaxTotal', fXTaxTotal);
dr.setColumnValue('STotal', fSTotal);
return true;
};
//SglCount 字段变化执行事件
Biz.prototype.fieldChangedSglCount = function (dataSrc, dr, dc) {
let masterRow = this.dsMaster.currentRow;
let fExchangeRate = TypeUtil.toFloat(masterRow['ExchangeRate']);
let sIsStdCurr = masterRow ? TypeUtil.toString(masterRow['IsStdCurr']) : '0';
let fPackCount = TypeUtil.toFloat(dr['PackCount']);
let fPackQty = TypeUtil.toFloat(dr['PackQty']);
let fSglCount = TypeUtil.toFloat(dr['SglCount']);
let sPluCode = dr ? TypeUtil.toString(dr['PluCode']) : '';
let fStlCurrPsPrice = TypeUtil.toFloat(dr['StlCurrPsPrice']);
let fXTaxRate = TypeUtil.toFloat(dr['XTaxRate']);
let fPrice = TypeUtil.toFloat(dr['Price']);
let fPsCount = fPackCount * fPackQty + fSglCount;
if (sPluCode === '') return false;
let fStlCurrPsTotal = (fStlCurrPsPrice * fPsCount).round(2);
let fPsTotal = (fStlCurrPsTotal * fExchangeRate).round(2);
let fWPsTotal = (fPsTotal / (1 + fXTaxRate / 100)).round(2);
let fPsPrice = 0.0;
if (sIsStdCurr == "1") {
fPsPrice = fStlCurrPsPrice;
}
else {
if (fPsTotal == 0) {
fPsPrice = (fStlCurrPsPrice * fExchangeRate).round(4);
}
else {
if (fPsCount == 0) {
fPsPrice = 0;
}
else {
fPsPrice = (fPsTotal / fPsCount).round(4);
}
}
}
let fWPsPrice = 0.0;
if (fXTaxRate == 0) {
fWPsPrice = 0;
}
else {
if (fWPsTotal == 0) {
fWPsPrice = (fPsPrice / (1 + fXTaxRate / 100)).round(4);
}
else {
if (fPsCount == 0) {
fWPsPrice = 0;
}
else {
fWPsPrice = (fWPsTotal / fPsCount).round(4);
}
}
}
let fXTaxTotal = fPsTotal - fWPsTotal;
let fSTotal = (fPsCount * fPrice).round(2);
if (fPsCount < 0) {
dr.setColumnError(dc.fieldName, '配送数量不能为负数!');
return false;
}
dr.setColumnValue('PsCount', fPsCount);
dr.setColumnValue('StlCurrPsTotal', fStlCurrPsTotal);
dr.setColumnValue('PsTotal', fPsTotal);
dr.setColumnValue('WPsTotal', fWPsTotal);
dr.setColumnValue('PsPrice', fPsPrice);
dr.setColumnValue('WPsPrice', fWPsPrice);
dr.setColumnValue('XTaxTotal', fXTaxTotal);
dr.setColumnValue('STotal', fSTotal);
return true;
};
//StlCurrPsPrice 字段变化执行事件
Biz.prototype.fieldChangedStlCurrPsPrice = function (dataSrc, dr, dc) {
let masterRow = this.dsMaster.currentRow;
let fExchangeRate = TypeUtil.toFloat(masterRow['ExchangeRate']);
let sIsStdCurr = masterRow ? TypeUtil.toString(masterRow['IsStdCurr']) : '0';
let fPackCount = TypeUtil.toFloat(dr['PackCount']);
let fPackQty = TypeUtil.toFloat(dr['PackQty']);
let fSglCount = TypeUtil.toFloat(dr['SglCount']);
let sPluCode = dr ? TypeUtil.toString(dr['PluCode']) : '';
let fStlCurrPsPrice = TypeUtil.toFloat(dr['StlCurrPsPrice']);
let fXTaxRate = TypeUtil.toFloat(dr['XTaxRate']);
let fPrice = TypeUtil.toFloat(dr['Price']);
let sPriceType = TypeUtil.toString(dr['PriceType']);
let fPsCount = fPackCount * fPackQty + fSglCount;
if (sPluCode === '') return false;
if (sPriceType != "4") {
let Dst_IsXgGdPsPrice = rhtComm.getRhtOptionValue('*', 'DST', 'Dst_IsXgGdPsPrice', '0');
if ((sPriceType != "3") || ((sPriceType == "3") && (Dst_IsXgGdPsPrice == "0"))) {
dr.setColumnError(dc.fieldName, '非自由配送价,不能更改商品的配送价格!');
dr.setColumnValue('StlCurrPsPrice', dr.transData['StlCurrPsPrice']);
return false;
}
}
let fStlCurrPsTotal = (fStlCurrPsPrice * fPsCount).round(2);
let fPsTotal = (fStlCurrPsTotal * fExchangeRate).round(2);
let fWPsTotal = (fPsTotal / (1 + fXTaxRate / 100)).round(2);
let fPsPrice = 0.0;
if (sIsStdCurr == "1") {
fPsPrice = fStlCurrPsPrice;
}
else {
if (fPsTotal == 0) {
fPsPrice = (fStlCurrPsPrice * fExchangeRate).round(4);
}
else {
if (fPsCount == 0) {
fPsPrice = 0;
}
else {
fPsPrice = (fPsTotal / fPsCount).round(4);
}
}
}
let fWPsPrice = 0.0;
if (fXTaxRate == 0) {
fWPsPrice = 0;
}
else {
if (fWPsTotal == 0) {
fWPsPrice = (fPsPrice / (1 + fXTaxRate / 100)).round(4);
}
else {
if (fPsCount == 0) {
fWPsPrice = 0;
}
else {
fWPsPrice = (fWPsTotal / fPsCount).round(4);
}
}
}
let fXTaxTotal = fPsTotal - fWPsTotal;
let fSTotal = (fPsCount * fPrice).round(2);
if (fPsCount < 0) {
dr.setColumnError(dc.fieldName, '配送数量不能为负数!');
return false;
}
dr.setColumnValue('PsCount', fPsCount);
dr.setColumnValue('StlCurrPsTotal', fStlCurrPsTotal);
dr.setColumnValue('PsTotal', fPsTotal);
dr.setColumnValue('WPsTotal', fWPsTotal);
dr.setColumnValue('PsPrice', fPsPrice);
dr.setColumnValue('WPsPrice', fWPsPrice);
dr.setColumnValue('XTaxTotal', fXTaxTotal);
dr.setColumnValue('STotal', fSTotal);
return true;
};
//按钮事件控制
Biz.prototype.doOp = function (opCode) {
let self = this;
if (opCode == 'end') {
self.onend();
}
if (opCode == 'pladd') {
self.onpladd();
}
if (opCode == 'getzp') {
self.ongetzp();
}
};
//控制主界面按钮状态
Biz.prototype.getOpEnabled = function (opCode) {
let isOk = this.super('getOpEnabled', opCode);
if (!isOk) {
return false;
}
let curRow = this.dsMaster.currentRow;
let sYwStatus = curRow ? TypeUtil.toString(curRow['YwStatus']) : '0';
if (opCode == 'end') {
if (!curRow)
return false;
if (this.isEdit())
return false;
if (sYwStatus != "0")
return false;
}
if (opCode == 'pladd') {
if (!curRow)
return false;
if (!this.isEdit())
return false;
}
if (opCode == 'getzp') {
if (!curRow)
return false;
if (this.isEdit())
return false;
if (sYwStatus != "0")
return false;
}
return true;
};
//结案事件处理
Biz.prototype.onend = function () {
let curHRow = this.dsMaster.currentRow;
let sBillNo = curHRow ? TypeUtil.toString(curHRow['BillNo']) : '';
let sYwStatus = curHRow ? TypeUtil.toString(curHRow['YwStatus']) : '';
//弹出是否确认提交对话框
if (!Store.confirm("结案后将不能再验收,确定要结案吗?")) {
return false;
}
if (sYwStatus == "1") {
Store.messager.err("此配送单验收中,不能再结案!");
return false;
}
if (sYwStatus == "2") {
Store.messager.err("此配送单已经验收完成,不能再结案!");
return false;
}
let ret = Service.getSlideMenuData("actExecute", "onend", sBillNo, "", "", "", "");
if (ret.result !== 1) {
Store.messager.err(ret.message);
return false;
}
this.dsMaster.updateRow();
Store.messager.tip("结案成功!");
return true;
};
//批量多选商品事件处理
Biz.prototype.onpladd = function () {
let self = this;
let curHRow = self.dsMaster.currentRow;
let sCntID = curHRow ? TypeUtil.toString(curHRow['CntID']) : '';
//定义多选窗口界面
let exists = new Array();
for (let j = 0; j < self.dsDetail.rows.length; j++) {
exists.push({
'PluID': self.dsDetail.rows[j].PluID
});
}
let param = {
exists: exists,
uiObjCode: '8001',
serverBiz: 'cn.qdhezheng.rht.app.dst.dst200104.SavePlugin',
biz: self,
pk: "PluID",
fixQuery: {
'CntID': sCntID
},
showCheckColumn: true,
funcCode: self.FuncCode,
ds: self.dsDetail,
itreator: function (row) {
let isOK = self.pladdrows(row);
if (isOK != true) {
Store.messager.tip("批量导入商品失败!");
return false;
}
return true;
}
};
//new多选窗体 并打开
let myWindow = new multiWindow(param);
myWindow.open();
};
//批量增加每行后触发操作
Biz.prototype.pladdrows = function (row) {
let ds = this.dsDetail;
if (row != null) {
let dr = ds.addRow();
dr.setColumnValue('PluID', row['PluID']);
dr.setColumnText('PluCode', row['PluCode']);
dr.setColumnValue('PluName', row['PluName']);
dr.setColumnValue('Spec', row['Spec']);
dr.setColumnValue('Unit', row['Unit']);
dr.setColumnText('SglCount', "1");
}
return true;
};
//算赠品事件处理
Biz.prototype.ongetzp = function () {
let curHRow = this.dsMaster.currentRow;
let sBillNo = curHRow ? TypeUtil.toString(curHRow['BillNo']) : '';
let sYwType = curHRow ? TypeUtil.toString(curHRow['YwType']) : '';
let sYwStatus = curHRow ? TypeUtil.toString(curHRow['YwStatus']) : '';
if (sYwStatus != "0") {
Store.messager.err("此配送单已被处理,不能算赠品!");
return false;
}
let ret = Service.getSlideMenuData("actExecute", "ongetzp", sBillNo, sYwType, "", "", "");
if (ret.result !== 1) {
Store.messager.err(ret.message);
return false;
}
this.dsMaster.updateRow();
Store.messager.tip("算赠品成功!");
return true;
};
return Biz;
});