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.

237 lines
9.3 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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;
});