@extends('layouts.app') @section('content') @php $paymentMethod = $batchPaymentInfo['payment_method'] ?? 'cash'; $paymentMethodLabel = $batchPaymentInfo['payment_method_label'] ?? match ($paymentMethod) { 'cash' => 'Tunai', 'transfer' => 'Transfer Bank', 'ewallet' => 'E-Wallet', 'split' => 'Split Payment', default => ucfirst($paymentMethod), }; $isSplitPayment = (bool) ($batchPaymentInfo['is_split_payment'] ?? false); $splitSummary = collect($batchPaymentInfo['split_summary'] ?? []); $splitTotal = (float) ($batchPaymentInfo['split_total'] ?? $splitSummary->sum('amount')); $paidAmount = (float) ($batchPaymentInfo['paid_amount'] ?? 0); $cashReceived = (float) ($batchPaymentInfo['cash_received'] ?? 0); $changeAmount = (float) ($batchPaymentInfo['change_amount'] ?? 0); $grandTotal = (float) $orders->sum('total_price'); $grandPaidNow = $paidAmount > 0 ? $paidAmount : ($isSplitPayment ? $splitTotal : $grandTotal); $grandRemaining = (float) $orders->sum(fn ($order) => method_exists($order, 'getRemainingBalance') ? $order->getRemainingBalance() : 0); $printUrl = route('kasir.pelunasan.printBatch', [ 'order_ids' => $orders->pluck('id')->implode(','), 'paid_amount' => $paidAmount, 'cash_received' => $cashReceived, 'change_amount' => $changeAmount, 'payment_method' => $paymentMethod, 'split_summary' => $isSplitPayment ? base64_encode(json_encode($splitSummary->values()->all())) : null, ]); @endphp @if(session('success'))
{{ session('success') }}
@endif

Struk Batch Siap Dicetak

{{ $orders->count() }} order diproses @if($isSplitPayment) Split Payment @endif

Pembayaran batch sudah dicatat. Ringkasan di bawah sudah sinkron untuk pembayaran tunggal maupun split payment.

Pembayaran Berhasil Dicatat

{{ $orders->count() }} Order Diproses

Ringkasan Pembayaran

{{ $paymentMethodLabel }}
@if($isSplitPayment)
Detail Split Payment
@foreach($splitSummary as $split)
{{ $split['method_label'] ?? '-' }}
@if(!empty($split['account_label']))
{{ $split['account_label'] }}
@endif
Rp {{ number_format((float) ($split['amount'] ?? 0), 0, ',', '.') }}
@endforeach
Total Split Rp {{ number_format($splitTotal, 0, ',', '.') }}
@endif
Metode Bayar {{ $paymentMethodLabel }}
Jumlah Dibayar Rp {{ number_format($grandPaidNow, 0, ',', '.') }}
@if(!$isSplitPayment && $paymentMethod === 'cash')
Uang Diterima Rp {{ number_format($cashReceived > 0 ? $cashReceived : $grandPaidNow, 0, ',', '.') }}
Kembalian Rp {{ number_format($changeAmount, 0, ',', '.') }}
@else
Status {{ $isSplitPayment ? 'Gabungan beberapa metode pembayaran' : 'Non-tunai / tanpa kembalian' }}
@if($changeAmount > 0)
Kembalian Rp {{ number_format($changeAmount, 0, ',', '.') }}
@endif @endif
@foreach($orders as $order) @php $remaining = method_exists($order, 'getRemainingBalance') ? (float) $order->getRemainingBalance() : 0; $isPaid = method_exists($order, 'isPaid') ? $order->isPaid() : ($remaining <= 0); @endphp @endforeach
Invoice Pelanggan Total Sisa Status Aksi
{{ $order->invoice_number }} {{ $order->customer_name }} Rp {{ number_format($order->total_price, 0, ',', '.') }} Rp {{ number_format($remaining, 0, ',', '.') }} @if($isPaid) Lunas @elseif($remaining < (float) $order->total_price) Sebagian @else Belum Bayar @endif
TOTAL GABUNGAN Rp {{ number_format($grandTotal, 0, ',', '.') }} Rp {{ number_format($grandRemaining, 0, ',', '.') }}

Nota gabungan akan mencetak semua rincian item dari {{ $orders->count() }} order beserta ringkasan pembayaran batch yang sudah sinkron.

@endsection