@extends('layouts.app') @section('title', 'Recent Sales') @section('content') @php $method = fn ($key) => $methodNames[$key] ?? ucwords(str_replace('_', ' ', (string) ($key ?: 'cash'))); $qty = fn ($v) => rtrim(rtrim(number_format((float) $v, 2), '0'), '.'); $dayLabel = function ($date) { if ($date->isToday()) return 'Today'; if ($date->isYesterday()) return 'Yesterday'; return $date->format('l, d M Y'); }; $periods = ['all' => 'All', 'today' => 'Today', 'yesterday' => 'Yesterday', 'week' => 'Last 7 days']; $canEdit = auth()->user()->hasPermission('edit_pos_sell'); $canDelete = auth()->user()->hasPermission('delete_pos_sell'); @endphp

Recent Sales

{{ $seesAll ? 'Sales from every till' : 'Your sales' }}, newest first. @if($summary['last_sale']) Last sale {{ \Carbon\Carbon::parse($summary['last_sale'])->diffForHumans() }}. @endif

Back to POS
Today
{{ formatCurrency($summary['today_total']) }}
{{ number_format($summary['today_count']) }} {{ $summary['today_count'] == 1 ? 'sale' : 'sales' }}
This shift
@if($summary['shift_total'] !== null)
{{ formatCurrency($summary['shift_total']) }}
{{ number_format($summary['shift_count']) }} {{ $summary['shift_count'] == 1 ? 'sale' : 'sales' }} on your open register
@else
-
No register open
@endif
@foreach($periods as $key => $label) {{ $label }} @endforeach
@if($sales->isEmpty())
@if($search !== '' || $period !== 'all') No sales match{{ $search !== '' ? ' "' . $search . '"' : '' }}. Show all recent sales @else No sales yet. Sales appear here as soon as they are made. @endif
@else @foreach($sales->getCollection()->groupBy(fn ($s) => $s->created_at->toDateString()) as $day => $daySales)
{{ $dayLabel(\Carbon\Carbon::parse($day)) }} {{ $daySales->count() }} {{ $daySales->count() == 1 ? 'sale' : 'sales' }} ยท {{ formatCurrency($daySales->sum('total_amount')) }}
@foreach($daySales as $sale) @php $names = $sale->items->map(fn ($i) => $i->product?->name ?? 'Deleted product'); $cashier = $sale->user?->name ?? $sale->register?->user?->name; @endphp
{{ $sale->created_at->format('H:i') }}
#{{ $sale->invoice_no }}
{{ $names->take(3)->implode(', ') }} @if($names->count() > 3)+{{ $names->count() - 3 }} more@endif
{{ $sale->customer_name ?: 'Walk-in' }} @if($sale->contact_number) {{ $sale->contact_number }}@endif {{ $qty($sale->items->sum('quantity')) }} {{ $sale->items->sum('quantity') == 1 ? 'item' : 'items' }} @if($seesAll && $cashier) {{ $cashier }}@endif @if($sale->is_edited) Edited@endif @if($sale->hasDiscount()) {{ formatCurrency($sale->discount_amount) }} off@endif @if(strtolower((string) $sale->payment_status) !== 'paid'){{ ucfirst($sale->payment_status ?: 'Unpaid') }}@endif
@if($sale->payment_method === 'split' && $sale->payments->isNotEmpty()) @foreach($sale->payments as $payment) {{ $method($payment->method) }} {{ number_format($payment->amount) }} @endforeach @else {{ $method($sale->payment_method) }} @endif
{{ formatCurrency($sale->total_amount) }}
@if($canEdit) @endif @if($canDelete)
@csrf @method('DELETE')
@endif
@endforeach
@endforeach @if($sales->hasPages())
{{ $sales->links() }}
@endif @endif
@endsection @section('scripts') @endsection