|
|
|
|
define(function (require, exports, module) {
|
|
|
|
|
let BaseBiz = require('apps/rht/base/rhtBiz');
|
|
|
|
|
let rhtComm = require('apps/rht/comm/rhtComm');
|
|
|
|
|
let Service = require('./sku080204service');
|
|
|
|
|
let XWindow = require('system/views/pages/xlswindow/import-window');
|
|
|
|
|
let IsdsMasterChg = false;
|
|
|
|
|
let IsdsDetailChg = false;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 控制按钮的可用
|
|
|
|
|
* @param opCode 按钮编码
|
|
|
|
|
* @return [description]
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
function Biz(vm) {
|
|
|
|
|
//继承第一步,构造继承
|
|
|
|
|
BaseBiz.call(this, vm);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//继承第二步,方法继承
|
|
|
|
|
inherits(Biz, BaseBiz);
|
|
|
|
|
|
|
|
|
|
let SKU_IsCheckPluBar = rhtComm.getRhtOptionValue('*','SKU','SKU_IsCheckPluBar','0');
|
|
|
|
|
let Sku_IsVerifyBarCode = rhtComm.getRhtOptionValue('*','SKU','Sku_IsVerifyBarCode','0');
|
|
|
|
|
|
|
|
|
|
let MaxSerialNo = 1;
|
|
|
|
|
//保存前记录日志
|
|
|
|
|
Biz.prototype.afterEdit = function () {
|
|
|
|
|
return this.super('afterEdit');
|
|
|
|
|
};
|
|
|
|
|
//保存后记录日志
|
|
|
|
|
Biz.prototype.beforeSave = function () {
|
|
|
|
|
let masterRow = this.dsMaster.currentRow;
|
|
|
|
|
let BarCode = TypeUtil.toString(masterRow['BarCode']);
|
|
|
|
|
let PluName = TypeUtil.toString(masterRow['PluName']);
|
|
|
|
|
let PluAbbrName = TypeUtil.toString(masterRow['PluAbbrName']);
|
|
|
|
|
let PluMN = TypeUtil.toString(masterRow['PluMN']);
|
|
|
|
|
let BarType = TypeUtil.toString(masterRow['BarType']);
|
|
|
|
|
let TableName="";
|
|
|
|
|
|
|
|
|
|
if ((PluName.indexOf(";") != -1) || (PluName.indexOf("''") != -1)){
|
|
|
|
|
masterRow.setColumnError("PluName", "商品名称含有非法字符;或者''!");
|
|
|
|
|
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 (this._state == "add") {
|
|
|
|
|
if (BarType == "0"){
|
|
|
|
|
TableName="tSkuMulBar";
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
TableName="TSKUPLUPACKAGEHEAD";
|
|
|
|
|
}
|
|
|
|
|
let ret= Service.getSlideMenuData("OnBeforeSave","BarCodeRepeat",TableName,BarCode,"","");
|
|
|
|
|
if (ret.result !== 1) {
|
|
|
|
|
masterRow.setColumnError("BarCode", ret.message);
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
if (ret.data.IsExist == "1") {
|
|
|
|
|
masterRow.setColumnError("BarCode", ret.message);
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return this.super('beforeSave');
|
|
|
|
|
};
|
|
|
|
|
//字段变化触发事件
|
|
|
|
|
Biz.prototype.fieldChanged = function (dataSrc, dr, dc) {
|
|
|
|
|
if (dataSrc.uiObjCode === this.dsMaster.uiObjCode) {
|
|
|
|
|
switch (dc.fieldName) {
|
|
|
|
|
case 'BarCode':
|
|
|
|
|
this.fieldChangedBarCode(dataSrc, dr, dc);
|
|
|
|
|
break;
|
|
|
|
|
case 'PluCode':
|
|
|
|
|
this.fieldChangedPluCode(dataSrc, dr, dc);
|
|
|
|
|
break;
|
|
|
|
|
case 'BarType':
|
|
|
|
|
this.fieldChangedBarType(dataSrc, dr, dc);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
this.super('fieldChanged');
|
|
|
|
|
};
|
|
|
|
|
//主表 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 (pluCode.length > 0){
|
|
|
|
|
//用正则表达式校验输入内容必须是0-9的数字
|
|
|
|
|
let re=/^[0-9]+$/;
|
|
|
|
|
if (SKU_IsCheckPluBar == "0"){
|
|
|
|
|
re=/^[A-Za-z0-9]+$/;
|
|
|
|
|
}
|
|
|
|
|
if (!re.test(barCode)) {
|
|
|
|
|
dr.setColumnError('BarCode',"条码只能是数字、英版文字母!");
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
if (barCode !== "") {
|
|
|
|
|
let ret= Service.getSlideMenuData("DoOnMasterCalcRule","BarCode",barCode,pluCode,pluId,"","");
|
|
|
|
|
if (ret.result !== 1) {
|
|
|
|
|
dr.setColumnError(dc.fieldName, ret.message);
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
return true;
|
|
|
|
|
};
|
|
|
|
|
//主表 PluCode 字段变化执行事件
|
|
|
|
|
Biz.prototype.fieldChangedPluCode = function (dataSrc, dr, dc) {
|
|
|
|
|
let PluCode = dr['PluCode'];
|
|
|
|
|
let OldPluCode = TypeUtil.toString(dr.transData['PluCode']);
|
|
|
|
|
if ((this._state == "edit") && (OldPluCode !=PluCode)) {
|
|
|
|
|
dr.setColumnError('PluCode',"已保存数据不允许变更商品编码!");
|
|
|
|
|
dr.setColumnText(dc.fieldName, OldPluCode);
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
};
|
|
|
|
|
//主表 BarType 字段变化执行事件
|
|
|
|
|
Biz.prototype.fieldChangedBarType = function (dataSrc, dr, dc) {
|
|
|
|
|
let BarType = dr['BarType'];
|
|
|
|
|
let OldBarType = TypeUtil.toString(dr.transData['BarType']);
|
|
|
|
|
if ((this._state == "edit") && (BarType !=OldBarType)) {
|
|
|
|
|
dr.setColumnError('PluCode',"已保存数据不允许变更条码类型!");
|
|
|
|
|
dr.setColumnText(dc.fieldName, OldBarType);
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
if (BarType !=OldBarType){
|
|
|
|
|
dr.setColumnText("PluCode", "");
|
|
|
|
|
dr.setColumnText("PluName", "");
|
|
|
|
|
dr.setColumnText("PluMN", "");
|
|
|
|
|
dr.setColumnText("PluAbbrName", "");
|
|
|
|
|
dr.setColumnText("Spec", "");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
};
|
|
|
|
|
//定义按钮事件
|
|
|
|
|
Biz.prototype.doOp = function (opCode) {
|
|
|
|
|
let self = this;
|
|
|
|
|
if (opCode == 'actimport') {
|
|
|
|
|
let dhead = self.dsMaster;
|
|
|
|
|
this.onimportexcelpl(self, dhead);
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
//控制主界面按钮状态(预制信息不允许修改和删除)
|
|
|
|
|
Biz.prototype.getOpEnabled = function (opCode) {
|
|
|
|
|
let isOk = this.super('getOpEnabled', opCode);
|
|
|
|
|
if (!isOk) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
let curRow = this.dsMaster.currentRow;
|
|
|
|
|
|
|
|
|
|
if (opCode == 'edit') {
|
|
|
|
|
let PatternType = curRow ? TypeUtil.toString(curRow['PatternType']) : '';
|
|
|
|
|
if ((PatternType == "0"))
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
if (opCode == 'delete') {
|
|
|
|
|
let PatternType = curRow ? TypeUtil.toString(curRow['PatternType']) : '';
|
|
|
|
|
if ((PatternType == "0"))
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
if (opCode == 'actimport') {
|
|
|
|
|
if (this.isEdit())
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
};
|
|
|
|
|
//导入按钮事件(暂时先不做 后期需要再加)
|
|
|
|
|
Biz.prototype.onimportexcelpl= function () {
|
|
|
|
|
let masterRow = this.dsMaster.currentRow;
|
|
|
|
|
let ds = this.dsDetail;
|
|
|
|
|
//执行导入
|
|
|
|
|
let win = new XWindow({}, function (data) {
|
|
|
|
|
(new ExcelHelper(this.biz, data,masterRow)).import(); // 处理返回的excel data数据,这里的数据已经是数组,包含了读取的所有数据.
|
|
|
|
|
});
|
|
|
|
|
win.open();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//Excel导入处理 增加到当前界面明细表中
|
|
|
|
|
function ExcelHelper(biz, data,masterRow) {
|
|
|
|
|
let curIndex = 0;
|
|
|
|
|
let excelCols = [];
|
|
|
|
|
let PluCode="";
|
|
|
|
|
let BarCode="";
|
|
|
|
|
let BarType="";
|
|
|
|
|
this.import = function () {
|
|
|
|
|
if (data != null) {
|
|
|
|
|
for (let i = 0; i < data.length; i++) {
|
|
|
|
|
tmp = data[i];
|
|
|
|
|
PluCode = tmp['商品编码'];
|
|
|
|
|
BarCode = tmp['条码'];
|
|
|
|
|
BarType = tmp['条码类型'];
|
|
|
|
|
//用正则表达式校验输入内容必须是0-9的数字
|
|
|
|
|
let re=/^[0-9]+$/;
|
|
|
|
|
if (SKU_IsCheckPluBar == "0"){
|
|
|
|
|
re=/^[A-Za-z0-9]+$/;
|
|
|
|
|
}
|
|
|
|
|
if (!re.test(BarCode)) {
|
|
|
|
|
Store.messager.tip( "条码只能是数字、英版文字母!");
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
if (BarCode !== "") {
|
|
|
|
|
let ret= Service.getSlideMenuData("ImportExecute","UCheckBarCode",BarCode,PluCode,"","");
|
|
|
|
|
if (ret.result !== 1) {
|
|
|
|
|
Store.messager.tip(ret.message);
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
dr.setColumnError('BarCode',"条码不能为空!");
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
Store.messager.tip( PluCode);
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
let ret= Service.getSlideMenuData("ImportExecute","InExcel",data,"","","","");
|
|
|
|
|
if (ret.result !== 1) {
|
|
|
|
|
masterRow.setColumnError('BarCode', ret.message);
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return Biz;
|
|
|
|
|
});
|