diff --git a/app/Http/Controllers/V1/Admin/Settings/UpdateCompanySettingsController.php b/app/Http/Controllers/V1/Admin/Settings/UpdateCompanySettingsController.php index 128be75e7..84c419a26 100644 --- a/app/Http/Controllers/V1/Admin/Settings/UpdateCompanySettingsController.php +++ b/app/Http/Controllers/V1/Admin/Settings/UpdateCompanySettingsController.php @@ -23,11 +23,13 @@ public function __invoke(UpdateSettingsRequest $request) $companyCurrency = CompanySetting::getSetting('currency', $request->header('company')); $data = $request->settings; - if ($companyCurrency !== $data['currency'] && $company->hasTransactions()) { - return response()->json([ - 'success' => false, - 'message' => 'Cannot update company currency after transactions are created.' - ]); + if (array_key_exists('currency', $data)) { + if ($companyCurrency !== $data['currency'] && $company->hasTransactions()) { + return response()->json([ + 'success' => false, + 'message' => 'Cannot update company currency after transactions are created.' + ]); + } } CompanySetting::setSettings($data, $request->header('company')); diff --git a/app/Models/Invoice.php b/app/Models/Invoice.php index 464390af4..f4da3e678 100644 --- a/app/Models/Invoice.php +++ b/app/Models/Invoice.php @@ -498,6 +498,10 @@ public static function createItems($invoice, $invoiceItems) if (array_key_exists('taxes', $invoiceItem) && $invoiceItem['taxes']) { foreach ($invoiceItem['taxes'] as $tax) { $tax['company_id'] = $invoice->company_id; + $tax['exchnage_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']); 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 000000000..1c6c877f5 --- /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() + { + // + } +}