Reconciliation feature fixes.
This commit is contained in:
		| @@ -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(); | ||||
|         } | ||||
|     }, | ||||
| }); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user