diff --git a/app/Http/Controllers/V1/Admin/Settings/CompanyCurrencyTransactionController.php b/app/Http/Controllers/V1/Admin/Settings/CompanyCurrencyTransactionController.php new file mode 100644 index 00000000..0977de23 --- /dev/null +++ b/app/Http/Controllers/V1/Admin/Settings/CompanyCurrencyTransactionController.php @@ -0,0 +1,45 @@ +authorize('manage company', Company::find($request->header('company'))); + + $companyCurrency = CompanySetting::getSetting('currency', $request->header('company')); + + $currency = Currency::find((int)$companyCurrency); + + if ( + $currency->customers()->exists() || + $currency->items()->exists() || + $currency->invoices()->exists() || + $currency->estimates()->exists() || + $currency->expenses()->exists() || + $currency->payments()->exists() || + $currency->recurringInvoices()->exists() + ) { + return response()->json([ + 'success' => false, + ]); + } + + return response()->json([ + 'success' => true, + ]); + } +} diff --git a/app/Models/Currency.php b/app/Models/Currency.php index b852f114..f777585c 100644 --- a/app/Models/Currency.php +++ b/app/Models/Currency.php @@ -12,4 +12,39 @@ 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); + } } diff --git a/routes/api.php b/routes/api.php index 784760ea..d1c63fc9 100644 --- a/routes/api.php +++ b/routes/api.php @@ -67,6 +67,7 @@ use Crater\Http\Controllers\V1\Admin\RecurringInvoice\RecurringInvoiceFrequencyC use Crater\Http\Controllers\V1\Admin\Role\AbilitiesController; use Crater\Http\Controllers\V1\Admin\Role\RolesController; use Crater\Http\Controllers\V1\Admin\Settings\CompanyController; +use Crater\Http\Controllers\V1\Admin\Settings\CompanyCurrencyTransactionController; use Crater\Http\Controllers\V1\Admin\Settings\DiskController; use Crater\Http\Controllers\V1\Admin\Settings\GetCompanyMailConfigurationController; use Crater\Http\Controllers\V1\Admin\Settings\GetCompanySettingsController; @@ -394,6 +395,8 @@ Route::prefix('/v1')->group(function () { Route::post('/settings', UpdateSettingsController::class); + Route::get('/company-currency-transaction', CompanyCurrencyTransactionController::class); + // Mails //----------------------------------