Edit File: CreateInvoiceRequest.php
<?php namespace App\Http\Requests\Api\provider\UnPricingOrders; use App\Enums\NegotiationOrderInvoiceStatusEnum; use App\Enums\NegotiationOrderStatusEnum; use App\Http\Requests\Api\BaseApiRequest; use App\Models\NegotiationOrder; class CreateInvoiceRequest extends BaseApiRequest { public function rules() { return [ 'order_id' => 'required|exists:negotiation_orders,id', 'order_total' => 'required|numeric|gt:0', 'order' => ['nullable'] ]; } public function prepareForValidation() { $order = NegotiationOrder::where('provider_id', auth('provider')->id())->find($this->order_id); $this->merge([ 'order_id' => $this->route('order_id'), 'order' => $order, ]); } public function withValidator($validator) { $validator->after(function ($validator) { if ($this->order) { if ($this->order->status['value'] == NegotiationOrderStatusEnum::Invoice_paid->value) { $validator->errors()->add('order_is_paid', __('apis.order_is_paid')); } if($this->order->invoices()->where('status',NegotiationOrderInvoiceStatusEnum::Pending->value)->exists()){ $validator->errors()->add('order_has_invoice', __('apis.order_has_invoice')); } }else{ $validator->errors()->add('order_id', __('apis.order_not_fount_or_not_for_you')); } }); } }
Back to File Manager