57 lines
1.8 KiB
PHP
57 lines
1.8 KiB
PHP
<?php
|
|
|
|
namespace App\Livewire\Datatable\Studio\Manage;
|
|
|
|
use App\Models\StockOpname;
|
|
use App\Traits\Datatable\WithAppendColumn;
|
|
use App\Traits\Datatable\WithConfiguration;
|
|
use App\Traits\Datatable\WithPrependColumn;
|
|
use App\Traits\WithMediaHandler;
|
|
use Illuminate\Database\Eloquent\Builder;
|
|
use Rappasoft\LaravelLivewireTables\DataTableComponent;
|
|
use Rappasoft\LaravelLivewireTables\Views\Column;
|
|
|
|
class StockOpnameTable extends DataTableComponent
|
|
{
|
|
use WithAppendColumn, WithConfiguration, WithMediaHandler, WithPrependColumn;
|
|
|
|
protected $model = StockOpname::class;
|
|
|
|
public function columns(): array
|
|
{
|
|
return [
|
|
Column::make('Outlet', 'outlet.name')->searchable(),
|
|
|
|
Column::make('Periode Bulan', 'period_month')
|
|
->format(fn ($row) => formatDate($row, 'F Y'))
|
|
->searchable()
|
|
->sortable(),
|
|
|
|
Column::make('Aksi')
|
|
->label(function ($row) {
|
|
$actions = '';
|
|
|
|
if (auth()->user()->can('show stock opname')) {
|
|
$actions .= view('components.datatables.new-page-action', [
|
|
'label' => 'Lihat',
|
|
'route' => route('studio.manage.stock_opname.show', ['stockOpname', $row->hash]),
|
|
'buttonColor' => 'blue',
|
|
'buttonIcon' => 'eye',
|
|
])->render();
|
|
}
|
|
|
|
return $actions;
|
|
})
|
|
->html()
|
|
->hideIf(auth()->user()->cannot('show stock opname')),
|
|
];
|
|
}
|
|
|
|
public function builder(): Builder
|
|
{
|
|
return StockOpname::select('stock_opname.id', 'period_month')
|
|
->where('period_month', '!=', now()->format('Y-m'))
|
|
->with('outlet');
|
|
}
|
|
}
|