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.

166 lines
5.7 KiB

4 years ago
define(function (require, exports, module) {
let BaseBiz = require('apps/rht/base/rhtBiz');
let Service = require('./cou190122service');
/**
* 控制按钮的可用
* @param opCode 按钮编码
* @return [description]
*/
function Biz(vm) {
//继承第一步,构造继承
BaseBiz.call(this, vm);
vm.remark =''
}
//继承第二步,方法继承
inherits(Biz, BaseBiz);
//给字段赋默认值
Biz.prototype.getDefaultValue = function (dataSrc, dr, dc, defaultValue) {
if (dataSrc.uiObjCode === this.dsDetail.uiObjCode) {
if (dc.fieldName == 'DepCode'){
let self = this;
let masterRow = self.dsMaster.currentRow;
let DepCodeHead = masterRow ? TypeUtil.toString(masterRow['DepCode']) : '';
if (DepCodeHead.length > 0){
return DepCodeHead;
}
}
}
return this.super("getDefaultValue", dataSrc, dr, dc, defaultValue);
};
//字段变化触发事件
Biz.prototype.fieldChanged = function (dataSrc, dr, dc) {
if (dataSrc.uiObjCode === this.dsDetail.uiObjCode) {
switch (dc.fieldName) {
case 'ZmCount':
this.fieldChangedBodyZmCount(dataSrc, dr, dc);
break;
case 'PluCode':
this.fieldChangedPluCode(dataSrc, dr, dc);
break;
}
}
this.super('fieldChanged');
};
//ZmCount 字段变化执行事件
Biz.prototype.fieldChangedBodyZmCount = function (dataSrc, dr, dc) {
let fZmCount = TypeUtil.toString(dr['ZmCount']);
let PluCode = TypeUtil.toString(dr['PluCode']);
if (PluCode.length > 0)
{
let DotDecimal = TypeUtil.toFloat(dr['R_DotDecimal']);
let sdl= 0;
if (fZmCount.toString().indexOf(".") !== -1) {
sdl= fZmCount.toString().split(".")[1].length || 0;
}
if (DotDecimal < sdl){
dr.setColumnError(dc.fieldName, "此商品的小数精度是" + dr['R_DotDecimal'] );
return false;
}
}
return true;
};
//PluCode 字段变化执行事件
Biz.prototype.fieldChangedPluCode = function (dataSrc, dr, dc) {
let masterRow = this.dsMaster.currentRow;
let sInOrgCode = TypeUtil.toString(masterRow['InOrgCode']);
let sHeadDepCode = masterRow ? TypeUtil.toString(masterRow['DepCode']) : '';
let sCkCode = masterRow ? TypeUtil.toString(masterRow['CkCode']) : '';
let sPluCode = dr ? TypeUtil.toString(dr['PluCode']) : '';
let sDepCode = dr ? TypeUtil.toString(dr['DepCode']) : '';
if (sPluCode === '') return false;
//明细相关字段赋值
if (sDepCode.length <= 0){
let ret= Service.getSlideMenuData("DoOnDetailCalcRule","PluCode", sInOrgCode,sHeadDepCode,sCkCode,sPluCode,"");
if (ret.result !== 1) {
dr.setColumnError(dc.fieldName, ret.message);
return false;
}
if (ret.data != null) {
dr.setColumnValue('DepID', ret.data.depid);
dr.setColumnValue('DepCode', ret.data.depcode);
dr.setColumnValue('DepName', ret.data.depname);
dr.setColumnValue('ExPluCode', ret.data.explucode);
dr.setColumnValue('ExPluName', ret.data.expluname);
}
}
return true;
};
//按钮事件控制
Biz.prototype.doOp = function (opCode) {
if (opCode == 'apply') {
this.onacc("1");
}
if (opCode == 'pass') {
this.onacc("2");
}
if (opCode == 'nopass') {
this.onacc("3");
}
if (opCode == 'myedit') {
this.opRouter('edit');
}
if (opCode == 'mydelete') {
this.opRouter('delete');
}
};
//控制主界面按钮状态
Biz.prototype.getOpEnabled = function (opCode) {
let isOk = this.super('getOpEnabled', opCode);
if (!isOk) {
return false;
}
let curRow = this.dsMaster.currentRow;
let sCouStatus = curRow ? TypeUtil.toString(curRow['CouStatus']) : '';
if (opCode == 'apply'){
if (!curRow)
return false;
if (this.isEdit())
return false;
if ((sCouStatus == "1") || (sCouStatus == "2"))
return false;
}
if ((opCode == 'pass') || (opCode == 'nopass')) {
if (!curRow)
return false;
if (sCouStatus != "1")
return false;
if (this.isEdit())
return false;
}
if ((opCode == 'myedit') || (opCode == 'mydelete')) {
if (!curRow)
return false;
if (sCouStatus != "0")
return false;
if (this.isEdit())
return false;
}
return true;
};
//退货公共事件处理
Biz.prototype.onacc = function (sType) {
let curHRow = this.dsMaster.currentRow;
let sBillNo = curHRow ? TypeUtil.toString(curHRow['BillNo']) : '';
let ret= Service.getSlideMenuData("actExecute","onacc", sBillNo,sType,"","","");
if (ret.result !== 1) {
Store.messager.err(ret.message);
return false;
}
this.dsMaster.updateRow();
Store.messager.tip("处理成功!");
return true;
};
return Biz;
});