@extends('layouts.master') @section('title', 'Laporan Rekap Tagihan Tahunan') @section('page-title', 'Laporan Rekapitulasi Tagihan per Pelanggan per Tahun') @section('content') @php $shortK = function ($amount) { $n = (float) $amount; if ($n >= 1000) { $v = $n / 1000; $txt = number_format($v, 1, ',', '.'); $txt = preg_replace('/,0$/', '', $txt); return $txt . 'k'; } return number_format($n, 0, ',', '.'); }; @endphp
| Kode | Pelanggan | Jan | Feb | Mar | Apr | Mei | Jun | Jul | Agu | Sep | Okt | Nov | Des | Total Tagihan | Total Terbayar | Sisa / Status |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| {{ $kec }} @if ($des) » {{ $des }} @endif | ||||||||||||||||
| {{ $p->kode_pelanggan ?? '-' }} |
{{ $p->nama ?? '-' }} {{ $p->paketInternet->nama ?? 'Tanpa paket' }} |
{{-- Kolom Jan–Des: warna + link ke detail per bulan --}}
@for ($m = 1; $m <= 12; $m++)
@php
$det = $detailBln[$m] ?? ['tagihan' => 0, 'terbayar' => 0, 'sisa' => 0, 'last_paid_at' => null];
$nilai = (float) ($det['tagihan'] ?? 0);
$terbayar = (float) ($det['terbayar'] ?? 0);
$sisaBln = (float) ($det['sisa'] ?? max(0, $nilai - $terbayar));
$lastPaidAtBln = $det['last_paid_at'] ?? null;
$adaTagihan = $nilai > 0;
$lunasBln = $adaTagihan && $sisaBln <= 0;
$cellClass = '';
$statusTitle = 'Tidak ada tagihan';
if ($adaTagihan) {
if ($lunasBln) {
$cellClass = 'bg-success-subtle text-success';
$statusTitle = 'Lunas';
} else {
$cellClass = 'bg-warning-subtle text-warning';
$statusTitle = 'Belum lunas';
}
}
$detailUrl = $adaTagihan
? route('internet.laporan.rekap-tagihan-tahunan.detail', [
'pelanggan' => $p->id,
'tahun' => $tahun,
'bulan' => $m,
])
: null;
@endphp
@if ($adaTagihan && $detailUrl) {{ $shortK($nilai) }} @if ($lunasBln && !empty($lastPaidAtBln)) {{ \Carbon\Carbon::parse($lastPaidAtBln)->translatedFormat('d-M') }} @endif @else - @endif | @endfor{{ $shortK($row['total_tagihan']) }} | {{ $shortK($row['total_terbayar']) }} |
@php $isLunas = $totalSisa <= 0; @endphp
{{ $isLunas ? 'LUNAS (TAHUNAN)' : 'BELUM LUNAS (TAHUNAN)' }}
{{ $shortK($totalSisa) }}
|
|||||||||||
| Belum ada data tagihan untuk tahun ini. | ||||||||||||||||
| TOTAL | @for ($m = 1; $m <= 12; $m++)
@php
$d = $grandPerBulanDetail[$m] ?? ['tagihan' => 0, 'terbayar' => 0, 'sisa' => 0];
$vTagihan = (float) ($d['tagihan'] ?? 0);
$vTerbayar = (float) ($d['terbayar'] ?? 0);
$vSisa = (float) ($d['sisa'] ?? 0);
@endphp
{{ $shortK($vTagihan) }}
{{ $shortK($vTerbayar) }}
{{ $shortK($vSisa) }}
|
@endfor
{{ $shortK($grandTotalTagihan) }} | {{ $shortK($grandTotalTerbayar) }} | {{ $shortK($grandTotalSisa) }} | ||||||||||||