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

4 years ago
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;
});