Files
opensem/app/Datatables/Admin/Shop/CustomerAddressesDataTable.php
2025-02-15 12:12:42 +01:00

54 lines
1.4 KiB
PHP

<?php
namespace App\Datatables\Admin\Shop;
use App\Datatables\ParentDataTable as DataTable;
use App\Models\Shop\CustomerAddress;
use App\Repositories\Shop\CustomerAddresses;
use Yajra\DataTables\Html\Column;
class CustomerAddressesDataTable extends DataTable
{
public $model_name = 'customer_addresses';
public function __construct()
{
$this->url = route('Admin.Shop.CustomerAddresses.index');
}
public function query(CustomerAddress $model)
{
$model = self::filterByCustomer($model);
return $this->buildQuery($model);
}
public static function filterByCustomer($model, $customerId = false)
{
$customerId = $customerId ? $customerId : self::isFilteredByField('customer_id');
return $customerId ? $model->byCustomer($customerId) : $model;
}
public function modifier($datatables)
{
$datatables->editColumn('type', function (CustomerAddress $address) {
return CustomerAddresses::getIconByType($address->type);
})->rawColumns(['type', 'action']);
return parent::modifier($datatables);
}
protected function getColumns()
{
return [
Column::make('type')->title('')->width(30),
Column::make('address')->title('Adresse'),
Column::make('zipcode')->title('Code postal'),
Column::make('city')->title('Ville'),
$this->makeColumnButtons(),
];
}
}