File "AddOrderPaymentRequest.php"
Full Path: /home/clickysoft/public_html/jmapi5.clickysoft.net/app/Http/Requests/Admin/AddOrderPaymentRequest.php
File size: 3.02 KB
MIME-type: text/x-php
Charset: utf-8
<?php
namespace App\Http\Requests\Admin;
use App\Models\Order;
use Gate;
use Illuminate\Foundation\Http\FormRequest;
class AddOrderPaymentRequest extends FormRequest
{
public function authorize()
{
return Gate::allows('order_edit');
}
public function rules()
{
$order = Order::find(request()->route('order')->id);
if ($order->payment_status == 'Paid'){
$rules['payment_status'] = [
'required',
];
} else {
$rules = [
'payment_type' => [
'required',
'in:'. implode(',', Order::PAYMENT_TYPE_RADIO),
],
'amount' => [
'required',
'min:1',
],
];
if ($this->input('payment_type') == 'Credit Card') {
if ($this->input('vault_id')) {
$rules['vault_id'] = [
'exclude_if:payment_type,Purchase Order',
'gt:0',
];
} else if($this->input('card_number') && $this->input('expiry_year') && $this->input('expiry_month') && $this->input('ccv')) {
$rules['expiry_year'] = [
'exclude_if:payment_type,Purchase Order',
'date_format:Y',
];
$rules['expiry_month'] = [
'exclude_if:payment_type,Purchase Order',
'date_format:m',
];
$rules['ccv'] = [
'exclude_if:payment_type,Purchase Order',
'integer',
];
$rules['save_card'] = [
'exclude_if:payment_type,Purchase Order',
'boolean',
'nullable',
];
} else {
$rules['payment_method'] = [
'required',
];
}
} else if($this->input('payment_type') == 'Purchase Order') {
$rules['purchase_order_number'] = [
'required',
'string',
'max:25',
];
$rules['purchase_order_copy'] = [
'required',
'mimes:pdf,jpg,jpeg,png,xlsx',
];
} else if($this->input('payment_type') == 'Check') {
$rules['cheque_number'] = [
'required',
'string',
'max:25',
];
}
}
return $rules;
}
public function messages(): array
{
return [
'payment_method.required' => 'Credit card details or vault id needed when payment type is credit card.',
'amount.min' => 'Enter a valid amount.',
'payment_status.required' => 'This order has already been paid',
];
}
}