@extends('layouts.app') @section('title', 'Riwayat Transaksi') @section('page-title', 'Riwayat Transaksi') @section('content') @php $headerIcon = ' '; @endphp
{{-- Header Section menggunakan komponen reusable --}} Ekspor ke CSV {{-- Filter Section menggunakan komponen Card --}}
{{-- Filter Nama Mahasiswa --}}
{{-- Filter Rentang Tanggal --}}
{{-- Filter Jenis Pembayaran --}}
{{-- Filter Metode Pembayaran --}}
{{-- Tombol Filter menggunakan komponen reusable --}}
Filter Reset
{{-- Tabel menggunakan komponen reusable --}} @if($transaksi->count() > 0) @foreach ($transaksi as $item) {{ \Carbon\Carbon::parse($item->tanggal_bayar)->isoFormat('D MMM YYYY, HH:mm') }}
{{ data_get($item, 'tagihan.mahasiswa.user.nama_lengkap', 'N/A') }}
{{ data_get($item, 'tagihan.mahasiswa.npm', 'N/A') }}
{{ data_get($item, 'tagihan.jenis_tampilan') ?: data_get($item, 'tagihan.tarif.nama_pembayaran', 'N/A') }} @php // Prioritas: jumlah_bayar dari pembayaran, jika null baru pakai jumlah_tagihan $jumlahBayar = $item->jumlah_bayar; if ($jumlahBayar === null || $jumlahBayar === 0) { $jumlahBayar = data_get($item, 'tagihan.jumlah_tagihan', 0); } @endphp
Rp {{ number_format($jumlahBayar, 0, ',', '.') }}
@if($item->is_cicilan)
Cicilan
@php $tagihanRow = $item->tagihan; $totalTagihan = (float) ($tagihanRow->jumlah_tagihan ?? 0); $terbayarSampaiTransaksi = (float) ($tagihanRow?->pembayaranAll ?->where('status_dibatalkan', false) ->filter(fn ($p) => $p->tanggal_bayar <= $item->tanggal_bayar) ->sum('jumlah_bayar') ?? 0); $sisaSetelahTransaksi = max(0, $totalTagihan - $terbayarSampaiTransaksi); @endphp @if($sisaSetelahTransaksi > 0)
Sisa: Rp {{ number_format($sisaSetelahTransaksi, 0, ',', '.') }}
@endif @endif @php $isCancelled = (bool) ($item->status_dibatalkan ?? false); $metodeLower = \Illuminate\Support\Str::lower($item->metode_pembayaran ?? ''); @endphp {{ $isCancelled ? 'Dibatalkan' : ($item->metode_pembayaran ?? '-') }} @if ($metodeLower === 'transfer' && $item->konfirmasi && $item->konfirmasi->file_bukti_pembayaran) Lihat Bukti @else - @endif
@if (!$item->status_dibatalkan && isset($item->pembayaran_id)) Kwitansi @endif @if (!$item->status_dibatalkan && $metodeLower === 'transfer') @endif
@if ($item->status_dibatalkan && $item->alasan_pembatalan)
Alasan: {{ $item->alasan_pembatalan }}
@endif @endforeach @if ($transaksi->hasPages()) {{ $transaksi->links() }} @endif
@else @php $emptyIcon = ' '; @endphp @endif @endsection @push('scripts') @endpush