diff --git a/resources/assets/js/views/banking/reconciliations.js b/resources/assets/js/views/banking/reconciliations.js index eb15882f9..3abceb455 100644 --- a/resources/assets/js/views/banking/reconciliations.js +++ b/resources/assets/js/views/banking/reconciliations.js @@ -4,118 +4,124 @@ * building robust, powerful web applications using Vue and Laravel. */ -require('./../../bootstrap'); + require('./../../bootstrap'); -import Vue from 'vue'; - -import DashboardPlugin from './../../plugins/dashboard-plugin'; - -import Global from './../../mixins/global'; - -import Form from './../../plugins/form'; -import BulkAction from './../../plugins/bulk-action'; - -// plugin setup -Vue.use(DashboardPlugin); - -const app = new Vue({ - el: '#app', - - mixins: [ - Global - ], - - data: function () { - return { - form: new Form('reconciliation'), - bulk_action: new BulkAction('reconciliations'), - reconcile: true, - difference: null, - totals: { - closing_balance: 0, - cleared_amount: 0, - difference: 0, - }, - } - }, - - mounted() { - if (document.getElementById('closing_balance') != null) { - this.totals.closing_balance = parseFloat(document.getElementById('closing_balance').value); - } - - if (this.form._method == 'PATCH') { - this.onCalculate(); - } - }, - - 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 closing_balance = parseFloat(this.form.closing_balance); - let difference = 0; - let income_total = 0; - let expense_total = 0; - - this.totals.closing_balance = closing_balance; - - 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); - } - }); - - - let transaction_total = income_total - expense_total; - - cleared_amount = parseFloat(this.form.opening_balance) + transaction_total; - } - - if (cleared_amount > 0) { - difference = (parseFloat(this.form.closing_balance) - parseFloat(cleared_amount)).toFixed(this.currency.precision); - } else { - difference = (parseFloat(this.form.closing_balance) + parseFloat(cleared_amount)).toFixed(this.currency.precision); - } - - if (difference != 0) { - this.difference = 'table-danger'; - this.reconcile = true; - } else { - this.difference = 'table-success'; - this.reconcile = false; - } - - this.totals.cleared_amount = parseFloat(cleared_amount); - this.totals.difference = difference; - }, - - onReconcileSubmit() { - this.form.reconcile = 1; - - this.form.submit(); - } - }, -}); + import Vue from 'vue'; + + import DashboardPlugin from './../../plugins/dashboard-plugin'; + + import Global from './../../mixins/global'; + + import Form from './../../plugins/form'; + import BulkAction from './../../plugins/bulk-action'; + + // plugin setup + Vue.use(DashboardPlugin); + + const app = new Vue({ + el: '#app', + + mixins: [ + Global + ], + + data: function () { + return { + form: new Form('reconciliation'), + bulk_action: new BulkAction('reconciliations'), + reconcile: true, + difference: null, + totals: { + closing_balance: 0, + cleared_amount: 0, + difference: 0, + }, + min_due_date: false + } + }, + + mounted() { + if (document.getElementById('closing_balance') != null) { + this.totals.closing_balance = parseFloat(document.getElementById('closing_balance').value); + } + + if (this.form._method == 'PATCH') { + this.onCalculate(); + } + }, + + methods:{ + setDueMinDate(date) { + this.min_due_date = date; + }, + + 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 closing_balance = parseFloat(this.form.closing_balance); + let difference = 0; + let income_total = 0; + let expense_total = 0; + + this.totals.closing_balance = closing_balance; + + 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); + } + }); + + + let transaction_total = income_total - expense_total; + + cleared_amount = parseFloat(this.form.opening_balance) + transaction_total; + } + + if (cleared_amount > 0) { + difference = (parseFloat(this.form.closing_balance) - parseFloat(cleared_amount)).toFixed(this.currency.precision); + } else { + difference = (parseFloat(this.form.closing_balance) + parseFloat(cleared_amount)).toFixed(this.currency.precision); + } + + if (difference != 0) { + this.difference = 'table-danger'; + this.reconcile = true; + } else { + this.difference = 'table-success'; + this.reconcile = false; + } + + this.totals.cleared_amount = parseFloat(cleared_amount); + this.totals.difference = difference; + }, + + onReconcileSubmit() { + this.form.reconcile = 1; + + this.form.submit(); + } + }, + }); + \ No newline at end of file diff --git a/resources/views/banking/reconciliations/create.blade.php b/resources/views/banking/reconciliations/create.blade.php index c8caee2b8..0cd6eb7c7 100644 --- a/resources/views/banking/reconciliations/create.blade.php +++ b/resources/views/banking/reconciliations/create.blade.php @@ -16,9 +16,9 @@