Файловый менеджер - Редактировать - /home/clickysoft/public_html/jmapi5.clickysoft.net/app/Http/Requests/Admin/UpdateOrderRequest.php
Назад
<?php namespace App\Http\Requests\Admin; use App\Models\Coupon; use App\Models\Order; use App\Rules\AddressBelongsToUser; use App\Rules\LimitProductQuantityIncrease; use App\Rules\ValidateCoupon; use App\Rules\ValidateDate; use App\Rules\ValidateImage; use App\Rules\ValidateRange; use Illuminate\Support\Facades\Gate; use Illuminate\Foundation\Http\FormRequest; class UpdateOrderRequest extends FormRequest { public function authorize() { return Gate::allows('order_edit'); } public function rules() { $order = request()->route('order')->id; $order = Order::find($order); $rules = [ 'user_id' => [ 'required', 'integer', 'exists:users,id', ], 'order_type' => [ 'nullable', 'in:'. implode(',', Order::ORDER_TYPE_RADIO), ], 'rush_order' => [ 'nullable', 'in:'. implode(',', Order::RUSH_ORDER_RADIO), ], 'delivery_date' => [ 'nullable', 'date', ], 'event_date' => [ 'required', 'date', 'after_or_equal:delivery_date', 'after_or_equal:date_scheduled', ], 'date_scheduled' => [ 'nullable', 'date', new ValidateDate, ], 'date_pick_or_ship_by' => [ 'nullable', 'date', 'after_or_equal:date_scheduled', new ValidateDate, ], 'current_status_id' => [ 'required', 'integer', 'exists:statuses,id', ], 'admin_approved' => [ 'nullable', 'in:0,1', ], 'delivery_type' => [ 'required', 'in:'. implode(',', Order::DELIVERY_TYPE), ], 'description' => [ 'nullable', 'string', ], 'waive_off_sales_tax' => [ 'nullable', 'boolean', ], 'waive_off_sales_tax_reason' => [ 'required_if:waive_off_sales_tax,1', 'in:'. implode(',', Order::WAIVE_OFF_OPTIONS), ], 'resale_number' => [ 'required_if:waive_off_sales_tax_reason,Reseller Exemption', ], 'shipping_address_id' => [ 'exclude_if:delivery_type,Pickup', 'required_if:delivery_type,Shipping', 'integer', 'exists:address_books,id', new AddressBelongsToUser ], 'is_residential' => [ 'exclude_if:delivery_type,Pickup', 'required_if:delivery_type,Shipping', 'boolean', ], 'billing_address_id' => [ 'required', 'integer', 'exists:address_books,id', new AddressBelongsToUser ], 'pickup_location_id' => [ 'exclude_if:delivery_type,Shipping', 'required_if:delivery_type,Pickup', 'integer', 'exists:store_locations,id', ], 'payment_status' => [ 'required', 'in:'. implode(',', Order::PAYMENT_STATUS_RADIO), ], 'payment_mode' => [ 'required', 'in:'. implode(',', Order::PAYMENT_MODE_RADIO), ], 'payment_amount' => [ 'nullable', 'numeric', ], 'coupon_code' => [ 'nullable', 'exists:coupons,code', new ValidateCoupon, ], 'products' => [ 'required', 'array', ], 'products.*.product_id' => [ 'required', 'integer', 'exists:products,id', ], 'products.*.item_id' => [ 'nullable', new LimitProductQuantityIncrease, ], 'products.*.price_id' => [ 'required', 'integer', 'exists:product_prices,id', ], 'products.*.quantity' => [ 'required', 'integer', 'min:1', new ValidateRange, ], 'products.*.template' => [ 'nullable', 'mimes:pdf,application/pdf', 'max:5120', ], 'products.*.notes' => [ 'nullable', 'string', ], ]; if ($order->coupon_id != null) { //If order previously had discount $existing_coupon = Coupon::find($order->coupon_id); if ($existing_coupon?->id == $order->coupon_id) { //If current discount code & existing discount code are same $rules['coupon_code'] = [ 'nullable', 'exists:coupons,code', ]; } else { //If order does not have discount or the discount coupon has changed $rules['coupon_code'] = [ 'nullable', 'exists:coupons,code', new ValidateCoupon, ]; } } if ($this->input('payment_status') == 'Paid' && $order->payment_status != "Paid") { $rules['payment_type'] = [ 'required', 'in:'. implode(',', Order::PAYMENT_TYPE_RADIO), ]; if ($this->input('payment_type') == 'Credit Card') { if ($this->input('vault_id')) { $rules['vault_id'] = [ 'exclude_if:payment_status,Unpaid', '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_status,Unpaid', 'exclude_if:payment_type,Purchase Order', 'date_format:Y', ]; $rules['expiry_month'] = [ 'exclude_if:payment_status,Unpaid', 'exclude_if:payment_type,Purchase Order', 'date_format:m', ]; $rules['ccv'] = [ 'exclude_if:payment_status,Unpaid', 'exclude_if:payment_type,Purchase Order', 'regex:/^[0-9]+$/', ]; $rules['save_card'] = [ 'exclude_if:payment_status,Unpaid', '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'] = [ 'exclude_if:payment_status,Unpaid', 'required', 'string', 'max:25', ]; if ($order->purchase_order_copy == null) { $rules['purchase_order_copy'] = [ 'exclude_if:payment_status,Unpaid', 'required', 'mimes:pdf,jpg,jpeg,png,xlsx', ]; } } else if($this->input('payment_type') == 'Check') { $rules['cheque_number'] = [ 'exclude_if:payment_status,Unpaid', 'required', 'string', 'max:25', ]; } } return $rules; } public function messages() { return [ 'date_pick_or_ship_by.required' => 'The date pick up / ship by is required.', 'date_pick_or_ship_by.after_or_equal' => 'The date pick up / ship by must be date after or equal today.', 'date_pick_or_ship_by.date' => 'Date pick up / ship by must be a valid date.', 'waive_off_sales_tax.boolean' => 'The waive off sales tax field must be 0 or 1.', 'products.*.product_id.required' => 'Product id for product #:position is required.', 'products.*.product_id.integer' => 'Product id for product #:position must be an integer.', 'products.*.product_id.exists' => 'Product id for product #:position is invalid.', 'products.*.price_id.required' => 'Price id for product #:position is required.', 'products.*.price_id.integer' => 'Price id for product #:position must be an integer.', 'products.*.price_id.exists' => 'Price id for product #:position is invalid.', 'products.*.quantity.required' => 'Quantity for product #:position is required.', 'products.*.quantity.integer' => 'Quantity for product #:position must be an integer.', 'products.*.quantity.min' => 'Quantity for product #:position must be greater than 0.', 'products.*.customization.required' => 'Customization for product #:position required.', 'products.*.customization.array' => 'Customization for product #:position must be an array.', 'products.*.template.mimes' => 'Template for product #:position must be of type pdf.', 'products.*.template.max' => 'Template size for product #:position can not exceed 5MB.', 'products.*.image.mimes' => 'Image for product #:position must be of type jpg, jpeg, png.', 'products.*.image.max' => 'Image size for product #:position can not exceed 5MB.', 'rush_order.in' => ':attribute can only be '. implode(',', Order::RUSH_ORDER_RADIO), 'payment_method.required' => 'Credit card details or vault id needed when payment type is credit card.', 'waive_off_sales_tax_reason.required_if' => 'The waive off sales tax reason is required when waive off sales tax is true.', 'ccv.regex' => 'Ccv must be a valid number.', 'cheque_number.required' => 'The check number field is required.', 'is_residential.required_if' => 'The residential field is required when delivery type is "Shipping".', ]; } }
| ver. 1.4 |
Github
|
.
| PHP 8.1.29 | Генерация страницы: 0 |
proxy
|
phpinfo
|
Настройка