validation for percentage amt for cart and catalog rule & handle validate request using FormRequest

This commit is contained in:
sanjeev 2022-07-20 12:22:35 +05:30
parent 97105dadb9
commit 3bb39a0228
4 changed files with 106 additions and 53 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
@ -94,23 +95,10 @@ class CartRuleController extends Controller
*
* @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);
@ -146,21 +134,9 @@ class CartRuleController extends Controller
* @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 +151,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
@ -60,19 +61,9 @@ class CatalogRuleController extends Controller
*
* @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);
@ -103,21 +94,11 @@ class CatalogRuleController extends Controller
* @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;
}
}