From 96bbe9ab313b284e05413995f58377e2f98347a5 Mon Sep 17 00:00:00 2001 From: jitendra Date: Thu, 10 Mar 2022 15:35:35 +0530 Subject: [PATCH] Issue #2918 fixed --- .../Webkul/BookingProduct/src/Config/menu.php | 11 ++ .../src/DataGrids/Admin/BookingDataGrid.php | 132 ++++++++++++++++++ .../Controllers/Admin/BookingController.php | 40 ++++++ .../Controllers/{Shop => }/Controller.php | 2 +- .../Shop/BookingProductController.php | 3 +- .../BookingProduct/src/Http/admin-routes.php | 15 ++ .../BookingProduct/src/Models/Booking.php | 4 +- .../BookingProductServiceProvider.php | 6 + .../src/Resources/lang/ar/app.php | 6 + .../src/Resources/lang/en/app.php | 11 ++ .../src/Resources/lang/es/app.php | 6 + .../src/Resources/lang/fa/app.php | 6 + .../src/Resources/lang/it/app.php | 6 + .../src/Resources/lang/nl/app.php | 6 + .../src/Resources/lang/pt_BR/app.php | 6 + .../src/Resources/lang/zh_CN/app.php | 6 + .../admin/sales/bookings/index.blade.php | 19 +++ 17 files changed, 281 insertions(+), 4 deletions(-) create mode 100644 packages/Webkul/BookingProduct/src/Config/menu.php create mode 100644 packages/Webkul/BookingProduct/src/DataGrids/Admin/BookingDataGrid.php create mode 100644 packages/Webkul/BookingProduct/src/Http/Controllers/Admin/BookingController.php rename packages/Webkul/BookingProduct/src/Http/Controllers/{Shop => }/Controller.php (82%) create mode 100644 packages/Webkul/BookingProduct/src/Http/admin-routes.php create mode 100644 packages/Webkul/BookingProduct/src/Resources/views/admin/sales/bookings/index.blade.php diff --git a/packages/Webkul/BookingProduct/src/Config/menu.php b/packages/Webkul/BookingProduct/src/Config/menu.php new file mode 100644 index 000000000..b1049a0b4 --- /dev/null +++ b/packages/Webkul/BookingProduct/src/Config/menu.php @@ -0,0 +1,11 @@ + 'sales.bookings', + 'name' => 'bookingproduct::app.admin.sales.bookings.title', + 'route' => 'admin.sales.bookings.index', + 'sort' => 6, + 'icon-class' => '', + ] +]; \ No newline at end of file diff --git a/packages/Webkul/BookingProduct/src/DataGrids/Admin/BookingDataGrid.php b/packages/Webkul/BookingProduct/src/DataGrids/Admin/BookingDataGrid.php new file mode 100644 index 000000000..7f1de163a --- /dev/null +++ b/packages/Webkul/BookingProduct/src/DataGrids/Admin/BookingDataGrid.php @@ -0,0 +1,132 @@ +leftJoin('orders', 'bookings.order_id', '=', 'orders.id') + ->select('bookings.id as id', 'orders.increment_id as order_id', 'bookings.from as from', 'bookings.to as to', 'bookings.qty as qty', 'orders.created_at as created_at'); + + $this->addFilter('id', 'bookings.id'); + $this->addFilter('order_id', 'orders.increment_id'); + $this->addFilter('qty', 'bookings.qty'); + $this->addFilter('created_at', 'orders.created_at'); + + $this->setQueryBuilder($queryBuilder); + } + + /** + * Add columns. + * + * @return void + */ + public function addColumns() + { + $this->addColumn([ + 'index' => 'id', + 'label' => trans('admin::app.datagrid.id'), + 'type' => 'string', + 'searchable' => false, + 'sortable' => true, + 'filterable' => true, + ]); + + $this->addColumn([ + 'index' => 'order_id', + 'label' => trans('admin::app.datagrid.order-id'), + 'type' => 'string', + 'searchable' => true, + 'sortable' => true, + 'filterable' => true, + ]); + + $this->addColumn([ + 'index' => 'qty', + 'label' => trans('admin::app.datagrid.qty'), + 'type' => 'string', + 'searchable' => true, + 'sortable' => true, + 'filterable' => true, + ]); + + $this->addColumn([ + 'index' => 'from', + 'label' => trans('bookingproduct::app.admin.datagrid.from'), + 'type' => 'string', + 'searchable' => true, + 'sortable' => true, + 'filterable' => false, + 'closure' => function ($value) { + $from = Carbon::createFromTimestamp($value->from); + + return $from->format('d F, Y H:iA'); + } + ]); + + $this->addColumn([ + 'index' => 'to', + 'label' => trans('bookingproduct::app.admin.datagrid.to'), + 'type' => 'string', + 'searchable' => true, + 'sortable' => true, + 'filterable' => false, + 'closure' => function ($value) { + $to = Carbon::createFromTimestamp($value->to); + + return $to->format('d F, Y H:iA'); + } + ]); + + $this->addColumn([ + 'index' => 'created_at', + 'label' => trans('admin::app.datagrid.created-date'), + 'type' => 'datetime', + 'searchable' => true, + 'sortable' => true, + 'filterable' => true, + ]); + } + + /** + * Prepare actions. + * + * @return void + */ + public function prepareActions() + { + $this->addAction([ + 'title' => trans('admin::app.datagrid.view'), + 'method' => 'GET', + 'route' => 'admin.sales.orders.view', + 'icon' => 'icon eye-icon', + ]); + } +} diff --git a/packages/Webkul/BookingProduct/src/Http/Controllers/Admin/BookingController.php b/packages/Webkul/BookingProduct/src/Http/Controllers/Admin/BookingController.php new file mode 100644 index 000000000..ac770e04d --- /dev/null +++ b/packages/Webkul/BookingProduct/src/Http/Controllers/Admin/BookingController.php @@ -0,0 +1,40 @@ +_config = request('_config'); + } + + /** + * Display a listing of the resource. + * + * @return \Illuminate\View\View + */ + public function index() + { + if (request()->ajax()) { + return app(BookingDataGrid::class)->toJson(); + } + + return view($this->_config['view']); + } +} \ No newline at end of file diff --git a/packages/Webkul/BookingProduct/src/Http/Controllers/Shop/Controller.php b/packages/Webkul/BookingProduct/src/Http/Controllers/Controller.php similarity index 82% rename from packages/Webkul/BookingProduct/src/Http/Controllers/Shop/Controller.php rename to packages/Webkul/BookingProduct/src/Http/Controllers/Controller.php index 0209a71dc..64694bff8 100644 --- a/packages/Webkul/BookingProduct/src/Http/Controllers/Shop/Controller.php +++ b/packages/Webkul/BookingProduct/src/Http/Controllers/Controller.php @@ -1,6 +1,6 @@ ['web', 'admin', 'admin_locale'], 'prefix' => config('app.admin_url')], function () { + Route::prefix('sales')->group(function () { + /** + * Booking routes. + */ + Route::get('/bookings', [Webkul\BookingProduct\Http\Controllers\Admin\BookingController::class, 'index'])->defaults('_config', [ + 'view' => 'bookingproduct::admin.sales.bookings.index', + ])->name('admin.sales.bookings.index'); + }); +}); \ No newline at end of file diff --git a/packages/Webkul/BookingProduct/src/Models/Booking.php b/packages/Webkul/BookingProduct/src/Models/Booking.php index eb140e7db..182974986 100644 --- a/packages/Webkul/BookingProduct/src/Models/Booking.php +++ b/packages/Webkul/BookingProduct/src/Models/Booking.php @@ -13,8 +13,8 @@ class Booking extends Model implements BookingContract protected $fillable = [ 'qty', - 'available_from', - 'available_to', + 'from', + 'to', 'order_item_id', 'booking_product_event_ticket_id', 'product_id', diff --git a/packages/Webkul/BookingProduct/src/Providers/BookingProductServiceProvider.php b/packages/Webkul/BookingProduct/src/Providers/BookingProductServiceProvider.php index 56d23a577..970de27df 100644 --- a/packages/Webkul/BookingProduct/src/Providers/BookingProductServiceProvider.php +++ b/packages/Webkul/BookingProduct/src/Providers/BookingProductServiceProvider.php @@ -13,6 +13,8 @@ class BookingProductServiceProvider extends ServiceProvider */ public function boot(): void { + $this->loadRoutesFrom(__DIR__ . '/../Http/admin-routes.php'); + $this->loadRoutesFrom(__DIR__ . '/../Http/front-routes.php'); $this->loadMigrationsFrom(__DIR__ . '/../Database/Migrations'); @@ -36,5 +38,9 @@ class BookingProductServiceProvider extends ServiceProvider public function register(): void { $this->mergeConfigFrom(dirname(__DIR__) . '/Config/product_types.php', 'product_types'); + + $this->mergeConfigFrom( + dirname(__DIR__) . '/Config/menu.php', 'menu.admin' + ); } } \ No newline at end of file diff --git a/packages/Webkul/BookingProduct/src/Resources/lang/ar/app.php b/packages/Webkul/BookingProduct/src/Resources/lang/ar/app.php index cfe6f62d6..638e12fd4 100644 --- a/packages/Webkul/BookingProduct/src/Resources/lang/ar/app.php +++ b/packages/Webkul/BookingProduct/src/Resources/lang/ar/app.php @@ -66,6 +66,12 @@ return [ 'close' => 'غلق', 'time-error' => 'The to time must be greater than the from time.' ] + ], + + 'sales' => [ + 'bookings' => [ + 'title' => 'Bookings', + ] ] ], diff --git a/packages/Webkul/BookingProduct/src/Resources/lang/en/app.php b/packages/Webkul/BookingProduct/src/Resources/lang/en/app.php index 7fdee5ec7..3c978e05a 100644 --- a/packages/Webkul/BookingProduct/src/Resources/lang/en/app.php +++ b/packages/Webkul/BookingProduct/src/Resources/lang/en/app.php @@ -66,6 +66,17 @@ return [ 'close' => 'Close', 'time-error' => 'The to time must be greater than the from time.' ] + ], + + 'sales' => [ + 'bookings' => [ + 'title' => 'Bookings', + ] + ], + + 'datagrid' => [ + 'from' => 'From', + 'to' => 'To' ] ], diff --git a/packages/Webkul/BookingProduct/src/Resources/lang/es/app.php b/packages/Webkul/BookingProduct/src/Resources/lang/es/app.php index 1ff2ca2d2..69d7ae5f8 100644 --- a/packages/Webkul/BookingProduct/src/Resources/lang/es/app.php +++ b/packages/Webkul/BookingProduct/src/Resources/lang/es/app.php @@ -66,6 +66,12 @@ return [ 'close' => 'Cerrado', 'time-error' => 'The to time must be greater than the from time.' ] + ], + + 'sales' => [ + 'bookings' => [ + 'title' => 'Bookings', + ] ] ], diff --git a/packages/Webkul/BookingProduct/src/Resources/lang/fa/app.php b/packages/Webkul/BookingProduct/src/Resources/lang/fa/app.php index 527616ad9..ec4948845 100644 --- a/packages/Webkul/BookingProduct/src/Resources/lang/fa/app.php +++ b/packages/Webkul/BookingProduct/src/Resources/lang/fa/app.php @@ -66,6 +66,12 @@ return [ 'close' => 'بستن', 'time-error' => 'The to time must be greater than the from time.' ] + ], + + 'sales' => [ + 'bookings' => [ + 'title' => 'Bookings', + ] ] ], diff --git a/packages/Webkul/BookingProduct/src/Resources/lang/it/app.php b/packages/Webkul/BookingProduct/src/Resources/lang/it/app.php index c6ff75f93..254779ba4 100644 --- a/packages/Webkul/BookingProduct/src/Resources/lang/it/app.php +++ b/packages/Webkul/BookingProduct/src/Resources/lang/it/app.php @@ -66,6 +66,12 @@ return [ 'close' => 'Chiuso', 'time-error' => 'The to time must be greater than the from time.' ] + ], + + 'sales' => [ + 'bookings' => [ + 'title' => 'Bookings', + ] ] ], diff --git a/packages/Webkul/BookingProduct/src/Resources/lang/nl/app.php b/packages/Webkul/BookingProduct/src/Resources/lang/nl/app.php index 21bf8f20c..f1e262768 100644 --- a/packages/Webkul/BookingProduct/src/Resources/lang/nl/app.php +++ b/packages/Webkul/BookingProduct/src/Resources/lang/nl/app.php @@ -66,6 +66,12 @@ return [ 'close' => 'Dichtbij', 'time-error' => 'The to time must be greater than the from time.' ] + ], + + 'sales' => [ + 'bookings' => [ + 'title' => 'Bookings', + ] ] ], diff --git a/packages/Webkul/BookingProduct/src/Resources/lang/pt_BR/app.php b/packages/Webkul/BookingProduct/src/Resources/lang/pt_BR/app.php index 4ce1db96a..091f8041c 100755 --- a/packages/Webkul/BookingProduct/src/Resources/lang/pt_BR/app.php +++ b/packages/Webkul/BookingProduct/src/Resources/lang/pt_BR/app.php @@ -66,6 +66,12 @@ return [ 'close' => 'Fechar', 'time-error' => 'The to time must be greater than the from time.' ] + ], + + 'sales' => [ + 'bookings' => [ + 'title' => 'Bookings', + ] ] ], diff --git a/packages/Webkul/BookingProduct/src/Resources/lang/zh_CN/app.php b/packages/Webkul/BookingProduct/src/Resources/lang/zh_CN/app.php index ff1308fed..1b152401d 100644 --- a/packages/Webkul/BookingProduct/src/Resources/lang/zh_CN/app.php +++ b/packages/Webkul/BookingProduct/src/Resources/lang/zh_CN/app.php @@ -66,6 +66,12 @@ return [ 'close' => '关门', 'time-error' => '这个时间必须大于开始时间.' ] + ], + + 'sales' => [ + 'bookings' => [ + 'title' => 'Bookings', + ] ] ], diff --git a/packages/Webkul/BookingProduct/src/Resources/views/admin/sales/bookings/index.blade.php b/packages/Webkul/BookingProduct/src/Resources/views/admin/sales/bookings/index.blade.php new file mode 100644 index 000000000..876fda00e --- /dev/null +++ b/packages/Webkul/BookingProduct/src/Resources/views/admin/sales/bookings/index.blade.php @@ -0,0 +1,19 @@ +@extends('admin::layouts.content') + +@section('page_title') + {{ __('bookingproduct::app.admin.sales.bookings.title') }} +@stop + +@section('content') +
+ + +
+ +
+
+@stop