refs #434 money bill, invoice, revenue and payment fixed

This commit is contained in:
cuneytsenturk 2018-08-07 12:30:21 +03:00
parent b355cc17c9
commit 9d8029893f
12 changed files with 65 additions and 147 deletions

View File

@ -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,
]; ];
} }

View 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);
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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;
} }
} }

View File

@ -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;
} }
/** /**

View File

@ -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;
} }
/** /**

View File

@ -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;
} }
} }

View File

@ -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;
} }
/** /**

View File

@ -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');