diff --git a/app/Http/Controllers/BudgetController.php b/app/Http/Controllers/BudgetController.php index 26845470c8..e0d7bd983e 100644 --- a/app/Http/Controllers/BudgetController.php +++ b/app/Http/Controllers/BudgetController.php @@ -75,11 +75,9 @@ class BudgetController extends Controller */ public function amount(Request $request, Budget $budget) { - $amount = intval($request->get('amount')); - /** @var Carbon $start */ - $start = session('start', Carbon::now()->startOfMonth()); - /** @var Carbon $end */ - $end = session('end', Carbon::now()->endOfMonth()); + $amount = intval($request->get('amount')); + $start = Carbon::createFromFormat('Y-m-d', $request->get('start')); + $end = Carbon::createFromFormat('Y-m-d', $request->get('end')); $budgetLimit = $this->repository->updateLimitAmount($budget, $start, $end, $amount); if ($amount === 0) { $budgetLimit = null; @@ -243,7 +241,7 @@ class BudgetController extends Controller compact( 'available', 'currentMonth', 'next', 'nextText', 'prev', 'prevText', 'periodStart', 'periodEnd', 'budgetInformation', 'inactive', 'budgets', - 'spent', 'budgeted', 'previousLoop', 'nextLoop', 'start' + 'spent', 'budgeted', 'previousLoop', 'nextLoop', 'start', 'end' ) ); } @@ -313,15 +311,15 @@ class BudgetController extends Controller */ public function postUpdateIncome(BudgetIncomeRequest $request) { - $start = session('start', new Carbon); - $end = session('end', new Carbon); + $start = Carbon::createFromFormat('Y-m-d', $request->string('start')); + $end = Carbon::createFromFormat('Y-m-d', $request->string('end')); $defaultCurrency = Amount::getDefaultCurrency(); $amount = $request->get('amount'); $this->repository->setAvailableBudget($defaultCurrency, $start, $end, $amount); Preferences::mark(); - return redirect(route('budgets.index')); + return redirect(route('budgets.index',[$start->format('Y-m-d')])); } /** @@ -443,17 +441,17 @@ class BudgetController extends Controller } /** - * @return View + * @param Carbon $start + * @param Carbon $end + * + * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View */ - public function updateIncome() + public function updateIncome(Carbon $start, Carbon $end) { - $start = session('start', new Carbon); - $end = session('end', new Carbon); $defaultCurrency = Amount::getDefaultCurrency(); $available = $this->repository->getAvailableBudget($defaultCurrency, $start, $end); $available = round($available, $defaultCurrency->decimal_places); - return view('budgets.income', compact('available', 'start', 'end')); } diff --git a/app/Http/Requests/BudgetIncomeRequest.php b/app/Http/Requests/BudgetIncomeRequest.php index 8af316dd48..7f2375e3b0 100644 --- a/app/Http/Requests/BudgetIncomeRequest.php +++ b/app/Http/Requests/BudgetIncomeRequest.php @@ -37,6 +37,8 @@ class BudgetIncomeRequest extends Request { return [ 'amount' => 'numeric|required|min:0', + 'start' => 'required|date|before:end', + 'end' => 'required|date|after:start', ]; } } diff --git a/public/js/ff/budgets/index.js b/public/js/ff/budgets/index.js index 79dd675ecd..df5c8f55e1 100644 --- a/public/js/ff/budgets/index.js +++ b/public/js/ff/budgets/index.js @@ -89,7 +89,8 @@ function updateBudgetedAmounts(e) { drawBudgetedBar(); // send a post to Firefly to update the amount: - $.post('budgets/amount/' + id, {amount: value}).done(function (data) { + var newUri = budgetAmountUri.replace("REPLACE", id); + $.post(newUri, {amount: value,start: periodStart, end: periodEnd}).done(function (data) { // update the link if relevant: if (data.repetition > 0) { $('.budget-link[data-id="' + id + '"]').attr('href', 'budgets/show/' + id + '/' + data.repetition); @@ -120,8 +121,8 @@ $(function () { $('.selectPeriod').change(function (e) { var sel = $(e.target).val(); if (sel !== "x") { - var newURI = budgetIndexURI.replace("REPLACE", sel); - window.location.assign(newURI); + var newUri = budgetIndexUri.replace("REPLACE", sel); + window.location.assign(newUri); } }); @@ -129,7 +130,7 @@ $(function () { function updateIncome() { "use strict"; - $('#defaultModal').empty().load('budgets/income', function () { + $('#defaultModal').empty().load(updateIncomeUri, function () { $('#defaultModal').modal('show'); }); diff --git a/resources/views/budgets/income.twig b/resources/views/budgets/income.twig index 89e28bd710..50c80832f3 100644 --- a/resources/views/budgets/income.twig +++ b/resources/views/budgets/income.twig @@ -12,6 +12,8 @@