@php $schoolName = $school->school_name ?? 'BANGLADESH SCIENCE AND TECHNOLOGY MADRASAH'; $schoolAddress = $school->address ?? 'K-85/1/C, Kuratoli Masjid Road, Khilkhet, Dhaka.'; $schoolPhone = $school->phone ?? '01342821459'; $schoolEmail = $school->email ?? 'info@bstm26.com'; $principalName = $school->principal_name ?? 'Mohammad Moin Uddin Sarker Madani'; $rawLogo = $school->school_logo ?? null; $schoolLogo = null; if ($rawLogo) { $schoolLogo = str_starts_with($rawLogo, 'http') ? $rawLogo : (str_starts_with($rawLogo, 'storage/') ? asset($rawLogo) : asset('storage/' . $rawLogo)); } $preparedBy = $bill->requester?->name ?: 'MD Rakib Khan'; $approvedBy = $bill->approver?->name ?: ($bill->requester?->name ?: 'MD Rakib Khan'); $categoryName = $bill->category?->name ?? 'Operating Expense'; $vendorName = $bill->vendor_name ?: ($bill->expenseVendor?->name ?? 'N/A'); $billDate = optional($bill->bill_date)->format('d-m-Y') ?? date('d-m-Y'); $postedPayments = $bill->payments->where('status', 'posted'); $lastPayment = $postedPayments->sortByDesc('payment_date')->first(); $paymentDateDisplay = $lastPayment ? optional($lastPayment->payment_date)->format('d-m-Y h:i A') : 'Unpaid'; $paymentMethodDisplay = $lastPayment ? strtoupper($lastPayment->paid_from_method_key ?? 'Cash') : '-'; $installmentPaymentMap = $postedPayments ->whereNotNull('installment_id') ->sortByDesc('payment_date') ->groupBy('installment_id') ->map(fn($items) => $items->first()) ->all(); @endphp
Back to Bill
@if($schoolLogo) School Logo @else @endif
{{ $schoolName }}
{{ $schoolAddress }}
Phone: {{ $schoolPhone }} | Email: {{ $schoolEmail }}
EXPENSE VOUCHER
Voucher / Bill No: {{ $bill->bill_no }}
Bill Date: {{ $billDate }}
Expense Category: {{ $categoryName }}
Bill Status: {{ strtoupper($bill->status) }}
Payee / Vendor: {{ $vendorName }}
Payment Date: {{ $paymentDateDisplay }}
Approved By: {{ $approvedBy }}
Payment Method: {{ $paymentMethodDisplay }}
PARTICULARS
SL PARTICULARS & PURPOSE CATEGORY AMOUNT
1 {{ $bill->remark ?: 'General Expense Voucher Purpose' }} {{ $categoryName }} {{ number_format((float)$bill->total_amount, 2) }}
Total Bill Amount: {{ number_format((float)$bill->total_amount, 2) }}
Paid Amount: {{ number_format((float)$bill->paid_amount, 2) }} @if($lastPayment) (Paid: {{ $paymentDateDisplay }}) @endif
Remaining / Due: {{ number_format((float)$bill->remaining_amount, 2) }}
@if($bill->installments && $bill->installments->count() > 0)
INSTALLMENT SCHEDULE
@foreach($bill->installments as $inst) @php $instPayment = $installmentPaymentMap[$inst->id] ?? null; $instPaidDate = $instPayment ? optional($instPayment->payment_date)->format('d-m-Y h:i A') : '-'; @endphp @endforeach
INST # DUE DATE PAID DATE AMOUNT DUE PAID AMOUNT REMAINING STATUS
#{{ $inst->installment_no }} {{ optional($inst->due_date)->format('d-m-Y') }} {{ $instPaidDate }} {{ number_format((float)$inst->amount_due, 2) }} {{ number_format((float)$inst->amount_paid, 2) }} {{ number_format((float)$inst->remaining_amount, 2) }} {{ strtoupper($inst->status) }}
@endif @if($postedPayments->count() > 0)
PAYMENT DETAILS
@foreach($postedPayments as $p) @endforeach
SL PAYMENT NO PAYMENT DATE & TIME METHOD AMOUNT STATUS
{{ $loop->iteration }} {{ $p->payment_no }} {{ optional($p->payment_date)->format('d-m-Y h:i A') }} {{ strtoupper($p->paid_from_method_key ?? 'Cash') }} {{ number_format((float)$p->amount, 2) }} {{ strtoupper($p->status) }}
@endif
Prepared By
{{ $preparedBy }}
Accountant
Accounts Dept.
Verified By
Admin Officer
Principal / Headmaster
{{ $principalName }}