Add fire event on every controller

This commit is contained in:
jitendra 2018-12-21 18:18:34 +05:30
parent 64e451d7f9
commit 5916482f7c
22 changed files with 285 additions and 163 deletions

View File

@ -4,6 +4,7 @@ namespace Webkul\Admin\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\Event;
use Webkul\Admin\Facades\Configuration;
use Webkul\Core\Repositories\CoreConfigRepository as CoreConfig;
use Webkul\Core\Tree;
@ -130,8 +131,12 @@ class ConfigurationController extends Controller
*/
public function store()
{
Event::fire('core.configuration.save.after');
$this->coreConfig->create(request()->all());
Event::fire('core.configuration.save.after');
session()->flash('success', 'Shipping Method is created successfully');
return redirect()->back();

View File

@ -21,5 +21,13 @@ class EventServiceProvider extends ServiceProvider
Event::listen('checkout.invoice.save.after', 'Webkul\Admin\Listeners\Order@sendNewShipmentMail');
Event::listen('checkout.order.save.after', 'Webkul\Admin\Listeners\Order@updateProductInventory');
Event::listen('products.datagrid.sync', 'Webkul\Admin\Listeners\Product@sync');
Event::listen('catalog.product.create.after', 'Webkul\Admin\Listeners\Product@afterProductCreated');
Event::listen('catalog.product.update.after', 'Webkul\Admin\Listeners\Product@afterProductUpdate');
Event::listen('catalog.product.delete.after', 'Webkul\Admin\Listeners\Product@afterProductDelete');
}
}

View File

