define(function (require, exports, module) { //引入业务类基类 let BaseBiz = require('apps/rht/base/rhtBiz'); let rhtService = require('../../base/rhtService'); let rhtComm = require('apps/rht/comm/rhtComm'); //引入业务服务 let Service = require('./cnt070202service'); /** * 定义业务类对象 * @param vm 界面相关ViewModule */ function Biz(vm) { //继承第一步,构造继承 BaseBiz.call(this, vm); } //继承第二步,方法继承 inherits(Biz, BaseBiz); Biz.prototype.initCompleted = function () { this.super('initCompleted'); this.orgType = rhtComm.GetOrgType(Store.logOn.orgCode); this.ctrlCntOrgDepRight = rhtComm.getRhtOptionValue("",'CNT','CtrlCntOrgDepRight','0'); this.isRefZkRate = rhtComm.getRhtOptionValue(Store.logOn.orgCode,'CNT','IsRefZkRate','1'); this.tcRateSecond = rhtComm.getRhtOptionValue(Store.logOn.orgCode,'CNT','CNT_TCRATE_SECOND','1'); this.isForeignCheck = rhtComm.getRhtOptionValue(Store.logOn.orgCode,'SYS','Sys_IsForeignCheck','0'); }; //拼装查询条件 Biz.prototype.beforeDataSrcSearch = function (dataSrc, params) { let self = this; self.setServerBiz('cn.qdhezheng.rht.app.cnt.cnt070202.PreProcess'); }; //控制主界面按钮状态 Biz.prototype.getOpEnabled = function (opCode) { let self = this; let isOk = this.super('getOpEnabled', opCode); if (!isOk) return false; let curRow = this.dsMaster.currentRow; let orgCode = curRow ? TypeUtil.toString(curRow['OrgCode']) : ''; let forChkStatus = curRow ? TypeUtil.toString(curRow['ForeignChkStatus']) : ''; let jzDate = curRow ? TypeUtil.toString(curRow['JzDate']) : ''; if (opCode == 'edit') { if (!curRow) return false; if (orgCode != Store.logOn.orgCode) return false; if(forChkStatus != '0' && forChkStatus != '3') return false; if(jzDate != '') return false; } if (opCode == 'delete') { if (!curRow) return false; if (orgCode != Store.logOn.orgCode) return false; if(forChkStatus != '0' && forChkStatus != '3') return false; if(jzDate != '') return false; } if (opCode == 'account') { // 入账 if (!curRow) return false; if (orgCode != Store.logOn.orgCode) return false; if (self.getState() === 'add' || self.getState() === 'edit') { return false; } if(this.isForeignCheck != '0') return false; if(jzDate != '') return false; } if (opCode == 'forchk') { // 外部审核 if (!curRow) return false; if (orgCode != Store.logOn.orgCode) return false; if (self.getState() === 'add' || self.getState() === 'edit') { return false; } if(jzDate != '') return false; if(this.isForeignCheck != '1') return false; if(forChkStatus != '0' && forChkStatus != '3') return false; } return true; }; /** * @description 数据发生变化时调用 * @param dataSrc 数据集 * @param dr 数据行 * @param dc 数据列 */ Biz.prototype.fieldChanged = function (dataSrc, dr, dc) { let self = this; if (dataSrc.uiObjCode === this.dsMaster.uiObjCode) { let currentRow = self.dsMaster.currentRow; if (currentRow === null) return false; switch (dc.fieldName) { case 'SupCode': this.fieldChangedSupCode(dataSrc, dr, dc); break; case 'HtCode': this.fieldChangedHtCode(dataSrc, dr, dc); break; case 'MjFkCalType': this.fieldChangedMjFkCalType(dataSrc, dr, dc); break; case 'IsMjJrXs': this.fieldChangedMjFkCalType(dataSrc, dr, dc); break; case 'BgnDate': this.fieldChangedBgnDate(dataSrc, dr, dc); break; case 'EndDate': this.fieldChangedEndDate(dataSrc, dr, dc); break; case 'BgnTime': this.fieldChangedBgnTime(dataSrc, dr, dc); break; case 'EndTime': this.fieldChangedEndTime(dataSrc, dr, dc); break; } }else if (dataSrc.uiObjCode === this.dsDetail.uiObjCode) { let currentRow = self.dsDetail.currentRow; if (currentRow === null) return false; switch (dc.fieldName) { case 'ZkAreaCode': this.fieldChangedZkAreaCode(dataSrc, dr, dc); break; case 'TcRate': this.fieldChangedTcRate(dataSrc, dr, dc); break; } } return this.super('fieldChanged'); }; Biz.prototype.fieldChangedSupCode = function (dataSrc, dr, dc) { let supCode = TypeUtil.toString(dr['SupCode']); if(supCode != '') { dr.setColumnText('HtCode', ''); } return true; }; Biz.prototype.fieldChangedHtCode = function (dataSrc, dr, dc) { let cntId = TypeUtil.toString(this.dsMaster.currentRow.CntID); let htCode = TypeUtil.toString(this.dsMaster.currentRow.HtCode); // 查询签订组织、部门、是否管理品牌 let ret = Service.GetCntInfo(htCode); if (ret.result != 1) { dr.setColumnError('HtCode','加载合同信息失败!' + ret.message); return false; } this.isMngBrand = TypeUtil.toString(ret.data.ismngbrand); let supCode = TypeUtil.toString(ret.data.etpcode); let signOrgCode = TypeUtil.toString(ret.data.orgcode); let signDepCode = TypeUtil.toString(ret.data.signdepcode); if(this.ctrlCntOrgDepRight == '1') { // 检查合同的组织部门权限 ret = Service.CheckCntOrgDepRightAll('0', Store.logOn.userId, '', htCode, signOrgCode, signDepCode, ''); if (ret.result != 1) { dr.setColumnError('HtCode','验证用户权限失败!' + ret.message); return false; } } dr.setColumnValue('SupCode', supCode); // 加载合同商品 // ret = Service.GetCntPlu(cntId); // if (ret.result != 1) { // Store.messager.err('加载合同商品失败!' + ret.message); // return false; // } // this.cntPluJTaxRateList = ret.data; return true; }; Biz.prototype.fieldChangedMjFkCalType = function (dataSrc, dr, dc) { let mjFkCalType = TypeUtil.toString(dr['MjFkCalType']); let isMjJrXs = TypeUtil.toString(dr['IsMjJrXs']); if(mjFkCalType == '1' && isMjJrXs == '1') { dr.setColumnError('MjFkCalType','满减金额计入销售金额时,不需要设置满减返款方式,默认为“0-按销售金额返款”。'); dr.setColumnValue('MjFkCalType', '0'); } return true; }; Biz.prototype.fieldChangedBgnDate = function (dataSrc, dr, dc) { let bgnDate = TypeUtil.toString(dr['BgnDate']); let endDate = TypeUtil.toString(dr['EndDate']); if(bgnDate != '' && endDate != '') { if(bgnDate > endDate) { dr.setColumnError('BgnDate','开始日期不能大于结束日期'); dr.setColumnValue('BgnDate', ''); return false; } } return true; }; Biz.prototype.fieldChangedEndDate = function (dataSrc, dr, dc) { let bgnDate = TypeUtil.toString(dr['BgnDate']); let endDate = TypeUtil.toString(dr['EndDate']); if(bgnDate != '' && endDate != '') { if(bgnDate > endDate) { dr.setColumnError('EndDate','开始日期不能大于结束日期'); dr.setColumnValue('EndDate', ''); return false; } } return true; }; Biz.prototype.fieldChangedBgnTime = function (dataSrc, dr, dc) { let bgnTime = TypeUtil.toString(dr['BgnTime']); let endTime = TypeUtil.toString(dr['EndTime']); if(bgnTime != '' && endTime != '') { if(bgnTime > endTime) { dr.setColumnError('BgnTime','开始时间不能大于结束时间'); dr.setColumnValue('BgnTime', ''); return false; } } return true; }; Biz.prototype.fieldChangedEndTime = function (dataSrc, dr, dc) { let bgnTime = TypeUtil.toString(dr['BgnTime']); let endTime = TypeUtil.toString(dr['EndTime']); if(bgnTime != '' && endTime != '') { if(bgnTime > endTime) { dr.setColumnError('BgnTime','开始时间不能大于结束时间'); dr.setColumnValue('BgnTime', ''); return false; } } return true; }; Biz.prototype.fieldChangedZkAreaCode = function (dataSrc, dr, dc) { let zkAreaCode = TypeUtil.toFloat(dr['ZkAreaCode']); if(this.isRefZkRate == '0' && zkAreaCode != '*0' && zkAreaCode != '*2' && zkAreaCode != '*3') { dr.setColumnError('ZkAreaCode', '当前不允许使用折扣区间!'); return false; } return true; }; Biz.prototype.fieldChangedTcRate = function (dataSrc, dr, dc) { let tcRate = TypeUtil.toFloat(dr['TcRate']); if(tcRate < 0 || tcRate >= 100) { dr.setColumnError('TcRate', '提成率必须满足条件大于等于0小于100!'); return false; } return true; }; //新增行后处理,默认值已经处理 Biz.prototype.afterNewRow = function (dataSrc, newRow) { if (dataSrc.uiObjCode === this.dsMaster.uiObjCode) { if(this.tcRateSecond == '1') { this.dsMaster.getColumn('BgnTime').set('isEditable',true); this.dsMaster.getColumn('EndTime').set('isEditable',true); }else { this.dsMaster.getColumn('BgnTime').set('isEditable',false); this.dsMaster.getColumn('EndTime').set('isEditable',false); } }else if (dataSrc.uiObjCode === this.dsDetail.uiObjCode) { if(TypeUtil.toString(this.dsMaster.currentRow['HtCode']) == '') { Store.messager.err('请录入合同!'); dataSrc.currentRow.delete(); return false; } dataSrc.currentRow.setColumnValue('ZkAreaCode', '*0'); } return this.super('afterNewRow', dataSrc, newRow); }; //按钮事件控制 Biz.prototype.doOp = function (opCode) { let self = this; if (opCode == 'account') { let ds = self.dsMaster; this.onAcc(self, ds); } if (opCode == 'forchk') { let ds = self.dsMaster; this.onForchk(self, ds); } }; //按钮事件 Biz.prototype.onAcc = function (biz, ds) { if (!Store.confirm("确定要记账吗")) { return false; } let billNo = TypeUtil.toString(ds.currentRow['BillNo']); let ret = Service.DoAccount(billNo, '0702'); if (ret.result != 1) { Store.messager.err('记账失败!' + ret.message); return false; } Store.messager.tip('记账成功!'); biz.dsMaster.updateRow(); return true; }; Biz.prototype.onForchk = function (biz, ds) { if (!Store.confirm("确定要审核吗")) { return false; } let billNo = TypeUtil.toString(ds.currentRow['BillNo']); let ret = Service.DoForchk(billNo); if (ret.result != 1) { Store.messager.err('提交外部审核失败!' + ret.message); return false; } Store.messager.tip('提交外部审核成功!'); biz.dsMaster.updateRow(); return true; }; return Biz; });