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).
67 lines
2.0 KiB
PHP
67 lines
2.0 KiB
PHP
<?php
|
|
|
|
namespace App\Datatables\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 = 1;
|
|
|
|
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->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(['status', 'action']);
|
|
|
|
return parent::modifier($datatables);
|
|
}
|
|
|
|
public function getHtmlButtons()
|
|
{
|
|
return '<button type="button" data-id="{{$uuid}}" class="btn btn-xs btn-secondary btn-show mr-2"><i class="fa fa-fw fa-eye"></i></button>';
|
|
}
|
|
|
|
protected function getColumns()
|
|
{
|
|
return [
|
|
Column::make('created_at')->title('Date'),
|
|
Column::make('ref')->title('Ref'),
|
|
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'),
|
|
Column::make('status')->title('Statut'),
|
|
$this->makeColumnButtons(),
|
|
];
|
|
}
|
|
}
|