define(function (require, exports, module) { let BaseBiz = require('apps/rht/base/rhtBiz'); let rhtComm = require('apps/rht/comm/rhtComm'); let SetSysOverItem = require('./SetSysOverItem'); let service = require('./sys010101service'); /** * 控制按钮的可用 * @param opCode 按钮编码 * @return [description] */ function Biz(vm) { //继承第一步,构造继承 BaseBiz.call(this, vm); } //继承第二步,方法继承 inherits(Biz, BaseBiz); let orgCode=Store.logOn.orgCode; let userId=Store.logOn.userId; let userCode=Store.logOn.userCode; let userName=Store.logOn.userName; Biz.prototype.beforeDelete = function () { let masterRow = this.dsMaster.currentRow; let IsUserSet = TypeUtil.toString(masterRow['IsUserSet']); if (IsUserSet=="0") { masterRow.setColumnError("IsUserSet", '系统预置的日结项目不允许删除!'); return false; } return this.super('beforeDelete'); } //当前状态为非浏览状态或者当前行为空时,【设置】按钮不可用 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 == 'set') { if (!curRow) return false; if (!this.isBrowser()) return false; } return true; }; Biz.prototype.doOp = function (opCode) { let self = this; let setSysOverItem = null; if (opCode == 'set') { if (setSysOverItem) { setSysOverItem.open(); } else { //setSysOverItem = new SetSysOverItem(self.dsMaster.currentRow); setSysOverItem = new SetSysOverItem(self.dsMaster); setSysOverItem.open(); } } } Biz.prototype.beforeEdit = function () { let masterRow = this.dsMaster.currentRow; let IsUserSet = TypeUtil.toString(masterRow['IsUserSet']); if (IsUserSet=="0") { Store.messager.warn('系统预置的日结项目不允许编辑'); return false; } return this.super('beforeEdit'); } /** * 增加后操作 * 给默认组织的组织类型赋值 */ Biz.prototype.afterAdd = function () { this.super('afterAdd'); let self = this; let currentRow = self.dsMaster.currentRow; if (currentRow === null) return false; //给默认组织的组织类型赋值 let sOrgCode = currentRow["OrgCode"]; let ret = service.getOrgType(sOrgCode); if(ret.result !== 1) { currentRow.setColumnError('OrgCode',ret.messager) return false; } else { //当当前登录组织的组织类型不是1001-连锁总部时,组织字段不能编辑;否则允许编辑 currentRow.setColumnText('DutyCode',ret.data) if(ret.data!== '1001') { this.callView('setEditLimit', this.dsMaster, 'OrgCode', false); } else { this.callView('setEditLimit', this.dsMaster, 'OrgCode', true); } } //如果前置项目为空,则前置汇总项目有效为空,且不可编辑;否则可以编辑 let PreItemCode = TypeUtil.toString(currentRow['PreItemCode']); if (PreItemCode==="") { this.callView('setEditLimit', this.dsMaster, 'IsPreEnabled', false); } else { this.callView('setEditLimit', this.dsMaster, 'IsPreEnabled', true); } this.callView('setEditLimit', this.dsMaster, 'OrgCode', true); this.callView('setEditLimit', this.dsMaster, 'ItemCode', true); //获取最大序号 let ret = service.getMaxSerialno(); if(ret.result == 1){ currentRow.setColumnText('SerialNo',TypeUtil.toInt(ret.data.SerialNo)+1) } }; Biz.prototype.fieldChanged = function (dataSrc, dr, dc) { let self = this; let currentRow = self.dsMaster.currentRow; if (currentRow === null) return false; if(dataSrc.uiObjCode === '1018'){ //组织改变时,自动带出组织类型 if(dc.fieldName === 'OrgCode'){ let sOrgCode = currentRow["OrgCode"]; if(sOrgCode === ''){ return false; } let ret = service.getOrgType(sOrgCode); if(ret.result !== 1){ currentRow.setColumnError('OrgCode',ret.messager) return false; } else{ currentRow.setColumnText('DutyCode',ret.data) } /*//如果组织类型不是1001总部,则组织不能编辑 if (TypeUtil.toString(currentRow['DutyCode'])!== '1001') { this.callView('setEditLimit', this.dsMaster, 'OrgCode', false); } else {this.callView('setEditLimit', this.dsMaster, 'OrgCode', true);} */ //校验组织的业务控制组织是否为当前登录组织 let retOrg = service.checkOrg(Store.logOn.orgCode,sOrgCode); if (retOrg.result !== 1) { currentRow.setColumnError('OrgCode',retOrg.message); currentRow["OrgCode"] = ''; return false; } else { //获取当前登录组织的职能,如果组织类型不是1001总部,则组织不能编辑 ret = service.getOrgType(Store.logOn.orgCode); if(ret.result !== 1){ currentRow.setColumnError('OrgCode',ret.messager) return false; } else{ if(ret.data!== '1001') { this.callView('setEditLimit', this.dsMaster, 'OrgCode', false); } else { this.callView('setEditLimit', this.dsMaster, 'OrgCode', true); } } } } //如果前置项目为空,则前置汇总项目有效为空,且不可编辑;否则可以编辑 if(dc.fieldName === 'PreItemCode'){ let spreItemCode = currentRow["PreItemCode"]; if(spreItemCode === ''){ currentRow.setColumnText('IsPreEnabled',""); this.callView('setEditLimit', this.dsMaster, 'IsPreEnabled', false); } else { this.callView('setEditLimit', this.dsMaster, 'IsPreEnabled', true); } } } }; //编辑控制 //如果PreItemCode为空则IsPreEnabled不允许编辑,否则允许编辑 /*Biz.prototype.beforeFieldEdit = function (dataSrc, dr, dc) { let curRow = dr; if (!curRow) return false; let drMaster = this.dsMaster.currentRow; let preItemCode = TypeUtil.toString(drMaster['PreItemCode']); if (preItemCode == "") { if (dataSrc.uiObjCode == this.dsMaster.uiObjCode) { switch (dc.fieldName) { case 'IsPreEnabled': return false; } return true; } } return this.super('beforeFieldEdit', dataSrc, dr, dc); }*/ /** * 保存前操作,校验前置项目序号, * @returns {boolean} */ Biz.prototype.beforeSave = function () { let self = this; let currentRow = self.dsMaster.currentRow; if (currentRow === null) return false; //校验前置项目序号不能大于当前项目序号 let orgCode = currentRow["OrgCode"]; let preItemCode = currentRow["PreItemCode"]; let serialNo=currentRow["SerialNo"]; if (!isEmpty(preItemCode)) { let retPreItem = service.checkPreItemSerial(orgCode,preItemCode,serialNo); if (retPreItem.result !== 1) { currentRow.setColumnError('PreItemCode',retPreItem.message); rhtComm.MWriteErrLog(orgCode,userId,userCode,userName,"","","结账汇总列表","保存失败:"+retPreItem.message); return false; } } //校验查询编码是否非法,检查用户自定义的日结项目存储过程在数据库中是否存在,如果不存在则报错‘输入的查询编码非法:项目xx未定义!’ let scriptCode = currentRow["ScriptCode"]; let retScriptCode = service.CheckScriptCode(scriptCode); if (retScriptCode.result !== 1) { currentRow.setColumnError('ScriptCode',retScriptCode.message); rhtComm.MWriteErrLog(orgCode,userId,userCode,userName,"","","结账汇总列表","保存失败:"+retScriptCode.message); return false; } //校验查询编码在其他项目中是否设置为了不允许重复日结 let itemCode = currentRow["ItemCode"]; if (itemCode!==null) { let retScriptCodeReOver = service.checkScriptCodeReOver(scriptCode,itemCode); if (retScriptCodeReOver.result !== 1) { currentRow.setColumnError('ScriptCode',retScriptCodeReOver.message); rhtComm.MWriteErrLog(orgCode,userId,userCode,userName,"","","结账汇总列表","保存失败:"+retScriptCodeReOver.message); return false; } } rhtComm.MWriteOprLog(orgCode,userId,userCode,userName,'','','结账汇总列表',"保存成功。"); return this.super('beforeSave'); }; //点击编辑后,如果PreItemCode为空则IsPreEnabled不允许编辑,否则允许编辑 Biz.prototype.afterEdit= function () { let masterRow = this.dsMaster.currentRow; let PreItemCode = TypeUtil.toString(masterRow['PreItemCode']); if (PreItemCode==="") { this.callView('setEditLimit', this.dsMaster, 'IsPreEnabled', false); } else { this.callView('setEditLimit', this.dsMaster, 'IsPreEnabled', true); } //4、 点击编辑时,【组织编码】【项目编码】不允许编辑 this.callView('setEditLimit', this.dsMaster, 'OrgCode', false); this.callView('setEditLimit', this.dsMaster, 'ItemCode', false); }; return Biz; });