File "AddOrderPaymentRequest.php"

Full Path: /home/clickysoft/public_html/jmapi5.clickysoft.net/app/Http/Requests/User/AddOrderPaymentRequest.php
File size: 1.61 KB
MIME-type: text/x-php
Charset: utf-8

<?php

namespace App\Http\Requests\User;

use App\Models\Order;
use Illuminate\Foundation\Http\FormRequest;

class AddOrderPaymentRequest extends FormRequest
{

    public function rules()
    {
        $order = Order::find(request()->route('order')->id);
        if ($order->payment_status == 'Paid'){
            $rules['payment_status'] = [
                'required',
            ];
        } else {

            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['card_number'] = [
                    'required',
                ];
                $rules['expiry_year'] = [
                    'date_format:Y',
                ];
                $rules['expiry_month'] = [
                    'date_format:m',
                ];
                $rules['ccv'] = [
                    'integer',
                ];
                $rules['save_card'] = [
                    'boolean',
                    'nullable',
                ];
            } else {
                $rules['payment_method'] = [
                    'required',
                ];
            }
        }

        return $rules;
    }

    public function messages(): array
    {
        return [
            'payment_method.required' => 'Credit card details or vault id needed.',
            'payment_status.required' => 'This order has already been paid',
        ];
    }
}