salix/modules/client/front/balance/create/index.js

119 lines
2.8 KiB
JavaScript
Raw Normal View History

2018-10-24 12:10:48 +00:00
import ngModule from '../../module';
2020-03-30 15:30:03 +00:00
import Dialog from 'core/components/dialog';
class Controller extends Dialog {
constructor($element, $, $transclude) {
super($element, $, $transclude);
2018-10-24 12:10:48 +00:00
this.receipt = {
2021-02-01 09:51:17 +00:00
payed: new Date()
2018-10-24 12:10:48 +00:00
};
2019-02-05 15:46:02 +00:00
}
2018-10-24 12:10:48 +00:00
2019-02-05 15:46:02 +00:00
set payed(value) {
this.receipt.payed = value;
}
2018-10-24 12:10:48 +00:00
2019-02-05 15:46:02 +00:00
set amountPaid(value) {
this.receipt.amountPaid = value;
2021-01-21 09:25:25 +00:00
this.amountToReturn = this.deliveredAmount - value;
2019-02-05 15:46:02 +00:00
}
2018-10-24 12:10:48 +00:00
2019-04-25 05:57:26 +00:00
get amountPaid() {
return this.receipt.amountPaid;
}
set clientFk(value) {
this.receipt.clientFk = value;
}
get clientFk() {
return this.receipt.clientFk;
}
2019-02-05 15:46:02 +00:00
set companyFk(value) {
this.receipt.companyFk = value;
this.getAmountPaid();
2018-10-24 12:10:48 +00:00
}
2019-04-25 05:57:26 +00:00
set description(value) {
this.receipt.description = value;
}
get description() {
return this.receipt.description;
}
2020-08-27 06:24:21 +00:00
get bankSelection() {
return this._bankSelection;
}
set bankSelection(value) {
this._bankSelection = value;
if (value) {
const accountingType = value.accountingType;
this.receipt.description = accountingType && accountingType.receiptDescription;
}
}
2020-12-16 07:33:08 +00:00
set deliveredAmount(value) {
this._deliveredAmount = value;
this.amountToReturn = value - this.receipt.amountPaid;
}
get deliveredAmount() {
return this._deliveredAmount;
}
2021-01-19 08:27:15 +00:00
get bankFk() {
if (!this.receipt.bankFk)
this.receipt.bankFk = this.vnConfig.bankFk;
return this.receipt.bankFk;
}
set bankFk(value) {
this.receipt.bankFk = value;
}
2020-12-16 07:33:08 +00:00
accountShortToStandard(value) {
this.receipt.compensationAccount = value.replace('.', '0'.repeat(11 - value.length));
}
2019-02-05 15:46:02 +00:00
getAmountPaid() {
2020-03-30 15:30:03 +00:00
const filter = {
2018-10-24 12:10:48 +00:00
where: {
2020-03-18 07:35:59 +00:00
clientFk: this.$params.id,
2018-10-24 12:10:48 +00:00
companyFk: this.receipt.companyFk
}
};
2020-03-30 15:30:03 +00:00
this.$http.get(`ClientRisks`, {filter}).then(res => {
2018-10-24 12:10:48 +00:00
this.receipt.amountPaid = (res.data.length && res.data[0].amount) || null;
});
}
2020-03-30 15:30:03 +00:00
responseHandler(response) {
if (response !== 'accept')
return super.responseHandler(response);
2018-10-24 12:10:48 +00:00
2021-02-01 09:51:17 +00:00
return this.$http.post(`Clients/${this.clientFk}/createReceipt`, this.receipt)
2020-03-31 08:19:01 +00:00
.then(() => super.responseHandler(response))
.then(() => this.vnApp.showSuccess(this.$t('Data saved!')));
2018-10-24 12:10:48 +00:00
}
}
2020-03-30 15:30:03 +00:00
ngModule.vnComponent('vnClientBalanceCreate', {
2020-04-25 09:50:04 +00:00
slotTemplate: require('./index.html'),
2019-02-05 15:46:02 +00:00
controller: Controller,
bindings: {
payed: '<?',
bankFk: '<?',
amountPaid: '<?',
2019-04-25 05:57:26 +00:00
companyFk: '<?',
description: '<?',
clientFk: '<?'
2019-02-05 15:46:02 +00:00
}
2018-10-24 12:10:48 +00:00
});