@extends('layouts.app') @section('title', 'Daftar Tagihan') @section('page-title', 'Daftar Tagihan Pembayaran') @section('content')
{{-- Notifikasi Sukses/Error --}} @if (session('success')) @endif @if (session('error')) @endif @php $headerIcon = ' '; @endphp
@php $grouped = $tagihan->groupBy(function ($t) { $bundleKey = $t->tarif?->rule_json['bundle_key'] ?? null; return $bundleKey ?: 'single:' . $t->tagihan_id; }); @endphp @forelse ($grouped as $groupKey => $items) @if (str_starts_with($groupKey, 'single:')) @php $items = collect($items); @endphp @else

Paket: {{ $groupKey }}

@endif @foreach ($items as $item) {{-- INI BLOK YANG HILANG (PENYEBAB ERROR) --}} @php // Cek apakah pembayaran dibatalkan $isDibatalkan = $item->pembayaran && $item->pembayaran->status_dibatalkan; $statusForBorder = $item->status; // Jika pembayaran dibatalkan, gunakan border merah if ($isDibatalkan) { $statusForBorder = 'Dibatalkan'; } $borderColorClass = $isDibatalkan ? 'border-l-4 border-red-500' : $item->displayStatusBorderTailwindClasses(); @endphp {{-- Baris ini (sekitar baris 61) sekarang aman digunakan --}}
{{-- Detail Tagihan --}}

{{ $item->jenis_tampilan }}

Jatuh Tempo: {{ \Carbon\Carbon::parse($item->tanggal_jatuh_tempo)->isoFormat('D MMMM YYYY') }}

Kode: {{ $item->kode_pembayaran }}

{{-- ======================================================== --}} {{-- !! KODE UNTUK MENAMPILKAN ALASAN PENOLAKAN !! --}} {{-- ======================================================== --}} @if ($item->status == 'Ditolak' && $item->konfirmasi && $item->konfirmasi->alasan_ditolak)

Alasan Ditolak:

{{ $item->konfirmasi->alasan_ditolak }}

@endif {{-- Tampilkan alasan pembatalan jika pembayaran dibatalkan --}} @if ($item->pembayaran && $item->pembayaran->status_dibatalkan && $item->pembayaran->alasan_pembatalan)

Pembayaran Dibatalkan

Alasan pembatalan:

{{ $item->pembayaran->alasan_pembatalan }}

Pembayaran ini telah dibatalkan oleh kasir. Silakan hubungi admin untuk informasi lebih lanjut.

@endif {{-- ======================================================== --}}
{{-- Jumlah --}}

Rp. {{ number_format($item->jumlah_tagihan, 0, ',', '.') }}

@if($item->total_angsuran > 0) @php $sisaPokok = $item->sisa_pokok ?? $item->jumlah_tagihan; @endphp

Dibayar: Rp. {{ number_format($item->total_angsuran, 0, ',', '.') }}

Sisa: Rp. {{ number_format($sisaPokok, 0, ',', '.') }}

@endif
{{-- Status --}}
@php // Cek apakah pembayaran dibatalkan $isDibatalkan = $item->pembayaran && $item->pembayaran->status_dibatalkan; $statusDisplay = $isDibatalkan ? 'Dibatalkan' : $item->displayStatusLabel(); $statusClass = $isDibatalkan ? 'bg-red-100 text-red-800' : $item->displayStatusBadgeTailwindClasses(); @endphp {{ $statusDisplay }}
{{-- Tombol Aksi --}}
@php // Cek apakah pembayaran dibatalkan $isDibatalkan = $item->pembayaran && $item->pembayaran->status_dibatalkan; @endphp @if ($isDibatalkan) {{-- Jika pembayaran dibatalkan, tidak tampilkan tombol aksi --}} Tidak tersedia @elseif ($item->status == 'Lunas') @php $pembayaranLunas = $item->pembayaranAll ->where('status_dibatalkan', false) ->sortByDesc('pembayaran_id') ->first(); @endphp @if ($pembayaranLunas) Kwitansi @endif @elseif ($item->status == 'Menunggu Verifikasi Transfer') @elseif ($item->status == 'Menunggu Pembayaran Tunai') @else {{ $item->status == 'Ditolak' ? 'Bayar Ulang' : 'Bayar' }} @endif
@endforeach @empty @php $emptyIcon = ''; @endphp @endforelse
@endsection @push('scripts') @endpush