refs #434 money bill, invoice, revenue and payment fixed
This commit is contained in:
parent
b355cc17c9
commit
9d8029893f
@ -92,9 +92,6 @@ class Kernel extends HttpKernel
|
|||||||
'company.settings' => \App\Http\Middleware\LoadSettings::class,
|
'company.settings' => \App\Http\Middleware\LoadSettings::class,
|
||||||
'company.currencies' => \App\Http\Middleware\LoadCurrencies::class,
|
'company.currencies' => \App\Http\Middleware\LoadCurrencies::class,
|
||||||
'dateformat' => \App\Http\Middleware\DateFormat::class,
|
'dateformat' => \App\Http\Middleware\DateFormat::class,
|
||||||
'money.amount' => \App\Http\Middleware\MoneyAmount::class,
|
'money' => \App\Http\Middleware\Money::class,
|
||||||
'money.price' => \App\Http\Middleware\MoneyPrice::class,
|
|
||||||
'money.total' => \App\Http\Middleware\MoneyTax::class,
|
|
||||||
'money.tax' => \App\Http\Middleware\MoneyTotal::class,
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
49
app/Http/Middleware/Money.php
Normal file
49
app/Http/Middleware/Money.php
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Middleware;
|
||||||
|
|
||||||
|
use Closure;
|
||||||
|
|
||||||
|
class Money
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Handle an incoming request.
|
||||||
|
*
|
||||||
|
* @param \Illuminate\Http\Request $request
|
||||||
|
* @param \Closure $next
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public function handle($request, Closure $next)
|
||||||
|
{
|
||||||
|
if ($request->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);
|
||||||
|
}
|
||||||
|
}
|
@ -1,32 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Middleware;
|
|
||||||
|
|
||||||
use Closure;
|
|
||||||
|
|
||||||
class MoneyAmount
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Handle an incoming request.
|
|
||||||
*
|
|
||||||
* @param \Illuminate\Http\Request $request
|
|
||||||
* @param \Closure $next
|
|
||||||
* @return mixed
|
|
||||||
*/
|
|
||||||
public function handle($request, Closure $next)
|
|
||||||
{
|
|
||||||
if ($request->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);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,32 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Middleware;
|
|
||||||
|
|
||||||
use Closure;
|
|
||||||
|
|
||||||
class MoneyPrice
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Handle an incoming request.
|
|
||||||
*
|
|
||||||
* @param \Illuminate\Http\Request $request
|
|
||||||
* @param \Closure $next
|
|
||||||
* @return mixed
|
|
||||||
*/
|
|
||||||
public function handle($request, Closure $next)
|
|
||||||
{
|
|
||||||
if ($request->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);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,32 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Middleware;
|
|
||||||
|
|
||||||
use Closure;
|
|
||||||
|
|
||||||
class MoneyTax
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Handle an incoming request.
|
|
||||||
*
|
|
||||||
* @param \Illuminate\Http\Request $request
|
|
||||||
* @param \Closure $next
|
|
||||||
* @return mixed
|
|
||||||
*/
|
|
||||||
public function handle($request, Closure $next)
|
|
||||||
{
|
|
||||||
if ($request->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);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,32 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Middleware;
|
|
||||||
|
|
||||||
use Closure;
|
|
||||||
|
|
||||||
class MoneyTotal
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Handle an incoming request.
|
|
||||||
*
|
|
||||||
* @param \Illuminate\Http\Request $request
|
|
||||||
* @param \Closure $next
|
|
||||||
* @return mixed
|
|
||||||
*/
|
|
||||||
public function handle($request, Closure $next)
|
|
||||||
{
|
|
||||||
if ($request->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);
|
|
||||||
}
|
|
||||||
}
|
|
@ -42,7 +42,7 @@ class BillItem extends Model
|
|||||||
*/
|
*/
|
||||||
public function setPriceAttribute($value)
|
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)
|
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)
|
public function setTaxAttribute($value)
|
||||||
{
|
{
|
||||||
$this->attributes['tax'] = (double) money($value, $this->bill->currency_code)->getAmount();
|
$this->attributes['tax'] = (double) $value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -39,7 +39,7 @@ class BillTotal extends Model
|
|||||||
*/
|
*/
|
||||||
public function setAmountAttribute($value)
|
public function setAmountAttribute($value)
|
||||||
{
|
{
|
||||||
$this->attributes['amount'] = (double) money($value, $this->bill->currency_code)->getAmount();
|
$this->attributes['amount'] = (double) $value;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -147,7 +147,7 @@ class Invoice extends Model
|
|||||||
*/
|
*/
|
||||||
public function setAmountAttribute($value)
|
public function setAmountAttribute($value)
|
||||||
{
|
{
|
||||||
$this->attributes['amount'] = (double) money($value, $this->attributes['currency_code'])->getAmount();
|
$this->attributes['amount'] = (double) $value;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -42,7 +42,7 @@ class InvoiceItem extends Model
|
|||||||
*/
|
*/
|
||||||
public function setPriceAttribute($value)
|
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)
|
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)
|
public function setTaxAttribute($value)
|
||||||
{
|
{
|
||||||
$this->attributes['tax'] = (double) money($value, $this->invoice->currency_code)->getAmount();
|
$this->attributes['tax'] = (double) $value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -39,7 +39,7 @@ class InvoiceTotal extends Model
|
|||||||
*/
|
*/
|
||||||
public function setAmountAttribute($value)
|
public function setAmountAttribute($value)
|
||||||
{
|
{
|
||||||
$this->attributes['amount'] = (double) money($value, $this->invoice->currency_code)->getAmount();
|
$this->attributes['amount'] = (double) $value;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -53,15 +53,15 @@ Route::group(['middleware' => 'language'], function () {
|
|||||||
Route::get('invoices/{invoice}/print', 'Incomes\Invoices@printInvoice');
|
Route::get('invoices/{invoice}/print', 'Incomes\Invoices@printInvoice');
|
||||||
Route::get('invoices/{invoice}/pdf', 'Incomes\Invoices@pdfInvoice');
|
Route::get('invoices/{invoice}/pdf', 'Incomes\Invoices@pdfInvoice');
|
||||||
Route::get('invoices/{invoice}/duplicate', 'Incomes\Invoices@duplicate');
|
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::delete('invoices/payment/{payment}', 'Incomes\Invoices@paymentDestroy');
|
||||||
Route::post('invoices/import', 'Incomes\Invoices@import')->name('invoices.import');
|
Route::post('invoices/import', 'Incomes\Invoices@import')->name('invoices.import');
|
||||||
Route::get('invoices/export', 'Incomes\Invoices@export')->name('invoices.export');
|
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::get('revenues/{revenue}/duplicate', 'Incomes\Revenues@duplicate');
|
||||||
Route::post('revenues/import', 'Incomes\Revenues@import')->name('revenues.import');
|
Route::post('revenues/import', 'Incomes\Revenues@import')->name('revenues.import');
|
||||||
Route::get('revenues/export', 'Incomes\Revenues@export')->name('revenues.export');
|
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/currency', 'Incomes\Customers@currency');
|
||||||
Route::get('customers/{customer}/duplicate', 'Incomes\Customers@duplicate');
|
Route::get('customers/{customer}/duplicate', 'Incomes\Customers@duplicate');
|
||||||
Route::post('customers/customer', 'Incomes\Customers@customer');
|
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}/print', 'Expenses\Bills@printBill');
|
||||||
Route::get('bills/{bill}/pdf', 'Expenses\Bills@pdfBill');
|
Route::get('bills/{bill}/pdf', 'Expenses\Bills@pdfBill');
|
||||||
Route::get('bills/{bill}/duplicate', 'Expenses\Bills@duplicate');
|
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::delete('bills/payment/{payment}', 'Expenses\Bills@paymentDestroy');
|
||||||
Route::post('bills/import', 'Expenses\Bills@import')->name('bills.import');
|
Route::post('bills/import', 'Expenses\Bills@import')->name('bills.import');
|
||||||
Route::get('bills/export', 'Expenses\Bills@export')->name('bills.export');
|
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::get('payments/{payment}/duplicate', 'Expenses\Payments@duplicate');
|
||||||
Route::post('payments/import', 'Expenses\Payments@import')->name('payments.import');
|
Route::post('payments/import', 'Expenses\Payments@import')->name('payments.import');
|
||||||
Route::get('payments/export', 'Expenses\Payments@export')->name('payments.export');
|
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/currency', 'Expenses\Vendors@currency');
|
||||||
Route::get('vendors/{vendor}/duplicate', 'Expenses\Vendors@duplicate');
|
Route::get('vendors/{vendor}/duplicate', 'Expenses\Vendors@duplicate');
|
||||||
Route::post('vendors/vendor', 'Expenses\Vendors@vendor');
|
Route::post('vendors/vendor', 'Expenses\Vendors@vendor');
|
||||||
|
Loading…
x
Reference in New Issue
Block a user