refs #434
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user