|
|
|
|
|
|
|
|
|
define(function (require, exports, module) {
|
|
|
|
|
//let BaseBiz = require('apps/sos/common/base/sosbiz');
|
|
|
|
|
let BaseBiz = require('apps/rht/base/rhtBiz');
|
|
|
|
|
let UApp = require('../../comm/UApp');
|
|
|
|
|
//let BaseBiz = require('./ordBiz');
|
|
|
|
|
let Service = require('./sku080202service');
|
|
|
|
|
let rhtComm = require('../../comm/rhtComm');
|
|
|
|
|
// let multiWindow = require("system/views/pages/multiwindow/multiwindow.js");
|
|
|
|
|
let XWindow = require('system/views/pages/xlswindow/import-window');
|
|
|
|
|
//let PluService = require('apps/rht/comm/pluservice');
|
|
|
|
|
//let multiselectwindow = require("apps/sos/common/window/multiselectwindow.js");
|
|
|
|
|
//let CommonService = require('apps/sos/commonservice/commservice');
|
|
|
|
|
//let MultiSelectWindow = require('apps/sos/common/window/multwindow.js');
|
|
|
|
|
//let FeedBackWindow = require('./feedbackwin');
|
|
|
|
|
//let ExTend = require('system/base/extend');
|
|
|
|
|
/**
|
|
|
|
|
* 控制按钮的可用
|
|
|
|
|
* @param opCode 按钮编码
|
|
|
|
|
* @return [description]
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
function Biz(vm) {
|
|
|
|
|
//继承第一步,构造继承
|
|
|
|
|
BaseBiz.call(this, vm);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//继承第二步,方法继承
|
|
|
|
|
inherits(Biz, BaseBiz);
|
|
|
|
|
|
|
|
|
|
//TODO 预置选项 枚举值还未确定
|
|
|
|
|
//SosPur_PurRtnPrintRule,0-不可打印;1-只能打印审批单据;3-不控制。需要新建选项。
|
|
|
|
|
let Dst_IsPsZcPlu = rhtComm.getRhtOptionValue('*','DST','Dst_IsPsZcPlu','0');
|
|
|
|
|
let ORD_EtpYhPluArea = rhtComm.getRhtOptionValue('*','ORD','ORD_EtpYhPluArea','0');
|
|
|
|
|
let Ord_CgjyDisAllPlu = rhtComm.getRhtOptionValue('*','ORD','Ord_CgjyDisAllPlu','0');
|
|
|
|
|
let Ord_CgjyXsDays = rhtComm.getRhtOptionValue('*','ORD','Ord_CgjyXsDays','7');
|
|
|
|
|
let Ord_IsYhDefPacket = rhtComm.getRhtOptionValue('*','ORD','Ord_IsYhDefPacket','1');
|
|
|
|
|
let Ord_IsGetKcPamsCgYh = rhtComm.getRhtOptionValue('*','ORD','Ord_IsGetKcPamsCgYh','0');
|
|
|
|
|
let ORD_YHCHKDSTTYPE = rhtComm.getRhtOptionValue('*','ORD','ORD_YHCHKDSTTYPE','0');
|
|
|
|
|
let Ord_YhDays = rhtComm.getRhtOptionValue('*','ORD','Ord_YhDays','1');
|
|
|
|
|
let ORD_CtlYhSglCount = rhtComm.getRhtOptionValue('*','ORD','ORD_CtlYhSglCount','1');
|
|
|
|
|
|
|
|
|
|
let IS_RULE = rhtComm.getRhtOptionValue('*','SKU','IS_RULE','0');
|
|
|
|
|
let PLU_CODE_LEN = rhtComm.getRhtOptionValue('*','SKU','PLU_CODE_LEN','8');
|
|
|
|
|
let PLU_WEIGHT_CODE_LEN = rhtComm.getRhtOptionValue('*','SKU','PLU_WEIGHT_CODE_LEN','5');
|
|
|
|
|
let PluCodeIsRuleCanEdit = rhtComm.getRhtOptionValue('*','SKU','PluCodeIsRuleCanEdit','0');
|
|
|
|
|
let SKU_IsPluInfoCheck = rhtComm.getRhtOptionValue('*','SKU','SKU_IsPluInfoCheck','0');
|
|
|
|
|
let Sku_IsAuditPlu = rhtComm.getRhtOptionValue('*','SKU','Sku_IsAuditPlu','0');
|
|
|
|
|
let SKU_CANZC = rhtComm.getRhtOptionValue('*','SKU','SKU_CANZC','0');
|
|
|
|
|
let SKU_IsInputBarCode = rhtComm.getRhtOptionValue('*','SKU','SKU_IsInputBarCode','0');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
let OldClsID = "0";
|
|
|
|
|
let giIsBz = "0";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//单据删除前处理 需要调用过程更新台账
|
|
|
|
|
Biz.prototype.beforeDelete = function () {
|
|
|
|
|
let masterRow = this.dsMaster.currentRow;
|
|
|
|
|
let PluID = TypeUtil.toString(masterRow['PluID']);
|
|
|
|
|
let PluCode = TypeUtil.toString(masterRow['PluCode']);
|
|
|
|
|
let ret= Service.getSlideMenuData("DoDelete","USkuGetPluPropInfo",PluID,PluCode,"YwStatus","1","");
|
|
|
|
|
if (ret.result !== 1) {
|
|
|
|
|
masterRow.setColumnError('PluCode', ret.message);
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
if (ret.data.PluPropInfo == ""){
|
|
|
|
|
masterRow.setColumnError("PluCode", '当前组织没有经营此商品!');
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
if ((ret.data.PluPropInfo == "1") || (ret.data.PluPropInfo == "2")) {
|
|
|
|
|
masterRow.setColumnError("PluCode", '商品已审批通过且未被淘汰,不允许删除!');
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
if (ret.data.PluPropInfo == "3") {
|
|
|
|
|
let ret= Service.USkuSetPluStatus(PluID,PluCode,"3","99",Store.logOn.userId,Store.logOn.userCode,Store.logOn.userName,Store.logOn.orgCode,Store.logOn.orgName);
|
|
|
|
|
if (ret.result !== 1) {
|
|
|
|
|
masterRow.setColumnError('PluCode', ret.message);
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
let ret= Service.getSlideMenuData("DoDelete","UDelDisUsePluCntAcc",PluID,Store.logOn.orgCode,Store.logOn.userCode,"2","");
|
|
|
|
|
if (ret.result !== 1) {
|
|
|
|
|
masterRow.setColumnError('PluCode', '删除商品时记录台账出错!'+ret.message);
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
let ret= Service.getSlideMenuData("DoDelete","UDelCntSkuData",PluID,"","","","");
|
|
|
|
|
if (ret.result !== 1) {
|
|
|
|
|
masterRow.setColumnError('PluCode', '删除合同商品对应的商品信息出错!'+ret.message);
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return "确定删除当前数据?";
|
|
|
|
|
};
|
|
|
|
|
//新增行后处理,默认值已经处理
|
|
|
|
|
Biz.prototype.afterNewRow = function (dataSrc, newRow) {
|
|
|
|
|
let sdate=new Date(Store.bizDao.getSysDate()).format('yyyy-MM-dd');
|
|
|
|
|
newRow.setColumnValue('OrgCode',Store.logOn.orgCode);
|
|
|
|
|
newRow.setColumnValue('OrgName',Store.logOn.orgName);
|
|
|
|
|
newRow.setColumnValue('LrOrgCode',Store.logOn.orgCode);
|
|
|
|
|
newRow.setColumnValue('LrorgName',Store.logOn.orgName);
|
|
|
|
|
newRow.setColumnValue('LrUserID',Store.logOn.userId);
|
|
|
|
|
newRow.setColumnValue('LrUserCode',Store.logOn.userCode);
|
|
|
|
|
newRow.setColumnValue('LrUserName',Store.logOn.userName);
|
|
|
|
|
newRow.setColumnValue('LrDate',sdate);
|
|
|
|
|
newRow.setColumnValue('IsSeason',"0");
|
|
|
|
|
newRow.setColumnValue('IsWeight',"0");
|
|
|
|
|
let PluID = rhtComm.GetNextId("8001","1","");
|
|
|
|
|
newRow.setColumnValue('PluID',PluID);
|
|
|
|
|
|
|
|
|
|
if (rhtComm.GetOrgType(Store.logOn.orgCode) == '1001'){
|
|
|
|
|
newRow.setColumnValue('DataSrc',"1");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (SKU_IsPluInfoCheck == "1"){
|
|
|
|
|
newRow.setColumnValue('YwStatus',"5");
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
/*
|
|
|
|
|
//行删除前的校验
|
|
|
|
|
Biz.prototype.beforeDeleteRow=function(){
|
|
|
|
|
let masterRow = this.dsMaster.currentRow;
|
|
|
|
|
let AskType = TypeUtil.toString(masterRow['AskType']);
|
|
|
|
|
if ( (AskType == "3") || (AskType == "4") || (AskType == "5") ) {
|
|
|
|
|
masterRow.setColumnError("BillNo", '组合类要货不允许对要货记录进行删除!');
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
*/
|
|
|
|
|
//增加前校验
|
|
|
|
|
Biz.prototype.afterAdd = function () {
|
|
|
|
|
let masterRow = this.dsMaster.currentRow;
|
|
|
|
|
let OrgType = rhtComm.GetOrgType(Store.logOn.orgCode);
|
|
|
|
|
|
|
|
|
|
if ((OrgType = "1003") || (OrgType = "1004") || (OrgType = "1005") || (OrgType = "1006")){
|
|
|
|
|
masterRow.setColumnError('PluName', "系统已设置不允许门店新品申请!");
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
if (SKU_CANZC == "0") {
|
|
|
|
|
masterRow.setColumnText('PluName', ret.data.ps_supcode);
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//保存前校验 计算主表合计数量等字段
|
|
|
|
|
Biz.prototype.beforeSave = function () {
|
|
|
|
|
let masterRow = this.dsMaster.currentRow;
|
|
|
|
|
let PluID = TypeUtil.toString(masterRow['PluID']);
|
|
|
|
|
let ClsID = TypeUtil.toString(masterRow['ClsID']);
|
|
|
|
|
let YwStatus = TypeUtil.toString(masterRow['YwStatus']);
|
|
|
|
|
let PluCode = TypeUtil.toString(masterRow['PluCode']);
|
|
|
|
|
let BarCode = TypeUtil.toString(masterRow['BarCode']);
|
|
|
|
|
let PluName = TypeUtil.toString(masterRow['PluName']);
|
|
|
|
|
let PluEName = TypeUtil.toString(masterRow['PluEName']);
|
|
|
|
|
let PluAbbrName = TypeUtil.toString(masterRow['PluAbbrName']);
|
|
|
|
|
let PluMN = TypeUtil.toString(masterRow['PluMN']);
|
|
|
|
|
let BzDays = TypeUtil.toString(masterRow['BzDays']);
|
|
|
|
|
let IsWeight = TypeUtil.toString(masterRow['IsWeight']);
|
|
|
|
|
let DotDecimal = TypeUtil.toString(masterRow['DotDecimal']);
|
|
|
|
|
let IsCoutQty = TypeUtil.toString(masterRow['IsCoutQty']);
|
|
|
|
|
let sPluEName= UApp.ChineseMN(PluName);
|
|
|
|
|
masterRow.setColumnValue('PluMN', sPluEName);
|
|
|
|
|
masterRow.setColumnValue('PluAbbrName', PluName.substring(0,5));
|
|
|
|
|
|
|
|
|
|
if ((((PluCode != "*") && (BarCode == "*")) || (BarCode == ""))&& (SKU_IsInputBarCode == "1")){
|
|
|
|
|
masterRow.setColumnError("BarCode", "请输入商品条码!");
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
if (OldClsID == "0"){
|
|
|
|
|
OldClsID=ClsID;
|
|
|
|
|
}
|
|
|
|
|
if (this._state=="add") {
|
|
|
|
|
if ((PluID == "") || (PluID == "0") || (PluID === null)){
|
|
|
|
|
let NewPluID = rhtComm.GetNextId("8001","1","");
|
|
|
|
|
masterRow.setColumnValue('PluID', NewPluID);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (this._state=="edit") {
|
|
|
|
|
let ret= Service.getSlideMenuData("OnBeforeSave","ClsID",PluID,OldClsID,ClsID,"");
|
|
|
|
|
if (ret.result !== 1) {
|
|
|
|
|
masterRow.setColumnError(dc.fieldName, ret.message);
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if ((PluName.indexOf(";") != -1) || (PluName.indexOf("''") != -1)){
|
|
|
|
|
masterRow.setColumnError("PluName", "商品名称含有非法字符;或者''!");
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
if ((PluEName.indexOf(";") != -1) || (PluEName.indexOf("''") != -1)){
|
|
|
|
|
masterRow.setColumnError("PluEName", "商品英文名称含有非法字符;或者''!");
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
if ((PluAbbrName.indexOf(";") != -1) || (PluAbbrName.indexOf("''") != -1)){
|
|
|
|
|
masterRow.setColumnError("PluAbbrName", "商品简称含有非法字符;或者''!");
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
if ((PluMN.indexOf(";") != -1) || (PluMN.indexOf("''") != -1)){
|
|
|
|
|
masterRow.setColumnError("PluMN", "商品助记符含有非法字符;或者''!");
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
if (BarCode.indexOf(";") != -1){
|
|
|
|
|
masterRow.setColumnError("BarCode", "商品条码含有非法字符;!"+OldID);
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
if ((IS_RULE == "1") && (PluCode == "*")) {
|
|
|
|
|
let ret= Service.getSlideMenuData("DoOnMasterCalcRule","GetNewPluCodeByRule",IsWeight,Store.logOn.orgCode,ClsCode,BrandCode,PluID);
|
|
|
|
|
if (ret.result !== 1) {
|
|
|
|
|
masterRow.setColumnError(dc.fieldName, ret.message);
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
masterRow.setColumnValue('PluCode', ret.data.PluCode);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if ((giIsBz == "1") && (BzDays == "0")){
|
|
|
|
|
masterRow.setColumnError(dc.fieldName, "选择的品类需要管理保质期,请录入商品的保质期!");
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
if (IsWeight == "1"){
|
|
|
|
|
if ((DotDecimal == "0") && (IsCoutQty == "0")){
|
|
|
|
|
masterRow.setColumnError("DotDecimal", "称重非计件商品小数精度不能为0!");
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return this.super('beforeSave');
|
|
|
|
|
}
|
|
|
|
|
//字段变化触发事件
|
|
|
|
|
Biz.prototype.fieldChanged = function (dataSrc, dr, dc) {
|
|
|
|
|
if (dataSrc.uiObjCode === this.dsMaster.uiObjCode) {
|
|
|
|
|
switch (dc.fieldName) {
|
|
|
|
|
case 'PluCode':
|
|
|
|
|
this.fieldChangedPluCode(dataSrc, dr, dc);
|
|
|
|
|
break;
|
|
|
|
|
case 'BarCode':
|
|
|
|
|
this.fieldChangedBarCode(dataSrc, dr, dc);
|
|
|
|
|
break;
|
|
|
|
|
case 'IsSeason':
|
|
|
|
|
this.fieldChangedIsSeason(dataSrc, dr, dc);
|
|
|
|
|
break;
|
|
|
|
|
case 'BzDays':
|
|
|
|
|
this.fieldChangedBzDays(dataSrc, dr, dc);
|
|
|
|
|
break;
|
|
|
|
|
case 'IsWeight':
|
|
|
|
|
this.fieldChangedIsWeight(dataSrc, dr, dc);
|
|
|
|
|
break;
|
|
|
|
|
case 'JTaxRate':
|
|
|
|
|
this.fieldChangedJTaxRate(dataSrc, dr, dc);
|
|
|
|
|
break;
|
|
|
|
|
case 'XTaxRate':
|
|
|
|
|
this.fieldChangedXTaxRate(dataSrc, dr, dc);
|
|
|
|
|
break;
|
|
|
|
|
case 'Price':
|
|
|
|
|
this.fieldChangedPrice(dataSrc, dr, dc);
|
|
|
|
|
break;
|
|
|
|
|
case 'HyPrice':
|
|
|
|
|
this.fieldChangedHyPrice(dataSrc, dr, dc);
|
|
|
|
|
break;
|
|
|
|
|
case 'MinThDays':
|
|
|
|
|
this.fieldChangedMinThDays(dataSrc, dr, dc);
|
|
|
|
|
break;
|
|
|
|
|
case 'IsSelfBrand':
|
|
|
|
|
this.fieldChangedIsSelfBrand(dataSrc, dr, dc);
|
|
|
|
|
break;
|
|
|
|
|
case 'IsNewPlu':
|
|
|
|
|
this.fieldChangedIsNewPlu(dataSrc, dr, dc);
|
|
|
|
|
break;
|
|
|
|
|
case 'IsKc':
|
|
|
|
|
this.fieldChangedIsKc(dataSrc, dr, dc);
|
|
|
|
|
break;
|
|
|
|
|
case 'ClsID':
|
|
|
|
|
this.fieldChangedClsID(dataSrc, dr, dc);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
this.super('fieldChanged');
|
|
|
|
|
};
|
|
|
|
|
//PluCode 字段变化执行事件
|
|
|
|
|
Biz.prototype.fieldChangedPluCode = function (dataSrc, dr, dc) {
|
|
|
|
|
let PluCode = TypeUtil.toString(dr['PluCode']);
|
|
|
|
|
let OldPluCode = TypeUtil.toString(dr.transData['PluCode']);
|
|
|
|
|
let IsWeight = TypeUtil.toString(dr['IsWeight']);
|
|
|
|
|
let PluCodeLen = PluCode.length;
|
|
|
|
|
if (this._state=="edit"){
|
|
|
|
|
dr.setColumnError(dc.fieldName, "编码规则已启用,商品编码不允许手工修改");
|
|
|
|
|
dr.setColumnValue(dc.fieldName, OldPluCode);
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
if ((IS_RULE =="1") && (PluCodeIsRuleCanEdit != "1")){
|
|
|
|
|
dr.setColumnError(dc.fieldName, "商品编码不允许手工录入");
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
if (PluCode != "*") {
|
|
|
|
|
if (IsWeight == "0") {
|
|
|
|
|
if (PluCodeLen != PLU_CODE_LEN) {
|
|
|
|
|
dr.setColumnError(dc.fieldName, "商品编码长度应该为:"+PLU_CODE_LEN+"位");
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
if (PluCodeLen != PLU_WEIGHT_CODE_LEN) {
|
|
|
|
|
dr.setColumnError(dc.fieldName, "商品编码长度应该为:"+PLU_WEIGHT_CODE_LEN+"位");
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
return true;
|
|
|
|
|
};
|
|
|
|
|
//BarCode 字段变化执行事件
|
|
|
|
|
Biz.prototype.fieldChangedBarCode = function (dataSrc, dr, dc) {
|
|
|
|
|
let BarCode = TypeUtil.toString(dr['BarCode']);
|
|
|
|
|
let PluCode = TypeUtil.toString(dr['PluCode']);
|
|
|
|
|
let PluId = TypeUtil.toString(dr['PluId']);
|
|
|
|
|
|
|
|
|
|
if (SKU_IsInputBarCode !="1") {
|
|
|
|
|
dr.setColumnError(dc.fieldName, "条码不允许手工录入");
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
if ((BarCode !== '*') && (PluCode !== '*')) {
|
|
|
|
|
let ret= Service.getSlideMenuData("DoOnMasterCalcRule","BarCode",BarCode,PluCode,PluId,"","");
|
|
|
|
|
if (ret.result !== 1) {
|
|
|
|
|
dr.setColumnError(dc.fieldName, ret.message);
|
|
|
|
|
//Store.messager.tip(ret.message);
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
return true;
|
|
|
|
|
};
|
|
|
|
|
//IsSeason 字段变化执行事件
|
|
|
|
|
Biz.prototype.fieldChangedIsSeason = function (dataSrc, dr, dc) {
|
|
|
|
|
let IsSeason = TypeUtil.toString(dr['IsSeason']);
|
|
|
|
|
if (IsSeason == "0") {
|
|
|
|
|
dr.setColumnText('SaleSeason', "1111");
|
|
|
|
|
dr.setColumnValue('IsNewPlu', "0");
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
dr.setColumnValue('IsNewPlu', "1");
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
};
|
|
|
|
|
//BzDays 字段变化执行事件
|
|
|
|
|
Biz.prototype.fieldChangedBzDays = function (dataSrc, dr, dc) {
|
|
|
|
|
let BzDays = TypeUtil.toFloat(dr['BzDays']);
|
|
|
|
|
if (BzDays <= 7) {
|
|
|
|
|
dr.setColumnText('JhBfBzDays', "0");
|
|
|
|
|
dr.setColumnValue('PsBfBzDays', "0");
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
dr.setColumnText('JhBfBzDays', (BzDays/3).round(0));
|
|
|
|
|
dr.setColumnValue('PsBfBzDays', (BzDays*2/3).round(0));
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
};
|
|
|
|
|
//IsWeight 字段变化执行事件
|
|
|
|
|
Biz.prototype.fieldChangedIsWeight = function (dataSrc, dr, dc) {
|
|
|
|
|
let IsWeight = TypeUtil.toString(dr['IsWeight']);
|
|
|
|
|
let PluID = TypeUtil.toString(dr['PluID']);
|
|
|
|
|
let PluCode = TypeUtil.toString(dr['PluCode']);
|
|
|
|
|
let BrandCode = TypeUtil.toString(dr['BrandCode']);
|
|
|
|
|
let ClsCode = TypeUtil.toString(dr['ClsCode']);
|
|
|
|
|
if (IsWeight == "0") {
|
|
|
|
|
dr.setColumnValue('IsCoutQty', "0");
|
|
|
|
|
}
|
|
|
|
|
if ((IS_RULE == "1") && (PluCode != "*")) {
|
|
|
|
|
let ret= Service.getSlideMenuData("DoOnMasterCalcRule","GetNewPluCodeByRule",IsWeight,Store.logOn.orgCode,ClsCode,BrandCode,PluID);
|
|
|
|
|
if (ret.result !== 1) {
|
|
|
|
|
dr.setColumnError(dc.fieldName, ret.message);
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
dr.setColumnValue('PluCode', ret.data.PluCode);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
};
|
|
|
|
|
//JTaxRate 字段变化执行事件
|
|
|
|
|
Biz.prototype.fieldChangedJTaxRate = function (dataSrc, dr, dc) {
|
|
|
|
|
let JTaxRate = TypeUtil.toFloat(dr['JTaxRate']);
|
|
|
|
|
if ((JTaxRate < 0) || (JTaxRate > 100)) {
|
|
|
|
|
dr.setColumnError(dc.fieldName,"进项税率应在0-100之间。");
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
};
|
|
|
|
|
//XTaxRate 字段变化执行事件
|
|
|
|
|
Biz.prototype.fieldChangedXTaxRate = function (dataSrc, dr, dc) {
|
|
|
|
|
let XTaxRate = TypeUtil.toFloat(dr['XTaxRate']);
|
|
|
|
|
if ((XTaxRate < 0) || (XTaxRate > 100)) {
|
|
|
|
|
dr.setColumnError(dc.fieldName,"销项税率应在0-100之间。");
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
};
|
|
|
|
|
//Price 字段变化执行事件
|
|
|
|
|
Biz.prototype.fieldChangedPrice = function (dataSrc, dr, dc) {
|
|
|
|
|
let Price = TypeUtil.toFloat(dr['Price']);
|
|
|
|
|
let HyPrice = TypeUtil.toFloat(dr['HyPrice']);
|
|
|
|
|
if (HyPrice == 0) {
|
|
|
|
|
dr.setColumnValue('HyPrice', Price);
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
if (HyPrice > Price) {
|
|
|
|
|
dr.setColumnValue('HyPrice', Price);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
};
|
|
|
|
|
//HyPrice 字段变化执行事件
|
|
|
|
|
Biz.prototype.fieldChangedHyPrice = function (dataSrc, dr, dc) {
|
|
|
|
|
let Price = TypeUtil.toFloat(dr['Price']);
|
|
|
|
|
let HyPrice = TypeUtil.toFloat(dr['HyPrice']);
|
|
|
|
|
if (HyPrice > Price) {
|
|
|
|
|
dr.setColumnError(dc.fieldName,"建议会员价不能大于建议零售价");
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
};
|
|
|
|
|
//MinThDays 字段变化执行事件
|
|
|
|
|
Biz.prototype.fieldChangedMinThDays = function (dataSrc, dr, dc) {
|
|
|
|
|
let MaxThDays = TypeUtil.toFloat(dr['MaxThDays']);
|
|
|
|
|
let MinThDays = TypeUtil.toFloat(dr['MinThDays']);
|
|
|
|
|
if ((MinThDays != 0) && (MaxThDays == 0)) {
|
|
|
|
|
dr.setColumnError(dc.fieldName,"退货天数上限没有填价");
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
if (MaxThDays < MinThDays) {
|
|
|
|
|
dr.setColumnError(dc.fieldName,"退货天数上限不能小于退货天数下限");
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
};
|
|
|
|
|
//IsSelfBrand 字段变化执行事件
|
|
|
|
|
Biz.prototype.fieldChangedIsSelfBrand = function (dataSrc, dr, dc) {
|
|
|
|
|
let IsSelfBrand = TypeUtil.toString(dr['IsSelfBrand']);
|
|
|
|
|
if (IsSelfBrand == "9") {
|
|
|
|
|
if (!Store.confirm("门店开放商品系统只管理销售流水不管理库存,确定要修改?")) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
};
|
|
|
|
|
//IsNewPlu 字段变化执行事件
|
|
|
|
|
Biz.prototype.fieldChangedIsNewPlu = function (dataSrc, dr, dc) {
|
|
|
|
|
let IsNewPlu = TypeUtil.toString(dr['IsNewPlu']);
|
|
|
|
|
let OldIsNewPlu = TypeUtil.toString(dr.transData['IsNewPlu']);
|
|
|
|
|
if (IsNewPlu != "1") {
|
|
|
|
|
if (!Store.confirm("商品修改为不在季后将不能进行进货和配送业务,确定要修改?")) {
|
|
|
|
|
dr.setColumnValue(dc.fieldName,OldIsNewPlu);
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
};
|
|
|
|
|
//IsKc 字段变化执行事件
|
|
|
|
|
Biz.prototype.fieldChangedIsKc = function (dataSrc, dr, dc) {
|
|
|
|
|
let PluID = TypeUtil.toString(dr['PluID']);
|
|
|
|
|
let IsKc = TypeUtil.toString(dr['IsKc']);
|
|
|
|
|
let OldIsKc = TypeUtil.toString(dr.transData['IsKc']);
|
|
|
|
|
if ((OldIsKc == "1") && (this._state=="edit")) {
|
|
|
|
|
let ret= Service.getSlideMenuData("DoOnMasterCalcRule","IsKc",PluID,"","","","");
|
|
|
|
|
if (ret.result !== 1) {
|
|
|
|
|
dr.setColumnError(dc.fieldName, ret.message);
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
};
|
|
|
|
|
//ClsID 字段变化执行事件
|
|
|
|
|
Biz.prototype.fieldChangedClsID = function (dataSrc, dr, dc) {
|
|
|
|
|
//获取上次品类ID 用于校验品类品项数
|
|
|
|
|
OldClsID = TypeUtil.toString(dr.transData['ClsID']);
|
|
|
|
|
let IsSeason = TypeUtil.toString(dr['IsSeason']);
|
|
|
|
|
let ClsCode = TypeUtil.toFloat(dr['ClsCode']);
|
|
|
|
|
|
|
|
|
|
let ret= Service.getSlideMenuData("DoOnMasterCalcRule","USkuGetPluClsInfo",ClsCode,"","","","");
|
|
|
|
|
if (ret.result !== 1) {
|
|
|
|
|
dr.setColumnError(dc.fieldName, ret.message);
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
giIsBz = ret.data.IsBz;
|
|
|
|
|
dr.setColumnValue('IsExPluCode', ret.data.IsExPluCode);
|
|
|
|
|
if (IsSeason != ret.data.IsSeason){
|
|
|
|
|
dr.setColumnText('IsSeason', ret.data.IsSeason);
|
|
|
|
|
}
|
|
|
|
|
dr.setColumnValue('IsCurrDay', ret.data.IsCurrDay);
|
|
|
|
|
dr.setColumnValue('PromDecimal', ret.data.PromDecimal);
|
|
|
|
|
dr.setColumnValue('PromFormula', ret.data.PromFormula);
|
|
|
|
|
if (ret.data.SaleSeason == ""){
|
|
|
|
|
dr.setColumnText('SaleSeason', ret.data.SaleSeason);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return true;
|
|
|
|
|
};
|
|
|
|
|
//按钮事件控制
|
|
|
|
|
Biz.prototype.doOp = function (opCode) {
|
|
|
|
|
let self = this;
|
|
|
|
|
if (opCode == 'assess') {
|
|
|
|
|
let ds = self.dsMaster;
|
|
|
|
|
this.onassess(self, ds);
|
|
|
|
|
}
|
|
|
|
|
if (opCode == 'newcheck') {
|
|
|
|
|
let ds = self.dsMaster;
|
|
|
|
|
this.onnewcheck(self, ds);
|
|
|
|
|
}
|
|
|
|
|
if (opCode == 'actimport') {
|
|
|
|
|
let dhead = self.dsMaster;
|
|
|
|
|
let dbody = self.dsDetail;
|
|
|
|
|
this.onimportexcelpl(self, dhead,dbody);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//审批事件处理
|
|
|
|
|
Biz.prototype.onassess = function (biz, ds) {
|
|
|
|
|
let dsrow=ds.currentRow;
|
|
|
|
|
let ClsCode = dsrow ? TypeUtil.toString(dsrow['ClsCode']) : '';
|
|
|
|
|
let PluCode = dsrow ? TypeUtil.toString(dsrow['PluCode']) : '';
|
|
|
|
|
let BarCode = dsrow ? TypeUtil.toString(dsrow['BarCode']) : '';
|
|
|
|
|
let BrandCode = dsrow ? TypeUtil.toString(dsrow['BrandCode']) : '';
|
|
|
|
|
let PluID = dsrow ? TypeUtil.toString(dsrow['PluID']) : '';
|
|
|
|
|
let IsWeight = dsrow ? TypeUtil.toString(dsrow['IsWeight']) : '';
|
|
|
|
|
let NewBarCode = "";
|
|
|
|
|
let sPluYwStatus = "";
|
|
|
|
|
|
|
|
|
|
if (ClsCode == '') {
|
|
|
|
|
dsrow.setColumnError("ClsCode","请先设置品类!");
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
if (!Store.confirm("确定要审批此商品吗?")) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
if (Store.confirm("是否审批通过?")) {
|
|
|
|
|
if ((IS_RULE == "1") && (PluCode == "*")){
|
|
|
|
|
let ret= Service.getSlideMenuData("DoOnMasterCalcRule","GetNewPluCodeByRule",IsWeight,Store.logOn.orgCode,ClsCode,BrandCode,PluID);
|
|
|
|
|
if (ret.result !== 1) {
|
|
|
|
|
dsrow.setColumnError("PluCode", ret.message);
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
dsrow.setColumnValue("PluCode", ret.data.PluCode);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
if (PluCode == "*") {
|
|
|
|
|
dsrow.setColumnError("ClsCode","请先输入商品编码再审批!");
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if ((BarCode == "*") || (BarCode == "") || (BarCode === null)) {
|
|
|
|
|
if (IsWeight == "0"){
|
|
|
|
|
NewBarCode = rhtComm.GetBarCode(PluCode,"common");
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
NewBarCode = rhtComm.GetBarCode(PluCode,"weight");
|
|
|
|
|
}
|
|
|
|
|
dsrow.setColumnText("BarCode", NewBarCode);
|
|
|
|
|
}
|
|
|
|
|
if (SKU_IsPluInfoCheck == "1") {
|
|
|
|
|
sPluYwStatus = "5";
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
sPluYwStatus = "1";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
sPluYwStatus = "4";
|
|
|
|
|
}
|
|
|
|
|
let ret= Service.USkuSetPluStatus(PluID,PluCode+";"+BarCode,"0",sPluYwStatus,Store.logOn.userId,Store.logOn.userCode,Store.logOn.userName,Store.logOn.orgCode,Store.logOn.orgName);
|
|
|
|
|
if (ret.result !== 1) {
|
|
|
|
|
masterRow.setColumnError('PluCode', "审批商品时出错!"+ret.message);
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
dsrow.setColumnText("YwStatus", sPluYwStatus);
|
|
|
|
|
ds.save();
|
|
|
|
|
Store.messager.tip("审批成功!");
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
//复核事件处理
|
|
|
|
|
Biz.prototype.onnewcheck = function (biz, ds) {
|
|
|
|
|
let smsgS=UAPP.ChineseMN(新品信息复核通过);
|
|
|
|
|
|
|
|
|
|
Store.messager.tip(smsgS);
|
|
|
|
|
let dsrow=ds.currentRow;
|
|
|
|
|
let PluID = dsrow ? TypeUtil.toString(dsrow['PluID']) : '';
|
|
|
|
|
let smsg="您确定要复核此商品吗?复核主要内容包括:\r\n"
|
|
|
|
|
+"1.商品主档信息 \r\n"
|
|
|
|
|
+"2.根据选项“是否所有商品必须设置多包装单位”检查是否录入商品多包装单位信息 \r\n"
|
|
|
|
|
+"3.根据选项“新品必须启用试销流程”检查是否设置了新品试销信息 \r\n"
|
|
|
|
|
+"4.不启用物流中心管理的企业检查是否设置了商品库位信息";
|
|
|
|
|
let ret= Service.getSlideMenuData("doOpBtnExecute","newcheck",PluID,"","","");
|
|
|
|
|
if (ret.result !== 1) {
|
|
|
|
|
dsrow.setColumnError("PluCode", ret.message);
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
Store.messager.tip("新品信息复核通过,商品状态已转为正常");
|
|
|
|
|
dsrow.setColumnText("YwStatus", "1");
|
|
|
|
|
ds.save();
|
|
|
|
|
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
//增加右键菜单按钮并控制按钮状态
|
|
|
|
|
Biz.prototype.getContextMenus = function (ds, source) {
|
|
|
|
|
let menus = this.super("getContextMenus", ds, source)
|
|
|
|
|
let edit = ds.getEditable();
|
|
|
|
|
let curRow = this.dsMaster.currentRow;
|
|
|
|
|
let iRow = this.dsMaster.rows.length;
|
|
|
|
|
menus.push({
|
|
|
|
|
text: 'Exl导入商品',
|
|
|
|
|
opCode: 'actimport',
|
|
|
|
|
disabled: edit
|
|
|
|
|
});
|
|
|
|
|
return menus;
|
|
|
|
|
};
|
|
|
|
|
//导入按钮事件
|
|
|
|
|
Biz.prototype.onimportexcelpl= function () {
|
|
|
|
|
let masterRow = this.dsMaster.currentRow;
|
|
|
|
|
let ds = this.dsDetail;
|
|
|
|
|
//校验数据
|
|
|
|
|
if (ds.currentRow) {
|
|
|
|
|
if (ds.validate(Store.messager.err) === false) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (ds.rows.length > 0){
|
|
|
|
|
Store.messager.err('已经录入商品,不能导入!')
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
//执行导入
|
|
|
|
|
let win = new XWindow({}, function (data) {
|
|
|
|
|
(new ExcelHelper(this.biz, ds, data,masterRow)).import(); // 处理返回的excel data数据,这里的数据已经是数组,包含了读取的所有数据.
|
|
|
|
|
});
|
|
|
|
|
win.open();
|
|
|
|
|
};
|
|
|
|
|
//控制主界面按钮状态
|
|
|
|
|
Biz.prototype.getOpEnabled = function (opCode) {
|
|
|
|
|
let isOk = this.super('getOpEnabled', opCode);
|
|
|
|
|
if (!isOk) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
let self = this;
|
|
|
|
|
let curRow = this.dsMaster.currentRow;
|
|
|
|
|
|
|
|
|
|
if (opCode == 'assess') {
|
|
|
|
|
if (!curRow)
|
|
|
|
|
return false;
|
|
|
|
|
if (this.isEdit())
|
|
|
|
|
return false;
|
|
|
|
|
if (Sku_IsAuditPlu != "1" )
|
|
|
|
|
return false;
|
|
|
|
|
let YwStatus = curRow ? TypeUtil.toString(curRow['YwStatus']) : '0';
|
|
|
|
|
let OrgType = rhtComm.GetOrgType(Store.logOn.orgCode);
|
|
|
|
|
if ((OrgType.message!="1001") || (YwStatus!="0")){
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (opCode == 'newcheck') {
|
|
|
|
|
if (!curRow)
|
|
|
|
|
return false;
|
|
|
|
|
if (this.isEdit())
|
|
|
|
|
return false;
|
|
|
|
|
if (SKU_IsPluInfoCheck != "1" )
|
|
|
|
|
return false;
|
|
|
|
|
let YwStatus = curRow ? TypeUtil.toString(curRow['YwStatus']) : '0';
|
|
|
|
|
let OrgType = rhtComm.GetOrgType(Store.logOn.orgCode);
|
|
|
|
|
if ((OrgType.message!="1001") || (YwStatus!="5")){
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (opCode == 'copyrec') {
|
|
|
|
|
if (!curRow)
|
|
|
|
|
return false;
|
|
|
|
|
if (this.isEdit())
|
|
|
|
|
return false;
|
|
|
|
|
if (self.getState() !== 'add') {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
};
|
|
|
|
|
/* actAssess.Enabled := Right.IsChecked and (OperateStat = msQuery) and not FPCDSPropertyMain.Fclientdataset.IsEmpty
|
|
|
|
|
and (FPCDSPropertyMain.Fclientdataset.FieldByName('YwStatus').AsString = '0')
|
|
|
|
|
and (CurDutyCode = '1001');
|
|
|
|
|
|
|
|
|
|
//Excel导入处理 增加到当前界面明细表中
|
|
|
|
|
function ExcelHelper(biz, ds, data,masterRow) {
|
|
|
|
|
let curIndex = 0;
|
|
|
|
|
let excelCols = [];
|
|
|
|
|
this.import = function () {
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
let YhType = TypeUtil.toString(masterRow['YhType']);
|
|
|
|
|
let EtpCode = TypeUtil.toString(masterRow['EtpCode']);
|
|
|
|
|
let ret= Service.getSlideMenuData("ImportExecute","InExcel",data,YhType,Store.logOn.orgCode,EtpCode,"");
|
|
|
|
|
if (ret.result !== 1) {
|
|
|
|
|
masterRow.setColumnError('BillNo', ret.message);
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
if (ret.data != null) {
|
|
|
|
|
for (let i = 0; i < ret.data.length; i++) {
|
|
|
|
|
let dr = ds.addRow();
|
|
|
|
|
tmp = ret.data[i];
|
|
|
|
|
dr.setColumnText('PluCode', tmp['plucode']);
|
|
|
|
|
dr.setColumnText('SglCount', tmp['yhcount']);
|
|
|
|
|
dr.setColumnText('YhCount', tmp['yhcount']);
|
|
|
|
|
dr.setColumnText('BarCode', tmp['barcode']);
|
|
|
|
|
dr.setColumnText('Remark', '导入');
|
|
|
|
|
}
|
|
|
|
|
Store.messager.tip( ret.message);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
*/
|
|
|
|
|
return Biz;
|
|
|
|
|
});
|