From 7b47e1f173d56e3d798d97bf7b047c6bb1eb6e3f Mon Sep 17 00:00:00 2001 From: ghermans Date: Mon, 15 Jun 2020 04:29:00 +0200 Subject: [PATCH] Added customer overview --- packages/Webkul/Admin/src/Config/menu.php | 4 +- .../Admin/src/DataGrids/AddressDataGrid.php | 30 ++-- .../Customer/CustomerController.php | 41 +++-- .../Resources/views/customers/edit.blade.php | 140 +++--------------- .../views/customers/general.blade.php | 105 +++++++++++++ 5 files changed, 163 insertions(+), 157 deletions(-) create mode 100644 packages/Webkul/Admin/src/Resources/views/customers/general.blade.php diff --git a/packages/Webkul/Admin/src/Config/menu.php b/packages/Webkul/Admin/src/Config/menu.php index 426ef3edc..e0f383edd 100755 --- a/packages/Webkul/Admin/src/Config/menu.php +++ b/packages/Webkul/Admin/src/Config/menu.php @@ -53,13 +53,13 @@ return [ 'key' => 'catalog.categories', 'name' => 'admin::app.layouts.categories', 'route' => 'admin.catalog.categories.index', - 'sort' => 3, + 'sort' => 2, 'icon-class' => '', ], [ 'key' => 'catalog.attributes', 'name' => 'admin::app.layouts.attributes', 'route' => 'admin.catalog.attributes.index', - 'sort' => 2, + 'sort' => 3, 'icon-class' => '', ], [ 'key' => 'catalog.families', diff --git a/packages/Webkul/Admin/src/DataGrids/AddressDataGrid.php b/packages/Webkul/Admin/src/DataGrids/AddressDataGrid.php index ad6a82b52..bce3a7d5e 100644 --- a/packages/Webkul/Admin/src/DataGrids/AddressDataGrid.php +++ b/packages/Webkul/Admin/src/DataGrids/AddressDataGrid.php @@ -59,13 +59,12 @@ class AddressDataGrid extends DataGrid $queryBuilder->groupBy('ca.id') ->addSelect(DB::raw(DB::getTablePrefix() . 'country_states.default_name as state_name')); - $this->addFilter('address_id', 'ca.id'); $this->addFilter('company_name', 'ca.company_name'); $this->addFilter('address1', 'ca.address1'); + $this->addFilter('postcode', 'ca.postcode'); $this->addFilter('city', 'ca.city'); $this->addFilter('state_name', DB::raw(DB::getTablePrefix() . 'country_states.default_name')); $this->addFilter('country_name', DB::raw(DB::getTablePrefix() . 'countries.name')); - $this->addFilter('postcode', 'ca.postcode'); $this->addFilter('default_address', 'ca.default_address'); $this->setQueryBuilder($queryBuilder); @@ -73,15 +72,6 @@ class AddressDataGrid extends DataGrid public function addColumns() { - $this->addColumn([ - 'index' => 'address_id', - 'label' => trans('admin::app.customers.addresses.address-id'), - 'type' => 'number', - 'searchable' => true, - 'sortable' => true, - 'filterable' => true, - ]); - $this->addColumn([ 'index' => 'company_name', 'label' => trans('admin::app.customers.addresses.company-name'), @@ -100,6 +90,15 @@ class AddressDataGrid extends DataGrid 'filterable' => true, ]); + $this->addColumn([ + 'index' => 'postcode', + 'label' => trans('admin::app.customers.addresses.postcode'), + 'type' => 'string', + 'searchable' => true, + 'sortable' => true, + 'filterable' => true, + ]); + $this->addColumn([ 'index' => 'city', 'label' => trans('admin::app.customers.addresses.city'), @@ -127,15 +126,6 @@ class AddressDataGrid extends DataGrid 'filterable' => true, ]); - $this->addColumn([ - 'index' => 'postcode', - 'label' => trans('admin::app.customers.addresses.postcode'), - 'type' => 'string', - 'searchable' => true, - 'sortable' => true, - 'filterable' => true, - ]); - $this->addColumn([ 'index' => 'default_address', 'label' => trans('admin::app.customers.addresses.default-address'), diff --git a/packages/Webkul/Admin/src/Http/Controllers/Customer/CustomerController.php b/packages/Webkul/Admin/src/Http/Controllers/Customer/CustomerController.php index 5a1f4de86..18ec38400 100755 --- a/packages/Webkul/Admin/src/Http/Controllers/Customer/CustomerController.php +++ b/packages/Webkul/Admin/src/Http/Controllers/Customer/CustomerController.php @@ -5,8 +5,11 @@ namespace Webkul\Admin\Http\Controllers\Customer; use Illuminate\Support\Facades\Event; use Webkul\Admin\Http\Controllers\Controller; use Webkul\Customer\Repositories\CustomerRepository; + +use Webkul\Customer\Repositories\CustomerAddressRepository; use Webkul\Customer\Repositories\CustomerGroupRepository; use Webkul\Core\Repositories\ChannelRepository; + use Webkul\Admin\Mail\NewCustomerNotification; use Mail; @@ -26,6 +29,13 @@ class CustomerController extends Controller */ protected $customerRepository; + /** + * CustomerAddress Repository object + * + * @var \Webkul\Customer\Repositories\CustomerAddressRepository + */ + protected $customerAddressRepository; + /** * CustomerGroupRepository object * @@ -44,26 +54,26 @@ class CustomerController extends Controller * Create a new controller instance. * * @param \Webkul\Customer\Repositories\CustomerRepository $customerRepository + * @param \Webkul\Customer\Repositories\CustomerAddressRepository $customerAddressRepository * @param \Webkul\Customer\Repositories\CustomerGroupRepository $customerGroupRepository * @param \Webkul\Core\Repositories\ChannelRepository $channelRepository */ public function __construct( CustomerRepository $customerRepository, + CustomerAddressRepository $customerAddressRepository, CustomerGroupRepository $customerGroupRepository, ChannelRepository $channelRepository - ) - { - $this->_config = request('_config'); - - $this->middleware('admin'); - - $this->customerRepository = $customerRepository; - - $this->customerGroupRepository = $customerGroupRepository; - - $this->channelRepository = $channelRepository; - - } + ) + + { + $this->_config = request('_config'); + $this->middleware('admin'); + $this->customerRepository = $customerRepository; + + $this->customerAddressRepository = $customerAddressRepository; + $this->customerGroupRepository = $customerGroupRepository; + $this->channelRepository = $channelRepository; + } /** * Display a listing of the resource. @@ -141,12 +151,11 @@ class CustomerController extends Controller public function edit($id) { $customer = $this->customerRepository->findOrFail($id); - + $address = $this->customerAddressRepository->find($id); $customerGroup = $this->customerGroupRepository->findWhere([['code', '<>', 'guest']]); - $channelName = $this->channelRepository->all(); - return view($this->_config['view'], compact('customer', 'customerGroup', 'channelName')); + return view($this->_config['view'], compact('customer', 'address', 'customerGroup', 'channelName')); } /** diff --git a/packages/Webkul/Admin/src/Resources/views/customers/edit.blade.php b/packages/Webkul/Admin/src/Resources/views/customers/edit.blade.php index ee58600cc..f5a7feb64 100755 --- a/packages/Webkul/Admin/src/Resources/views/customers/edit.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/customers/edit.blade.php @@ -6,129 +6,31 @@ @section('content')
+ + + {!! view_render_event('bagisto.admin.customer.edit.before', ['customer' => $customer]) !!} - -
- -
@stop \ No newline at end of file diff --git a/packages/Webkul/Admin/src/Resources/views/customers/general.blade.php b/packages/Webkul/Admin/src/Resources/views/customers/general.blade.php new file mode 100644 index 000000000..6118ea986 --- /dev/null +++ b/packages/Webkul/Admin/src/Resources/views/customers/general.blade.php @@ -0,0 +1,105 @@ +{!! view_render_event('bagisto.admin.customer.edit.before', ['customer' => $customer]) !!} + +
+
+
+ @csrf() + + +
 
+ +
+ {!! view_render_event('bagisto.admin.customer.edit.form.before', ['customer' => $customer]) !!} + +
+ + + @{{ errors.first('first_name') }} +
+ + {!! view_render_event('bagisto.admin.customer.edit.first_name.after', ['customer' => $customer]) !!} + +
+ + + @{{ errors.first('last_name') }} +
+ + {!! view_render_event('bagisto.admin.customer.edit.last_name.after', ['customer' => $customer]) !!} + +
+ + + @{{ errors.first('email') }} +
+ + {!! view_render_event('bagisto.admin.customer.edit.email.after', ['customer' => $customer]) !!} + +
+ + + @{{ errors.first('gender') }} +
+ + {!! view_render_event('bagisto.admin.customer.edit.gender.after', ['customer' => $customer]) !!} + +
+ + + + + @{{ errors.first('status') }} +
+ + {!! view_render_event('bagisto.admin.customer.edit.status.after', ['customer' => $customer]) !!} + +
+ + + @{{ errors.first('date_of_birth') }} +
+ + {!! view_render_event('bagisto.admin.customer.edit.date_of_birth.after', ['customer' => $customer]) !!} + +
+ + + @{{ errors.first('phone') }} +
+ + {!! view_render_event('bagisto.admin.customer.edit.phone.after', ['customer' => $customer]) !!} + +
+ + + @if (! is_null($customer->customer_group_id)) + group->id ?> + @else + + @endif + + +
+
+ +
+
+
+ {!! view_render_event('bagisto.admin.customer.edit.after', ['customer' => $customer]) !!} \ No newline at end of file