diff --git a/app/Http/Requests/Credit/UpdateCreditRequest.php b/app/Http/Requests/Credit/UpdateCreditRequest.php index bc439b83a407..23ee7007b654 100644 --- a/app/Http/Requests/Credit/UpdateCreditRequest.php +++ b/app/Http/Requests/Credit/UpdateCreditRequest.php @@ -60,9 +60,9 @@ class UpdateCreditRequest extends Request $rules['file'] = $this->file_validation; } - if ($this->number) { - $rules['number'] = Rule::unique('credits')->where('company_id', $user->company()->id)->ignore($this->credit->id); - } + $rules['number'] = ['bail', 'sometimes', Rule::unique('credits')->where('company_id', $user->company()->id)->ignore($this->credit->id)]; + + $rules['client_id'] = ['bail', 'sometimes',Rule::in([$this->credit->client_id])]; $rules['line_items'] = 'array'; $rules['discount'] = 'sometimes|numeric'; diff --git a/app/Http/Requests/Invoice/UpdateInvoiceRequest.php b/app/Http/Requests/Invoice/UpdateInvoiceRequest.php index 25c7c2fb2fb4..14f18db35a6f 100644 --- a/app/Http/Requests/Invoice/UpdateInvoiceRequest.php +++ b/app/Http/Requests/Invoice/UpdateInvoiceRequest.php @@ -59,12 +59,11 @@ class UpdateInvoiceRequest extends Request $rules['id'] = new LockedInvoiceRule($this->invoice); - if ($this->number) { - $rules['number'] = Rule::unique('invoices')->where('company_id', $user->company()->id)->ignore($this->invoice->id); - } + $rules['number'] = ['bail', 'sometimes', Rule::unique('invoices')->where('company_id', $user->company()->id)->ignore($this->invoice->id)]; + $rules['is_amount_discount'] = ['boolean']; - + $rules['client_id'] = ['bail', 'sometimes', Rule::in([$this->invoice->client_id])]; $rules['line_items'] = 'array'; $rules['discount'] = 'sometimes|numeric'; $rules['project_id'] = ['bail', 'sometimes', new ValidProjectForClient($this->all())]; diff --git a/app/Http/Requests/PurchaseOrder/UpdatePurchaseOrderRequest.php b/app/Http/Requests/PurchaseOrder/UpdatePurchaseOrderRequest.php index d9cb293abb74..7ae8bc0652a0 100644 --- a/app/Http/Requests/PurchaseOrder/UpdatePurchaseOrderRequest.php +++ b/app/Http/Requests/PurchaseOrder/UpdatePurchaseOrderRequest.php @@ -30,7 +30,10 @@ class UpdatePurchaseOrderRequest extends Request */ public function authorize() : bool { - return auth()->user()->can('edit', $this->purchase_order); + /** @var \App\Models\User $user */ + $user = auth()->user(); + + return $user->can('edit', $this->purchase_order); } /** @@ -40,11 +43,13 @@ class UpdatePurchaseOrderRequest extends Request */ public function rules() { + /** @var \App\Models\User $user */ + $user = auth()->user(); + $rules = []; - if ($this->number) { - $rules['number'] = Rule::unique('purchase_orders')->where('company_id', auth()->user()->company()->id)->ignore($this->purchase_order->id); - } + $rules['number'] = ['bail', 'sometimes', Rule::unique('purchase_orders')->where('company_id', $user->company()->id)->ignore($this->purchase_order->id)]; + $rules['vendor_id'] = ['bail', 'sometimes', Rule::in([$this->purchase_order->client_id])]; $rules['line_items'] = 'array'; $rules['discount'] = 'sometimes|numeric'; diff --git a/app/Http/Requests/Quote/UpdateQuoteRequest.php b/app/Http/Requests/Quote/UpdateQuoteRequest.php index 7723ac31cb77..4b473825c88a 100644 --- a/app/Http/Requests/Quote/UpdateQuoteRequest.php +++ b/app/Http/Requests/Quote/UpdateQuoteRequest.php @@ -30,11 +30,16 @@ class UpdateQuoteRequest extends Request */ public function authorize() : bool { - return auth()->user()->can('edit', $this->quote); + /** @var \App\Models\User $user */ + $user = auth()->user(); + + return $user->can('edit', $this->quote); } public function rules() { + /** @var \App\Models\User $user */ + $user = auth()->user(); $rules = []; if ($this->file('documents') && is_array($this->file('documents'))) { @@ -50,9 +55,9 @@ class UpdateQuoteRequest extends Request } - if ($this->number) { - $rules['number'] = Rule::unique('quotes')->where('company_id', auth()->user()->company()->id)->ignore($this->quote->id); - } + $rules['number'] = ['bail', 'sometimes', Rule::unique('quotes')->where('company_id', $user->company()->id)->ignore($this->quote->id)]; + + $rules['client_id'] = ['bail', 'sometimes', Rule::in([$this->quote->client_id])]; $rules['line_items'] = 'array'; $rules['discount'] = 'sometimes|numeric'; diff --git a/app/Http/Requests/RecurringInvoice/UpdateRecurringInvoiceRequest.php b/app/Http/Requests/RecurringInvoice/UpdateRecurringInvoiceRequest.php index 9a3eca4f0397..a074a8b7c9d9 100644 --- a/app/Http/Requests/RecurringInvoice/UpdateRecurringInvoiceRequest.php +++ b/app/Http/Requests/RecurringInvoice/UpdateRecurringInvoiceRequest.php @@ -56,9 +56,10 @@ class UpdateRecurringInvoiceRequest extends Request $rules['file'] = $this->file_validation; } - if ($this->number) { - $rules['number'] = Rule::unique('recurring_invoices')->where('company_id', $user->company()->id)->ignore($this->recurring_invoice->id); - } + $rules['number'] = ['bail', 'sometimes', Rule::unique('recurring_invoices')->where('company_id', $user->company()->id)->ignore($this->recurring_invoice->id)]; + + + $rules['client_id'] = ['bail', 'sometimes', Rule::in([$this->recurring_invoice->client_id])]; $rules['project_id'] = ['bail', 'sometimes', new ValidProjectForClient($this->all())]; $rules['tax_rate1'] = 'bail|sometimes|numeric';