From 644fa3027a38de0a589ddbd8532f5a368eae3f05 Mon Sep 17 00:00:00 2001 From: James Cole Date: Fri, 24 Nov 2017 18:05:58 +0100 Subject: [PATCH] Some code for #736 --- .../Account/ReconcileController.php | 16 +++++++++++++- public/js/ff/accounts/reconcile.js | 22 +++++++++---------- 2 files changed, 25 insertions(+), 13 deletions(-) diff --git a/app/Http/Controllers/Account/ReconcileController.php b/app/Http/Controllers/Account/ReconcileController.php index a15b78de80..f77f2996c0 100644 --- a/app/Http/Controllers/Account/ReconcileController.php +++ b/app/Http/Controllers/Account/ReconcileController.php @@ -259,6 +259,20 @@ class ReconcileController extends Controller return $this->redirectToOriginalAccount($account); } + $startDate = clone $start; + $startDate->subDays(1); + + /** @var CurrencyRepositoryInterface $currencyRepos */ + $currencyRepos = app(CurrencyRepositoryInterface::class); + $currencyId = intval($account->getMeta('currency_id')); + $currency = $currencyRepos->find($currencyId); + if (0 === $currencyId) { + $currency = app('amount')->getDefaultCurrency(); + } + + $startBalance = round(app('steam')->balance($account, $startDate), $currency->decimal_places); + $endBalance = round(app('steam')->balance($account, $end), $currency->decimal_places); + // get the transactions $selectionStart = clone $start; $selectionStart->subDays(3); @@ -273,6 +287,6 @@ class ReconcileController extends Controller $transactions = $collector->getJournals(); $html = view('accounts.reconcile.transactions', compact('account', 'transactions', 'start', 'end', 'selectionStart', 'selectionEnd'))->render(); - return Response::json(['html' => $html]); + return Response::json(['html' => $html, 'startBalance' => $startBalance, 'endBalance' => $endBalance]); } } diff --git a/public/js/ff/accounts/reconcile.js b/public/js/ff/accounts/reconcile.js index 9a29ab036e..a79764614f 100644 --- a/public/js/ff/accounts/reconcile.js +++ b/public/js/ff/accounts/reconcile.js @@ -22,6 +22,7 @@ var balanceDifference = 0; var difference = 0; var selectedAmount = 0; var reconcileStarted = false; +var changedBalances = false; /** * @@ -38,6 +39,7 @@ $(function () { difference = balanceDifference - selectedAmount; updateDifference(); } + changedBalances = true; }); /* @@ -111,19 +113,8 @@ function checkReconciledBox(e) { } difference = balanceDifference - selectedAmount; updateDifference(); - allowReconcile(); } -/** - * - */ -function allowReconcile() { - var count = $('.reconcile_checkbox:checked').length; - console.log('Count checkboxes is ' + count); - if (count > 0) { - $('.store_reconcile').prop('disabled', false); - } -} /** * Calculate the difference between given start and end balance @@ -171,7 +162,12 @@ function includeClearedTransactions() { */ function placeTransactions(data) { $('#transactions_holder').empty().html(data.html); - + selectedAmount = 0; + // update start + end balance when user has not touched them. + if (!changedBalances) { + $('input[name="start_balance"]').val(data.startBalance); + $('input[name="end_balance"]').val(data.endBalance); + } // as long as the dates are equal, changing the balance does not matter. calculateBalanceDifference(); @@ -187,6 +183,8 @@ function placeTransactions(data) { // show the other instruction: $('.select_transactions_instruction').show(); + + $('.store_reconcile').prop('disabled', false); } /**