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.

364 lines
12 KiB

4 years ago
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('./cnt070203service');
/**
* 定义业务类对象
* @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;
});