feat(voucher): membuat kolom sisa voucher dan menyesuaikan jika kuota tidak terbatas

This commit is contained in:
Yoga Pangestu 2025-10-28 21:33:05 +07:00
parent 53923bd6fc
commit 36610ea892
3 changed files with 22 additions and 6 deletions

View File

@ -51,13 +51,29 @@ public function columns(): array
->searchable()
->sortable(),
Column::make('Kuota', 'quota')->searchable()->sortable(),
Column::make('Kuota', 'quota')
->format(fn ($value) => $value ? currency($value) : 'Tidak Terbatas')
->searchable()
->sortable(),
Column::make('Batas Per Pembali', 'limit_per_user')->searchable()->sortable(),
Column::make('Batas Per Pembali', 'limit_per_user')
->format(fn ($value) => $value ? $value : 'Tidak Terbatas')
->searchable()
->sortable(),
Column::make('Sisa Voucher')->label(fn ($row) => $row->quota ? $row->quota - $row->orders()->count() : 'Tidak Terbatas..'),
ArrayColumn::make('Outlet')
->data(fn ($value, $row) => $row->outlets->pluck('name')->toArray())
->outputFormat(fn ($index, $value) => Blade::render('<flux:badge color="zinc" dot>'.$value.'</flux:badge>'))
->data(
fn ($value, $row) => $row->outlets->map(fn ($outlet) => [
'name' => $outlet->name,
'stock' => currency($outlet->pivot->stock, ''),
])->toArray()
)
->outputFormat(fn ($index, $value) => Blade::render('
<div class="flex items-center space-x-2 bg-gray-50 border border-gray-200 rounded-lg px-2 py-1 text-xs">
<span class="font-medium text-gray-700">{{ $value["name"] }}</span>
</div>', ['value' => $value]))
->flexRow(['class' => 'gap-2 flex-wrap']),
Column::make('Tanggal')

View File

@ -65,7 +65,7 @@
<flux:error name="form.start_date" />
</flux:field>
<flux:date-picker label="Tanggal Selesai"
<flux:date-picker with-today label="Tanggal Selesai"
wire:model.live.debounce.500ms="form.end_date" autocomplete="off"
locale="id-ID" />

View File

@ -3,7 +3,7 @@
<div>
<flux:heading size="xl">{{ $pageTitle }}</flux:heading>
</div>
@can ('create voucher'))
@can ('create voucher')
<div>
<flux:button href="{{ route('studio.loyalty.voucher.create') }}" variant="primary" wire:navigate.hover
class="text-sm">