From 7f28b005704923a1b7e29f77108afa6aa9986b5a Mon Sep 17 00:00:00 2001 From: denisdulici Date: Mon, 11 Jun 2018 11:53:45 +0300 Subject: [PATCH] more enable/disable --- app/Http/Controllers/Banking/Accounts.php | 50 ++++++++++++++++++ app/Http/Controllers/Common/Companies.php | 47 +++++++++++++++++ app/Http/Controllers/Expenses/Vendors.php | 38 ++++++++++++++ app/Http/Controllers/Incomes/Customers.php | 38 ++++++++++++++ app/Http/Controllers/Settings/Taxes.php | 52 +++++++++++++++++++ .../views/banking/accounts/index.blade.php | 6 +++ .../views/common/companies/index.blade.php | 9 +++- .../views/expenses/vendors/index.blade.php | 10 ++-- .../views/incomes/customers/index.blade.php | 9 +++- .../views/settings/taxes/index.blade.php | 6 +++ routes/web.php | 10 ++++ 11 files changed, 269 insertions(+), 6 deletions(-) diff --git a/app/Http/Controllers/Banking/Accounts.php b/app/Http/Controllers/Banking/Accounts.php index 1ab4a6cf3..b6731e4d4 100644 --- a/app/Http/Controllers/Banking/Accounts.php +++ b/app/Http/Controllers/Banking/Accounts.php @@ -124,6 +124,56 @@ class Accounts extends Controller } } + /** + * Enable the specified resource. + * + * @param Account $account + * + * @return Response + */ + public function enable(Account $account) + { + $account->enabled = 1; + $account->save(); + + $message = trans('messages.success.enabled', ['type' => trans_choice('general.accounts', 1)]); + + flash($message)->success(); + + return redirect()->route('accounts.index'); + } + + /** + * Disable the specified resource. + * + * @param Account $account + * + * @return Response + */ + public function disable(Account $account) + { + if ($account->id == setting('general.default_account')) { + $relationships[] = strtolower(trans_choice('general.companies', 1)); + } + + if (empty($relationships)) { + $account->enabled = 0; + $account->save(); + + $message = trans('messages.success.disabled', ['type' => trans_choice('general.accounts', 1)]); + + flash($message)->success(); + } else { + $message = trans('messages.warning.disabled', ['name' => $account->name, 'text' => implode(', ', $relationships)]); + + flash($message)->warning(); + + return redirect()->route('accounts.index'); + } + + return redirect()->route('accounts.index'); + } + /** * Remove the specified resource from storage. * diff --git a/app/Http/Controllers/Common/Companies.php b/app/Http/Controllers/Common/Companies.php index 7b1b3e6a4..9ed22afe0 100644 --- a/app/Http/Controllers/Common/Companies.php +++ b/app/Http/Controllers/Common/Companies.php @@ -174,6 +174,53 @@ class Companies extends Controller return redirect('common/companies'); } + /** + * Enable the specified resource. + * + * @param Company $company + * + * @return Response + */ + public function enable(Company $company) + { + $company->enabled = 1; + $company->save(); + + $message = trans('messages.success.enabled', ['type' => trans_choice('general.companies', 1)]); + + flash($message)->success(); + + return redirect()->route('companies.index'); + } + + /** + * Disable the specified resource. + * + * @param Company $company + * + * @return Response + */ + public function disable(Company $company) + { + // Check if user can update company + if (!$this->isUserCompany($company)) { + $message = trans('companies.error.not_user_company'); + + flash($message)->error(); + + return redirect()->route('companies.index'); + } + + $company->enabled = 0; + $company->save(); + + $message = trans('messages.success.disabled', ['type' => trans_choice('general.companies', 1)]); + + flash($message)->success(); + + return redirect()->route('companies.index'); + } + /** * Remove the specified resource from storage. * diff --git a/app/Http/Controllers/Expenses/Vendors.php b/app/Http/Controllers/Expenses/Vendors.php index e870fa396..e8ccb3162 100644 --- a/app/Http/Controllers/Expenses/Vendors.php +++ b/app/Http/Controllers/Expenses/Vendors.php @@ -242,6 +242,44 @@ class Vendors extends Controller return redirect('expenses/vendors'); } + /** + * Enable the specified resource. + * + * @param Vendor $vendor + * + * @return Response + */ + public function enable(Vendor $vendor) + { + $vendor->enabled = 1; + $vendor->save(); + + $message = trans('messages.success.enabled', ['type' => trans_choice('general.vendors', 1)]); + + flash($message)->success(); + + return redirect()->route('vendors.index'); + } + + /** + * Disable the specified resource. + * + * @param Vendor $vendor + * + * @return Response + */ + public function disable(Vendor $vendor) + { + $vendor->enabled = 0; + $vendor->save(); + + $message = trans('messages.success.disabled', ['type' => trans_choice('general.vendors', 1)]); + + flash($message)->success(); + + return redirect()->route('vendors.index'); + } + /** * Remove the specified resource from storage. * diff --git a/app/Http/Controllers/Incomes/Customers.php b/app/Http/Controllers/Incomes/Customers.php index c49fb46d9..3b72eb5f4 100644 --- a/app/Http/Controllers/Incomes/Customers.php +++ b/app/Http/Controllers/Incomes/Customers.php @@ -278,6 +278,44 @@ class Customers extends Controller return redirect('incomes/customers'); } + /** + * Enable the specified resource. + * + * @param Customer $customer + * + * @return Response + */ + public function enable(Customer $customer) + { + $customer->enabled = 1; + $customer->save(); + + $message = trans('messages.success.enabled', ['type' => trans_choice('general.customers', 1)]); + + flash($message)->success(); + + return redirect()->route('customers.index'); + } + + /** + * Disable the specified resource. + * + * @param Customer $customer + * + * @return Response + */ + public function disable(Customer $customer) + { + $customer->enabled = 0; + $customer->save(); + + $message = trans('messages.success.disabled', ['type' => trans_choice('general.customers', 1)]); + + flash($message)->success(); + + return redirect()->route('customers.index'); + } + /** * Remove the specified resource from storage. * diff --git a/app/Http/Controllers/Settings/Taxes.php b/app/Http/Controllers/Settings/Taxes.php index c5220c29a..89cfa594c 100644 --- a/app/Http/Controllers/Settings/Taxes.php +++ b/app/Http/Controllers/Settings/Taxes.php @@ -104,6 +104,58 @@ class Taxes extends Controller } } + /** + * Enable the specified resource. + * + * @param Tax $tax + * + * @return Response + */ + public function enable(Tax $tax) + { + $tax->enabled = 1; + $tax->save(); + + $message = trans('messages.success.enabled', ['type' => trans_choice('general.tax_rates', 1)]); + + flash($message)->success(); + + return redirect()->route('taxes.index'); + } + + /** + * Disable the specified resource. + * + * @param Tax $tax + * + * @return Response + */ + public function disable(Tax $tax) + { + $relationships = $this->countRelationships($tax, [ + 'items' => 'items', + 'invoice_items' => 'invoices', + 'bill_items' => 'bills', + ]); + + if (empty($relationships)) { + $tax->enabled = 0; + $tax->save(); + + $message = trans('messages.success.disabled', ['type' => trans_choice('general.tax_rates', 1)]); + + flash($message)->success(); + } else { + $message = trans('messages.warning.disabled', ['name' => $tax->name, 'text' => implode(', ', $relationships)]); + + flash($message)->warning(); + + return redirect()->route('taxes.index'); + } + + return redirect()->route('taxes.index'); + } + /** * Remove the specified resource from storage. * diff --git a/resources/views/banking/accounts/index.blade.php b/resources/views/banking/accounts/index.blade.php index bc5206a05..153392384 100644 --- a/resources/views/banking/accounts/index.blade.php +++ b/resources/views/banking/accounts/index.blade.php @@ -58,7 +58,13 @@ diff --git a/resources/views/common/companies/index.blade.php b/resources/views/common/companies/index.blade.php index 1429c92ae..b700799e6 100644 --- a/resources/views/common/companies/index.blade.php +++ b/resources/views/common/companies/index.blade.php @@ -63,10 +63,17 @@ diff --git a/resources/views/expenses/vendors/index.blade.php b/resources/views/expenses/vendors/index.blade.php index d474fc755..f5aa6c9e3 100644 --- a/resources/views/expenses/vendors/index.blade.php +++ b/resources/views/expenses/vendors/index.blade.php @@ -60,13 +60,17 @@ diff --git a/resources/views/incomes/customers/index.blade.php b/resources/views/incomes/customers/index.blade.php index b9d0bcfbc..a76c3c2a8 100644 --- a/resources/views/incomes/customers/index.blade.php +++ b/resources/views/incomes/customers/index.blade.php @@ -61,12 +61,17 @@ diff --git a/resources/views/settings/taxes/index.blade.php b/resources/views/settings/taxes/index.blade.php index 33aa913fe..11bb4426c 100644 --- a/resources/views/settings/taxes/index.blade.php +++ b/resources/views/settings/taxes/index.blade.php @@ -56,7 +56,13 @@ diff --git a/routes/web.php b/routes/web.php index 28085ac89..d18e94ff4 100644 --- a/routes/web.php +++ b/routes/web.php @@ -16,6 +16,8 @@ Route::group(['middleware' => 'language'], function () { Route::group(['prefix' => 'common'], function () { Route::get('companies/{company}/set', 'Common\Companies@set')->name('companies.switch'); + Route::get('companies/{company}/enable', 'Common\Companies@enable')->name('companies.enable'); + Route::get('companies/{company}/disable', 'Common\Companies@disable')->name('companies.disable'); Route::resource('companies', 'Common\Companies'); Route::get('dashboard/cashflow', 'Common\Dashboard@cashFlow')->name('dashboard.cashflow'); Route::get('import/{group}/{type}', 'Common\Import@create')->name('import.create'); @@ -66,6 +68,8 @@ Route::group(['middleware' => 'language'], function () { Route::post('customers/field', 'Incomes\Customers@field'); Route::post('customers/import', 'Incomes\Customers@import')->name('customers.import'); Route::get('customers/export', 'Incomes\Customers@export')->name('customers.export'); + Route::get('customers/{customer}/enable', 'Incomes\Customers@enable')->name('customers.enable'); + Route::get('customers/{customer}/disable', 'Incomes\Customers@disable')->name('customers.disable'); Route::resource('customers', 'Incomes\Customers'); }); @@ -88,10 +92,14 @@ Route::group(['middleware' => 'language'], function () { Route::post('vendors/vendor', 'Expenses\Vendors@vendor'); Route::post('vendors/import', 'Expenses\Vendors@import')->name('vendors.import'); Route::get('vendors/export', 'Expenses\Vendors@export')->name('vendors.export'); + Route::get('vendors/{vendor}/enable', 'Expenses\Vendors@enable')->name('vendors.enable'); + Route::get('vendors/{vendor}/disable', 'Expenses\Vendors@disable')->name('vendors.disable'); Route::resource('vendors', 'Expenses\Vendors'); }); Route::group(['prefix' => 'banking'], function () { + Route::get('accounts/{account}/enable', 'Banking\Accounts@enable')->name('accounts.enable'); + Route::get('accounts/{account}/disable', 'Banking\Accounts@disable')->name('accounts.disable'); Route::resource('accounts', 'Banking\Accounts'); Route::resource('transactions', 'Banking\Transactions'); Route::resource('transfers', 'Banking\Transfers'); @@ -117,6 +125,8 @@ Route::group(['middleware' => 'language'], function () { Route::resource('currencies', 'Settings\Currencies'); Route::get('settings', 'Settings\Settings@edit'); Route::patch('settings', 'Settings\Settings@update'); + Route::get('taxes/{tax}/enable', 'Settings\Taxes@enable')->name('taxes.enable'); + Route::get('taxes/{tax}/disable', 'Settings\Taxes@disable')->name('taxes.disable'); Route::resource('taxes', 'Settings\Taxes'); Route::get('apps/{alias}', 'Settings\Modules@edit'); Route::patch('apps/{alias}', 'Settings\Modules@update');