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.

330 lines
13 KiB

4 years ago
/**
* 复制权限按钮弹框文件
* @description [description]
* @version 1.0
* @author yangjinhua
*/
define(function(require, exports, module) {
let Window = require('system/views/pages/window');
let tpl = require('text!apps/rht/cnt/cnt070210/OutLayDetail.tpl');
let rhtComm = require('../../comm/rhtComm');
/**
* [复制权限弹框]
* @param {[type]} dsData 角色表数据源用于对角色ComBox进行赋值
*/
function OutLayDetail(dsData, operType) {
let self = this
this.options = {
title: "合同扣款变更",
content: tpl,
width: 800,
height: 600,
modal: true,
closed: true,
closable: false,
draggable: true,
maximizable: false,
resizable: false,
id: 'OutLayDetail' + (new Date()).getTime(),
data: null,
onBeforeClose: function(){
dsData.unmount(self)
}
}
this.dsData = dsData;
this.operType = operType;
this.dsData.on('onFieldChanged', function(sendor, eventArgs){
let adapter = self.vm['ep_dsDetailKx'];
switch(eventArgs.col.fieldName) {
case 'BillNo' :
// 把默认不可编辑的禁掉
adapter.setEditorEditable('CalBgnDate', false);
adapter.setEditorEditable('CalEndDate', false);
adapter.setEditorEditable('ZfCode', false);
adapter.setEditorEditable('PluCode', false);
adapter.setEditorEditable('KxRate', false);
adapter.setEditorEditable('IsCjKx', false);
adapter.setEditorEditable('ClsCode', false);
adapter.setEditorEditable('BrandCode', false);
adapter.setEditorEditable('KxFormula', false);
adapter.setEditorEditable('CalcType', false);
break;
case 'JsBase' :
let jsBase = eventArgs.row.JsBase;
if(jsBase == '00') {
adapter.setEditorEditable('TkTotal', true);
adapter.setEditorEditable('KxRate', false);
adapter.setEditorEditable('CalMode', false);
adapter.setEditorEditable('CalBgnDate', false);
adapter.setEditorEditable('CalEndDate', false);
adapter.setEditorEditable('ZfCode', false);
adapter.setEditorEditable('PluCode', false);
}else {
adapter.setEditorEditable('TkTotal', false);
adapter.setEditorEditable('KxRate', true);
adapter.setEditorEditable('CalMode', true);
if(jsBase == '24') {
adapter.setEditorEditable('ZfCode', true);
}else {
adapter.setEditorEditable('ZfCode', false);
}
// 当计算基数选择商品相关的四个基数之一时,商品编码可编辑
if(jsBase == '12' || jsBase == '25' || jsBase == '26') {
adapter.setEditorEditable('PluCode', true);
}else {
adapter.setEditorEditable('PluCode', false);
}
}
if(jsBase == '00' || jsBase == '25' || jsBase == '26' || jsBase == '60') {
adapter.setEditorEditable('IsCjKx', false);
adapter.setEditorEditable('CalcType', false);
}else {
adapter.setEditorEditable('IsCjKx', true);
eventArgs.row.setColumnValue('IsCjKx', 1);
adapter.setEditorEditable('CalcType', eventArgs.row.IsCjKx == '1');
}
if(jsBase == '60') {
adapter.setEditorEditable('KxRate', false);
}else {
adapter.setEditorEditable('KxRate', true);
}
if(jsBase == '71' || jsBase == '72') {
adapter.setEditorEditable('ClsCode', true);
adapter.setEditorEditable('BrandCode', true);
}else {
adapter.setEditorEditable('ClsCode', false);
adapter.setEditorEditable('BrandCode', false);
}
if(jsBase == '74') {
adapter.setEditorEditable('KxFormula', true);
}else {
adapter.setEditorEditable('KxFormula', false);
}
if(jsBase == '00') {
eventArgs.row.setColumnValue('CalMode', 0);
eventArgs.row.setColumnValue('KxRate', 0);
eventArgs.row.setColumnValue('PluCode', '');
}else {
eventArgs.row.setColumnValue('TkTotal', 0);
if(jsBase != '12' && jsBase != '25' && jsBase != '26') {
eventArgs.row.setColumnValue('PluCode', '');
}
}
if(jsBase == '16' || jsBase == '17' || jsBase == '18') {
adapter.setEditorEditable('ClType', false);
eventArgs.row.setColumnValue('ClType', 1);
}else {
adapter.setEditorEditable('ClType', true);
}
if(jsBase == '60') {
adapter.setEditorEditable('KxRate', false);
eventArgs.row.setColumnValue('KxRate', 0);
}else {
adapter.setEditorEditable('KxRate', true);
}
if(jsBase == '71' || jsBase == '72') {
adapter.setEditorEditable('ClsCode', false);
adapter.setEditorEditable('BrandCode', false);
}else {
adapter.setEditorEditable('ClsCode', true);
adapter.setEditorEditable('BrandCode', true);
}
if(jsBase == '74') {
adapter.setEditorEditable('KxFormula', true);
}else {
adapter.setEditorEditable('KxFormula', false);
}
break;
case 'CalMode' :
let calMode = eventArgs.row.CalMode;
if(calMode == '0') {
adapter.setEditorEditable('CalBgnDate', false);
adapter.setEditorEditable('CalEndDate', false);
}else {
adapter.setEditorEditable('CalBgnDate', true);
adapter.setEditorEditable('CalEndDate', true);
}
break;
case 'IsCjKx' :
let isCjKx = eventArgs.row.IsCjKx;
if(isCjKx == '1') {
adapter.setEditorEditable('CalcType', true);
eventArgs.row.setColumnValue('KxRate', 0);
}else {
adapter.setEditorEditable('CalcType', false);
}
break;
}
}, self);
Window.call(this, this.options);
}
inherits(OutLayDetail, Window);
OutLayDetail.prototype.init = function() {
let self = this;
let args = {
data: this.dsData,
opts: {
showSettingBtn: '0',
editable: true
},
//TODO 添加last panel enter action
actions: {
onLastPanelEneterd: function () {
let gridName = 'grid_dsDetailKx';
if (self.vm[gridName].actions.onActiveFirstCell) {
self.vm[gridName].actions.onActiveFirstCell();
}
}
}
};
self.register('editpanel', 'ep_dsDetailKx', args);
}
OutLayDetail.prototype.open = function() {
Window.prototype.open.call(this);
this.dsData.setEditable(true);
if(this.operType == '0') {
this.dsData.addRow();
}
}
//执行windows窗体上自定义按钮事件
OutLayDetail.prototype.customerize = function() {
let self = this;
let rows = null;
if (Store.logOn.userType === '0')
rows = this.dsData.rows;
else
rows = _.where(self.dsData.rows, {
'RightCtrlOrgCode': Store.logOn.rightCtrlOrgCode
});
//确定按钮事件
this.getElement('.btnOK').on('click', function(event) {
let row = self.dsData.currentRow;
let bgnDate = TypeUtil.toString(row.BgnDate);
let endDate = TypeUtil.toString(row.EndDate);
if(bgnDate > endDate) {
Store.messager.err('合同扣款结束日期必须大于等于开始日期!');
return false;
}
let orgCode = TypeUtil.toString(row.OrgCode);
if(orgCode == '') {
Store.messager.err('合同扣款组织不能为空!');
return false;
}
let itemNo = TypeUtil.toString(row.ItemNo);
if(itemNo == '') {
Store.messager.err('条款号不能为空!');
return false;
}
let jsBase = TypeUtil.toString(row.JsBase);
if(jsBase != '00') {
let calMode = TypeUtil.toString(row.CalMode);
if(calMode == '1') {
let calBgnDate = TypeUtil.toString(row.CalBgnDate);
let calEndDate = TypeUtil.toString(row.CalEndDate);
if(calBgnDate == '' || calEndDate == '') {
Store.messager.err('计算区间开始和结束日期不能为空!');
return false;
}
if(calBgnDate > calEndDate) {
Store.messager.err('计算区间结束日期必须大于等于计算区间开始日期!');
return false;
}
}
if(jsBase == '12' || jsBase == '25' || jsBase == '26') {
let pluCode = TypeUtil.toString(row.PluCode);
if(pluCode == '') {
Store.messager.err('商品编码不能为空!');
return false;
}
}else if(jsBase == '74') {
let formulaId = TypeUtil.toString(row.FormulaId);
if(formulaId == '') {
Store.messager.err('计算公式不能为空!');
return false;
}
}else {
let kxRate = TypeUtil.toFloat(row.KxRate);
if(kxRate < 0 || kxRate > 100) {
Store.messager.err('合同扣项比率应在0至100之间!');
return false;
}
}
}
if(jsBase == '24') {
let zfCode = TypeUtil.toString(row.ZfCode);
if(zfCode == '') {
Store.messager.err('支付方式不能为空!');
return false;
}
}
if(jsBase == '14' || jsBase == '15') {
let isMultiCheck = rhtComm.getRhtOptionValue("*",'ORD','Ord_IsMultiCheck','1');
if(isMultiCheck != '0') {
Store.messager.err('合同扣款条款需要系统控制不允许多次验收,允许多次验收不能设置扣项!');
return false;
}
}
if(jsBase == '60') {
let orgCode = TypeUtil.toString(row.OrgCode);
if(orgCode == '*') {
Store.messager.err('计算基数为“60-供应商新增经营商品”,其对应的组织不能为*!');
return false;
}
}
if(jsBase == '71' || jsBase == '72') {
let isMultiCheck = rhtComm.getRhtOptionValue("*",'ORD','Ord_IsMultiCheck','1');
if(isMultiCheck != '0') {
Store.messager.err('合同扣款条款需要系统控制不允许多次验收,允许多次验收不能设置扣项!');
return false;
}
}
self.dsData.setEditable(false);
if (self.callback) {
self.callback();
}
self.close();
});
//取消按钮事件
this.getElement('.btnCancel').on('click', function(event) {
self.dsData.setEditable(false);
if(self.operType == '0') {
self.dsData.deleteRow(self.dsData.currentRow);
}
self.close();
});
}
return OutLayDetail;
})