From d750cdced7e5349499edac26b06a46de4a869b2b Mon Sep 17 00:00:00 2001 From: Ludovic CANDELLIER Date: Tue, 29 Aug 2023 22:56:37 +0200 Subject: [PATCH] refactoring of admin datatables --- .../Shop/ArticleNaturesDataTable.php | 2 +- .../{ => Admin}/Shop/ArticlesDataTable.php | 2 +- .../{ => Admin}/Shop/DeliveriesDataTable.php | 12 +++- .../Admin/Shop/InvoicesDataTable.php | 49 +++++++++++++++ .../{ => Admin}/Shop/OffersDataTable.php | 2 +- app/Datatables/Admin/Shop/OrdersDataTable.php | 61 +++++++++++++++++++ .../Shop/SaleChannelsDataTable.php | 2 +- app/Datatables/Shop/OrdersDataTable.php | 5 ++ .../Admin/Shop/ArticleController.php | 2 +- .../Admin/Shop/ArticleNatureController.php | 2 +- .../Admin/Shop/DeliveryController.php | 20 +++--- .../Admin/Shop/InvoiceController.php | 2 +- .../Admin/Shop/OfferController.php | 2 +- .../Admin/Shop/OrderController.php | 2 +- .../Admin/Shop/SaleChannelController.php | 2 +- 15 files changed, 147 insertions(+), 20 deletions(-) rename app/Datatables/{ => Admin}/Shop/ArticleNaturesDataTable.php (96%) rename app/Datatables/{ => Admin}/Shop/ArticlesDataTable.php (99%) rename app/Datatables/{ => Admin}/Shop/DeliveriesDataTable.php (68%) create mode 100644 app/Datatables/Admin/Shop/InvoicesDataTable.php rename app/Datatables/{ => Admin}/Shop/OffersDataTable.php (98%) create mode 100644 app/Datatables/Admin/Shop/OrdersDataTable.php rename app/Datatables/{ => Admin}/Shop/SaleChannelsDataTable.php (95%) diff --git a/app/Datatables/Shop/ArticleNaturesDataTable.php b/app/Datatables/Admin/Shop/ArticleNaturesDataTable.php similarity index 96% rename from app/Datatables/Shop/ArticleNaturesDataTable.php rename to app/Datatables/Admin/Shop/ArticleNaturesDataTable.php index 58e913ef..2ce6fb1c 100644 --- a/app/Datatables/Shop/ArticleNaturesDataTable.php +++ b/app/Datatables/Admin/Shop/ArticleNaturesDataTable.php @@ -1,6 +1,6 @@ 'sm', ]); }) + ->editColumn('is_public', function (Delivery $delivery) { + return $delivery->is_public ? "" : ''; + }) + ->editColumn('at_house', function (Delivery $delivery) { + return $delivery->at_house ? "" : ''; + }) ->editColumn('address', function (Delivery $delivery) { return $delivery->address.' '.$delivery->zipcode.' '.$delivery->city; }) - ->rawColumns(['active', 'address', 'action']); + ->rawColumns(['active', 'is_public', 'at_house', 'address', 'action']); return parent::modifier($datatables); } @@ -41,6 +47,8 @@ class DeliveriesDataTable extends DataTable { return [ Column::make('active')->title(__('active'))->width(60)->class('text-center'), + Column::make('is_public')->title(__('Public'))->width(60)->class('text-center'), + Column::make('at_house')->title(__('Défaut'))->width(60)->class('text-center'), Column::make('name')->title('Nom'), Column::make('sale_channel.name')->title(__('shop.sale_channels.name')), Column::make('address')->title('Adresse')->searchable(false), diff --git a/app/Datatables/Admin/Shop/InvoicesDataTable.php b/app/Datatables/Admin/Shop/InvoicesDataTable.php new file mode 100644 index 00000000..5a004d20 --- /dev/null +++ b/app/Datatables/Admin/Shop/InvoicesDataTable.php @@ -0,0 +1,49 @@ +with('customer'); + + return $this->buildQuery($model); + } + + public function modifier($datatables) + { + $datatables + ->editColumn('status', function (Invoice $invoice) { + return Invoices::getStatus($invoice->status); + }) + ->editColumn('created_at', function (Invoice $invoice) { + return $invoice->created_at->toDateTimeString(); + }) + ->editColumn('customer.last_name', function (Invoice $invoice) { + return ($invoice->customer ?? false) ? $invoice->customer->last_name.' '.$invoice->customer->first_name : ''; + }) + ->rawColumns(['action']); + + return parent::modifier($datatables); + } + + protected function getColumns() + { + return [ + Column::make('ref')->title('Ref')->width(80), + Column::make('status')->width(60), + Column::make('created_at')->title('Date')->width(100), + Column::make('customer.last_name')->title('Client')->default(''), + Column::make('total')->addClass('text-right'), + $this->makeColumnButtons(), + ]; + } +} diff --git a/app/Datatables/Shop/OffersDataTable.php b/app/Datatables/Admin/Shop/OffersDataTable.php similarity index 98% rename from app/Datatables/Shop/OffersDataTable.php rename to app/Datatables/Admin/Shop/OffersDataTable.php index a9dfafad..ac790b63 100644 --- a/app/Datatables/Shop/OffersDataTable.php +++ b/app/Datatables/Admin/Shop/OffersDataTable.php @@ -1,6 +1,6 @@ with(['customer', 'delivery']); + + return $this->buildQuery($model); + } + + public function modifier($datatables) + { + $datatables + ->editColumn('status', function (Order $order) { + return Orders::getStatus($order->status); + }) + ->editColumn('created_at', function (Order $order) { + return $order->created_at->toDateTimeString(); + }) + ->editColumn('customer.last_name', function (Order $order) { + return $order->customer->last_name.' '.$order->customer->first_name; + }) + ->editColumn('payment_type', function (Order $order) { + return InvoicePayments::getPaymentType($order->payment_type); + }) + ->rawColumns(['action']); + + return parent::modifier($datatables); + } + + protected function getColumns() + { + return [ + Column::make('ref')->title('Ref'), + Column::make('status')->title('Statut'), + Column::make('created_at')->title('Date'), + Column::make('customer.last_name')->title('Client'), + Column::make('delivery.name')->title('Point de distribution'), + Column::make('payment_type')->title('Règlement'), + Column::make('total_shipped')->title('Montant')->class('text-right'), + $this->makeColumnButtons(), + ]; + } +} diff --git a/app/Datatables/Shop/SaleChannelsDataTable.php b/app/Datatables/Admin/Shop/SaleChannelsDataTable.php similarity index 95% rename from app/Datatables/Shop/SaleChannelsDataTable.php rename to app/Datatables/Admin/Shop/SaleChannelsDataTable.php index 24fc7a7a..0ccfdc81 100644 --- a/app/Datatables/Shop/SaleChannelsDataTable.php +++ b/app/Datatables/Admin/Shop/SaleChannelsDataTable.php @@ -1,6 +1,6 @@ render('Admin.Shop.Deliveries.list', $data); + return $dataTable->render('Admin.Shop.Deliveries.list'); } public function create() { - $data['sale_channels'] = SaleChannels::getOptions(); + $data = [ + 'sale_channels' => SaleChannels::getOptions(), + ]; return view('Admin.Shop.Deliveries.create', $data); } @@ -32,15 +32,19 @@ class DeliveryController extends Controller public function show($id) { - $data['delivery'] = Deliveries::get($id); + $data = [ + 'delivery' => Deliveries::get($id), + ]; return view('Admin.Shop.Deliveries.view', $data); } public function edit($id) { - $data['delivery'] = Deliveries::get($id)->toArray(); - $data['sale_channels'] = SaleChannels::getOptions(); + $data = [ + 'delivery' => Deliveries::get($id)->toArray(), + 'sale_channels' => SaleChannels::getOptions(), + ]; return view('Admin.Shop.Deliveries.edit', $data); } diff --git a/app/Http/Controllers/Admin/Shop/InvoiceController.php b/app/Http/Controllers/Admin/Shop/InvoiceController.php index 98867dfa..edaccad7 100644 --- a/app/Http/Controllers/Admin/Shop/InvoiceController.php +++ b/app/Http/Controllers/Admin/Shop/InvoiceController.php @@ -2,7 +2,7 @@ namespace App\Http\Controllers\Admin\Shop; -use App\Datatables\Shop\InvoicesDataTable; +use App\Datatables\Admin\Shop\InvoicesDataTable; use App\Http\Controllers\Controller; use App\Repositories\Shop\Invoices; use Illuminate\Http\Request; diff --git a/app/Http/Controllers/Admin/Shop/OfferController.php b/app/Http/Controllers/Admin/Shop/OfferController.php index 13b6b32f..04a9ce03 100644 --- a/app/Http/Controllers/Admin/Shop/OfferController.php +++ b/app/Http/Controllers/Admin/Shop/OfferController.php @@ -2,7 +2,7 @@ namespace App\Http\Controllers\Admin\Shop; -use App\Datatables\Shop\OffersDataTable; +use App\Datatables\Admin\Shop\OffersDataTable; use App\Http\Controllers\Controller; use App\Repositories\Shop\ArticleNatures; use App\Repositories\Shop\Articles; diff --git a/app/Http/Controllers/Admin/Shop/OrderController.php b/app/Http/Controllers/Admin/Shop/OrderController.php index 47662cd3..c304fc21 100644 --- a/app/Http/Controllers/Admin/Shop/OrderController.php +++ b/app/Http/Controllers/Admin/Shop/OrderController.php @@ -2,7 +2,7 @@ namespace App\Http\Controllers\Admin\Shop; -use App\Datatables\Shop\OrdersDataTable; +use App\Datatables\Admin\Shop\OrdersDataTable; use App\Http\Controllers\Controller; use App\Repositories\Shop\Orders; use App\Repositories\Shop\OrderMails; diff --git a/app/Http/Controllers/Admin/Shop/SaleChannelController.php b/app/Http/Controllers/Admin/Shop/SaleChannelController.php index 548048d1..1aecc81a 100644 --- a/app/Http/Controllers/Admin/Shop/SaleChannelController.php +++ b/app/Http/Controllers/Admin/Shop/SaleChannelController.php @@ -2,7 +2,7 @@ namespace App\Http\Controllers\Admin\Shop; -use App\Datatables\Shop\SaleChannelsDataTable; +use App\Datatables\Admin\Shop\SaleChannelsDataTable; use App\Http\Controllers\Controller; use App\Repositories\Shop\SaleChannels; use Illuminate\Http\Request;