@extends('layouts.app')
@section('title', 'Post Payment')
@section('content')
{{-- GUARD CHECKS (static mock) --}}
@php
$shiftOpen = true; // set to false to see blocking banner
$seriesAssigned = true; // set to false to see blocking banner
@endphp
@if (!$shiftOpen || !$seriesAssigned)
Action required
@if (!$shiftOpen)
No open cashier shift.
@endif
@if (!$seriesAssigned)
No OR series assigned.
@endif
Please
open a shift/assign series before
posting payments.
@endif
Post Payment
Choose Assessment
Shift:
{{ $shiftOpen ? 'OPEN' : 'CLOSED' }}
Series:
{{ $seriesAssigned ? '2025-A (001000–001999)' : '—' }}
Next OR: 001124
@php
// ---------- STATIC MOCK DATA ----------
$rows = [
[
'bill_no' => 'INV-2025-00421',
'date' => '2025-10-18',
'business' => 'Dev Coffee Roasters',
'owner' => 'OrangeShake',
'due' => 12750.0,
'aging' => '0d',
'status' => 'Unpaid',
'items' => [
[
'code' => 'BP-TAX',
'desc' => 'Business Tax - Retail',
'fund' => 'General Fund',
'amount' => 9000.0,
],
['code' => 'REG-FEE', 'desc' => 'Regulatory Fee', 'fund' => 'General Fund', 'amount' => 2000.0],
[
'code' => 'SAN-FEE',
'desc' => 'Sanitary Permit',
'fund' => 'General Fund',
'amount' => 1000.0,
],
[
'code' => 'ZON-FEE',
'desc' => 'Zoning Clearance',
'fund' => 'General Fund',
'amount' => 500.0,
],
],
'surcharge' => 250.0,
'interest' => 0.0,
'discount' => 0.0,
],
[
'bill_no' => 'INV-2025-00422',
'date' => '2025-10-18',
'business' => 'Byte Bakery',
'owner' => 'Ana Byte',
'due' => 8200.0,
'aging' => '0d',
'status' => 'Unpaid',
'items' => [
[
'code' => 'BP-TAX',
'desc' => 'Business Tax - Retail',
'fund' => 'General Fund',
'amount' => 6000.0,
],
['code' => 'REG-FEE', 'desc' => 'Regulatory Fee', 'fund' => 'General Fund', 'amount' => 2000.0],
],
'surcharge' => 200.0,
'interest' => 0.0,
'discount' => 0.0,
],
[
'bill_no' => 'INV-2025-00423',
'date' => '2025-10-17',
'business' => 'Pixel Print Shop',
'owner' => 'Rex Pixel',
'due' => 9500.0,
'aging' => '1d',
'status' => 'Partial',
'items' => [
[
'code' => 'BP-TAX',
'desc' => 'Business Tax - Printing',
'fund' => 'General Fund',
'amount' => 7500.0,
],
[
'code' => 'ZON-FEE',
'desc' => 'Zoning Clearance',
'fund' => 'General Fund',
'amount' => 500.0,
],
[
'code' => 'SAN-FEE',
'desc' => 'Sanitary Permit',
'fund' => 'General Fund',
'amount' => 1000.0,
],
],
'surcharge' => 500.0,
'interest' => 0.0,
'discount' => 0.0,
],
];
// No preselected bill for MVP — show details only after selection
$bill = null;
@endphp
{{-- LEFT: FINDER + LIST --}}
{{-- Tabs --}}
By Assessment
Search
Queue
{{-- By Reference --}}
{{-- Search --}}
Business / Owner
Status
Unpaid
Partial
All
Search
{{-- Queue --}}
Showing assessments endorsed to Cashiering
today. (static)
{{-- List of results --}}
Ref No.
Date
Business
Amt. Due
Aging
Status
@foreach ($rows as $r)
{{ $r['bill_no'] }}
{{ $r['date'] }}
{{ $r['business'] }}
{{ $r['owner'] }}
{{ number_format($r['due'], 2) }}
{{ $r['aging'] }}
@if ($r['status'] === 'Unpaid')
Unpaid
@else
Partial
@endif
@endforeach
Tip: use the scanner on “By Reference” to jump straight to a bill.
{{-- RIGHT: DETAILS + PAYMENT --}}
{{-- Empty state (visible by default) --}}
No assessment selected
Choose an assessed application that’s ready for posting of payment.
Choose Assessment
{{-- Details & Payment (hidden until selection) --}}
Save & Print OR
Print Preview
Saving posts to Collections & Business Ledger. Voids/Adjustments are done from the dedicated
page.
{{-- Choose Assessment Modal (static) --}}
{{-- Toast (Bootstrap 5) --}}
OR saved & locked (static demo). Printing…
@endsection
@push('scripts')
@endpush