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\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,15 +471,21 @@ class Bills extends Controller
public function addItem(ItemRequest $request)
{
if ($request['item_row']) {
$item_row = $request['item_row'];
$currency_code = $request['currency_code'];
$taxes = Tax::enabled()->orderBy('rate')->get()->pluck('title', 'id');
$currency = Currency::where('code', '=', $request['currency_code'])->first();
$currency = Currency::where('code', '=', $currency_code)->first();
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();
@ -494,15 +500,6 @@ class Bills extends Controller
]);
}
return response()->json([
'success' => false,
'error' => true,
'data' => 'null',
'message' => trans('issue'),
'html' => 'null',
]);
}
protected function prepareBill(Bill $bill)
{
$paid = 0;

View File

@ -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,15 +600,21 @@ class Invoices extends Controller
public function addItem(ItemRequest $request)
{
if ($request['item_row']) {
$item_row = $request['item_row'];
$currency_code = $request['currency_code'];
$taxes = Tax::enabled()->orderBy('rate')->get()->pluck('title', 'id');
$currency = Currency::where('code', '=', $request['currency_code'])->first();
$currency = Currency::where('code', '=', $currency_code)->first();
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();
@ -623,15 +629,6 @@ class Invoices extends Controller
]);
}
return response()->json([
'success' => false,
'error' => true,
'data' => 'null',
'message' => trans('issue'),
'html' => 'null',
]);
}
protected function prepareInvoice(Invoice $invoice)
{
$paid = 0;

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