Reconciliation feature fixes.

This commit is contained in:
Cüneyt Şentürk
2020-02-18 17:14:06 +03:00
parent 93140b6513
commit af1b0c7345
5 changed files with 208 additions and 67 deletions

View File

@ -28,7 +28,79 @@ const app = new Vue({
data: function () {
return {
form: new Form('reconciliation'),
bulk_action: new BulkAction('reconciliations')
bulk_action: new BulkAction('reconciliations'),
reconcile: true,
difference: null,
totals: {
closing_balance: 0,
cleared_amount: 0,
difference: 0,
},
currency: null,
}
}
},
mounted() {
this.totals.closing_balance = parseFloat(document.getElementById('closing_balance').value);
},
methods:{
onReconcilition() {
let form = document.getElementById('form-create-reconciliation');
let path = form.action +'?started_at=' + this.form.started_at + '&ended_at=' + this.form.ended_at + '&closing_balance=' + this.form.closing_balance + '&account_id=' + this.form.account_id;
window.location.href = path;
},
onCalculate() {
this.reconcile = true;
this.difference = null;
let transactions = this.form.transactions;
let cleared_amount = 0;
let difference = 0;
let income_total = 0;
let expense_total = 0;
if (transactions) {
// get all transactions.
Object.keys(transactions).forEach(function(transaction) {
if (!transactions[transaction]) {
return;
}
let type = transaction.split('_');
if (type[0] == 'income') {
income_total += parseFloat(document.getElementById('transaction-' + type[1] + '-' + type[0]).value);
} else {
expense_total += parseFloat(document.getElementById('transaction-' + type[1] + '-' + type[0]).value);
}
});
cleared_amount = parseFloat(this.form.opening_balance) + parseFloat(income_total - expense_total);
}
difference = parseFloat(this.form.closing_balance) - cleared_amount;
if (difference != 0) {
this.difference = 'table-danger';
this.reconcile = true;
} else {
this.difference = 'table-success';
this.reconcile = false;
}
this.totals.cleared_amount = cleared_amount;
this.totals.difference = difference;
},
onReconcileSubmit() {
this.form.reconcile = 1;
this.form.submit();
}
},
});