From 2e03e3819fed30f738d7a29782be5f8e0d879b90 Mon Sep 17 00:00:00 2001 From: cuneytsenturk Date: Tue, 4 Dec 2018 11:05:15 +0300 Subject: [PATCH] close #663 Fixed: Invoice/Bill add item row missing currency code broken --- app/Http/Controllers/Expenses/Bills.php | 45 ++++++++++----------- app/Http/Controllers/Incomes/Invoices.php | 45 ++++++++++----------- app/Http/Requests/Expense/BillAddItem.php | 31 ++++++++++++++ app/Http/Requests/Income/InvoiceAddItem.php | 31 ++++++++++++++ 4 files changed, 104 insertions(+), 48 deletions(-) create mode 100644 app/Http/Requests/Expense/BillAddItem.php create mode 100644 app/Http/Requests/Income/InvoiceAddItem.php diff --git a/app/Http/Controllers/Expenses/Bills.php b/app/Http/Controllers/Expenses/Bills.php index cbd5c5ef6..9fa40c25f 100644 --- a/app/Http/Controllers/Expenses/Bills.php +++ b/app/Http/Controllers/Expenses/Bills.php @@ -7,6 +7,7 @@ use App\Events\BillCreated; use App\Events\BillUpdated; use App\Http\Controllers\Controller; 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\Jobs\Expense\CreateBill; use App\Jobs\Expense\UpdateBill; @@ -33,7 +34,6 @@ use App\Utilities\ImportFile; use App\Utilities\Modules; use Date; use File; -use Illuminate\Http\Request as ItemRequest; use Image; use Storage; @@ -471,35 +471,32 @@ class Bills extends Controller 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 - $currency->precision = (int) $currency->precision; - - $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 (empty($currency)) { + $currency = Currency::where('code', '=', setting('general.default_currency'))->first(); } + 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([ - 'success' => false, - 'error' => true, - 'data' => 'null', - 'message' => trans('issue'), - 'html' => 'null', + 'success' => true, + 'error' => false, + 'data' => [ + 'currency' => $currency + ], + 'message' => 'null', + 'html' => $html, ]); } diff --git a/app/Http/Controllers/Incomes/Invoices.php b/app/Http/Controllers/Incomes/Invoices.php index 020c9874d..6e3c66f14 100644 --- a/app/Http/Controllers/Incomes/Invoices.php +++ b/app/Http/Controllers/Incomes/Invoices.php @@ -7,6 +7,7 @@ use App\Events\InvoicePrinting; use App\Events\InvoiceUpdated; use App\Http\Controllers\Controller; 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\Jobs\Income\CreateInvoice; use App\Jobs\Income\UpdateInvoice; @@ -37,7 +38,6 @@ use App\Utilities\ImportFile; use App\Utilities\Modules; use Date; use File; -use Illuminate\Http\Request as ItemRequest; use Image; use Storage; use SignedUrl; @@ -600,35 +600,32 @@ class Invoices extends Controller 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 - $currency->precision = (int) $currency->precision; - - $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 (empty($currency)) { + $currency = Currency::where('code', '=', setting('general.default_currency'))->first(); } + 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([ - 'success' => false, - 'error' => true, - 'data' => 'null', - 'message' => trans('issue'), - 'html' => 'null', + 'success' => true, + 'error' => false, + 'data' => [ + 'currency' => $currency + ], + 'message' => 'null', + 'html' => $html, ]); } diff --git a/app/Http/Requests/Expense/BillAddItem.php b/app/Http/Requests/Expense/BillAddItem.php new file mode 100644 index 000000000..f8bd0cd35 --- /dev/null +++ b/app/Http/Requests/Expense/BillAddItem.php @@ -0,0 +1,31 @@ + 'required|integer', + 'currency_code' => 'required|string|currency', + ]; + } +} diff --git a/app/Http/Requests/Income/InvoiceAddItem.php b/app/Http/Requests/Income/InvoiceAddItem.php new file mode 100644 index 000000000..79f23f939 --- /dev/null +++ b/app/Http/Requests/Income/InvoiceAddItem.php @@ -0,0 +1,31 @@ + 'required|integer', + 'currency_code' => 'required|string|currency', + ]; + } +}