define(function (require, exports, module) { //引入业务类基类 let BaseBiz = require('apps/rht/base/rhtBiz'); let rhtComm = require('apps/rht/comm/rhtComm'); //引入业务服务 let Service = require('./wsl160102service'); /** * 全局变量 */ //取部门核算级别 let accLength = rhtComm.getOptionOrgAccLevel(); /** * 定义业务类对象 * @param vm 界面相关ViewModule */ function Biz(vm) { //继承第一步,构造继承 BaseBiz.call(this, vm); } //继承第二步,方法继承 inherits(Biz, BaseBiz); let LsCkIsMngPsArea = rhtComm.getRhtOptionValue('*','SUPP','LsCkIsMngPsArea','0'); let PFPriceLimit = rhtComm.getRhtOptionValue('*','WSL','PFPriceLimit','0'); let Wsl_IsUsePfJgZc = rhtComm.getRhtOptionValue('*','WSL','Wsl_IsUsePfJgZc','0'); let Wsl_IsPfPrcNotMin = rhtComm.getRhtOptionValue('*','WSL','Wsl_IsPfPrcNotMin','0'); let IsMdKwMng = rhtComm.getRhtOptionValue(Store.logOn.orgCode,'STK','IsMdKwMng','1'); let WSL_PFJSXYCTRL = rhtComm.getRhtOptionValue('*','WSL','WSL_PFJSXYCTRL','0'); //新增行后处理,默认值已经处理 Biz.prototype.afterNewRow = function (dataSrc, newRow) { if (dataSrc.uiObjCode === this.dsDetail.uiObjCode) { let masterRow = this.dsMaster.currentRow; if(masterRow){ let DepCodeHead = TypeUtil.toString(masterRow['DepCode']); let PriceType = masterRow['PriceType']; let ZkRate = TypeUtil.toFloat(masterRow['ZkRate']); if ((accLength > 0) && (DepCodeHead.length == 0)){ Store.messager.tip('核算到部门,必须录入主表部门!'); return false; } if (PriceType == "3"){ if (ZkRate == 0){ if (!Store.confirm("零售价折扣的折扣率为0,是否继续录入?")) { newRow.delete(); return false; } } else{ if ((ZkRate > 100) || (ZkRate < 0)){ Store.messager.tip('折扣率必须介于0到100之间,请重新输入!'); return false; } } } } } if (dataSrc.uiObjCode === this.dsMaster.uiObjCode) { let sdate = rhtComm.GetServerDate(0); newRow.setColumnValue('DhDate',sdate); newRow.setColumnValue('IsKFp', '0'); newRow.setColumnValue('IsEc',"0"); newRow.setColumnValue('BillType', "0"); newRow.setColumnText('FhMode', "0"); } this.super('afterNewRow', dataSrc, newRow); }; //单据编辑前处理 Biz.prototype.beforeEdit = function () { let masterRow = this.dsMaster.currentRow; let JsCode = TypeUtil.toString(masterRow['JsCode']); let QkTotal = TypeUtil.toFloat(masterRow['QkTotal']); let SkTotal = TypeUtil.toFloat(masterRow['SkTotal']); let IsEc = TypeUtil.toFloat(masterRow['IsEc']); if (IsEc == "1") { masterRow.setColumnError("BillNo", '电商生成的批发销售单,不允许编辑。'); return false; } if ((QkTotal == 0) && (SkTotal != 0) && (JsCode == "00")) { masterRow.setColumnError("BillNo", '此批发销售单已经收款,不能编辑。'); return false; } return this.super('beforeEdit'); }; //单据删除前处理 Biz.prototype.beforeDelete = function () { let masterRow = this.dsMaster.currentRow; let JsCode = TypeUtil.toString(masterRow['JsCode']); let QkTotal = TypeUtil.toFloat(masterRow['QkTotal']); let SkTotal = TypeUtil.toFloat(masterRow['SkTotal']); let IsEc = TypeUtil.toFloat(masterRow['IsEc']); if (IsEc == "1") { masterRow.setColumnError("BillNo", '电商生成的批发销售单,不允许删除。'); return false; } if ((QkTotal == 0) && (SkTotal != 0) && (JsCode == "00")) { masterRow.setColumnError("BillNo", '此批发销售单已经收款,不能删除。'); return false; } let BillNo = masterRow ? TypeUtil.toString(masterRow['BillNo']) : ''; let ret= Service.getSlideMenuData("LockLsKcByYwBill","",BillNo,"1601","1","",""); if (ret.result !== 1) { masterRow.setColumnError('BillNo', '删除锁定库存失败:'+ret.message); return false; } return this.super('beforeDelete'); }; //保存前校验 计算主表合计数量等字段 Biz.prototype.beforeSave = function () { let curRow = this.dsMaster.currentRow; if(curRow){ let PfCount = 0.0; let PfTotal = 0.0; let YhTotal = 0.0; let SsTotal = 0.0; let XTaxTotal = 0.0; let vi_MainZeroTotal = 0.0; let vi_MainSsTotal = 0.0; let vi_ListSsTotal = 0.0; let vi_UpTotal = 0.0; let vEndSsTotal = 0.0; let vEndXTaxTotal = 0.0; let ZeroTotal = TypeUtil.toFloat(curRow['ZeroTotal']); vi_MainZeroTotal = ZeroTotal; let FhMode = TypeUtil.toString(curRow['FhMode']); let DhDate = TypeUtil.toString(curRow['DhDate']); let EtpTel = TypeUtil.toString(curRow['EtpTel']); let Address = TypeUtil.toString(curRow['Address']); let AreaCode = TypeUtil.toString(curRow['AreaCode']); let ZdDate = TypeUtil.toString(curRow['ZdDate']); let YxDate = TypeUtil.toString(curRow['YxDate']); let JsCode = TypeUtil.toString(curRow['JsCode']); let YqDate = TypeUtil.toString(curRow['YqDate']); let PriceType = TypeUtil.toString(curRow['PriceType']); if (FhMode == "1" ){ if (DhDate == ""){ curRow.setColumnError("DhDate", "发货方式为1-送货,必须指定到货日期!"); return false; } else if ((this._state=="add") && (DhDate < rhtComm.GetServerDate(0))) { curRow.setColumnError("DhDate", "发货方式为1-送货,到货日期必须大于等于今天!"); return false; } if (EtpTel == ""){ curRow.setColumnError("EtpTel", "发货方式为1-送货,必须指定联系电话!"); return false; } if (Address == ""){ curRow.setColumnError("Address", "发货方式为1-送货,必须指定送货地址!"); return false; } if (AreaCode == ""){ curRow.setColumnError("AreaCode", "发货方式为1-送货,必须指定送货区域!"); return false; } } else if (FhMode == "0" ){ if (ZdDate == ""){ curRow.setColumnError("ZdDate", "发货方式为0-自提,必须指定提货日期!"); return false; } else if ((this._state=="add") && (ZdDate < rhtComm.GetServerDate(0))) { curRow.setColumnError("ZdDate", "发货方式为0-自提,提货日期必须大于等于今天!"); return false; } if (YxDate == ""){ curRow.setColumnError("YxDate", "发货方式为0-自提,必须指定提货有效日期!"); return false; } else if ((this._state=="add") && (YxDate < rhtComm.GetServerDate(0))) { curRow.setColumnError("YxDate", "发货方式为0-自提,提货有效日期必须大于等于今天!"); return false; } } if ((JsCode == "00") && (PriceType == "1")){ curRow.setColumnError("JsCode", "使用成本价批发时在出库后才能确定成本,因此不能使用先款后货,建议使用货到付款!"); return false; } if ((JsCode == "02") && (YqDate == "")){ curRow.setColumnError("YqDate", "延期付款,必须指定付款日期!"); return false; } for(let i=0;i TypeUtil.toFloat(retKyCount.message)){ let errmsg = "商品["+PluCode+"-"+PluName+"]的批发数量不能多于商品的库存[组织:"+InOrgCode+"、仓库:"+ CkCode+"、部门:"+DepCode+"-"+DepName+"、商品类型:"+sPluType+"]
当前可用数量:"+retKyCount.message; return errmsg; } } else{ return "查询商品库存失败:"+retKyCount.message; } dr.setColumnValue('HCost', (HJPrice*PfCount).round(2)); dr.setColumnValue('HMTotal', SsTotal-(HJPrice*PfCount).round(2)); if (SsTotal == 0){ dr.setColumnValue('PfMlRate', "0"); } else{ dr.setColumnValue('PfMlRate', ((SsTotal-(HJPrice*PfCount).round(2))/SsTotal).round(2)); } } return true; }; /** * @description 数据发生变化时调用 * @param dataSrc 数据集 * @param dr 数据行 * @param dc 数据列 */ Biz.prototype.fieldChanged = function (dataSrc, dr, dc) { let self = this; let currentRow = self.dsMaster.currentRow; if (currentRow === null) return false; if (dataSrc.uiObjCode === this.dsMaster.uiObjCode) { switch (dc.fieldName) { case 'EtpCode': this.fieldChangedEtpCode(dataSrc, dr, dc); break; case 'FhMode': this.fieldChangedFhMode(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 'PfPrice': this.fieldChangedPfPrice(dataSrc, dr, dc); break; case 'SsTotal': this.fieldChangedSsTotal(dataSrc, dr, dc); break; case 'SglCount': this.fieldChangedSglCount(dataSrc, dr, dc); break; case 'PackCount': this.fieldChangedPackCount(dataSrc, dr, dc); break; case 'YhTotal': this.fieldChangedYhTotal(dataSrc, dr, dc); break; case 'XTaxRate': this.fieldChangedXTaxRate(dataSrc, dr, dc); break; } } this.super('fieldChanged'); }; //EtpCode 字段变化执行事件 Biz.prototype.fieldChangedEtpCode = function (dataSrc, dr, dc) { let self = this; let currentRow = self.dsMaster.currentRow; let EtpCode = currentRow['EtpCode']; let CkCode = currentRow['CkCode']; let OrgCode = currentRow['OrgCode']; let FhMode = currentRow['FhMode']; if ((LsCkIsMngPsArea == "1") && (EtpCode.length > 0) && (CkCode.length > 0)){ let ret= Service.getSlideMenuData("DoOnMasterRule","EtpCode",OrgCode,EtpCode,CkCode,"",""); if (ret.result === 1) { if (ret.data != null) { if (FhMode == "1"){ dr.setColumnValue('Address', ret.data.Address); } dr.setColumnValue('EtpTel', ret.data.Telephone); dr.setColumnValue('BankBook', ret.data.KhhNo); } } else{ dr.setColumnError(dc.fieldName, ret.message); return false; } } return true; }; //CkCode 字段变化执行事件 Biz.prototype.fieldChangedCkCode = function (dataSrc, dr, dc) { let self = this; let currentRow = self.dsMaster.currentRow; let EtpCode = currentRow['EtpCode']; let CkCode = currentRow['CkCode']; let OrgCode = currentRow['OrgCode']; if ((LsCkIsMngPsArea == "1") && (EtpCode.length > 0) && (CkCode.length > 0)){ let ret= Service.getSlideMenuData("DoOnMasterRule","CkCode",OrgCode,EtpCode,CkCode,"",""); if (ret.result !== 1) { dr.setColumnError(dc.fieldName, ret.message); return false; } } dr.setColumnText('WlAreaCode', "*"); return true; }; //FhMode 字段变化执行事件 Biz.prototype.fieldChangedFhMode = function (dataSrc, dr, dc) { let self = this; let currentRow = self.dsMaster.currentRow; if(currentRow['FhMode'] === '0'){ let ZdDate = currentRow ? TypeUtil.toString(currentRow['ZdDate']) : ''; let YxDate = currentRow ? TypeUtil.toString(currentRow['YxDate']) : ''; dr.setColumnText('Address', ""); if (ZdDate == ""){ dr.setColumnText('ZdDate', rhtComm.GetServerDate(0)); } if (YxDate == ""){ dr.setColumnText('YxDate', rhtComm.GetServerDate(1)); } } if(currentRow['FhMode'] === '1'){ let EtpCode = currentRow ? TypeUtil.toString(currentRow['EtpCode']) : ''; dr.setColumnValue('ZdDate', ""); dr.setColumnValue('YxDate', ""); dr.setColumnText('ThAddress', ""); if (EtpCode.length > 0){ let ret= Service.getSlideMenuData("DoOnMasterRule","FhMode",EtpCode,"","","",""); if (ret.result === 1) { if (ret.data != null) { dr.setColumnValue('Address', ret.data.Address); dr.setColumnValue('EtpTel', ret.data.Telephone); dr.setColumnValue('BankBook', ret.data.KhhNo); } } else{ dr.setColumnError(dc.fieldName, ret.message); return false; } } } return true; }; //PluCode 字段变化执行事件 Biz.prototype.fieldChangedPluCode = function (dataSrc, dr, dc) { let self = this; let currentRow = self.dsMaster.currentRow; let PluId = dr['PluId']; let PluCode = dr['PluCode']; let DepCode = currentRow['DepCode']; let EtpCode = currentRow['EtpCode']; let CkCode = currentRow['CkCode']; let PriceType = currentRow['PriceType']; let ZkRate = TypeUtil.toFloat(currentRow['ZkRate']); if (PluCode.length > 0){ let pfPrice = 0.0; let pfZdPrice = 0.0; let JSONObject={OrgCode:Store.logOn.orgCode,EtpCode:EtpCode,PluID:PluId}; let retPluPfPrice = Service.getSlideMenuData("pubsysBaseBL","UWslGetPluPfPrice",JSONObject,"","","",""); if (retPluPfPrice.result === 1) { if (retPluPfPrice.data != null) { dr.setColumnValue('HJPrice', retPluPfPrice.data[0].hjprice); dr.setColumnValue('Price', retPluPfPrice.data[0].price); dr.setColumnValue('PfZdPrice', retPluPfPrice.data[0].pfprice); dr.setColumnText('SglCount', TypeUtil.toString(dr['SglCount'])); pfZdPrice = TypeUtil.toFloat(retPluPfPrice.data[0].pfprice); pfPrice = TypeUtil.toFloat(retPluPfPrice.data[0].price); } } else{ dr.setColumnError(dc.fieldName, "查询商品价格信息出错:"+retPluPfPrice.message); return false; } if ((Wsl_IsUsePfJgZc == "1")|| (Wsl_IsPfPrcNotMin == "1")) { let ret= Service.getSlideMenuData("DoOnDetailCalcRule","PluCode",PluCode,EtpCode,Store.logOn.orgCode,"",""); if (ret.result !== 1) { dr.setColumnError(dc.fieldName, ret.message); return false; } if (ret.data != null) { pfPrice = TypeUtil.toFloat(ret.data.Price); } } if (Wsl_IsUsePfJgZc == "1"){ dr.setColumnValue('PfPrice', pfPrice); } else{ if (PriceType == "3"){ dr.setColumnValue('PfPrice', ((pfPrice*ZkRate)/100).round(4)); } else{ dr.setColumnValue('PfPrice', pfZdPrice); } } if ((Wsl_IsUsePfJgZc == "0") && (Wsl_IsPfPrcNotMin == "1")) { dr.setColumnValue('PfZdPrice', pfPrice); dr.setColumnValue('PfPrice', pfPrice); } JSONObject={psPluCode:PluCode,psYwType:"1601"}; let retPacket= Service.getSlideMenuData("pubsysBaseBL","GetDefaultPluPackUnitByYwType",JSONObject,PluCode,"","",""); 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"); let InOrgCode = rhtComm.GetInOrgCode(Store.logOn.orgCode).message; JSONObject={OrgCode:InOrgCode,PluCode:PluCode,DepCode:DepCode}; let retdep = Service.getSlideMenuData("pubsysBaseBL","UQryPluDepInfo",JSONObject,"","","",""); if (retdep.result === 1) { if (retdep.data != null) { dr.setColumnValue('DepId', retdep.data.DepID); dr.setColumnValue('DepCode', retdep.data.DepCode); dr.setColumnValue('DepName', retdep.data.DepName); } } else{ dr.setColumnError(dc.fieldName, retdep.message); return false; } if (IsMdKwMng == "1"){ JSONObject={CurInOrgCode:InOrgCode,CkCode:CkCode,PluID:PluId}; let retKwCode = Service.getSlideMenuData("pubsysBaseBL","GetPluKw",JSONObject,"","","",""); if (retKwCode.result === 1) { if (retKwCode.data != null) { dr.setColumnValue('KwCode', retKwCode.data.KwCode); } } else{ dr.setColumnError(dc.fieldName, retKwCode.message); return false; } } let retPfPrice = Service.getSlideMenuData("DoOnDetailCalcRule","GetLastPfPrice",PluCode,EtpCode,"","",""); if (retPfPrice.result === 1) { if (retPfPrice.data != null) { dr.setColumnValue('LPfPrice', retPfPrice.data.PfPrice); } } else{ dr.setColumnError(dc.fieldName, retPfPrice.message); return false; } } return true; }; //PfPrice 字段变化执行事件 Biz.prototype.fieldChangedPfPrice = function (dataSrc, dr, dc) { let PluType = TypeUtil.toString(dr['PluType']); let PriceType = TypeUtil.toString(dr['PriceType']); let PluCode = TypeUtil.toString(dr['PluCode']); let PfPrice = TypeUtil.toFloat(dr['PfPrice']); let HJPrice = TypeUtil.toFloat(dr['HJPrice']); let PfZdPrice = TypeUtil.toFloat(dr['PfZdPrice']); let YhTotal = TypeUtil.toFloat(dr['YhTotal']); let XTaxRate = TypeUtil.toFloat(dr['XTaxRate']); let PfCount = TypeUtil.toFloat(dr['PfCount']); let SsTotal =0.0; if ((PluType != "1") && (PriceType != "1") && (HJPrice != 0) && (PluCode.length > 0)){ if ((PFPriceLimit == "2") || (PFPriceLimit == "1")){ if (PfPrice < HJPrice){ if (PFPriceLimit == "1"){ dr.setColumnError(dc.fieldName, "商品的批发价格"+PfPrice+"不允许低于最新进价"+HJPrice); return false; } else{ if (!Store.confirm("商品的批发价格"+PfPrice+"不允许低于最新进价"+HJPrice+",请确认?")) { return false; } } } } } SsTotal = (PfCount*PfPrice).round(2)-YhTotal; if ((Wsl_IsUsePfJgZc == "0") && (Wsl_IsPfPrcNotMin == "1")){ if (PfPrice < PfZdPrice){ dr.setColumnError(dc.fieldName, "批发价不能小于批发指导价,请检查!"); return false; } } dr.setColumnValue("YsTotal", (PfCount*PfPrice).round(2)); dr.setColumnValue("SsTotal", SsTotal); dr.setColumnValue("XTaxTotal", (SsTotal*(XTaxRate/100/(1+XTaxRate/100))).round(2)); return true; }; //SsTotal 字段变化执行事件 Biz.prototype.fieldChangedSsTotal = function (dataSrc, dr, dc) { let SsTotal = TypeUtil.toFloat(dr['SsTotal']); let PfCount = TypeUtil.toFloat(dr['PfCount']); let PfZdPrice = TypeUtil.toFloat(dr['PfZdPrice']); if (PfCount == 0){ dr.setColumnError(dc.fieldName, "批发数量不能为0!"); return false; } if ((SsTotal/PfCount).round(4) < PfZdPrice){ dr.setColumnError(dc.fieldName, "批发价不能小于批发指导价,请检查!"); return false; } let XTaxRate = TypeUtil.toFloat(dr['XTaxRate']); let PfPrice =0.0; PfPrice = (SsTotal/PfCount+0.00004).round(4); dr.setColumnValue("PfPrice", PfPrice); dr.setColumnValue("YsTotal", (PfPrice*PfCount).round(2)); dr.setColumnValue("YhTotal", (PfPrice*PfCount).round(2)-SsTotal); dr.setColumnValue("XTaxTotal", (SsTotal*(XTaxRate/100/(1+XTaxRate/100))).round(2)); return true; }; //SglCount 字段变化执行事件 Biz.prototype.fieldChangedSglCount = function (dataSrc, dr, dc) { let PackQty = TypeUtil.toFloat(dr['PackQty']); let PackCount = TypeUtil.toFloat(dr['PackCount']); let SglCount = TypeUtil.toFloat(dr['SglCount']); let PfPrice = TypeUtil.toFloat(dr['PfPrice']); let YhTotal = TypeUtil.toFloat(dr['YhTotal']); let XTaxRate = TypeUtil.toFloat(dr['XTaxRate']); let PfCount =0.0; let SsTotal =0.0; PfCount = (PackCount * PackQty) + SglCount; SsTotal = (PfCount*PfPrice).round(2)-YhTotal; let DotDecimal = TypeUtil.toFloat(dr['R_DotDecimal']); let sdl= 0; if (SglCount.toString().indexOf(".") !== -1){ sdl= SglCount.toString().split(".")[1].length || 0; } if (DotDecimal < sdl){ dr.setColumnError(dc.fieldName, "此商品的小数精度是" + dr['R_DotDecimal'] ); return false; } dr.setColumnValue("PfCount", PfCount); dr.setColumnValue("YsTotal", (PfCount*PfPrice).round(2)); dr.setColumnValue("SsTotal", SsTotal); dr.setColumnValue("XTaxTotal", (SsTotal*(XTaxRate/100/(1+XTaxRate/100))).round(2)); return true; }; //PackCount 字段变化执行事件 Biz.prototype.fieldChangedPackCount = function (dataSrc, dr, dc) { let PackQty = TypeUtil.toFloat(dr['PackQty']); let PackCount = TypeUtil.toFloat(dr['PackCount']); let SglCount = TypeUtil.toFloat(dr['SglCount']); let PfPrice = TypeUtil.toFloat(dr['PfPrice']); let YhTotal = TypeUtil.toFloat(dr['YhTotal']); let XTaxRate = TypeUtil.toFloat(dr['XTaxRate']); let PfCount =0.0; let SsTotal =0.0; PfCount = (PackCount * PackQty) + SglCount; SsTotal = (PfCount*PfPrice).round(2)-YhTotal; let DotDecimal = TypeUtil.toFloat(dr['R_DotDecimal']); let sdl= 0; if (PackCount.toString().indexOf(".") !== -1){ sdl= PackCount.toString().split(".")[1].length || 0; } if (DotDecimal < sdl){ dr.setColumnError(dc.fieldName, "此商品的小数精度是" + dr['R_DotDecimal'] ); return false; } dr.setColumnValue("PfCount", PfCount); dr.setColumnValue("YsTotal", (PfCount*PfPrice).round(2)); dr.setColumnValue("SsTotal", SsTotal); dr.setColumnValue("XTaxTotal", (SsTotal*(XTaxRate/100/(1+XTaxRate/100))).round(2)); return true; }; //YhTotal 字段变化执行事件 Biz.prototype.fieldChangedYhTotal = function (dataSrc, dr, dc) { let YsTotal = TypeUtil.toString(dr['YsTotal']); let YhTotal = TypeUtil.toFloat(dr['YhTotal']); let XTaxRate = TypeUtil.toFloat(dr['XTaxRate']); let SsTotal =0.0; SsTotal = YsTotal-YhTotal; dr.setColumnValue("SsTotal", YsTotal-YhTotal); dr.setColumnValue("XTaxTotal", (SsTotal*(XTaxRate/100/(1+XTaxRate/100))).round(2)); return true; }; //XTaxRate 字段变化执行事件 Biz.prototype.fieldChangedXTaxRate = function (dataSrc, dr, dc) { let XTaxRate = TypeUtil.toFloat(dr['XTaxRate']); let SsTotal = TypeUtil.toFloat(dr['SsTotal']); dr.setColumnValue("XTaxTotal", (SsTotal*(XTaxRate/100/(1+XTaxRate/100))).round(2)); return true; }; //控制主界面按钮状态 Biz.prototype.getOpEnabled = function (opCode) { let isOk = this.super('getOpEnabled', opCode); if (!isOk) return false; let curRow = this.dsMaster.currentRow; if (opCode == 'acc') { let JzDate = curRow ? TypeUtil.toString(curRow['JzDate']) : ''; let QkTotal = curRow ? TypeUtil.toFloat(curRow['QkTotal']) : ''; let SkTotal = curRow ? TypeUtil.toFloat(curRow['SkTotal']) : ''; let FhMode = curRow ? TypeUtil.toString(curRow['FhMode']) : ''; let JsCode = curRow ? TypeUtil.toString(curRow['JsCode']) : ''; let ThDate = curRow ? TypeUtil.toString(curRow['ThDate']) : ''; if (!curRow) return false; if (JsCode == "00"){ if (FhMode == "0"){ if (SkTotal == 0) return false; if (ThDate == '') return false; } else{ if (SkTotal < 0) return false; } if (QkTotal != 0) return false; if (JzDate != '') return false; } else{ if (FhMode == "0"){ if (ThDate == '') return false; } if (JzDate != '') return false; } } if (opCode == 'change') { let JzDate = curRow ? TypeUtil.toString(curRow['JzDate']) : ''; if (!curRow) return false; if (JzDate == '') return false; } if (opCode == 'actth') { let ThDate = curRow ? TypeUtil.toString(curRow['ThDate']) : ''; let ThrName = curRow ? TypeUtil.toString(curRow['ThrName']) : ''; let QkTotal = curRow ? TypeUtil.toFloat(curRow['QkTotal']) : ''; let SkTotal = curRow ? TypeUtil.toFloat(curRow['SkTotal']) : ''; let FhMode = curRow ? TypeUtil.toString(curRow['FhMode']) : ''; let JsCode = curRow ? TypeUtil.toString(curRow['JsCode']) : ''; if (!curRow) return false; if (JsCode == "00"){ if ((ThDate != '') || (ThrName != '') || (FhMode != "0")) return false; }else{ if (FhMode == "1"){ return false; } } if ((QkTotal != 0) || (SkTotal < 0)) return false; if (this.isEdit()) return false; } if (opCode == 'actsk') { let TjDate = curRow ? TypeUtil.toString(curRow['TjDate']) : ''; let SkTotal = curRow ? TypeUtil.toFloat(curRow['SkTotal']) : ''; let JsCode = curRow ? TypeUtil.toString(curRow['JsCode']) : ''; if (!curRow) return false; if ((JsCode != '00') || (TjDate != '')) return false; if (SkTotal > 0) return false; if (this.isEdit()) return false; } if (opCode == 'acttk') { let TjDate = curRow ? TypeUtil.toString(curRow['TjDate']) : ''; let SkTotal = curRow ? TypeUtil.toFloat(curRow['SkTotal']) : ''; let JsCode = curRow ? TypeUtil.toString(curRow['JsCode']) : ''; if (!curRow) return false; if ((JsCode != '00') || (TjDate != '')) return false; if (SkTotal <= 0) return false; if (this.isEdit()) return false; } return true; }; //按钮事件控制 Biz.prototype.doOp = function (opCode) { let self = this; if (opCode == 'change') { let ds = self.dsMaster; this.onchange(self, ds); } if (opCode == 'actth') { let ds = self.dsMaster; this.onactth(self, ds); } if (opCode == 'actsk') { let ds = self.dsMaster; this.onactsk(self, ds); } if (opCode == 'acttk') { let ds = self.dsMaster; this.onacttk(self, ds); } }; //按钮事件 Biz.prototype.onchange = function (biz, ds) { let dsrow=ds.currentRow; let BillNo = dsrow ? TypeUtil.toString(dsrow['BillNo']) : ''; let ret= Service.getSlideMenuData("actExecute","onchange",BillNo,"1603",Store.logOn.userId,Store.logOn.userCode,Store.logOn.userName); if (ret.result !== 1) { dsrow.setColumnError('BillNo', '转化失败:'+ret.message); return false; } else{ Store.messager.tip('转化成功!'); //刷新当前页面 this.opRouter('refresh'); } return true; }; //提货按钮 Biz.prototype.onactth = function (biz, ds) { let dsrow=ds.currentRow; let ThrName = dsrow ? TypeUtil.toString(dsrow['ThrName']) : ''; if (ThrName != '') { dsrow.setColumnError("ThrName",ThrName+"已经提货!"); return false; } //直接弹出窗口 let InRemark = prompt("请输入提货人姓名",""); if (InRemark.length > 0){ if (InRemark.length > 5){ dsrow.setColumnError("ThrName","提货人姓名长度不能大于5!"); return false; } dsrow.setColumnValue('ThrName', InRemark); dsrow.setColumnValue('ThDate', rhtComm.GetServerDate(0)); ds.save(); biz.dsMaster.updateRow(); //Store.messager.tip("提货成功!"); } else{ dsrow.setColumnError("ThrName","必须录入提货人!"); return false; } return true; }; //收款按钮 Biz.prototype.onactsk = function (biz, ds) { if (Store.confirm("您确认要进行批发客户的收款吗?")) { let dsrow=ds.currentRow; let BillNo = dsrow ? TypeUtil.toString(dsrow['BillNo']) : ''; let ret= Service.getSlideMenuData("actExecute","onactsk",Store.logOn.orgCode,BillNo,Store.logOn.userId,Store.logOn.userCode,Store.logOn.userName); if (ret.result !== 1) { dsrow.setColumnError('BillNo', '收款失败:'+ret.message); return false; } else{ Store.messager.tip('收款成功!'); biz.dsMaster.updateRow(); } } return true; }; //退款按钮 Biz.prototype.onacttk = function (biz, ds) { if (Store.confirm("您确认要进行批发客户的退款吗?")) { let dsrow=ds.currentRow; let BillNo = dsrow ? TypeUtil.toString(dsrow['BillNo']) : ''; //收款和退款后台都是一个过程处理 onactsk let ret= Service.getSlideMenuData("actExecute","onactsk",Store.logOn.orgCode,BillNo,Store.logOn.userId,Store.logOn.userCode,Store.logOn.userName); if (ret.result !== 1) { dsrow.setColumnError('BillNo', '退款失败:'+ret.message); return false; } else{ Store.messager.tip('退款成功!'); biz.dsMaster.updateRow(); } } return true; }; return Biz; });