close #663 Fixed: Invoice/Bill add item row missing currency code broken

This commit is contained in:
cuneytsenturk 2018-12-04 11:05:15 +03:00
parent 1fcd5ad4ae
commit 2e03e3819f
4 changed files with 104 additions and 48 deletions

View File

@ -7,6 +7,7 @@ use App\Events\BillCreated;
use App\Events\BillUpdated; use App\Events\BillUpdated;
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
use App\Http\Requests\Expense\Bill as Request; use App\Http\Requests\Expense\Bill as Request;
use App\Http\Requests\Expense\BillAddItem as ItemRequest;
use App\Http\Requests\Expense\BillPayment as PaymentRequest; use App\Http\Requests\Expense\BillPayment as PaymentRequest;
use App\Jobs\Expense\CreateBill; use App\Jobs\Expense\CreateBill;
use App\Jobs\Expense\UpdateBill; use App\Jobs\Expense\UpdateBill;
@ -33,7 +34,6 @@ use App\Utilities\ImportFile;
use App\Utilities\Modules; use App\Utilities\Modules;
use Date; use Date;
use File; use File;
use Illuminate\Http\Request as ItemRequest;
use Image; use Image;
use Storage; use Storage;
@ -471,35 +471,32 @@ class Bills extends Controller
public function addItem(ItemRequest $request) public function addItem(ItemRequest $request)
{ {
if ($request['item_row']) { $item_row = $request['item_row'];
$item_row = $request['item_row']; $currency_code = $request['currency_code'];
$taxes = Tax::enabled()->orderBy('rate')->get()->pluck('title', 'id'); $taxes = Tax::enabled()->orderBy('rate')->get()->pluck('title', 'id');
$currency = Currency::where('code', '=', $request['currency_code'])->first(); $currency = Currency::where('code', '=', $currency_code)->first();
// it should be integer for amount mask if (empty($currency)) {
$currency->precision = (int) $currency->precision; $currency = Currency::where('code', '=', setting('general.default_currency'))->first();
$html = view('expenses.bills.item', compact('item_row', 'taxes', 'currency'))->render();
return response()->json([
'success' => true,
'error' => false,
'data' => [
'currency' => $currency
],
'message' => 'null',
'html' => $html,
]);
} }
if ($currency) {
// it should be integer for amount mask
$currency->precision = (int) $currency->precision;
}
$html = view('expenses.bills.item', compact('item_row', 'taxes', 'currency'))->render();
return response()->json([ return response()->json([
'success' => false, 'success' => true,
'error' => true, 'error' => false,
'data' => 'null', 'data' => [
'message' => trans('issue'), 'currency' => $currency
'html' => 'null', ],
'message' => 'null',
'html' => $html,
]); ]);
} }

View File

@ -7,6 +7,7 @@ use App\Events\InvoicePrinting;
use App\Events\InvoiceUpdated; use App\Events\InvoiceUpdated;
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
use App\Http\Requests\Income\Invoice as Request; use App\Http\Requests\Income\Invoice as Request;
use App\Http\Requests\Income\InvoiceAddItem as ItemRequest;
use App\Http\Requests\Income\InvoicePayment as PaymentRequest; use App\Http\Requests\Income\InvoicePayment as PaymentRequest;
use App\Jobs\Income\CreateInvoice; use App\Jobs\Income\CreateInvoice;
use App\Jobs\Income\UpdateInvoice; use App\Jobs\Income\UpdateInvoice;
@ -37,7 +38,6 @@ use App\Utilities\ImportFile;
use App\Utilities\Modules; use App\Utilities\Modules;
use Date; use Date;
use File; use File;
use Illuminate\Http\Request as ItemRequest;
use Image; use Image;
use Storage; use Storage;
use SignedUrl; use SignedUrl;
@ -600,35 +600,32 @@ class Invoices extends Controller
public function addItem(ItemRequest $request) public function addItem(ItemRequest $request)
{ {
if ($request['item_row']) { $item_row = $request['item_row'];
$item_row = $request['item_row']; $currency_code = $request['currency_code'];
$taxes = Tax::enabled()->orderBy('rate')->get()->pluck('title', 'id'); $taxes = Tax::enabled()->orderBy('rate')->get()->pluck('title', 'id');
$currency = Currency::where('code', '=', $request['currency_code'])->first(); $currency = Currency::where('code', '=', $currency_code)->first();
// it should be integer for amount mask if (empty($currency)) {
$currency->precision = (int) $currency->precision; $currency = Currency::where('code', '=', setting('general.default_currency'))->first();
$html = view('incomes.invoices.item', compact('item_row', 'taxes', 'currency'))->render();
return response()->json([
'success' => true,
'error' => false,
'data' => [
'currency' => $currency
],
'message' => 'null',
'html' => $html,
]);
} }
if ($currency) {
// it should be integer for amount mask
$currency->precision = (int) $currency->precision;
}
$html = view('incomes.invoices.item', compact('item_row', 'taxes', 'currency'))->render();
return response()->json([ return response()->json([
'success' => false, 'success' => true,
'error' => true, 'error' => false,
'data' => 'null', 'data' => [
'message' => trans('issue'), 'currency' => $currency
'html' => 'null', ],
'message' => 'null',
'html' => $html,
]); ]);
} }

View File

@ -0,0 +1,31 @@
<?php
namespace App\Http\Requests\Expense;
use App\Http\Requests\Request;
class BillAddItem extends Request
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'item_row' => 'required|integer',
'currency_code' => 'required|string|currency',
];
}
}

View File

@ -0,0 +1,31 @@
<?php
namespace App\Http\Requests\Income;
use App\Http\Requests\Request;
class InvoiceAddItem extends Request
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'item_row' => 'required|integer',
'currency_code' => 'required|string|currency',
];
}
}