diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php index 2d8a9e4ba..7ce07c8a5 100644 --- a/app/Http/Kernel.php +++ b/app/Http/Kernel.php @@ -92,9 +92,6 @@ class Kernel extends HttpKernel 'company.settings' => \App\Http\Middleware\LoadSettings::class, 'company.currencies' => \App\Http\Middleware\LoadCurrencies::class, 'dateformat' => \App\Http\Middleware\DateFormat::class, - 'money.amount' => \App\Http\Middleware\MoneyAmount::class, - 'money.price' => \App\Http\Middleware\MoneyPrice::class, - 'money.total' => \App\Http\Middleware\MoneyTax::class, - 'money.tax' => \App\Http\Middleware\MoneyTotal::class, + 'money' => \App\Http\Middleware\Money::class, ]; } diff --git a/app/Http/Middleware/Money.php b/app/Http/Middleware/Money.php new file mode 100644 index 000000000..e8479b910 --- /dev/null +++ b/app/Http/Middleware/Money.php @@ -0,0 +1,49 @@ +method() == 'POST' || $request->method() == 'PATCH') { + $amount = $request->get('amount'); + $bill_number = $request->get('bill_number'); + $invoice_number = $request->get('invoice_number'); + $currency_code = $request->get('currency_code'); + + if (empty($currency_code)) { + $currency_code = setting('general.default_currency'); + } + + if (!empty($amount)) { + $amount = money($request->get('amount'), $currency_code)->getAmount(); + + $request->request->set('amount', $amount); + } + + if (isset($bill_number) || isset($invoice_number)) { + $items = $request->get('item'); + + if (!empty($items)) { + foreach ($items as $key => $item) { + $items[$key]['price'] = money($item['price'], $currency_code)->getAmount(); + } + + $request->request->set('item', $items); + } + } + } + + return $next($request); + } +} diff --git a/app/Http/Middleware/MoneyAmount.php b/app/Http/Middleware/MoneyAmount.php deleted file mode 100644 index 9f9136d82..000000000 --- a/app/Http/Middleware/MoneyAmount.php +++ /dev/null @@ -1,32 +0,0 @@ -method() == 'POST' || $request->method() == 'PATCH') { - $currency_code = $request->get('currency_code'); - - if (empty($currency_code)) { - $currency_code = setting('general.default_currency'); - } - - $amount = money($request->get('amount'), $currency_code)->getAmount(); - - $request->request->set('amount', $amount); - } - - return $next($request); - } -} diff --git a/app/Http/Middleware/MoneyPrice.php b/app/Http/Middleware/MoneyPrice.php deleted file mode 100644 index 70aba95d9..000000000 --- a/app/Http/Middleware/MoneyPrice.php +++ /dev/null @@ -1,32 +0,0 @@ -method() == 'POST' || $request->method() == 'PATCH') { - $currency_code = $request->get('currency_code'); - - if (empty($currency_code)) { - $currency_code = setting('general.default_currency'); - } - - $price = money($request->get('price'), $currency_code)->getAmount(); - - $request->request->set('price', $price); - } - - return $next($request); - } -} diff --git a/app/Http/Middleware/MoneyTax.php b/app/Http/Middleware/MoneyTax.php deleted file mode 100644 index 3cf2e67cd..000000000 --- a/app/Http/Middleware/MoneyTax.php +++ /dev/null @@ -1,32 +0,0 @@ -method() == 'POST' || $request->method() == 'PATCH') { - $currency_code = $request->get('currency_code'); - - if (empty($currency_code)) { - $currency_code = setting('general.default_currency'); - } - - $tax = money($request->get('tax'), $currency_code)->getAmount(); - - $request->request->set('tax', $tax); - } - - return $next($request); - } -} diff --git a/app/Http/Middleware/MoneyTotal.php b/app/Http/Middleware/MoneyTotal.php deleted file mode 100644 index 9d3306f30..000000000 --- a/app/Http/Middleware/MoneyTotal.php +++ /dev/null @@ -1,32 +0,0 @@ -method() == 'POST' || $request->method() == 'PATCH') { - $currency_code = $request->get('currency_code'); - - if (empty($currency_code)) { - $currency_code = setting('general.default_currency'); - } - - $total = money($request->get('total'), $currency_code)->getAmount(); - - $request->request->set('total', $total); - } - - return $next($request); - } -} diff --git a/app/Models/Expense/BillItem.php b/app/Models/Expense/BillItem.php index a58008b19..ae2c026c0 100644 --- a/app/Models/Expense/BillItem.php +++ b/app/Models/Expense/BillItem.php @@ -42,7 +42,7 @@ class BillItem extends Model */ public function setPriceAttribute($value) { - $this->attributes['price'] = (double) money($value, $this->bill->currency_code)->getAmount(); + $this->attributes['price'] = (double) $value; } /** @@ -53,7 +53,7 @@ class BillItem extends Model */ public function setTotalAttribute($value) { - $this->attributes['total'] = (double) money($value, $this->bill->currency_code)->getAmount(); + $this->attributes['total'] = (double) $value; } /** @@ -64,6 +64,6 @@ class BillItem extends Model */ public function setTaxAttribute($value) { - $this->attributes['tax'] = (double) money($value, $this->bill->currency_code)->getAmount(); + $this->attributes['tax'] = (double) $value; } } diff --git a/app/Models/Expense/BillTotal.php b/app/Models/Expense/BillTotal.php index be19b1dd3..12b96e5b9 100644 --- a/app/Models/Expense/BillTotal.php +++ b/app/Models/Expense/BillTotal.php @@ -39,7 +39,7 @@ class BillTotal extends Model */ public function setAmountAttribute($value) { - $this->attributes['amount'] = (double) money($value, $this->bill->currency_code)->getAmount(); + $this->attributes['amount'] = (double) $value; } /** diff --git a/app/Models/Income/Invoice.php b/app/Models/Income/Invoice.php index 50896611f..f07e31eb1 100644 --- a/app/Models/Income/Invoice.php +++ b/app/Models/Income/Invoice.php @@ -147,7 +147,7 @@ class Invoice extends Model */ public function setAmountAttribute($value) { - $this->attributes['amount'] = (double) money($value, $this->attributes['currency_code'])->getAmount(); + $this->attributes['amount'] = (double) $value; } /** diff --git a/app/Models/Income/InvoiceItem.php b/app/Models/Income/InvoiceItem.php index 4ba73b45d..c6e50c9e8 100644 --- a/app/Models/Income/InvoiceItem.php +++ b/app/Models/Income/InvoiceItem.php @@ -42,7 +42,7 @@ class InvoiceItem extends Model */ public function setPriceAttribute($value) { - $this->attributes['price'] = (double) money($value, $this->invoice->currency_code)->getAmount(); + $this->attributes['price'] = (double) $value; } /** @@ -53,7 +53,7 @@ class InvoiceItem extends Model */ public function setTotalAttribute($value) { - $this->attributes['total'] = (double) money($value, $this->invoice->currency_code)->getAmount(); + $this->attributes['total'] = (double) $value; } /** @@ -64,6 +64,6 @@ class InvoiceItem extends Model */ public function setTaxAttribute($value) { - $this->attributes['tax'] = (double) money($value, $this->invoice->currency_code)->getAmount(); + $this->attributes['tax'] = (double) $value; } } diff --git a/app/Models/Income/InvoiceTotal.php b/app/Models/Income/InvoiceTotal.php index 700b08e54..30f15493f 100644 --- a/app/Models/Income/InvoiceTotal.php +++ b/app/Models/Income/InvoiceTotal.php @@ -39,7 +39,7 @@ class InvoiceTotal extends Model */ public function setAmountAttribute($value) { - $this->attributes['amount'] = (double) money($value, $this->invoice->currency_code)->getAmount(); + $this->attributes['amount'] = (double) $value; } /** diff --git a/routes/web.php b/routes/web.php index a22ce34c9..ff81e17fc 100644 --- a/routes/web.php +++ b/routes/web.php @@ -53,15 +53,15 @@ Route::group(['middleware' => 'language'], function () { Route::get('invoices/{invoice}/print', 'Incomes\Invoices@printInvoice'); Route::get('invoices/{invoice}/pdf', 'Incomes\Invoices@pdfInvoice'); Route::get('invoices/{invoice}/duplicate', 'Incomes\Invoices@duplicate'); - Route::post('invoices/payment', 'Incomes\Invoices@payment')->middleware(['dateformat', 'money.amount'])->name('invoice.payment'); + Route::post('invoices/payment', 'Incomes\Invoices@payment')->middleware(['dateformat', 'money'])->name('invoice.payment'); Route::delete('invoices/payment/{payment}', 'Incomes\Invoices@paymentDestroy'); Route::post('invoices/import', 'Incomes\Invoices@import')->name('invoices.import'); Route::get('invoices/export', 'Incomes\Invoices@export')->name('invoices.export'); - Route::resource('invoices', 'Incomes\Invoices', ['middleware' => ['dateformat']]); + Route::resource('invoices', 'Incomes\Invoices', ['middleware' => ['dateformat', 'money']]); Route::get('revenues/{revenue}/duplicate', 'Incomes\Revenues@duplicate'); Route::post('revenues/import', 'Incomes\Revenues@import')->name('revenues.import'); Route::get('revenues/export', 'Incomes\Revenues@export')->name('revenues.export'); - Route::resource('revenues', 'Incomes\Revenues', ['middleware' => ['dateformat', 'money.amount']]); + Route::resource('revenues', 'Incomes\Revenues', ['middleware' => ['dateformat', 'money']]); Route::get('customers/currency', 'Incomes\Customers@currency'); Route::get('customers/{customer}/duplicate', 'Incomes\Customers@duplicate'); Route::post('customers/customer', 'Incomes\Customers@customer'); @@ -78,15 +78,15 @@ Route::group(['middleware' => 'language'], function () { Route::get('bills/{bill}/print', 'Expenses\Bills@printBill'); Route::get('bills/{bill}/pdf', 'Expenses\Bills@pdfBill'); Route::get('bills/{bill}/duplicate', 'Expenses\Bills@duplicate'); - Route::post('bills/payment', 'Expenses\Bills@payment')->middleware(['dateformat', 'money.amount'])->name('bill.payment'); + Route::post('bills/payment', 'Expenses\Bills@payment')->middleware(['dateformat', 'money'])->name('bill.payment'); Route::delete('bills/payment/{payment}', 'Expenses\Bills@paymentDestroy'); Route::post('bills/import', 'Expenses\Bills@import')->name('bills.import'); Route::get('bills/export', 'Expenses\Bills@export')->name('bills.export'); - Route::resource('bills', 'Expenses\Bills', ['middleware' => ['dateformat', 'money.price', 'money.tax', 'money.total']]); + Route::resource('bills', 'Expenses\Bills', ['middleware' => ['dateformat', 'money']]); Route::get('payments/{payment}/duplicate', 'Expenses\Payments@duplicate'); Route::post('payments/import', 'Expenses\Payments@import')->name('payments.import'); Route::get('payments/export', 'Expenses\Payments@export')->name('payments.export'); - Route::resource('payments', 'Expenses\Payments', ['middleware' => ['dateformat', 'money.amount']]); + Route::resource('payments', 'Expenses\Payments', ['middleware' => ['dateformat', 'money']]); Route::get('vendors/currency', 'Expenses\Vendors@currency'); Route::get('vendors/{vendor}/duplicate', 'Expenses\Vendors@duplicate'); Route::post('vendors/vendor', 'Expenses\Vendors@vendor');