@ -4,6 +4,7 @@ namespace Webkul\Attribute\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\Event;
use Webkul\Attribute\Repositories\AttributeRepository as Attribute;
@ -77,7 +78,11 @@ class AttributeController extends Controller
'type' => 'required'
]);
$this->attribute->create(request()->all());
Event::fire('catalog.attribute.create.before');
$attribute = $this->attribute->create(request()->all());
Event::fire('catalog.attribute.create.after', $attribute);
session()->flash('success', 'Attribute created successfully.');
@ -112,7 +117,11 @@ class AttributeController extends Controller
'type' => 'required'
]);
$this->attribute->update(request()->all(), $id);
Event::fire('catalog.attribute.update.before', $id);
$attribute = $this->attribute->update(request()->all(), $id);
Event::fire('catalog.attribute.update.after', $attribute);
session()->flash('success', 'Attribute updated successfully.');
@ -133,8 +142,12 @@ class AttributeController extends Controller
session()->flash('error', 'Can not delete system attribute.');
} else {
try {
Event::fire('catalog.attribute.delete.before', $id);
$this->attribute->delete($id);
Event::fire('catalog.attribute.delete.after', $id);
session()->flash('success', 'Attribute deleted successfully.');
} catch(\Exception $e) {
session()->flash('error', 'Attribute is used in configurable products.');
@ -159,10 +172,15 @@ class AttributeController extends Controller
$attribute = $this->attribute->findOrFail($value);
try {
if(!$attribute->is_user_defined)
if(!$attribute->is_user_defined) {
continue;
else
} else {
Event::fire('catalog.attribute.delete.before', $value);
$this->attribute->delete($value);
Event::fire('catalog.attribute.delete.after', $value);
}
} catch(\Exception $e) {
$suppressFlash = true;

View File

@ -4,6 +4,7 @@ namespace Webkul\Attribute\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\Event;
use Webkul\Attribute\Repositories\AttributeFamilyRepository as AttributeFamily;
use Webkul\Attribute\Repositories\AttributeRepository as Attribute;
@ -82,7 +83,11 @@ class AttributeFamilyController extends Controller
'name' => 'required'
]);
$this->attributeFamily->create(request()->all());
Event::fire('catalog.attribute_family.create.before');
$attributeFamily = $this->attributeFamily->create(request()->all());
Event::fire('catalog.attribute_family.create.after', $attributeFamily);
session()->flash('success', 'Family created successfully.');
@ -119,8 +124,11 @@ class AttributeFamilyController extends Controller
'name' => 'required'
]);
Event::fire('catalog.attribute_family.update.before', $id);
$this->attributeFamily->update(request()->all(), $id);
$attributeFamily = $this->attributeFamily->update(request()->all(), $id);
Event::fire('catalog.attribute_family.update.after', $attributeFamily);
session()->flash('success', 'Family updated successfully.');
@ -142,8 +150,12 @@ class AttributeFamilyController extends Controller
} else if ($attributeFamily->products()->count()) {
session()->flash('error', 'Attribute family is used in products.');
} else {
Event::fire('catalog.attribute_family.delete.before', $id);
$this->attributeFamily->delete($id);
Event::fire('catalog.attribute_family.delete.after', $id);
session()->flash('success', 'Family deleted successfully.');
}
@ -163,7 +175,11 @@ class AttributeFamilyController extends Controller
foreach($indexes as $key => $value) {
try {
Event::fire('catalog.attribute_family.delete.before', $value);
$this->attributeFamily->delete($value);
Event::fire('catalog.attribute_family.delete.after', $value);
} catch(\Exception $e) {
$suppressFlash = true;

View File

@ -4,6 +4,7 @@ namespace Webkul\Category\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\Event;
use Webkul\Category\Repositories\CategoryRepository as Category;
/**
@ -78,7 +79,11 @@ class CategoryController extends Controller
'image.*' => 'mimes:jpeg,jpg,bmp,png'
]);
$this->category->create(request()->all());
Event::fire('catalog.category.create.before');
$category = $this->category->create(request()->all());
Event::fire('catalog.category.create.after', $category);
session()->flash('success', 'Category created successfully.');
@ -110,6 +115,7 @@ class CategoryController extends Controller
public function update(Request $request, $id)
{
$locale = request()->get('locale') ?: app()->getLocale();
$this->validate(request(), [
$locale . '.slug' => ['required', new \Webkul\Core\Contracts\Validations\Slug, function ($attribute, $value, $fail) use ($id) {
if (!$this->category->isSlugUnique($id, $value)) {
@ -120,8 +126,12 @@ class CategoryController extends Controller
'image.*' => 'mimes:jpeg,jpg,bmp,png'
]);
Event::fire('catalog.category.update.before', $id);
$this->category->update(request()->all(), $id);
Event::fire('catalog.category.update.after', $id);
session()->flash('success', 'Category updated successfully.');
return redirect()->route($this->_config['redirect']);
@ -135,8 +145,12 @@ class CategoryController extends Controller
*/
public function destroy($id)
{
Event::fire('catalog.category.delete.before', $id);
$this->category->delete($id);
Event::fire('catalog.category.delete.after', $id);
session()->flash('success', 'Category deleted successfully.');
return redirect()->back();
@ -155,7 +169,11 @@ class CategoryController extends Controller
foreach($indexes as $key => $value) {
try {
Event::fire('catalog.category.delete.before', $value);
$this->category->delete($value);
Event::fire('catalog.category.delete.after', $value);
} catch(\Exception $e) {
$suppressFlash = true;

View File

@ -4,6 +4,7 @@ namespace Webkul\Core\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\Event;
use Webkul\Core\Repositories\ChannelRepository as Channel;
@ -82,7 +83,11 @@ class ChannelController extends Controller
'favicon.*' => 'mimes:jpeg,jpg,bmp,png'
]);
$this->channel->create(request()->all());
Event::fire('core.channel.create.before');
$channel = $this->channel->create(request()->all());
Event::fire('core.channel.create.after', $channel);
session()->flash('success', 'Channel created successfully.');
@ -122,7 +127,11 @@ class ChannelController extends Controller
'favicon.*' => 'mimes:jpeg,jpg,bmp,png'
]);
$this->channel->update(request()->all(), $id);
Event::fire('core.channel.update.before', $id);
$channel = $this->channel->update(request()->all(), $id);
Event::fire('core.channel.update.after', $channel);
session()->flash('success', 'Channel updated successfully.');
@ -140,8 +149,12 @@ class ChannelController extends Controller
if($this->channel->count() == 1) {
session()->flash('error', 'At least one channel is required.');
} else {
Event::fire('core.channel.delete.before', $id);
$this->channel->delete($id);
Event::fire('core.channel.delete.after', $id);
session()->flash('success', 'Channel deleted successfully.');
}

View File

@ -56,7 +56,8 @@ class CountryStateController extends Controller
*
* @return array
*/
public function getCountries() {
public function getCountries()
{
$countries = $this->country->all();
$states = $this->state->all();
@ -73,7 +74,8 @@ class CountryStateController extends Controller
return view($this->_config['view'])->with('statesCountries', $nestedArray);
}
public function getStates($country) {
public function getStates($country)
{
$countries = $this->country->all();
$states = $this->state->all();

View File

@ -4,6 +4,7 @@ namespace Webkul\Core\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\Event;
use Webkul\Core\Repositories\CurrencyRepository as Currency;
/**
@ -76,7 +77,11 @@ class CurrencyController extends Controller
'name' => 'required'
]);
$this->currency->create(request()->all());
Event::fire('core.channel.create.before');
$currency = $this->currency->create(request()->all());
Event::fire('core.currency.create.after', $currency);
session()->flash('success', 'Currency created successfully.');
@ -110,7 +115,11 @@ class CurrencyController extends Controller
'name' => 'required'
]);
$this->currency->update(request()->all(), $id);
Event::fire('core.currency.update.before', $id);
$currency = $this->currency->update(request()->all(), $id);
Event::fire('core.currency.update.after', $currency);
session()->flash('success', 'Currency updated successfully.');
@ -126,8 +135,12 @@ class CurrencyController extends Controller
public function destroy($id)
{
try {
Event::fire('core.currency.delete.before', $id);
$result = $this->currency->delete($id);
Event::fire('core.currency.delete.after', $id);
if($result)
session()->flash('success', 'Currency deleted successfully.');
else
@ -152,7 +165,11 @@ class CurrencyController extends Controller
foreach($indexes as $key => $value) {
try {
Event::fire('core.currency.delete.before', $value);
$this->currency->delete($value);
Event::fire('core.currency.delete.after', $value);
} catch(\Exception $e) {
$suppressFlash = true;

View File

@ -4,6 +4,7 @@ namespace Webkul\Core\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\Event;
use Webkul\Core\Repositories\ExchangeRateRepository as ExchangeRate;
use Webkul\Core\Repositories\CurrencyRepository as Currency;
@ -89,7 +90,11 @@ class ExchangeRateController extends Controller
'rate' => 'required|numeric'
]);
$this->exchangeRate->create(request()->all());
Event::fire('core.exchange_rate.create.before');
$exchangeRate = $this->exchangeRate->create(request()->all());
Event::fire('core.exchange_rate.create.after', $exchangeRate);
session()->flash('success', 'Exchange rate created successfully.');
@ -125,7 +130,11 @@ class ExchangeRateController extends Controller
'rate' => 'required|numeric'
]);
$this->exchangeRate->update(request()->all(), $id);
Event::fire('core.exchange_rate.update.before', $id);
$exchangeRate = $this->exchangeRate->update(request()->all(), $id);
Event::fire('core.exchange_rate.update.after', $exchangeRate);
session()->flash('success', 'Exchange rate updated successfully.');
@ -143,8 +152,12 @@ class ExchangeRateController extends Controller
if($this->exchangeRate->count() == 1) {
session()->flash('error', 'At least one Exchange rate is required.');
} else {
Event::fire('core.exchange_rate.delete.before', $id);
$this->exchangeRate->delete($id);
Event::fire('core.exchange_rate.delete.after', $id);
session()->flash('success', 'Exchange rate deleted successfully.');
}

View File

@ -4,6 +4,7 @@ namespace Webkul\Core\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\Event;
use Webkul\Core\Repositories\LocaleRepository as Locale;
/**
@ -76,7 +77,11 @@ class LocaleController extends Controller
'name' => 'required'
]);
$this->locale->create(request()->all());
Event::fire('core.locale.create.before');
$locale = $this->locale->create(request()->all());
Event::fire('core.locale.create.after', $locale);
session()->flash('success', 'Locale created successfully.');
@ -110,7 +115,11 @@ class LocaleController extends Controller
'name' => 'required'
]);
$this->locale->update(request()->all(), $id);
Event::fire('core.locale.update.before', $id);
$locale = $this->locale->update(request()->all(), $id);
Event::fire('core.locale.update.after', $locale);
session()->flash('success', 'Locale updated successfully.');
@ -128,8 +137,12 @@ class LocaleController extends Controller
if($this->locale->count() == 1) {
session()->flash('error', 'At least one locale is required.');
} else {
Event::fire('core.locale.delete.before', $id);
$this->locale->delete($id);
Event::fire('core.locale.delete.after', $id);
session()->flash('success', 'Locale deleted successfully.');
}

View File

@ -4,6 +4,7 @@ namespace Webkul\Customer\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\Event;
use Illuminate\Support\Facades\Mail;
use Webkul\Customer\Mail\VerificationEmail;
use Illuminate\Routing\Controller;
@ -29,7 +30,8 @@ class RegistrationController extends Controller
/**
* @param CustomerRepository object $customer
*/
public function __construct(CustomerRepository $customer) {
public function __construct(CustomerRepository $customer)
{
$this->_config = request('_config');
$this->customer = $customer;
}
@ -39,7 +41,8 @@ class RegistrationController extends Controller
*
* @return view
*/
public function show() {
public function show()
{
return view($this->_config['view']);
}
@ -48,7 +51,8 @@ class RegistrationController extends Controller
*
* @return Mixed
*/
public function create(Request $request) {
public function create(Request $request)
{
$request->validate([
'first_name' => 'string|required',
'last_name' => 'string|required',
@ -70,9 +74,14 @@ class RegistrationController extends Controller
$verificationData['email'] = $data['email'];
$verificationData['token'] = md5(uniqid(rand(), true));
$data['token'] = $verificationData['token'];
$created = $this->customer->create($data);
if ($created) {
Event::fire('customer.registration.before');
$customer = $this->customer->create($data);
Event::fire('customer.registration.after', $customer);
if ($customer) {
try {
session()->flash('success', trans('shop::app.customer.signup-form.success'));
@ -95,7 +104,8 @@ class RegistrationController extends Controller
* Method to verify account
*
*/
public function verifyAccount($token) {
public function verifyAccount($token)
{
$customer = $this->customer->findOneByField('token', $token);
if($customer) {
@ -109,7 +119,8 @@ class RegistrationController extends Controller
return redirect()->route('customer.session.index');
}
public function resendVerificationEmail($email) {
public function resendVerificationEmail($email)
{
$verificationData['email'] = $email;
$verificationData['token'] = md5(uniqid(rand(), true));

View File

@ -10,7 +10,6 @@ use Webkul\Core\Eloquent\Repository;
* @author Prashant Singh <prashant.singh852@webkul.com>
* @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com)
*/
class CustomerRepository extends Repository
{
/**
@ -23,32 +22,4 @@ class CustomerRepository extends Repository
{
return 'Webkul\Customer\Models\Customer';
}
/**
* @param array $data
* @return mixed
*/
public function create(array $data)
{
$customer = $this->model->create($data);
return $customer;
}
/**
* @param array $data
* @param $id
* @param string $attribute
* @return mixed
*/
public function update(array $data, $id, $attribute = "id")
{
$customer = $this->find($id);
$customer->update($data);
return $customer;
}
}

View File

@ -4,6 +4,7 @@ namespace Webkul\Inventory\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\Event;
use Webkul\Inventory\Repositories\InventorySourceRepository as InventorySource;
/**
@ -85,7 +86,11 @@ class InventorySourceController extends Controller
$data['status'] = !isset($data['status']) ? 0 : 1;
$this->inventorySource->create($data);
Event::fire('inventory.inventory_source.create.before');
$inventorySource = $this->inventorySource->create($data);
Event::fire('inventory.inventory_source.create.after', $inventorySource);
session()->flash('success', 'Inventory source created successfully.');
@ -131,7 +136,11 @@ class InventorySourceController extends Controller
$data['status'] = !isset($data['status']) ? 0 : 1;
$this->inventorySource->update($data, $id);
Event::fire('inventory.inventory_source.update.before', $id);
$inventorySource = $this->inventorySource->update($data, $id);
Event::fire('inventory.inventory_source.update.after', $inventorySource);
session()->flash('success', 'Inventory source updated successfully.');
@ -149,8 +158,12 @@ class InventorySourceController extends Controller
if($this->inventorySource->count() == 1) {
session()->flash('error', 'At least one inventory source is required.');
} else {
Event::fire('inventory.inventory_source.delete.before', $id);
$this->inventorySource->delete($id);
Event::fire('inventory.inventory_source.delete.after', $id);
session()->flash('success', 'Inventory source deleted successfully.');
}

View File

@ -4,13 +4,13 @@ namespace Webkul\Product\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\Event;
use Webkul\Product\Http\Requests\ProductForm;
use Webkul\Product\Repositories\ProductRepository as Product;
use Webkul\Product\Repositories\ProductGridRepository as ProductGrid;
use Webkul\Attribute\Repositories\AttributeFamilyRepository as AttributeFamily;
use Webkul\Category\Repositories\CategoryRepository as Category;
use Webkul\Inventory\Repositories\InventorySourceRepository as InventorySource;
use Event;
/**
* Product controller
@ -126,9 +126,6 @@ class ProductController extends Controller
*/
public function store()
{
//before store of the product
// Event::fire('product.save.before', false);
if(!request()->get('family') && request()->input('type') == 'configurable' && request()->input('sku') != '') {
return redirect(url()->current() . '?family=' . request()->input('attribute_family_id') . '&sku=' . request()->input('sku'));
}
@ -145,10 +142,14 @@ class ProductController extends Controller
'sku' => ['required', 'unique:products,sku', new \Webkul\Core\Contracts\Validations\Slug]
]);
//before store of the product
Event::fire('catalog.product.create.before');
$product = $this->product->create(request()->all());
//after store of the product
Event::fire('product.save.after', $product);
Event::fire('catalog.product.create.after', $product);
session()->flash('success', 'Product created successfully.');
@ -181,13 +182,11 @@ class ProductController extends Controller
*/
public function update(ProductForm $request, $id)
{
// before update of product
// Event::fire('product.update.before', $id);
Event::fire('catalog.product.update.before', $id);
$product = $this->product->update(request()->all(), $id);
//after update of product
Event::fire('product.update.after', $product);
Event::fire('catalog.product.update.after', $product);
session()->flash('success', 'Product updated successfully.');
@ -202,12 +201,11 @@ class ProductController extends Controller
*/
public function destroy($id)
{
Event::fire('product.delete.before', $id);
Event::fire('catalog.product.delete.before', $id);
$this->product->delete($id);
//before update of product
// Event::fire('product.delete.after', $id);
Event::fire('catalog.product.delete.after', $id);
session()->flash('success', 'Product deleted successfully.');
@ -228,7 +226,11 @@ class ProductController extends Controller
$product = $this->product->find($productId);
if(!is_null($product)) {
Event::fire('catalog.product.delete.before', $productId);
$product->delete();
Event::fire('catalog.product.delete.after', $productId);
}
}
}
@ -258,11 +260,15 @@ class ProductController extends Controller
$product = $this->product->find($productId);
if($data['update-options'] == 0 && $data['selected-option-text'] == 'In Active') {
Event::fire('catelog.product.update.before', $productId);
$result = $this->product->updateAttribute($product, $attribute, $data['update-options']);
if($result)
Event::fire('product.update.after', $product);
Event::fire('catelog.product.update.after', $product);
} else if($data['update-options'] == 1 && $data['selected-option-text'] == 'Active') {
Event::fire('catelog.product.update.before', $productId);
$result = $this->product->updateAttribute($product, $attribute, $data['update-options']);
if($result)

View File

@ -4,6 +4,7 @@ namespace Webkul\Product\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\Event;
use Webkul\Product\Repositories\ProductRepository as Product;
use Webkul\Product\Repositories\ProductReviewRepository as ProductReview;
@ -85,8 +86,12 @@ class ReviewController extends Controller
*/
public function update(Request $request, $id)
{
Event::fire('customer.review.update.before', $id);
$this->productReview->update(request()->all(), $id);
Event::fire('customer.review.update.after', $id);
session()->flash('success', 'Review updated successfully.');
return redirect()->route($this->_config['redirect']);
@ -100,8 +105,12 @@ class ReviewController extends Controller
*/
public function destroy($id)
{
Event::fire('customer.review.delete.before', $id);
$this->productReview->delete($id);
Event::fire('customer.review.delete.after', $id);
session()->flash('success', 'Review Successfully Deleted');
return redirect()->back();
@ -122,7 +131,11 @@ class ReviewController extends Controller
foreach($indexes as $key => $value) {
try {
Event::fire('customer.review.delete.before', $value);
$this->productReview->delete($value);
Event::fire('customer.review.delete.after', $value);
} catch(\Exception $e) {
$suppressFlash = true;
@ -162,7 +175,11 @@ class ReviewController extends Controller
try {
if($data['massaction-type'] == 1 && $data['update-options'] == 1 && $data['selected-option-text'] == 'Approve') {
Event::fire('customer.review.update.before', $value);
$review->update(['status' => 'approved']);
Event::fire('customer.review.update.after', $review);
} else if($data['massaction-type'] == 1 && $data['update-options'] == 0 && $data['selected-option-text'] == 'Disapprove') {
$review->update(['status' => 'pending']);
} else {

View File

@ -1,41 +0,0 @@
<?php
namespace Webkul\Product\Observers;
use Webkul\Product\Models\Product;
class ProductObserver
{
/**
* Handle to the product "created" event.
*
* @param \App\Product $product
* @return void
*/
public function created(Product $product)
{
}
/**
* Handle the product "updated" event.
*
* @param \App\Product $product
* @return void
*/
public function updated(Product $product)
{
//
}
/**
* Handle the product "deleted" event.
*
* @param \App\Product $product
* @return void
*/
public function deleted(Product $product)
{
//
}
}

View File

@ -5,8 +5,6 @@ namespace Webkul\Product\Providers;
use Illuminate\Support\ServiceProvider;
use Illuminate\Routing\Router;
use Webkul\Product\Models\Product;
use Webkul\Product\Observers\ProductObserver;
use Event;
class ProductServiceProvider extends ServiceProvider
{
@ -18,20 +16,6 @@ class ProductServiceProvider extends ServiceProvider
public function boot(Router $router)
{
$this->loadMigrationsFrom(__DIR__ . '/../Database/Migrations');
Event::listen('products.datagrid.sync', 'Webkul\Admin\Listeners\Product@sync');
Event::listen('product.save.after', 'Webkul\Admin\Listeners\Product@afterProductCreated');
Event::listen('product.update.before',
'Webkul\Admin\Listeners\Product@beforeProductUpdate');
Event::listen('product.update.after',
'Webkul\Admin\Listeners\Product@afterProductUpdate');
Event::listen('product.delete.after', 'Webkul\Admin\Listeners\Product@afterProductDelete');
Product::observe(ProductObserver::class);
}
/**

View File

@ -38,10 +38,12 @@ class ProductImageRepository extends Repository
$dir = 'product/' . $product->id;
if (str_contains($imageId, 'image_')) {
$this->create([
'path' => request()->file($file)->store($dir),
'product_id' => $product->id
]);
if(request()->hasFile($file)) {
$this->create([
'path' => request()->file($file)->store($dir),
'product_id' => $product->id
]);
}
} else {
if(is_numeric($index = $previousImageIds->search($imageId))) {
$previousImageIds->forget($index);

View File

@ -4,6 +4,7 @@ namespace Webkul\Tax\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\Event;
use Webkul\Channel as Channel;
use Webkul\Tax\Repositories\TaxCategoryRepository as TaxCategory;
use Webkul\Tax\Repositories\TaxRateRepository as TaxRate;
@ -99,28 +100,26 @@ class TaxCategoryController extends Controller
'taxrates' => 'array|required'
]);
if($taxCategory = $this->taxCategory->create(request()->input())) {
$allTaxCategories = $data['taxrates'];
Event::fire('tax.tax_category.create.before');
//attach the categories in the tax map table
$this->taxCategory->attachOrDetach($taxCategory, $allTaxCategories);
$taxCategory = $this->taxCategory->create($data);
session()->flash('success', trans('admin::app.settings.tax-categories.create-success'));
//attach the categories in the tax map table
$this->taxCategory->attachOrDetach($taxCategory, $data['taxrates']);
return redirect()->route($this->_config['redirect']);
} else {
session()->flash('error', trans('admin::app.settings.tax-categories.create-error'));
}
Event::fire('tax.tax_category.create.after', $taxCategory);
return view($this->_config['view']);
session()->flash('success', trans('admin::app.settings.tax-categories.create-success'));
return redirect()->route($this->_config['redirect']);
}
/**
* To show the edit form form the tax category
*
* @param int $id
* @return view
*/
public function edit($id)
{
$taxCategory = $this->taxCategory->findOrFail($id);
@ -131,10 +130,11 @@ class TaxCategoryController extends Controller
/**
* To update the tax category
*
* @return view
* @param int $id
* @return Response
*/
public function update($id) {
public function update($id)
{
$this->validate(request(), [
'channel_id' => 'required|numeric',
'code' => 'required|string|unique:tax_categories,code,'.$id,
@ -145,10 +145,15 @@ class TaxCategoryController extends Controller
$data = request()->input();
Event::fire('tax.tax_category.update.before', $id);
$taxCategory = $this->taxCategory->update($data, $id);
Event::fire('tax.tax_category.update.after', $taxCategory);
if(!$taxCategory) {
session()->flash('error', trans('admin::app.settings.tax-categories.update-error'));
return redirect()->back();
}
@ -173,8 +178,12 @@ class TaxCategoryController extends Controller
if($this->taxCategory->count() == 1) {
session()->flash('error', trans('admin::app.settings.tax-categories.atleast-one'));
} else {
Event::fire('tax.tax_category.delete.before', $id);
$this->taxCategory->delete($id);
Event::fire('tax.tax_category.delete.after', $id);
session()->flash('success', trans('admin::app.settings.tax-categories.delete'));
}

View File

@ -4,6 +4,7 @@ namespace Webkul\Tax\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\Event;
use Webkul\Tax\Repositories\TaxRateRepository as TaxRate;
@ -91,17 +92,15 @@ class TaxRateController extends Controller
unset($data['zip_code']);
}
if($this->taxRate->create($data)) {
session()->flash('success', trans('admin::app.settings.tax-rates.create-success'));
Event::fire('tax.tax_rate.create.before');
return redirect()->route($this->_config['redirect']);
} else {
session()->flash('error', trans('admin::app.settings.tax-rates.create-error'));
$taxRate = $this->taxRate->create($data);
return redirect()->back();
}
Event::fire('tax.tax_rate.create.after', $taxRate);
return redirect()->back();
session()->flash('success', trans('admin::app.settings.tax-rates.create-success'));
return redirect()->route($this->_config['redirect']);
}
/**
@ -136,17 +135,15 @@ class TaxRateController extends Controller
'tax_rate' => 'required|numeric'
]);
if($this->taxRate->update(request()->input(), $id)) {
session()->flash('success', trans('admin::app.settings.tax-rates.update-success'));
Event::fire('tax.tax_rate.update.before', $id);
return redirect()->route($this->_config['redirect']);
} else {
session()->flash('error', trans('admin::app.settings.tax-rates.update-error'));
$taxRate = $this->taxRate->update(request()->input(), $id);
return redirect()->back();
}
Event::fire('tax.tax_rate.update.after', $taxRate);
return redirect()->back();
session()->flash('success', trans('admin::app.settings.tax-rates.update-success'));
return redirect()->route($this->_config['redirect']);
}
/**
@ -160,8 +157,12 @@ class TaxRateController extends Controller
if($this->taxRate->count() == 1) {
session()->flash('error', trans('admin::app.settings.tax-rates.atleast-one'));
} else {
Event::fire('tax.tax_rate.delete.before', $id);
$this->taxRate->delete($id);
Event::fire('tax.tax_rate.delete.after', $id);
session()->flash('success', trans('admin::app.settings.tax-rates.delete'));
}

View File

@ -4,6 +4,7 @@ namespace Webkul\User\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\Event;
use Webkul\User\Repositories\RoleRepository as Role;
/**
@ -76,7 +77,11 @@ class RoleController extends Controller
'permission_type' => 'required',
]);
$this->role->create(request()->all());
Event::fire('user.role.create.before');
$role = $this->role->create(request()->all());
Event::fire('user.role.create.after', $role);
session()->flash('success', 'Role created successfully.');
@ -110,7 +115,11 @@ class RoleController extends Controller
'permission_type' => 'required',
]);
$this->role->update(request()->all(), $id);
Event::fire('user.role.update.before', $id);
$role = $this->role->update(request()->all(), $id);
Event::fire('user.role.update.after', $role);
session()->flash('success', 'Role updated successfully.');
@ -128,8 +137,12 @@ class RoleController extends Controller
if($this->role->count() == 1) {
session()->flash('error', 'At least one role is required.');
} else {
Event::fire('user.role.delete.before', $id);
$this->role->delete($id);
Event::fire('user.role.delete.after', $id);
session()->flash('success', 'Role source deleted successfully.');
}

View File

@ -4,6 +4,7 @@ namespace Webkul\User\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\Event;
use Webkul\User\Repositories\AdminRepository as Admin;
use Webkul\User\Repositories\RoleRepository as Role;
use Webkul\User\Http\Requests\UserForm;
@ -92,7 +93,11 @@ class UserController extends Controller
if(isset($data['password']) && $data['password'])
$data['password'] = bcrypt($data['password']);
$this->admin->create($data);
Event::fire('user.admin.create.before');
$admin = $this->admin->create($data);
Event::fire('user.admin.delete.after', $admin);
session()->flash('success', 'User created successfully.');
@ -136,7 +141,11 @@ class UserController extends Controller
$data['status'] = 0;
}
$this->admin->update($data, $id);
Event::fire('user.admin.update.before', $id);
$admin = $this->admin->update($data, $id);
Event::fire('user.admin.update.after', $admin);
session()->flash('success', 'User updated successfully.');
@ -154,8 +163,12 @@ class UserController extends Controller
if($this->admin->count() == 1) {
session()->flash('error', 'At least one admin is required.');
} else {
Event::fire('user.admin.delete.before', $id);
$this->admin->delete($id);
Event::fire('user.admin.delete.after', $id);
session()->flash('success', 'Admin source deleted successfully.');
}