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.

256 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('./sys010104service');
var BgnDate = require('./BgnDate');
/**
* 控制按钮的可用
* @param opCode 按钮编码
* @return [description]
*/
function Biz(vm) {
//继承第一步,构造继承
BaseBiz.call(this, vm);
vm.remark = ''
}
//继承第二步,方法继承
inherits(Biz, BaseBiz);
Biz.prototype.initCompleted = function () {
this.super('initCompleted');
this.dsMaster.serverBiz = 'acctMonthBiz'
this.currDate = rhtComm.GetServerDate(0);
this.isNewYear = false;
this.isFirstYrea = false;
this.lastAcctYear = '';
this.lastAcctMonth = '';
this.lastBgnDate = '';
this.lastEndDate = '';
this.dtBgnDate = '';
this.dtLastDay = '';
this.newAcctYear = '';
this.nextAcctMonth = '';
this.getMaxAcctData();
};
//控制主界面按钮状态
Biz.prototype.getOpEnabled = function (opCode) {
var self = this;
var isOk = this.super('getOpEnabled', opCode);
if (!isOk) return false;
// var curRow = this.dsMaster.currentRow;
// var currYear = curRow ? TypeUtil.toString(curRow['AcctYear']) : '';
// var currMonth = curRow ? TypeUtil.toString(curRow['AcctMonth']) : '';
// if (opCode == 'add') {
// }
// if (opCode == 'edit') {
// if(currYear !== this.lastAcctYear || currMonth !== this.lastAcctMonth) {
// return false;
// }
// }
// if (opCode == 'delete') {
// if(currYear !== this.lastAcctYear || currMonth !== this.lastAcctMonth) {
// return false;
// }
// }
return true;
}
Biz.prototype.beforeAdd = function () {
let self = this;
let bgnDate = '';
if(this.isFirstYrea || this.lastAcctMonth === '12') {
if (Store.confirm("要增加" + this.newAcctYear + "整年的会计月吗?")) {
if(this.isFirstYrea) {
let dialogBgnDate = new BgnDate();
dialogBgnDate.callback = function (date) {
bgnDate = date;
let ret = service.genAcctData(self.newAcctYear, bgnDate);
if(ret.result !== 1) {
Store.messager.error(ret.message)
return false;
}
Store.messager.tip('增加成功');
self.getMaxAcctData();
}
dialogBgnDate.open();
}else {
bgnDate = rhtComm.DateChangeDays(1, this.dtLastDay);
let ret = service.genAcctData(self.newAcctYear, bgnDate);
if(ret.result !== 1) {
Store.messager.error(ret.message)
return false;
}
Store.messager.tip('增加成功');
this.getMaxAcctData();
}
// 不走常规的增加
return false;
}else {
this.isNewYear = true;
}
}else {
this.isNewYear = false;
this.nextAcctMonth = TypeUtil.toString(TypeUtil.toInt(this.lastAcctMonth) + 1);
if(TypeUtil.toInt(this.nextAcctMonth) < 10) {
this.nextAcctMonth = '0' + this.nextAcctMonth;
}
if(this.nextAcctMonth > '12') {
Store.messager.tip(lastAcctYear + '年度会计月已满12个月不能再增加');
return false;
}
}
this.dsMaster.getColumn('AcctYear').set('isEditable',false);
this.dsMaster.getColumn('AcctYear').set('isEditable',false);
if(this.isFirstYrea) {
this.dsMaster.getColumn('BgnDate').set('isEditable',true);
}else {
this.dsMaster.getColumn('BgnDate').set('isEditable',false);
}
return this.super('beforeAdd');
};
Biz.prototype.afterAdd = function () {
let dr = this.dsMaster.currentRow;
if(this.isNewYear) {
dr.setColumnValue('AcctYear', this.newAcctYear);
dr.setColumnValue('AcctMonth', '01');
}else {
dr.setColumnValue('AcctYear', this.lastAcctYear);
dr.setColumnValue('AcctMonth', this.nextAcctMonth);
}
const newBgnDate = rhtComm.DateChangeDays(1, this.dtLastDay);
dr.setColumnValue('BgnDate', newBgnDate);
dr.setColumnValue('EndDate', this.nextAcctMonth);
return this.super('afterAdd');
};
Biz.prototype.beforeSave = function () {
let dr = this.dsMaster.currentRow;
if(dr.EndDate < dr.BgnDate) {
dr.setColumnError('EndDate', '结束日期不能早于开始日期!');
return false;
}
if(this.getState() === 'edit' && dr.EndDate < this.currDate) {
dr.setColumnError('EndDate', '结束日期不能早于当前日期!');
return false;
}
return this.super('beforeSave');
};
Biz.prototype.afterSave = function () {
this.getMaxAcctData();
return this.super('afterSave');
};
Biz.prototype.beforeEdit = function () {
if(this.dsMaster.currentRow.EndDate < this.currDate) {
Store.messager.tip('当前月份已经结束,不可修改');
return false;
}
var currYear = this.dsMaster.currentRow['AcctYear'];
var currMonth = this.dsMaster.currentRow['AcctMonth'];
if(currYear !== this.lastAcctYear || currMonth !== this.lastAcctMonth) {
Store.messager.tip('不是最后一个会计月,不可修改');
return false;
}
this.dsMaster.getColumn('AcctYear').set('isEditable',false);
this.dsMaster.getColumn('AcctYear').set('isEditable',false);
this.dsMaster.getColumn('BgnDate').set('isEditable',false);
return this.super('beforeEdit');
};
Biz.prototype.beforeDelete = function () {
if(this.dsMaster.currentRow.EndDate < this.currDate) {
Store.messager.tip('当前月份已经结束,不可删除');
return false;
}
if(this.dsMaster.currentRow.BgnDate < this.currDate) {
Store.messager.tip('当前月份已经开始,不可删除');
return false;
}
var currYear = this.dsMaster.currentRow['AcctYear'];
var currMonth = this.dsMaster.currentRow['AcctMonth'];
if(currYear !== this.lastAcctYear || currMonth !== this.lastAcctMonth) {
Store.messager.tip('不是最后一个会计月,不可修改');
return false;
}
return this.super('beforeDelete');
};
Biz.prototype.afterDelete = function () {
this.getMaxAcctData();
return this.super('afterDelete');
};
/**
* @description 数据发生变化时调用
* @param dataSrc 数据集
* @param dr 数据行
* @param dc 数据列
*/
Biz.prototype.fieldChanged = function (dataSrc, dr, dc) {
var self = this;
if (dataSrc.uiObjCode === this.dsMaster.uiObjCode) {
var currentRow = self.dsMaster.currentRow;
if (currentRow === null) return false;
switch (dc.fieldName) {
case 'EndDate':
this.fieldChangedEndDate(dataSrc, dr, dc);
break;
}
}
return this.super('fieldChanged');
};
// 字段变化执行事件
Biz.prototype.fieldChangedEndDate = function (dataSrc, dr, dc) {
if(dr.EndDate < dr.BgnDate) {
dr.setColumnError('EndDate', '结束日期不能早于开始日期!');
return false;
}
if(this.getState() === 'edit' && dr.EndDate < this.currDate) {
dr.setColumnError('EndDate', '结束日期不能早于当前日期!');
return false;
}
return true;
};
Biz.prototype.getMaxAcctData = function () {
var ret = service.getMaxAcctData();
if(ret.result !== 1) {
Store.messager.error(ret.message)
return false;
}else {
if(ret.data.length > 0) {
this.isFirstYrea = false;
this.lastAcctYear = TypeUtil.toString(ret.data[0].acctyear);
this.lastAcctMonth = TypeUtil.toString(ret.data[0].acctmonth);
this.lastBgnDate = TypeUtil.toString(ret.data[0].bgndate);
this.lastEndDate = TypeUtil.toString(ret.data[0].enddate);
this.dtBgnDate = TypeUtil.toString(ret.data[0].bgndate);
this.dtLastDay = TypeUtil.toString(ret.data[0].enddate);
this.newAcctYear = TypeUtil.toString(TypeUtil.toInt(this.lastAcctYear) + 1);
}else {
this.isFirstYrea = true;
this.dtBgnDate = this.currDate;
this.dtLastDay = this.currDate;
this.newAcctYear = TypeUtil.toString(TypeUtil.toInt(this.currDate.substring(0, 4)));
}
}
};
return Biz;
});