From 257392cd2a2abb784cd8fa768ec88af978ec1765 Mon Sep 17 00:00:00 2001 From: jitendra Date: Thu, 7 Nov 2019 17:39:59 +0530 Subject: [PATCH] Issue #1118 fixed --- .../views/catalog/products/field-types/date.blade.php | 2 +- .../views/catalog/products/field-types/datetime.blade.php | 2 +- .../Discount/src/Http/Controllers/CartRuleController.php | 4 ++++ .../src/Http/Controllers/CatalogRuleController.php | 6 ++++-- packages/Webkul/Product/src/Http/Requests/ProductForm.php | 7 ++++++- packages/Webkul/Product/src/Type/AbstractType.php | 5 ++++- packages/Webkul/Ui/publishable/assets/css/ui.css | 0 packages/Webkul/Ui/publishable/assets/js/ui.js | 0 packages/Webkul/Ui/publishable/assets/mix-manifest.json | 0 9 files changed, 20 insertions(+), 6 deletions(-) mode change 100755 => 100644 packages/Webkul/Ui/publishable/assets/css/ui.css mode change 100755 => 100644 packages/Webkul/Ui/publishable/assets/js/ui.js mode change 100755 => 100644 packages/Webkul/Ui/publishable/assets/mix-manifest.json diff --git a/packages/Webkul/Admin/src/Resources/views/catalog/products/field-types/date.blade.php b/packages/Webkul/Admin/src/Resources/views/catalog/products/field-types/date.blade.php index a2f8bbd3e..abec746eb 100755 --- a/packages/Webkul/Admin/src/Resources/views/catalog/products/field-types/date.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/catalog/products/field-types/date.blade.php @@ -1,3 +1,3 @@ - is_required ? "v-validate='required'" : '' }} value="{{ old($attribute->code) ?: $product[$attribute->code] }}" data-vv-as=""{{ $attribute->admin_name }}""/> + \ No newline at end of file diff --git a/packages/Webkul/Admin/src/Resources/views/catalog/products/field-types/datetime.blade.php b/packages/Webkul/Admin/src/Resources/views/catalog/products/field-types/datetime.blade.php index 9c099198c..1b822d36c 100755 --- a/packages/Webkul/Admin/src/Resources/views/catalog/products/field-types/datetime.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/catalog/products/field-types/datetime.blade.php @@ -1,3 +1,3 @@ - is_required ? "v-validate='required'" : '' }} value="{{ old($attribute->code) ?: $product[$attribute->code]}}" data-vv-as=""{{ $attribute->admin_name }}""> + \ No newline at end of file diff --git a/packages/Webkul/Discount/src/Http/Controllers/CartRuleController.php b/packages/Webkul/Discount/src/Http/Controllers/CartRuleController.php index 5b91f0047..cd85e7638 100644 --- a/packages/Webkul/Discount/src/Http/Controllers/CartRuleController.php +++ b/packages/Webkul/Discount/src/Http/Controllers/CartRuleController.php @@ -115,6 +115,8 @@ class CartRuleController extends Controller $this->validate(request(), [ 'name' => 'required|string|unique:cart_rules,name', 'description' => 'string', + 'starts_from' => 'nullable|date', + 'ends_till' => 'nullable|date|after_or_equal:starts_from', 'customer_groups' => 'required|array', 'channels' => 'required|array', 'status' => 'required|boolean', @@ -339,6 +341,8 @@ class CartRuleController extends Controller $this->validate(request(), [ 'name' => 'required|string|unique:cart_rules,name,'.$id, 'description' => 'string', + 'starts_from' => 'nullable|date', + 'ends_till' => 'nullable|date|after_or_equal:starts_from', 'customer_groups' => 'required|array', 'channels' => 'required|array', 'status' => 'required|boolean', diff --git a/packages/Webkul/Discount/src/Http/Controllers/CatalogRuleController.php b/packages/Webkul/Discount/src/Http/Controllers/CatalogRuleController.php index 75580552e..9bb650a8f 100644 --- a/packages/Webkul/Discount/src/Http/Controllers/CatalogRuleController.php +++ b/packages/Webkul/Discount/src/Http/Controllers/CatalogRuleController.php @@ -121,6 +121,8 @@ class CatalogRuleController extends Controller $this->validate(request(), [ 'name' => 'required|string|unique:catalog_rules,name', 'description' => 'string', + 'starts_from' => 'nullable|date', + 'ends_till' => 'nullable|date|after_or_equal:starts_from', 'starts_from' => 'present|nullable|date', 'ends_till' => 'present|nullable|date', 'customer_groups' => 'required', @@ -273,8 +275,8 @@ class CatalogRuleController extends Controller $this->validate(request(), [ 'name' => 'required|string|unique:catalog_rules,name,'.$id, // 'name' => 'required|string', - 'starts_from' => 'present|nullable|date', - 'ends_till' => 'present|nullable|date', + 'starts_from' => 'nullable|date', + 'ends_till' => 'nullable|date|after_or_equal:starts_from', 'description' => 'string', 'customer_groups' => 'required', 'channels' => 'required', diff --git a/packages/Webkul/Product/src/Http/Requests/ProductForm.php b/packages/Webkul/Product/src/Http/Requests/ProductForm.php index 2a7e100de..7304c2f82 100755 --- a/packages/Webkul/Product/src/Http/Requests/ProductForm.php +++ b/packages/Webkul/Product/src/Http/Requests/ProductForm.php @@ -73,6 +73,8 @@ class ProductForm extends FormRequest $this->rules = array_merge($product->getTypeInstance()->getTypeValidationRules(), [ 'sku' => ['required', 'unique:products,sku,' . $this->id, new \Webkul\Core\Contracts\Validations\Slug], 'images.*' => 'mimes:jpeg,jpg,bmp,png', + 'special_price_from' => 'nullable|date', + 'special_price_to' => 'nullable|date|after_or_equal:special_price_from' ]); foreach ($product->getEditableAttributes() as $attribute) { @@ -81,7 +83,10 @@ class ProductForm extends FormRequest $validations = []; - array_push($validations, $attribute->is_required ? 'required' : 'nullable'); + if (! isset($this->rules[$attribute->code])) + array_push($validations, $attribute->is_required ? 'required' : 'nullable'); + else + $validations = $this->rules[$attribute->code]; if ($attribute->type == 'text' && $attribute->validation) { array_push($validations, diff --git a/packages/Webkul/Product/src/Type/AbstractType.php b/packages/Webkul/Product/src/Type/AbstractType.php index e8521d10c..75abbba1e 100644 --- a/packages/Webkul/Product/src/Type/AbstractType.php +++ b/packages/Webkul/Product/src/Type/AbstractType.php @@ -162,9 +162,12 @@ abstract class AbstractType if ($attribute->type == 'boolean') $data[$attribute->code] = isset($data[$attribute->code]) && $data[$attribute->code] ? 1 : 0; - if (! isset($data[$attribute->code]) || (in_array($attribute->type, ['date', 'datetime']) && ! $data[$attribute->code])) + if (! isset($data[$attribute->code])) continue; + if ($attribute->type == 'date' && $data[$attribute->code] == '') + $data[$attribute->code] = null; + if ($attribute->type == 'multiselect' || $attribute->type == 'checkbox') $data[$attribute->code] = implode(",", $data[$attribute->code]); diff --git a/packages/Webkul/Ui/publishable/assets/css/ui.css b/packages/Webkul/Ui/publishable/assets/css/ui.css old mode 100755 new mode 100644 diff --git a/packages/Webkul/Ui/publishable/assets/js/ui.js b/packages/Webkul/Ui/publishable/assets/js/ui.js old mode 100755 new mode 100644 diff --git a/packages/Webkul/Ui/publishable/assets/mix-manifest.json b/packages/Webkul/Ui/publishable/assets/mix-manifest.json old mode 100755 new mode 100644