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.

398 lines
15 KiB

4 years ago
define(function (require, exports, module) {
let BaseBiz = require('apps/rht/base/rhtBiz');
let Service = require('./lbl2606service');
let queryTpl = require('text!./custom-built-query.tpl')
let XWindow = require('system/views/pages/xlswindow/import-window.js')
function Biz(vm) {
//继承第一步,构造继承
BaseBiz.call(this, vm);
}
//继承第二步,方法继承
inherits(Biz, BaseBiz);
Biz.prototype.getCustomBuiltQuery = function () {
return queryTpl;
};
Biz.prototype.initCompleted = function () {
this.super('initCompleted');
let self = this;
self.$lblrule = self.getElement('.lbl-rule');
self.$lbltype = self.getElement('.lbl-type').textbox();
self.$lblclass = self.getElement('.lbl-class').textbox();
self.$lblformat = self.getElement('.lbl-format');
self.$lblcount = self.getElement('.lbl-count').textbox();
self.$lblplucode = self.getElement('.lbl-plucode').textbox();
self.$lblformat.combobox({
valueField: 'lblfrtid',
textField: 'lblfrtname',
data: []
});
initLabelRuleType(self);
initLabelClass(self);
initLabelFormat(self);
initPluInput(self);
self.getElement('.page-widget-querypanel').hide();
self.callView('resize');
};
function initLabelRuleType(self) {
let ret = Service.getSlideMenuData("actExecute", "GetLabelType", "", "", "", "", "");
if (ret.result !== 1) {
Store.messager.err(ret.message);
return false;
}
if (ret.data !== null) {
let ruledata = [{ 'enumvalueid': '<默认>', 'enumvaluename': '<默认>' }].concat(ret.data);
self.$lblrule.combobox({
valueField: 'enumvalueid',
textField: 'enumvaluename',
data: ruledata
});
self.$lblrule.combobox('setValue', '<默认>');
let typedata = [{ 'enumvalueid': '<全部>', 'enumvaluename': '<全部>' }].concat(ret.data);
self.$lbltype.combobox({
valueField: 'enumvalueid',
textField: 'enumvaluename',
data: typedata
});
self.$lbltype.combobox('setValue', '<全部>');
}
}
function initLabelClass(self) {
let ret = Service.getSlideMenuData("actExecute", "GetLabelClass", "", "", "", "", "");
if (ret.result !== 1) {
Store.messager.err(ret.message);
return false;
}
if (ret.data !== null) {
self.$lblclass.combobox({
valueField: 'lblclscode',
textField: 'lblclsname',
data: ret.data,
onChange: function () {
initLabelFormat(self);
}
});
self.$lblclass.combobox('select', ret.data[0].lblclscode);
}
}
function initLabelFormat(self) {
let lblclasscode = self.$lblclass.combobox('getValue');
let ret = Service.getSlideMenuData("actExecute", "GetLabelFormat", lblclasscode, "", "", "", "");
if (ret.result !== 1) {
Store.messager.err(ret.message);
return false;
}
if (ret.data !== null) {
self.$lblformat.combobox('loadData', ret.data);
self.$lblformat.combobox('select', ret.data[0].lblfrtid);
}
}
function initPluInput(self) {
self.$lblcount.textbox("setValue", "1");
self.$lblplucode.textbox('textbox').bind('keydown', function (e) {
if (e.keyCode === 13) {
let pluCode = self.$lblplucode.textbox('getValue');
let exists = false;
for (let element of self.dsMaster.rows) {
if (pluCode === element.PluCode || pluCode === element.BarCode) {
Store.messager.confirm("商品(" + pluCode + ")已经存在,是否继续添加?", function (go) {
if (!go) {
return;
}
beginPluCodeInput(self, pluCode);
})
exists = true;
break;
}
}
if (!exists) {
beginPluCodeInput(self, pluCode);
}
}
})
}
function beginPluCodeInput(self, pluCode) {
let orgCode = Store.logOn.orgCode;
let loopnum = Number(self.$lblcount.textbox('getValue'));
let i = 0;
while (i < loopnum) {
doPluCodeInput(pluCode, orgCode, self);
i++;
}
self.$lblplucode.textbox('textbox').select();
self.$lblplucode.textbox('textbox').focus();
}
function doPluCodeInput(inPlucode, inOrgcode, self) {
const orgCode = inOrgcode;
const pluCode = inPlucode;
let ret = Service.getSlideMenuData("actExecute", "GetPluPrice", orgCode, pluCode, "", "", "");
if (ret.result !== 1) {
Store.messager.err(ret.message);
return false;
}
if (ret.data === null) {
Store.messager.warn('商品(' + pluCode + ')不存在,请重新录入。');
self.$lblcount.textbox('textbox').focus();
}
else {
let lblRule = self.$lblrule.combobox('getValue');
if (lblRule === '<默认>') {
addPluByDefaultRule(ret.data, self);
}
else {
addPluByUsertRule(ret.data, self);
}
}
}
function addPluByDefaultRule(data, self) {
for (let element of data) {
let lblDataType = element.lbldatatype;
if (lblDataType !== '02') {
let iPrice = element.price;
let iHyPrice = element.HyPrice;
if (iPrice !== iHyPrice && iHyPrice > 0) {
lblDataType = '06';
}
let newRow = self.dsMaster.addRow();
newRow.setColumnValue('BillNo', element.billno);
newRow.setColumnText('LblDataType', lblDataType);
newRow.setColumnValue('BgnDate', element.bgndate);
newRow.setColumnValue('EndDate', element.enddate);
newRow.setColumnText('OrgCode', element.orgcode);
newRow.setColumnValue('PluID', element.pluid);
newRow.setColumnValue('PluCode', element.plucode);
newRow.setColumnValue('PluName', element.pluname);
newRow.setColumnValue('BarCode', element.barcode);
newRow.setColumnValue('Spec', element.spec);
newRow.setColumnValue('Unit', element.unit);
newRow.setColumnValue('CargoNo', element.cargono);
newRow.setColumnValue('Produce', element.produce);
newRow.setColumnValue('Grade', element.grade);
newRow.setColumnValue('Quality', element.quality);
newRow.setColumnValue('Price', element.price);
newRow.setColumnValue('HyPrice', element.hyprice);
newRow.setColumnValue('PfPrice', element.pfprice);
newRow.setColumnValue('YhPrice', element.yhprice);
newRow.setColumnValue('PluAbbrName', element.pluabbrname);
newRow.setColumnValue('BrandCode', element.brandcode);
newRow.setColumnValue('BrandName', element.brandname);
newRow.setColumnValue('PackUnit', element.packunit);
newRow.setColumnValue('PackQty', element.packqty);
newRow.setColumnValue('UDP1', element.udp1);
newRow.setColumnValue('UDP2', element.udp2);
newRow.setColumnValue('UDP3', element.udp3);
newRow.setColumnValue('UDP4', element.udp4);
newRow.setColumnValue('UDP5', element.udp5);
newRow.setColumnValue('UDP6', element.udp6);
newRow.setColumnValue('UDP7', element.udp7);
newRow.setColumnValue('UDP8', element.udp8);
newRow.setColumnValue('UDP9', element.udp9);
newRow.setColumnValue('UDP10', element.udp10);
newRow.setColumnValue('KcCount', element.kccount);
newRow.setColumnValue('EtpCode', element.etpcode);
newRow.setColumnValue('EtpName', element.etpname);
break;
}
}
}
function addPluByUsertRule(data, self) {
let lblUsrRule = self.$lblrule.combobox('getValue');
let lblFindRule = '';
let pluBarMss = self.$lblplucode.textbox('getValue');
let isFind = '0';
data.forEach(element => {
if (lblUsrRule === element.lbldatatype) {
isFind = '1';
}
});
if (isFind === '0') {
Store.message.tip('当前组织不经营该商品。');
}
if (lblUsrRule === '00' || lblUsrRule === '03' || lblUsrRule === '02' || lblUsrRule === '06' || lblUsrRule === '01') {
lblFindRule = lblUsrRule;
}
else if (lblUsrRule === '06') {
lblFindRule = '00';
}
if (lblFindRule !== '') {
data.forEach(element => {
if (lblUsrRule === element.lbldatatype) {
isFind = '1';
}
});
if (isFind === '0') {
Store.messager.confirm("商品(" + pluBarMss + ")不是[" + lblUsrRule + "]商品,是否继续添加?", function (go) {
if (!go) {
return;
}
})
}
}
else {
let curelement;
for (let element of data) {
let lblDataType = element.lbldatatype;
if ((lblDataType === '00') || (lblDataType !== '02' && lblDataType !== '03' && lblDataType !== '05')) {
curelement = element;
break;
}
}
if (lblDataType === '00') {
Store.messager.confirm("商品(" + pluBarMss + ")不是[" + lblUsrRule + "]商品,是否继续添加?", function (go) {
if (!go) {
return;
}
})
}
let newRow = self.dsMaster.addRow();
newRow.setColumnValue('BillNo', curelement.billno);
newRow.setColumnText('lbldatatype', lblRule);
newRow.setColumnValue('IsSel', '1');
newRow.setColumnValue('BgnDate', element.bgndate);
newRow.setColumnValue('EndDate', element.enddate);
newRow.setColumnText('OrgCode', element.orgcode);
newRow.setColumnValue('PluID', element.pluid);
newRow.setColumnValue('PluCode', element.plucode);
newRow.setColumnValue('PluName', element.pluname);
newRow.setColumnValue('BarCode', element.barcode);
newRow.setColumnValue('Spec', element.spec);
newRow.setColumnValue('Unit', element.unit);
newRow.setColumnValue('CargoNo', element.cargono);
newRow.setColumnValue('Produce', element.produce);
newRow.setColumnValue('Grade', element.grade);
newRow.setColumnValue('Quality', element.quality);
newRow.setColumnValue('Price', element.price);
newRow.setColumnValue('HyPrice', element.hyprice);
newRow.setColumnValue('PfPrice', element.pfprice);
newRow.setColumnValue('YhPrice', element.yhprice);
newRow.setColumnValue('PluAbbrName', element.pluabbrname);
newRow.setColumnValue('BrandCode', element.brandcode);
newRow.setColumnValue('BrandName', element.brandname);
newRow.setColumnValue('PackUnit', element.packunit);
newRow.setColumnValue('PackQty', element.packqty);
newRow.setColumnValue('UDP1', element.udp1);
newRow.setColumnValue('UDP2', element.udp2);
newRow.setColumnValue('UDP3', element.udp3);
newRow.setColumnValue('UDP4', element.udp4);
newRow.setColumnValue('UDP5', element.udp5);
newRow.setColumnValue('UDP6', element.udp6);
newRow.setColumnValue('UDP7', element.udp7);
newRow.setColumnValue('UDP8', element.udp8);
newRow.setColumnValue('UDP9', element.udp9);
newRow.setColumnValue('UDP10', element.udp10);
newRow.setColumnValue('KcCount', element.kccount);
newRow.setColumnValue('EtpCode', element.etpcode);
newRow.setColumnValue('EtpName', element.etpname);
}
}
//按钮事件控制
Biz.prototype.doOp = function (opCode) {
let self = this;
if (opCode == 'clearall') {
self.onclearall();
}
if (opCode == 'import') {
self.onimpexcel();
}
if (opCode == 'previewlabel') {
self.onpreviewlabel();
}
if (opCode == 'printlabel') {
self.onprintlabel();
}
};
//导入事件处理
Biz.prototype.onimpexcel = function () {
let self = this
let win = new XWindow({}, function (data) {
data.forEach(item => {
if (item['商品编码']) {
beginPluCodeInput(self, item['商品编码'])
}
})
});
win.open();
};
Biz.prototype.onclearall = function () {
this.dsMaster.clear();
};
Biz.prototype.onpreviewlabel = function () {
let lblFrtId = this.$lblformat.combobox('getValue');
if (this.dsMaster.rows.length!==0){
let curRow = this.dsMaster.currentRow;
if (curRow){
if (curRow.PluCode !=='' && curRow.PluName !==''){
let pd =[initPrintData(this.dsMaster)];
Store.bizDao.printLabel(lblFrtId, '1', pd, null, function (result) {
})
}
}
}
};
Biz.prototype.onprintlabel = function () {
let lblFrtId = this.$lblformat.combobox('getValue');
if (this.dsMaster.rows.length!==0){
let curRow = this.dsMaster.currentRow;
if (curRow){
if (curRow.PluCode !=='' && curRow.PluName !==''){
let pd =[initPrintData(this.dsMaster)];
Store.bizDao.printLabel(lblFrtId, '0', pd, null, function (result) {
})
}
}
}
};
function initPrintData(ds) {
let data = {
//uiObjCode: ds.uiObjCode,
//uiObjName: ds.uiObjName,
uiObjCode: 26095,
uiObjName: '标签打印数据',
isMaster: ds.isMaster,
fieldList: [],
forPrint: []
};
for (let i = 0; i < ds.columns.length; i++) {
let col = ds.columns[i];
data.fieldList.push({
fieldName: col.fieldName,
fieldDes: col.dispName,
dataType: col.dataType,
dataWidth: col.dataWidth,
dataDec: col.dataDec,
});
}
for (let k = 0; k < ds.rows.length; k++) {
let row = ds.rows[k];
data.forPrint.push(row.getPrintData());
}
return data;
};
return Biz;
});