mirror of
https://github.com/Bigherollc/wticreatorstudio.git
synced 2026-08-03 06:16:14 -04:00
61 lines
2.2 KiB
PHP
61 lines
2.2 KiB
PHP
<?php
|
|
|
|
namespace Modules\StaffPayroll\Http\Requests;
|
|
|
|
use Illuminate\Validation\Rule;
|
|
use Illuminate\Foundation\Http\FormRequest;
|
|
use Modules\StaffPayroll\Entities\Invoice;
|
|
|
|
class InvoiceRequest extends FormRequest
|
|
{
|
|
/**
|
|
* Get the validation rules that apply to the request.
|
|
*
|
|
* @return array
|
|
*/
|
|
public function rules()
|
|
{
|
|
return [
|
|
'issue_date' => ['required', 'date'],
|
|
'due_date' => ['nullable', 'date'],
|
|
'user_id' => ['required', 'exists:users,id'],
|
|
'status' => ['required', Rule::in(Invoice::statuses())],
|
|
'note' => ['nullable'],
|
|
'terms' => ['nullable'],
|
|
'discount_type' => ['nullable', Rule::in(Invoice::discountTypes())],
|
|
'discount' => [Rule::requiredIf($this->discount_type !== Invoice::DISCOUNT_TYPE_NONE)],
|
|
'items' => ['required', 'array'],
|
|
'items.*.label' => ['required', Rule::in(['incentive', 'item'])],
|
|
'items.*.name' => ['exclude_unless:items.*.label,incentive', 'max:190'],
|
|
'items.*.issue_date' => ['required', 'date'],
|
|
'items.*.amount' => ['required', 'numeric', 'min:1'],
|
|
'items.*.quantity' => ['required', 'integer', 'min:1'],
|
|
'items.*.studio_plus_incentive_id' => ['exclude_unless:items.*.label,incentive', 'exists:studio_plus_incentives,id'],
|
|
'items.*.description' => ['nullable'],
|
|
];
|
|
}
|
|
|
|
/**
|
|
* Determine if the user is authorized to make this request.
|
|
*
|
|
* @return bool
|
|
*/
|
|
public function authorize()
|
|
{
|
|
return true;
|
|
}
|
|
|
|
public function messages()
|
|
{
|
|
return [
|
|
'user_id.required' => 'The invoice to field is required',
|
|
'items.*.name.required' => 'The name field is required',
|
|
'items.*.issue_date.required' => 'The issue date field is required',
|
|
'items.*.issue_date.date' => 'The issue date is not a valid date.',
|
|
'items.*.studio_plus_incentive_id.exists' => 'The incentive field is required',
|
|
'items.*.amount.required' => 'The amount field is required',
|
|
'items.*.quantity.required' => 'The quantity field is required',
|
|
];
|
|
}
|
|
}
|