Merge pull request #6580 from papnoisanjeev/validation-amt-cart-catalog-rule-for-percentage

Validation for percentage amt for Cart and Catalog Rule.
This commit is contained in:
Jitendra Singh 2022-07-23 16:56:47 +05:30 committed by GitHub
commit 4f7b3c5760
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 111 additions and 56 deletions

View File

@ -7,6 +7,7 @@ use Illuminate\Http\Request;
use Illuminate\Validation\ValidationException;
use Illuminate\View\View;
use Webkul\Admin\DataGrids\CartRuleDataGrid;
use Webkul\CartRule\Http\Requests\CartRuleRequest;
use Webkul\CartRule\Repositories\CartRuleRepository;
class CartRuleController extends Controller
@ -91,26 +92,14 @@ class CartRuleController extends Controller
/**
* Store a newly created resource in storage.
*
*
* @param \Webkul\CartRule\Http\Requests\CartRuleRequest $cartRuleRequest
* @return \Illuminate\Http\Response
*/
public function store()
public function store(CartRuleRequest $cartRuleRequest)
{
try {
$this->validate(request(), [
'name' => 'required',
'channels' => 'required|array|min:1',
'customer_groups' => 'required|array|min:1',
'coupon_type' => 'required',
'use_auto_generation' => 'required_if:coupon_type,==,1',
'coupon_code' => 'required_if:use_auto_generation,==,0|unique:cart_rule_coupons,code',
'starts_from' => 'nullable|date',
'ends_till' => 'nullable|date|after_or_equal:starts_from',
'action_type' => 'required',
'discount_amount' => 'required|numeric',
]);
$data = request()->all();
$data = $cartRuleRequest->all();
$this->cartRuleRepository->create($data);
@ -142,25 +131,13 @@ class CartRuleController extends Controller
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \Webkul\CartRule\Http\Requests\CartRuleRequest $cartRuleRequest
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
public function update(CartRuleRequest $cartRuleRequest, $id)
{
try {
$this->validate(request(), [
'name' => 'required',
'channels' => 'required|array|min:1',
'customer_groups' => 'required|array|min:1',
'coupon_type' => 'required',
'use_auto_generation' => 'required_if:coupon_type,==,1',
'starts_from' => 'nullable|date',
'ends_till' => 'nullable|date|after_or_equal:starts_from',
'action_type' => 'required',
'discount_amount' => 'required|numeric',
]);
$cartRule = $this->cartRuleRepository->findOrFail($id);
if ($cartRule->coupon_type) {
@ -175,7 +152,7 @@ class CartRuleController extends Controller
}
}
$cartRule = $this->cartRuleRepository->update(request()->all(), $id);
$cartRule = $this->cartRuleRepository->update($cartRuleRequest->all(), $id);
session()->flash('success', trans('admin::app.response.update-success', ['name' => 'Cart Rule']));

View File

@ -0,0 +1,52 @@
<?php
namespace Webkul\CartRule\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class CartRuleRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
$rules = [
'name' => 'required',
'channels' => 'required|array|min:1',
'customer_groups' => 'required|array|min:1',
'coupon_type' => 'required',
'use_auto_generation' => 'required_if:coupon_type,==,1',
'starts_from' => 'nullable|date',
'ends_till' => 'nullable|date|after_or_equal:starts_from',
'action_type' => 'required',
'discount_amount' => 'required|numeric',
];
if (! request('id')) {
$rules = array_merge($rules, [
'coupon_code' => 'required_if:use_auto_generation,==,0|unique:cart_rule_coupons,code',
]);
}
if (request()->has('action_type') && request()->action_type == 'by_percent') {
$rules = array_merge($rules, [
'discount_amount' => 'required|numeric|min:0|max:100',
]);
}
return $rules;
}
}

View File

@ -5,6 +5,7 @@ namespace Webkul\CatalogRule\Http\Controllers;
use Illuminate\Http\Request;
use Webkul\Admin\DataGrids\CatalogRuleDataGrid;
use Webkul\CatalogRule\Helpers\CatalogRuleIndex;
use Webkul\CatalogRule\Http\Requests\CatalogRuleRequest;
use Webkul\CatalogRule\Repositories\CatalogRuleRepository;
class CatalogRuleController extends Controller
@ -58,21 +59,12 @@ class CatalogRuleController extends Controller
/**
* Store a newly created resource in storage.
*
* @param \Webkul\CatalogRule\Http\Requests\CatalogRuleRequest $catalogRuleRequest
* @return \Illuminate\Http\Response
*/
public function store()
public function store(CatalogRuleRequest $catalogRuleRequest)
{
$this->validate(request(), [
'name' => 'required',
'channels' => 'required|array|min:1',
'customer_groups' => 'required|array|min:1',
'starts_from' => 'nullable|date',
'ends_till' => 'nullable|date|after_or_equal:starts_from',
'action_type' => 'required',
'discount_amount' => 'required|numeric',
]);
$data = request()->all();
$data = $catalogRuleRequest->all();
$this->catalogRuleRepository->create($data);
@ -99,25 +91,15 @@ class CatalogRuleController extends Controller
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \Webkul\CatalogRule\Http\Requests\CatalogRuleRequest $catalogRuleRequest
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
public function update(CatalogRuleRequest $catalogRuleRequest, $id)
{
$this->validate(request(), [
'name' => 'required',
'channels' => 'required|array|min:1',
'customer_groups' => 'required|array|min:1',
'starts_from' => 'nullable|date',
'ends_till' => 'nullable|date|after_or_equal:starts_from',
'action_type' => 'required',
'discount_amount' => 'required|numeric',
]);
$this->catalogRuleRepository->findOrFail($id);
$this->catalogRuleRepository->update(request()->all(), $id);
$this->catalogRuleRepository->update($catalogRuleRequest->all(), $id);
$this->catalogRuleIndexHelper->reindexComplete();

View File

@ -0,0 +1,44 @@
<?php
namespace Webkul\CatalogRule\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class CatalogRuleRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
$rules = [
'name' => 'required',
'channels' => 'required|array|min:1',
'customer_groups' => 'required|array|min:1',
'starts_from' => 'nullable|date',
'ends_till' => 'nullable|date|after_or_equal:starts_from',
'action_type' => 'required',
'discount_amount' => 'required|numeric',
];
if (request()->has('action_type') && request()->action_type == 'by_percent') {
$rules = array_merge($rules, [
'discount_amount' => 'required|numeric|min:0|max:100',
]);
}
return $rules;
}
}