refs #434
This commit is contained in:
parent
b04e6d1ce5
commit
bfdd3b21dc
@ -142,6 +142,7 @@ class Bills extends Controller
|
||||
$bill_item = [];
|
||||
$bill_item['company_id'] = $request['company_id'];
|
||||
$bill_item['bill_id'] = $bill->id;
|
||||
$bill_item['currency_code'] = $request['currency_code'];
|
||||
|
||||
if ($request['item']) {
|
||||
foreach ($request['item'] as $item) {
|
||||
@ -214,7 +215,9 @@ class Bills extends Controller
|
||||
$s_total = $s_total - $s_discount;
|
||||
}
|
||||
|
||||
$request['amount'] = $s_total + $tax_total;
|
||||
$amount = $s_total + $tax_total;
|
||||
|
||||
$request['amount'] = money($amount, $request['currency_code'])->getAmount();
|
||||
|
||||
$bill->update($request->input());
|
||||
|
||||
@ -354,6 +357,7 @@ class Bills extends Controller
|
||||
$bill_item = [];
|
||||
$bill_item['company_id'] = $request['company_id'];
|
||||
$bill_item['bill_id'] = $bill->id;
|
||||
$bill_item['currency_code'] = $request['currency_code'];
|
||||
|
||||
if ($request['item']) {
|
||||
BillItem::where('bill_id', $bill->id)->delete();
|
||||
@ -420,7 +424,9 @@ class Bills extends Controller
|
||||
$s_total = $s_total - $s_discount;
|
||||
}
|
||||
|
||||
$request['amount'] = $s_total + $tax_total;
|
||||
$amount = $s_total + $tax_total;
|
||||
|
||||
$request['amount'] = money($amount, $request['currency_code'])->getAmount();
|
||||
|
||||
$bill->update($request->input());
|
||||
|
||||
@ -488,10 +494,10 @@ class Bills extends Controller
|
||||
*/
|
||||
public function export()
|
||||
{
|
||||
\Excel::create('bills', function($excel) {
|
||||
\Excel::create('bills', function ($excel) {
|
||||
$bills = Bill::with(['items', 'histories', 'payments', 'totals'])->filter(request()->input())->get();
|
||||
|
||||
$excel->sheet('invoices', function($sheet) use ($bills) {
|
||||
$excel->sheet('invoices', function ($sheet) use ($bills) {
|
||||
$sheet->fromModel($bills->makeHidden([
|
||||
'company_id', 'parent_id', 'created_at', 'updated_at', 'deleted_at', 'attachment', 'discount', 'items', 'histories', 'payments', 'totals', 'media'
|
||||
]));
|
||||
@ -499,10 +505,11 @@ class Bills extends Controller
|
||||
|
||||
$tables = ['items', 'histories', 'payments', 'totals'];
|
||||
foreach ($tables as $table) {
|
||||
$excel->sheet('bill_' . $table, function($sheet) use ($bills, $table) {
|
||||
$excel->sheet('bill_' . $table, function ($sheet) use ($bills, $table) {
|
||||
$hidden_fields = ['id', 'company_id', 'created_at', 'updated_at', 'deleted_at', 'title'];
|
||||
|
||||
$i = 1;
|
||||
|
||||
foreach ($bills as $bill) {
|
||||
$model = $bill->$table->makeHidden($hidden_fields);
|
||||
|
||||
@ -750,6 +757,7 @@ class Bills extends Controller
|
||||
'code' => 'sub_total',
|
||||
'name' => 'bills.sub_total',
|
||||
'amount' => $sub_total,
|
||||
'currency_code' => $bill->currency_code,
|
||||
'sort_order' => $sort_order,
|
||||
]);
|
||||
|
||||
@ -763,6 +771,7 @@ class Bills extends Controller
|
||||
'code' => 'discount',
|
||||
'name' => 'bills.discount',
|
||||
'amount' => $discount_total,
|
||||
'currency_code' => $bill->currency_code,
|
||||
'sort_order' => $sort_order,
|
||||
]);
|
||||
|
||||
@ -781,6 +790,7 @@ class Bills extends Controller
|
||||
'code' => 'tax',
|
||||
'name' => $tax['name'],
|
||||
'amount' => $tax['amount'],
|
||||
'currency_code' => $bill->currency_code,
|
||||
'sort_order' => $sort_order,
|
||||
]);
|
||||
|
||||
@ -795,6 +805,7 @@ class Bills extends Controller
|
||||
'code' => 'total',
|
||||
'name' => 'bills.total',
|
||||
'amount' => $sub_total + $tax_total,
|
||||
'currency_code' => $bill->currency_code,
|
||||
'sort_order' => $sort_order,
|
||||
]);
|
||||
}
|
||||
|
@ -95,5 +95,9 @@ class Kernel extends HttpKernel
|
||||
'dateformat.due_at' => \App\Http\Middleware\DateFormatDueAt::class,
|
||||
'dateformat.billed_at' => \App\Http\Middleware\DateFormatBilledAt::class,
|
||||
'dateformat.invoiced_at' => \App\Http\Middleware\DateFormatInvoicedAt::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,
|
||||
];
|
||||
}
|
||||
|
32
app/Http/Middleware/MoneyAmount.php
Normal file
32
app/Http/Middleware/MoneyAmount.php
Normal file
@ -0,0 +1,32 @@
|
||||
<?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);
|
||||
}
|
||||
}
|
32
app/Http/Middleware/MoneyPrice.php
Normal file
32
app/Http/Middleware/MoneyPrice.php
Normal file
@ -0,0 +1,32 @@
|
||||
<?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);
|
||||
}
|
||||
}
|
32
app/Http/Middleware/MoneyTax.php
Normal file
32
app/Http/Middleware/MoneyTax.php
Normal file
@ -0,0 +1,32 @@
|
||||
<?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);
|
||||
}
|
||||
}
|
32
app/Http/Middleware/MoneyTotal.php
Normal file
32
app/Http/Middleware/MoneyTotal.php
Normal file
@ -0,0 +1,32 @@
|
||||
<?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);
|
||||
}
|
||||
}
|
@ -145,7 +145,7 @@ class Bill extends Model
|
||||
*/
|
||||
public function setAmountAttribute($value)
|
||||
{
|
||||
$this->attributes['amount'] = (double) money($value, $this->attributes['currency_code'])->getAmount();
|
||||
$this->attributes['amount'] = (double) $value;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -61,7 +61,7 @@ class BillPayment extends Model
|
||||
*/
|
||||
public function setAmountAttribute($value)
|
||||
{
|
||||
$this->attributes['amount'] = (double) money($value, $this->account->currency_code)->getAmount();
|
||||
$this->attributes['amount'] = (double) $value;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -113,7 +113,7 @@ class Payment extends Model
|
||||
*/
|
||||
public function setAmountAttribute($value)
|
||||
{
|
||||
$this->attributes['amount'] = (double) money($value, $this->attributes['currency_code'])->getAmount();
|
||||
$this->attributes['amount'] = (double) $value;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -61,7 +61,7 @@ class InvoicePayment extends Model
|
||||
*/
|
||||
public function setAmountAttribute($value)
|
||||
{
|
||||
$this->attributes['amount'] = (double) money($value, $this->account->currency_code)->getAmount();
|
||||
$this->attributes['amount'] = (double) $value;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -119,7 +119,7 @@ class Revenue extends Model
|
||||
*/
|
||||
public function setAmountAttribute($value)
|
||||
{
|
||||
$this->attributes['amount'] = (double) money($value, $this->attributes['currency_code'])->getAmount();
|
||||
$this->attributes['amount'] = (double) $value;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -53,7 +53,7 @@ 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.paid_at'])->name('invoice.payment');
|
||||
Route::post('invoices/payment', 'Incomes\Invoices@payment')->middleware(['dateformat.paid_at', 'money.amount'])->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');
|
||||
@ -61,7 +61,7 @@ Route::group(['middleware' => 'language'], function () {
|
||||
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.paid_at']]);
|
||||
Route::resource('revenues', 'Incomes\Revenues', ['middleware' => ['dateformat.paid_at', 'money.amount']]);
|
||||
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.paid_at'])->name('bill.payment');
|
||||
Route::post('bills/payment', 'Expenses\Bills@payment')->middleware(['dateformat.paid_at', 'money.amount'])->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.billed_at', 'dateformat.due_at']]);
|
||||
Route::resource('bills', 'Expenses\Bills', ['middleware' => ['dateformat.billed_at', 'dateformat.due_at', 'money.price', 'money.tax', 'money.total']]);
|
||||
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.paid_at']]);
|
||||
Route::resource('payments', 'Expenses\Payments', ['middleware' => ['dateformat.paid_at', 'money.amount']]);
|
||||
Route::get('vendors/currency', 'Expenses\Vendors@currency');
|
||||
Route::get('vendors/{vendor}/duplicate', 'Expenses\Vendors@duplicate');
|
||||
Route::post('vendors/vendor', 'Expenses\Vendors@vendor');
|
||||
|
Loading…
x
Reference in New Issue
Block a user