From 88d78d54afb15d053569f6dfaf49d4f81f717f3b Mon Sep 17 00:00:00 2001 From: denisdulici Date: Thu, 29 Mar 2018 18:50:13 +0300 Subject: [PATCH] fixed #278 --- app/Http/Controllers/Banking/Accounts.php | 37 +++++++++++++++++------ 1 file changed, 28 insertions(+), 9 deletions(-) diff --git a/app/Http/Controllers/Banking/Accounts.php b/app/Http/Controllers/Banking/Accounts.php index 59a373bd6..4e43d9bd2 100644 --- a/app/Http/Controllers/Banking/Accounts.php +++ b/app/Http/Controllers/Banking/Accounts.php @@ -84,19 +84,34 @@ class Accounts extends Controller */ public function update(Account $account, Request $request) { - $account->update($request->all()); - - // Set default account - if ($request['default_account']) { - setting()->set('general.default_account', $account->id); - setting()->save(); + // Check if we can disable it + if (!$request['enabled']) { + if ($account->id == setting('general.default_account')) { + $relationships[] = strtolower(trans_choice('general.companies', 1)); + } } - $message = trans('messages.success.updated', ['type' => trans_choice('general.accounts', 1)]); + if (empty($relationships)) { + $account->update($request->all()); - flash($message)->success(); + // Set default account + if ($request['default_account']) { + setting()->set('general.default_account', $account->id); + setting()->save(); + } - return redirect('banking/accounts'); + $message = trans('messages.success.updated', ['type' => trans_choice('general.accounts', 1)]); + + flash($message)->success(); + + return redirect('banking/accounts'); + } else { + $message = trans('messages.warning.disabled', ['name' => $account->name, 'text' => implode(', ', $relationships)]); + + flash($message)->warning(); + + return redirect('banking/accounts/' . $account->id . '/edit'); + } } /** @@ -115,6 +130,10 @@ class Accounts extends Controller 'revenues' => 'revenues', ]); + if ($account->id == setting('general.default_account')) { + $relationships[] = strtolower(trans_choice('general.companies', 1)); + } + if (empty($relationships)) { $account->delete();