Add ``getStatusBadge()`` to ``Orders`` returning Bootstrap badge HTML per status: warning (En attente), info (Préparation), primary (Expédié), success (Livré), danger (Annulé). Applied to all four order DataTables (admin, admin customer, shop, shop customer).
64 lines
1.9 KiB
PHP
64 lines
1.9 KiB
PHP
<?php
|
|
|
|
namespace App\Datatables\Admin\Shop;
|
|
|
|
use App\Datatables\ParentDataTable as DataTable;
|
|
use App\Models\Shop\Order;
|
|
use App\Repositories\Shop\InvoicePayments;
|
|
use App\Repositories\Shop\Orders;
|
|
use Yajra\DataTables\Html\Column;
|
|
|
|
class OrdersDataTable extends DataTable
|
|
{
|
|
public $model_name = 'orders';
|
|
|
|
public $sortedColumn = 0;
|
|
|
|
public $sortedOrder = 'desc';
|
|
|
|
public $stateSave = true;
|
|
|
|
public function query(Order $model)
|
|
{
|
|
$model = $model->with(['customer', 'delivery']);
|
|
|
|
return $this->buildQuery($model);
|
|
}
|
|
|
|
public function modifier($datatables)
|
|
{
|
|
$datatables
|
|
->editColumn('status', function (Order $order) {
|
|
return Orders::getStatusBadge($order->status);
|
|
})
|
|
->editColumn('created_at', function (Order $order) {
|
|
return $order->created_at->format('d/m/Y H:i:s');
|
|
})
|
|
->editColumn('customer.last_name', function (Order $order) {
|
|
return $order->customer
|
|
? $order->customer->last_name.' '.$order->customer->first_name
|
|
: 'Client supprimé';
|
|
})
|
|
->editColumn('payment_type', function (Order $order) {
|
|
return InvoicePayments::getPaymentType($order->payment_type);
|
|
})
|
|
->rawColumns(['status', '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(),
|
|
];
|
|
}
|
|
}
|