From 25c43ab4d2bfcaff5204aae14fdcec7d479dc491 Mon Sep 17 00:00:00 2001 From: harshjagad20 Date: Thu, 3 Mar 2022 15:10:53 +0530 Subject: [PATCH] Fix condition --- ...anyCurrencyCheckTransactionsController.php | 10 ++-- .../UpdateCompanySettingsController.php | 8 ++- app/Models/Company.php | 17 ++++++ app/Models/Currency.php | 52 ------------------- app/Models/RecurringInvoice.php | 2 +- 5 files changed, 24 insertions(+), 65 deletions(-) diff --git a/app/Http/Controllers/V1/Admin/Settings/CompanyCurrencyCheckTransactionsController.php b/app/Http/Controllers/V1/Admin/Settings/CompanyCurrencyCheckTransactionsController.php index ee9ce1b9..3f7979d5 100644 --- a/app/Http/Controllers/V1/Admin/Settings/CompanyCurrencyCheckTransactionsController.php +++ b/app/Http/Controllers/V1/Admin/Settings/CompanyCurrencyCheckTransactionsController.php @@ -4,8 +4,6 @@ namespace Crater\Http\Controllers\V1\Admin\Settings; use Crater\Http\Controllers\Controller; use Crater\Models\Company; -use Crater\Models\CompanySetting; -use Crater\Models\Currency; use Illuminate\Http\Request; class CompanyCurrencyCheckTransactionsController extends Controller @@ -18,13 +16,11 @@ class CompanyCurrencyCheckTransactionsController extends Controller */ public function __invoke(Request $request) { - $this->authorize('manage company', Company::find($request->header('company'))); + $company = Company::find($request->header('company')); - $companyCurrency = CompanySetting::getSetting('currency', $request->header('company')); + $this->authorize('manage company', $company); - $currency = Currency::find((int)$companyCurrency); - - if ($currency->checkTransactions()) { + if ($company->hasTransactions()) { return response()->json([ 'success' => false, ]); diff --git a/app/Http/Controllers/V1/Admin/Settings/UpdateCompanySettingsController.php b/app/Http/Controllers/V1/Admin/Settings/UpdateCompanySettingsController.php index eb6f1f2b..f2c879c6 100644 --- a/app/Http/Controllers/V1/Admin/Settings/UpdateCompanySettingsController.php +++ b/app/Http/Controllers/V1/Admin/Settings/UpdateCompanySettingsController.php @@ -6,7 +6,6 @@ use Crater\Http\Controllers\Controller; use Crater\Http\Requests\UpdateSettingsRequest; use Crater\Models\Company; use Crater\Models\CompanySetting; -use Crater\Models\Currency; class UpdateCompanySettingsController extends Controller { @@ -18,14 +17,13 @@ class UpdateCompanySettingsController extends Controller */ public function __invoke(UpdateSettingsRequest $request) { - $this->authorize('manage company', Company::find($request->header('company'))); + $company = Company::find($request->header('company')); + $this->authorize('manage company', $company); $companyCurrency = CompanySetting::getSetting('currency', $request->header('company')); - $data = $request->settings; - $currency = Currency::find((int)$companyCurrency); - if ($companyCurrency !== $data['currency'] && $currency->checkTransactions()) { + if ($companyCurrency !== $data['currency'] && $company->hasTransactions()) { return response()->json([ 'success' => false, 'message' => 'You cannot change currency once transaction is created.' diff --git a/app/Models/Company.php b/app/Models/Company.php index 2a3b2908..a0d9fddb 100644 --- a/app/Models/Company.php +++ b/app/Models/Company.php @@ -380,4 +380,21 @@ class Company extends Model implements HasMedia $model->taxes()->delete(); } } + + public function hasTransactions() + { + if ( + $this->customers()->exists() || + $this->items()->exists() || + $this->invoices()->exists() || + $this->estimates()->exists() || + $this->expenses()->exists() || + $this->payments()->exists() || + $this->recurringInvoices()->exists() + ) { + return true; + } + + return false; + } } diff --git a/app/Models/Currency.php b/app/Models/Currency.php index 5b8a3fb0..b852f114 100644 --- a/app/Models/Currency.php +++ b/app/Models/Currency.php @@ -12,56 +12,4 @@ class Currency extends Model protected $guarded = [ 'id' ]; - - public function customers() - { - return $this->hasMany(Customer::class); - } - - public function items() - { - return $this->hasMany(Item::class); - } - - public function invoices() - { - return $this->hasMany(Invoice::class); - } - - public function estimates() - { - return $this->hasMany(Estimate::class); - } - - public function expenses() - { - return $this->hasMany(Expense::class); - } - - public function payments() - { - return $this->hasMany(Payment::class); - } - - public function recurringInvoices() - { - return $this->hasMany(RecurringInvoice::class); - } - - public function checkTransactions() - { - if ( - $this->customers()->exists() || - $this->items()->exists() || - $this->invoices()->exists() || - $this->estimates()->exists() || - $this->expenses()->exists() || - $this->payments()->exists() || - $this->recurringInvoices()->exists() - ) { - return true; - } - - return false; - } } diff --git a/app/Models/RecurringInvoice.php b/app/Models/RecurringInvoice.php index 8f4bf94d..aa3ecabb 100644 --- a/app/Models/RecurringInvoice.php +++ b/app/Models/RecurringInvoice.php @@ -307,7 +307,7 @@ class RecurringInvoice extends Model $days = CompanySetting::getSetting('invoice_due_date_days', $this->company_id); - if ($days == "null") { + if (! $days || $days == "null") { $days = 7; }