diff --git a/app/Http/Controllers/V1/Admin/Settings/UpdateCompanySettingsController.php b/app/Http/Controllers/V1/Admin/Settings/UpdateCompanySettingsController.php index 2589e4f8..4bfcec8f 100644 --- a/app/Http/Controllers/V1/Admin/Settings/UpdateCompanySettingsController.php +++ b/app/Http/Controllers/V1/Admin/Settings/UpdateCompanySettingsController.php @@ -25,7 +25,7 @@ class UpdateCompanySettingsController extends Controller if ( Arr::exists($data, 'currency') && - (CompanySetting::getSetting('currency', $company->id) !== $data['currency']) && + (CompanySetting::getSetting('currency', $company->id) !== $data['currency']) && $company->hasTransactions() ) { return response()->json([ diff --git a/app/Models/Invoice.php b/app/Models/Invoice.php index 464390af..bef7c61c 100644 --- a/app/Models/Invoice.php +++ b/app/Models/Invoice.php @@ -498,6 +498,10 @@ class Invoice extends Model implements HasMedia if (array_key_exists('taxes', $invoiceItem) && $invoiceItem['taxes']) { foreach ($invoiceItem['taxes'] as $tax) { $tax['company_id'] = $invoice->company_id; + $tax['exchange_rate'] = $invoice->exchange_rate; + $tax['base_amount'] = $tax['amount'] * $exchange_rate; + $tax['currency_id'] = $invoice->currency_id; + if (gettype($tax['amount']) !== "NULL") { if (array_key_exists('recurring_invoice_id', $invoiceItem)) { unset($invoiceItem['recurring_invoice_id']); @@ -520,7 +524,7 @@ class Invoice extends Model implements HasMedia foreach ($taxes as $tax) { $tax['company_id'] = $invoice->company_id; - $tax['exchnage_rate'] = $invoice->exchange_rate; + $tax['exchange_rate'] = $invoice->exchange_rate; $tax['base_amount'] = $tax['amount'] * $exchange_rate; $tax['currency_id'] = $invoice->currency_id; diff --git a/database/migrations/2022_03_04_051438_calculate_base_values_for_invoice_items.php b/database/migrations/2022_03_04_051438_calculate_base_values_for_invoice_items.php new file mode 100644 index 00000000..1c6c877f --- /dev/null +++ b/database/migrations/2022_03_04_051438_calculate_base_values_for_invoice_items.php @@ -0,0 +1,38 @@ +get(); + + if ($taxes) { + $taxes->map(function ($tax) { + $invoiceItem = InvoiceItem::find($tax->invoice_item_id); + $exchange_rate = $invoiceItem->exchange_rate; + $tax->exchange_rate = $exchange_rate; + $tax->base_amount = $tax->amount * $exchange_rate; + $tax->save(); + }); + } + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + // + } +}