close #472 Fixed: If you create/edit invoice/bill then Validation return error missing items.

This commit is contained in:
cuneytsenturk
2018-09-03 13:24:27 +03:00
parent 49e9732fac
commit da779e88ed
10 changed files with 201 additions and 72 deletions

View File

@ -4,6 +4,7 @@ namespace App\Http\Controllers\Common;
use App\Http\Controllers\Controller;
use App\Http\Requests\Common\Item as Request;
use App\Http\Requests\Common\TotalItem as TRequest;
use App\Models\Common\Item;
use App\Models\Setting\Category;
use App\Models\Setting\Currency;
@ -300,11 +301,11 @@ class Items extends Controller
return response()->json($items);
}
public function totalItem()
public function totalItem(TRequest $request)
{
$input_items = request('item');
$currency_code = request('currency_code');
$discount = request('discount');
$input_items = $request->input('item');
$currency_code = $request->input('currency_code');
$discount = $request->input('discount');
if (empty($currency_code)) {
$currency_code = setting('general.default_currency');

View File

@ -0,0 +1,42 @@
<?php
namespace App\Http\Requests\Common;
use App\Http\Requests\Request;
class TotalItem 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.*.quantity' => 'required',
'item.*.price' => 'required|amount',
'item.*.currency' => 'required|string|currency',
];
}
public function messages()
{
return [
'item.*.quantity.required' => trans('validation.required', ['attribute' => mb_strtolower(trans('invoices.quantity'))]),
'item.*.price.required' => trans('validation.required', ['attribute' => mb_strtolower(trans('invoices.price'))]),
'item.*.currency.required' => trans('validation.custom.invalid_currency'),
'item.*.currency.string' => trans('validation.custom.invalid_currency'),
];
}
}

View File

@ -40,6 +40,10 @@ class Bill extends Request
'billed_at' => 'required|date',
'due_at' => 'required|date',
'amount' => 'required',
'item.*.name' => 'required|string',
'item.*.quantity' => 'required',
'item.*.price' => 'required|amount',
'item.*.currency' => 'required|string|currency',
'currency_code' => 'required|string|currency',
'currency_rate' => 'required',
'vendor_id' => 'required|integer',
@ -60,4 +64,15 @@ class Bill extends Request
$this->request->set('due_at', $due_at);
}
}
public function messages()
{
return [
'item.*.name.required' => trans('validation.required', ['attribute' => mb_strtolower(trans('general.name'))]),
'item.*.quantity.required' => trans('validation.required', ['attribute' => mb_strtolower(trans('bills.quantity'))]),
'item.*.price.required' => trans('validation.required', ['attribute' => mb_strtolower(trans('bills.price'))]),
'item.*.currency.required' => trans('validation.custom.invalid_currency'),
'item.*.currency.string' => trans('validation.custom.invalid_currency'),
];
}
}

View File

@ -40,6 +40,10 @@ class Invoice extends Request
'invoiced_at' => 'required|date',
'due_at' => 'required|date',
'amount' => 'required',
'item.*.name' => 'required|string',
'item.*.quantity' => 'required',
'item.*.price' => 'required|amount',
'item.*.currency' => 'required|string|currency',
'currency_code' => 'required|string|currency',
'currency_rate' => 'required',
'customer_id' => 'required|integer',
@ -60,4 +64,15 @@ class Invoice extends Request
$this->request->set('due_at', $due_at);
}
}
public function messages()
{
return [
'item.*.name.required' => trans('validation.required', ['attribute' => mb_strtolower(trans('general.name'))]),
'item.*.quantity.required' => trans('validation.required', ['attribute' => mb_strtolower(trans('invoices.quantity'))]),
'item.*.price.required' => trans('validation.required', ['attribute' => mb_strtolower(trans('invoices.price'))]),
'item.*.currency.required' => trans('validation.custom.invalid_currency'),
'item.*.currency.string' => trans('validation.custom.invalid_currency'),
];
}
}