{{-- resources/views/pesanan_kartu/_detail-modal.blade.php --}} @php /* ======================================================================================= NORMALISASI STATUS NOTA - Ambil status dari nota (support status_kartu / statuskartu) - Lock jika status = proses atau aktif ======================================================================================== */ $statusKartuRaw = $nota->status_kartu ?? ($nota->statuskartu ?? null); $statusKartu = strtolower(trim((string)($statusKartuRaw ?? ''))); $isLocked = in_array($statusKartu, ['proses', 'aktif'], true); $badgeKartu = match($statusKartu) { 'pesan' => 'warning', 'proses' => 'primary', 'aktif' => 'success', 'batal' => 'danger', default => 'secondary', }; $labelKartu = match($statusKartu) { 'pesan' => 'Pesan', 'proses' => 'Proses', 'aktif' => 'Aktif', 'batal' => 'Batal', default => '-', }; @endphp {{-- ======================================================================================= HEADER INFO NOTA ======================================================================================= --}}
Nota #{{ $nota->no_pesanan ?? '-' }}
Pemesan: {{ $pemesan->nama_lengkap ?? '-' }} @if(!empty($pemesan?->nik)) (NIK: {{ $pemesan->nik }}) @endif
@if(!empty($pemesan?->nomor_wa))
{{ $pemesan->nomor_wa }}
@endif @php $alamatParts = array_values(array_filter([ $pemesan->provinsi ?? null, $pemesan->kabupaten ?? null, $pemesan->kecamatan ?? null, ], fn($v) => !is_null($v) && trim((string)$v) !== '')); @endphp
{{ count($alamatParts) ? implode(', ', $alamatParts) : '-' }}
Status: {{ $labelKartu }}
@if($isLocked)
Terkunci karena status sudah {{ strtoupper($statusKartu) }}.
@endif
{{-- ======================================================================================= LOCK ALERT ======================================================================================= --}} @if($isLocked)
Perubahan detail dikunci.
Anda tidak bisa menambah/menghapus item saat status nota {{ strtoupper($statusKartu) }}.
@endif {{-- ======================================================================================= FORM TAMBAH ITEM - Controller JS Anda mencari form dengan id "formTambahItemPesanan" ======================================================================================= --}}
Tambah Item
{{-- ======================================================================================= TABEL DETAIL ITEM - Tombol hapus item harus punya class "btnHapusItemPesanan" - Data attribute yang dibaca JS: data-delete-url, data-item-nik, data-item-id, data-no-pesanan ======================================================================================= --}}
Daftar Item Total: {{ is_countable($detailPesanan) ? count($detailPesanan) : 0 }} item
@forelse($detailPesanan as $it) @php $id = $it->id ?? null; $nik = $it->nik ?? null; // URL delete (sesuaikan dengan route Anda yang dipakai JS) $deleteUrl = null; try { $deleteUrl = route('superadmin.pesanan-kartu.detail.items.destroy', [ 'no_pesanan' => $nota->no_pesanan, 'id' => $id, ]); } catch (\Throwable $e) { $deleteUrl = ''; } $uploadFoto = strtoupper((string)($it->upload_foto ?? '')); $uploadBadge = $uploadFoto === 'Y' ? 'success' : 'secondary'; $uploadLabel = $uploadFoto === 'Y' ? 'Ya' : 'Tidak'; @endphp @empty @endforelse
NIK Nama No. Kartu Upload Foto Harga Aksi
{{ $nik }} {{ $it->nama_lengkap ?? '-' }} {{ $it->no_kartu_anggota ?? '-' }} {{ $uploadLabel }} Rp {{ number_format((int)($it->harga ?? 0), 0, ',', '.') }}
Belum ada item pada nota ini.