diff --git a/packages/Webkul/Admin/src/DataGrids/CustomerDataGrid.php b/packages/Webkul/Admin/src/DataGrids/CustomerDataGrid.php index 732e8f64a..4961d4179 100755 --- a/packages/Webkul/Admin/src/DataGrids/CustomerDataGrid.php +++ b/packages/Webkul/Admin/src/DataGrids/CustomerDataGrid.php @@ -23,7 +23,7 @@ class CustomerDataGrid extends DataGrid { $queryBuilder = DB::table('customers') ->leftJoin('customer_groups', 'customers.customer_group_id', '=', 'customer_groups.id') - ->addSelect('customers.id as customer_id', 'customers.email', 'customer_groups.name') + ->addSelect('customers.id as customer_id', 'customers.email', 'customer_groups.name', 'status') ->addSelect(DB::raw('CONCAT(customers.first_name, " ", customers.last_name) as full_name')); $this->addFilter('customer_id', 'customers.id'); @@ -69,6 +69,22 @@ class CustomerDataGrid extends DataGrid 'sortable' => true, 'filterable' => true ]); + + $this->addColumn([ + 'index' => 'status', + 'label' => trans('admin::app.datagrid.status'), + 'type' => 'boolean', + 'searchable' => false, + 'sortable' => true, + 'filterable' => true, + 'wrapper' => function ($row) { + if ($row->status == 1) { + return 'Activated'; + } else { + return 'Blocked'; + } + } + ]); } public function prepareActions() { @@ -96,4 +112,30 @@ class CustomerDataGrid extends DataGrid 'title' => trans('admin::app.customers.note.help-title') ]); } + + /** + * Customer Mass Action To Delete And Change Their + */ + public function prepareMassActions() + { + $this->addMassAction([ + 'type' => 'delete', + 'label' => 'Delete', + 'action' => route('admin.customer.mass-delete'), + 'method' => 'PUT', + ]); + + $this->addMassAction([ + 'type' => 'update', + 'label' => 'Update Status', + 'action' => route('admin.customer.mass-update'), + 'method' => 'PUT', + 'options' => [ + 'Active' => 1, + 'Inactive' => 0 + ] + ]); + + $this->enableMassAction = true; + } } \ No newline at end of file diff --git a/packages/Webkul/Admin/src/Http/Controllers/Customer/CustomerController.php b/packages/Webkul/Admin/src/Http/Controllers/Customer/CustomerController.php index 476256f76..c2b700582 100755 --- a/packages/Webkul/Admin/src/Http/Controllers/Customer/CustomerController.php +++ b/packages/Webkul/Admin/src/Http/Controllers/Customer/CustomerController.php @@ -224,4 +224,43 @@ class CustomerController extends Controller return redirect()->route($this->_config['redirect']); } + + /** + * To mass update the customer + */ + public function massUpdate() + { + $customerIds = explode(',', request()->input('indexes')); + $updateOption = request()->input('update-options'); + + foreach ($customerIds as $customerId) { + $customer = $this->customer->find($customerId); + + $customer->update([ + 'status' => $updateOption + ]); + } + + session()->flash('info', trans('admin::app.customers.customers.mass-update-success')); + + return redirect()->back(); + } + + /** + * To mass delete the customer + */ + public function massDestroy() + { + $customerIds = explode(',', request()->input('indexes')); + + foreach ($customerIds as $customerId) { + $this->customer->deleteWhere([ + 'id' => $customerId + ]); + } + + session()->flash('info', trans('admin::app.customers.customers.mass-destroy-success')); + + return redirect()->back(); + } } \ No newline at end of file diff --git a/packages/Webkul/Admin/src/Http/routes.php b/packages/Webkul/Admin/src/Http/routes.php index 92b39b4ff..c9de0b06d 100755 --- a/packages/Webkul/Admin/src/Http/routes.php +++ b/packages/Webkul/Admin/src/Http/routes.php @@ -43,7 +43,7 @@ Route::group(['middleware' => ['web']], function () { 'view' => 'admin::dashboard.index' ])->name('admin.dashboard.index'); - //Customers Management Routes + //Customer Management Routes Route::get('customers', 'Webkul\Admin\Http\Controllers\Customer\CustomerController@index')->defaults('_config', [ 'view' => 'admin::customers.index' ])->name('admin.customer.index'); @@ -74,6 +74,10 @@ Route::group(['middleware' => ['web']], function () { Route::post('customers/delete/{id}', 'Webkul\Admin\Http\Controllers\Customer\CustomerController@destroy')->name('admin.customer.delete'); + Route::post('customers/masssdelete', 'Webkul\Admin\Http\Controllers\Customer\CustomerController@massDestroy')->name('admin.customer.mass-delete'); + + Route::post('customers/masssupdate', 'Webkul\Admin\Http\Controllers\Customer\CustomerController@massUpdate')->name('admin.customer.mass-update'); + Route::get('reviews', 'Webkul\Product\Http\Controllers\ReviewController@index')->defaults('_config',[ 'view' => 'admin::customers.reviews.index' ])->name('admin.customer.review.index'); diff --git a/packages/Webkul/Admin/src/Resources/lang/en/app.php b/packages/Webkul/Admin/src/Resources/lang/en/app.php index 601624dab..f77040629 100755 --- a/packages/Webkul/Admin/src/Resources/lang/en/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/en/app.php @@ -768,7 +768,9 @@ return [ 'phone' => 'Phone', 'group-default' => 'Cannot delete the default group.', 'edit-help-title' => 'Edit Customer', - 'delete-help-title' => 'Delete Customer' + 'delete-help-title' => 'Delete Customer', + 'mass-destroy-success' => 'Customers deleted successfully', + 'mass-update-success' => 'Customers updated successfully' ], 'reviews' => [ diff --git a/packages/Webkul/Admin/src/Resources/views/promotions/cart-rule/create.blade.php b/packages/Webkul/Admin/src/Resources/views/promotions/cart-rule/create.blade.php index d19e6c828..fed10ad37 100644 --- a/packages/Webkul/Admin/src/Resources/views/promotions/cart-rule/create.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/promotions/cart-rule/create.blade.php @@ -257,7 +257,7 @@
- + @{{ errors.first('disc_amount') }}