define(function (require, exports, module) {
let BaseBiz = require('apps/rht/base/rhtBiz');
let rhtComm = require('apps/rht/comm/rhtComm');
//引入业务服务
let sys010307service = require('./sys010307service');
function Biz(vm) {
//继承第一步,构造继承
BaseBiz.call(this, vm);
}
//继承第二步,方法继承
inherits(Biz, BaseBiz);
let orgCode=Store.logOn.orgCode;
let userId=Store.logOn.userId;
let userCode=Store.logOn.userCode;
let userName=Store.logOn.userName;
/*
控制按钮操作
*/
Biz.prototype.beforeSave = function () {
let dataRow=this.dsMaster.currentRow;
let optionCode=TypeUtil.toString(dataRow["SysOption"]);
let optionValue=TypeUtil.toString(dataRow["OptionValue"]);
rhtComm.MWriteOprLog(orgCode,userId,userCode,userName,"","","设置一般选项","选项"+optionCode+"修改后选项值为"+optionValue);
this.super('beforeSave');
};
Biz.prototype.beforeEdit = function () {
let dataRow=this.dsMaster.currentRow;
let optionCode=TypeUtil.toString(dataRow["SysOption"]);
let optionValue=TypeUtil.toString(dataRow["OptionValue"]);
//合同编码长度
if (optionCode==="HT_CODE_LEN"){
let hasData = sys010307service.ChkHasData("tCntContract");
if (hasData.result!==1) {
rhtComm.MWriteErrLog(orgCode,userId,userCode,userName,"","","设置一般选项",hasData.message);
return false;
}
}
//商品编码长度或商品编码是否按规则产生
if (optionCode==="PLU_CODE_LEN" || optionCode==="IS_RULE"){
let hasData = sys010307service.ChkHasData("tSkuPlu");
if (hasData.result!==1) {
rhtComm.MWriteErrLog(orgCode,userId,userCode,userName,"","","设置一般选项",hasData.message);
return false;
}
}
//门店紧急变价最大时限
if (optionCode==="UrgChgMaxLimit"){
let valueInfo=sys010307service.ChkChgMaxLimit();
if (valueInfo.result!==1){
rhtComm.MWriteErrLog(orgCode,userId,userCode,userName,"","","设置一般选项",valueInfo.message);
return false;
}
}
//允许验收多采购多少
if (optionCode==="Ord_MoreCheckRate"){
let valueInfo=sys010307service.ChkOrdMoreRateCanEdit();
if (valueInfo.result!==1){
rhtComm.MWriteErrLog(orgCode,userId,userCode,userName,"","","设置一般选项",valueInfo.message);
return false;
}
else {
let value=valueInfo.data.optionvalue;
if (value!=="1"){
rhtComm.MWriteErrLog(orgCode,userId,userCode,userName,"","","设置一般选项","关联选项“Ord_IsMoreCheck”采购验收不允许验收量大于采购量,因此不允许编辑此选项,");
return false;
}
}
}
//应付结算流程
if (optionCode==="QkBill_IsAutoGen"){
let valueInfo=sys010307service.ChkAcpAcc();
if (valueInfo.result!==1){
Store.messager.tip(valueInfo.message);
rhtComm.MWriteErrLog(orgCode,userId,userCode,userName,"","","设置一般选项",valueInfo.message);
return false;
}
}
this.super('beforeEdit');
};
/**
* 列校验,列赋值时调用,发生异常表示校验失败
* @param {DataSource} dataSrc [description]
* @param {DataRow} dr [description]
* @param {DataColumn} dc [description]
* @param {Object} value [description]
* @return {Boolean} [description]
*/
Biz.prototype.dataColumnValidate = function (dataSrc, dr, dc, value) {
let self = this;
//明细表触发
if (dataSrc.uiObjCode === '1001') {
//字段为JhCount且值小于零
if (dc.fieldName === 'OptionValue') {
let sysOption=dr["SysOption"];
//合同编码长度
if (sysOption==="HT_CODE_LEN" && ChkDataLen(value,1,10)===false){
Store.messager.warn("系统允许该选项设置的长度范围为1-10,请重新设置。");
return false;
}
//商品编码长度
if (sysOption==="PLU_CODE_LEN" && ChkDataLen(value,1,20)===false){
Store.messager.warn("系统允许该选项设置的长度范围为1-20,请重新设置。");
return false;
}
//会计日
if (sysOption==="System_AcctMonthDate" && ChkDataLen(value,1,31)===false){
Store.messager.warn("系统允许该选项设置的长度范围为1-31,请重新设置。");
return false;
}
//加工成品成本分配方式
if (sysOption==="Frs_CostDis" && ChkInThree(value,"0","1","2")===false){
Store.messager.warn("选项值只能取0、1或2。");
return false;
}
//是否允许零库存销售
if (sysOption==="SAL_ZERO" && ChkInThree(value,"0","1","2")===false){
Store.messager.warn("选项值只能取0、1或2。");
return false;
}
}
}
return this.super('dataColumnValidate');
};
Biz.prototype.afterSave = function () {
Store.messager.tip("注意:增加或者修改选项值后,系统并非立即生效,默认5分钟后统一刷新生效。
如果要立即生效,则需要按照以下步骤执行:
"+
"1、点击【发布】按钮发布选项到后台服务器缓存。
"+
"2、退出系统重新进入(或者按F5刷新)。
"+
"3、如果要让其他在使用系统的人也能立即使用选项,则其他人也应执行步骤 2 ,否则其他人的本地缓存未更新仍将不能使用新的选项值。");
return this.super('afterSave');
};
Biz.prototype.doOp = function (opCode) {
if (opCode === 'flush') {
Store.services.flushOption({}, function(isOk) {
if (isOk) {
Store.messager.tip('系统选项缓存已刷新')
}
})
}
this.super('doOp', opCode);
};
/**
* 自定义函数判断选项值数值范围
* @return {boolean}
*/
function ChkDataLen(optionValue,min,max){
if (parseInt(optionValue)max) {
return false;
}
}
/**
* 自定义函数判断选项值是否在规定的3个数值内
* @return {boolean}
*/
function ChkInThree(optionValue,val1,val2,val3){
if (optionValue!==val1 && optionValue!==val2 && optionValue!==val3) {
return false;
}
}
return Biz;
});