@extends('layouts.finance') @section('title', 'Invoices') @section('subtitle', 'Supplier invoices for Pakistan voucher operations') @section('content') @php $rows = $summaryRows ?? $invoices->getCollection(); $invoiceTotal = fn($i) => (float) $i->amount + (float) ($i->fee_amount ?? 0); $invoiceRate = fn($i) => $i->currency === 'PKR' ? 1.0 : ((float) ($i->conversion_rate ?? 0) > 0 ? (float) $i->conversion_rate : null); $invoicePkr = fn($i) => $invoiceRate($i) ? $invoiceTotal($i) * $invoiceRate($i) : $metrics->convert($invoiceTotal($i), $i->currency, 'PKR'); $paymentSource = function ($invoice) { if ($invoice->payment_source === 'credit_card') { return $invoice->creditCard ? trim($invoice->creditCard->issuer.' - '.$invoice->creditCard->card_name.' ('.$invoice->creditCard->currency.')') : '-'; } if ($invoice->payment_source === 'bank_account' || $invoice->bankAccount) { return $invoice->bankAccount ? trim($invoice->bankAccount->name.' - '.$invoice->bankAccount->bank_name.' ('.$invoice->bankAccount->currency.')') : '-'; } return '-'; }; $unpaid = $rows->whereNotIn('status', ['paid', 'cancelled'])->sum(fn($i) => $invoicePkr($i)); $paid = $rows->where('status', 'paid')->sum(fn($i) => $invoicePkr($i)); $voucherTotal = $rows->sum('voucher_count'); $statusLabel = fn($status) => match($status) { 'paid' => 'Paid', 'transit' => 'Transit', 'partial_paid' => 'Partial Paid', 'release_on_credit' => 'On Credit', 'debt' => 'Debt', 'overdue' => 'Overdue', 'cancelled' => 'Cancelled', default => 'Unpaid', }; $statusClass = fn($status) => match($status) { 'paid' => 'pill-green', 'transit' => 'pill-cyan', 'partial_paid' => 'pill-amber', 'release_on_credit' => 'pill-purple', 'debt' => 'pill-blue', 'overdue' => 'pill-red', 'cancelled' => 'pill-rose', default => 'pill-amber', }; @endphp
Bills from voucher suppliers, tracked in PKR equivalent for Pakistan operations.