From 8afb288fa08d5f1223116824bee6075f7d5799a9 Mon Sep 17 00:00:00 2001 From: Nikola Cirkovic Date: Sun, 29 May 2022 04:06:18 +0200 Subject: [PATCH] INA-4 | Purchase Order form requests --- .../CreatePurchaseOrderRequest.php | 41 ++++++++++++ .../DestroyPurchaseOrderRequest.php | 40 ++++++++++++ .../EditPurchaseOrderRequest.php | 40 ++++++++++++ .../ShowPurchaseOrderRequest.php | 40 ++++++++++++ .../StorePurchaseOrderRequest.php | 63 +++++++++++++++++++ .../UpdatePurchaseOrderRequest.php | 63 +++++++++++++++++++ 6 files changed, 287 insertions(+) create mode 100644 app/Http/Requests/PurchaseOrder/CreatePurchaseOrderRequest.php create mode 100644 app/Http/Requests/PurchaseOrder/DestroyPurchaseOrderRequest.php create mode 100644 app/Http/Requests/PurchaseOrder/EditPurchaseOrderRequest.php create mode 100644 app/Http/Requests/PurchaseOrder/ShowPurchaseOrderRequest.php create mode 100644 app/Http/Requests/PurchaseOrder/StorePurchaseOrderRequest.php create mode 100644 app/Http/Requests/PurchaseOrder/UpdatePurchaseOrderRequest.php diff --git a/app/Http/Requests/PurchaseOrder/CreatePurchaseOrderRequest.php b/app/Http/Requests/PurchaseOrder/CreatePurchaseOrderRequest.php new file mode 100644 index 000000000000..439e1a025e95 --- /dev/null +++ b/app/Http/Requests/PurchaseOrder/CreatePurchaseOrderRequest.php @@ -0,0 +1,41 @@ +user()->can('create', PurchaseOrder::class); + } + + /** + * Get the validation rules that apply to the request. + * + * @return array + */ + public function rules() + { + return [ + // + ]; + } +} diff --git a/app/Http/Requests/PurchaseOrder/DestroyPurchaseOrderRequest.php b/app/Http/Requests/PurchaseOrder/DestroyPurchaseOrderRequest.php new file mode 100644 index 000000000000..652a0c7815ae --- /dev/null +++ b/app/Http/Requests/PurchaseOrder/DestroyPurchaseOrderRequest.php @@ -0,0 +1,40 @@ +user()->can('edit', $this->purchase_order); + } + + /** + * Get the validation rules that apply to the request. + * + * @return array + */ + public function rules() + { + return [ + // + ]; + } +} diff --git a/app/Http/Requests/PurchaseOrder/EditPurchaseOrderRequest.php b/app/Http/Requests/PurchaseOrder/EditPurchaseOrderRequest.php new file mode 100644 index 000000000000..53f6b15106ce --- /dev/null +++ b/app/Http/Requests/PurchaseOrder/EditPurchaseOrderRequest.php @@ -0,0 +1,40 @@ +user()->can('edit', $this->purchase_order); + } + + /** + * Get the validation rules that apply to the request. + * + * @return array + */ + public function rules() + { + return [ + // + ]; + } +} diff --git a/app/Http/Requests/PurchaseOrder/ShowPurchaseOrderRequest.php b/app/Http/Requests/PurchaseOrder/ShowPurchaseOrderRequest.php new file mode 100644 index 000000000000..fa8dad6f6088 --- /dev/null +++ b/app/Http/Requests/PurchaseOrder/ShowPurchaseOrderRequest.php @@ -0,0 +1,40 @@ +user()->can('view', $this->purchase_order); + } + + /** + * Get the validation rules that apply to the request. + * + * @return array + */ + public function rules() + { + return [ + // + ]; + } +} diff --git a/app/Http/Requests/PurchaseOrder/StorePurchaseOrderRequest.php b/app/Http/Requests/PurchaseOrder/StorePurchaseOrderRequest.php new file mode 100644 index 000000000000..1f531178050b --- /dev/null +++ b/app/Http/Requests/PurchaseOrder/StorePurchaseOrderRequest.php @@ -0,0 +1,63 @@ +user()->can('create', PurchaseOrder::class); + } + /** + * Get the validation rules that apply to the request. + * + * @return array + */ + public function rules() + { + $rules = []; + + $rules['client_id'] = 'required'; + + + $rules['number'] = ['nullable', Rule::unique('purchase_orders')->where('company_id', auth()->user()->company()->id)]; + $rules['discount'] = 'sometimes|numeric'; + $rules['is_amount_discount'] = ['boolean']; + + + $rules['line_items'] = 'array'; + + return $rules; + } + + protected function prepareForValidation() + { + $input = $this->all(); + + $input = $this->decodePrimaryKeys($input); + + $this->replace($input); + } + +} diff --git a/app/Http/Requests/PurchaseOrder/UpdatePurchaseOrderRequest.php b/app/Http/Requests/PurchaseOrder/UpdatePurchaseOrderRequest.php new file mode 100644 index 000000000000..806ea4057f12 --- /dev/null +++ b/app/Http/Requests/PurchaseOrder/UpdatePurchaseOrderRequest.php @@ -0,0 +1,63 @@ +user()->can('edit', $this->purchase_order); + } + /** + * Get the validation rules that apply to the request. + * + * @return array + */ + public function rules() + { + $rules = []; + + if($this->number) + $rules['number'] = Rule::unique('purchase_orders')->where('company_id', auth()->user()->company()->id)->ignore($this->purchaseOrder->id); + + $rules['line_items'] = 'array'; + $rules['discount'] = 'sometimes|numeric'; + $rules['is_amount_discount'] = ['boolean']; + + return $rules; + } + protected function prepareForValidation() + { + $input = $this->all(); + + $input = $this->decodePrimaryKeys($input); + + + $input['id'] = $this->purchase_order->id; + + $this->replace($input); + } +}