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.

235 lines
6.9 KiB

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden 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.

//const SetOverType = require('./setovertype');
define(function (require, exports, module) {
let BaseBiz = require('apps/rht/base/rhtBiz');
let Service = require('./sys010111service');
let queryWindow = require("apps/rht/sys/sys010111/multiwindowdel");
let SetOverType = require('apps/rht/sys/sys010111/setovertype');
/**
* 控制按钮的可用
* @param opCode 按钮编码
* @return [description]
*/
function Biz(vm) {
//继承第一步,构造继承
BaseBiz.call(this, vm);
}
//继承第二步,方法继承
inherits(Biz, BaseBiz);
let tempData = null;
/*
控制按钮操作
*/
//按钮事件控制
Biz.prototype.doOp = function (opCode) {
if (opCode == 'issale') {
this.onsetsale("1");
}
if (opCode == 'nosale') {
this.onsetsale("0");
}
if (opCode == 'doover') {
this.doover("2");
}
if (opCode == 'overtype') {
let dhead = this.dsMaster;
this.doovertype(this, dhead);
}
};
//控制主界面按钮状态
Biz.prototype.getOpEnabled = function (opCode) {
let isOk = this.super('getOpEnabled', opCode);
if (!isOk) {
return false;
}
let masterRow = this.dsMaster.currentRow;
let sIsEnable = masterRow ? TypeUtil.toString(masterRow['UsPos']) : '';
let sOverType = masterRow ? TypeUtil.toString(masterRow['OverType']) : '';
if (opCode == 'issale'){
if (this.isEdit())
return false;
if (!masterRow)
return false;
if (sIsEnable == '1')
return false;
}
if (opCode == 'nosale'){
if (this.isEdit())
return false;
if (!masterRow)
return false;
if (sIsEnable == '0')
return false;
}
if (opCode == 'edit'){
if (this.isEdit())
return false;
if (!masterRow)
return false;
if (sIsEnable == '0')
return false;
}
if (opCode == 'overtype'){
if (this.isEdit())
return false;
if (!masterRow)
return false;
}
if (opCode == 'doover'){
if (this.isEdit())
return false;
if (!masterRow)
return false;
if (sOverType != '1')
return false;
if (sIsEnable == '0')
return false;
}
return true;
};
Biz.prototype.onsetsale = function (optype) {
self = this;
let curRow = self.dsMaster.currentRow;
let orgCode = curRow.OrgCode;
if (curRow) {
let ret = Service.getSlideMenuData("actExecute",optype, orgCode, "", "", "", "");
if (ret.result !== 1) {
Store.messager.err(ret.message);
return false;
}
}
return true;
};
Biz.prototype.doover = function (optype) {
self = this;
let curRow = self.dsMaster.currentRow;
let orgCode = curRow.OrgCode;
let rptDate = curRow.RptDate_Mis;
let tmpdate = TypeUtil.toDate(rptDate);
tmpdate.setDate(tmpdate.getDate()+1);
rptDate = tmpdate.format('yyyy-MM-dd');
if (curRow) {
let ret = Service.getSlideMenuData("actExecute",'doOver', orgCode, rptDate, "1", "", "");
if (ret.result !== 1) {
Store.messager.err(ret.message);
return false;
}
else{
Store.messager.tip(ret.message);
return true;
}
}
return true;
};
Biz.prototype.doovertype = function (biz, ds, dr) {
let setOverType = new SetOverType(ds.currentRow);
setOverType.callback=function(){
biz.dsMaster.updateRow();
};
setOverType.open();
return true;
};
/**
* 获取显示菜单内容
* @param {object} ds 对应的数据源
* @param source 菜单触发位置
* @return {array}
*/
Biz.prototype.getContextMenus = function (ds, source) {
let edit = ds.getEditable();
let ms = this.super('getContextMenus', ds, source);
if (ds.uiObjCode == '1036'){
ms.push({
text: '台结历史',
opCode: 'onoverlistview',
disabled: edit
})
}
return ms;
};
Biz.prototype.onoverlistview = function () {
let self = this;
let detailRow = self.dsDetail.currentRow;
let sOrgCode = detailRow ? TypeUtil.toString(detailRow['OrgCode']) : '';
let sPosNo = detailRow ? TypeUtil.toString(detailRow['PosNo']) : '';
//定义多选窗口界面
let exists = new Array();
let param={
exists: exists,
uiObjCode: '1037',
biz: self,
pk: "OrgCode,PosNo,RptDate",
fixQuery: {
'OrgCode': sOrgCode,
'PosNo': sPosNo
},
data:tempData,
showCheckColumn: false,
funcCode: self.FuncCode,
ds: tempData,
callback: function (rows) {
tempData = rows;
}
};
//new多选窗体 并打开
let myWindow = new queryWindow(param);
myWindow.open();
};
/**
*校验时间格式
*/
Biz.prototype.checkDateTime = function (str) {
let a = str.match(/^(\d{1,2})(:)?(\d{1,2})\2(\d{1,2})$/);
if (a == null) {
return false;
}
if (a[1]>24 || a[3]>60 || a[4]>60)
{
return false
}
return true;
};
Biz.prototype.beforeSave = function() {
let self = this;
for (let j = 0; j < self.dsDetail.rows.length; j++) {
let _nwRow = self.dsDetail.rows[j];
let overtime = _nwRow['OverTime'];
let posType = _nwRow['PosType'];
let overType = _nwRow['OverType'];
let isOk = self.checkDateTime(overtime);
if (!isOk){
Store.messager.tip('[结账时间]请输入正确的时间格式22:30:00');
return false;
}
if (posType=='3'){
if (overType != '3'){
Store.messager.tip('小程序类型的销售终端,需要设置结账方式为[3-不需要结账]');
return false;
}
}
}
return this.super('beforeSave');
}
module.exports = Biz;
});