@extends('layouts.app') @section('content') @if(session('success'))
{{ session('success') }}
@endif @if(session('error'))
{{ session('error') }}
@endif

Kasir Guidance

Mode Pelunasan

Halaman ini dipakai untuk melunasi tagihan satuan atau beberapa order sekaligus. Split payment bisa dipakai untuk invoice tunggal maupun batch.

Bayar Satuan
Klik tombol Bayar pada satu invoice untuk pelunasan single invoice.
Split Payment
Bisa gabungan tunai, transfer, dan e-wallet untuk invoice tunggal maupun batch.
Aman untuk Transaksi Lama
Flow lama tetap aman karena backend masih menerima format single payment sebagai fallback.

{{ ($currentTab ?? 'active') === 'history' ? 'Daftar Pembayaran Lunas' : 'Daftar Tagihan' }}

@forelse($orders as $order) @php $displayTotal = (float) ($order->total_price ?? 0); if ($displayTotal <= 0) { $displayTotal = (float) ($order->subtotal_before_ppn ?? 0); $ppnAmount = (float) ($order->ppn_amount ?? 0); if ($ppnAmount > 0) { $displayTotal += $ppnAmount; } } $totalPaid = method_exists($order, 'getTotalPaid') ? (float) $order->getTotalPaid() : (float) ($order->paid_amount ?? 0); $remaining = max($displayTotal - $totalPaid, 0); // Carbon 3 diffInDays() bisa menghasilkan angka desimal. // Umur piutang harus tampil sebagai hari bulat agar tidak muncul seperti 21.661294621435 hari. $age = 0; if ($order->created_at) { $age = (int) floor(abs($order->created_at->copy()->startOfDay()->diffInDays(now()->startOfDay()))); } $ageClass = $age >= 30 ? 'bg-error-50 text-error-700 dark:bg-error-500/15 dark:text-error-400' : ($age >= 14 ? 'bg-warning-50 text-warning-700 dark:bg-warning-500/15 dark:text-warning-400' : 'bg-gray-100 text-gray-700 dark:bg-gray-800 dark:text-gray-300'); @endphp @if($order->payments->count() > 0) @php $paymentData = $order->payments->map(fn($p) => [ 'id' => $p->id, 'date' => $p->created_at->format('d/m/Y H:i'), 'amount' => $p->amount, 'method' => $p->payment_method, 'proof' => $p->proof_path ? asset('storage/' . $p->proof_path) : null, 'notes' => $p->notes, 'cashier' => $p->cashier->name ?? '-' ])->values()->toJson(); @endphp @else @endif @empty @endforelse @if($orders->count() > 0) @endif
Tanggal Invoice Pelanggan Total Dibayar Sisa Umur Aksi
{{ $order->created_at->format('d/m/Y') }} {{ $order->invoice_number }} @if($order->is_credit) Piutang @endif @if($order->isPartiallyPaid()) Cicilan @endif Rp {{ number_format($displayTotal, 0, ',', '.') }} - Rp {{ number_format($remaining, 0, ',', '.') }} {{ $age }} hari
@if(($currentTab ?? 'active') === 'active') @else @endif

Tidak ada tagihan

Total Piutang Rp {{ number_format($orders->sum(fn ($o) => max((float) ($o->total_price ?? 0) - (method_exists($o, 'getTotalPaid') ? (float) $o->getTotalPaid() : (float) ($o->paid_amount ?? 0)), 0)), 0, ',', '.') }}
@if($orders->hasPages())
{{ $orders->links() }}
@endif
{{-- Payment Dialog --}} {{-- Payment History Dialog --}} {{-- Batch Payment Dialog --}} @endsection @push('scripts') @endpush