@extends('layouts.app') @section('title', 'Cashier Shifts') @section('content')

Cashier Shifts

Open your shift with opening cash. Sales totals and items are calculated automatically.

@if (!auth()->user()->activeShift) @can('shifts.manage') @endcan @else
@csrf
@endif
@if ($activeShift && $summary)

Current shift summary

Shift #{{ $activeShift->id }} · opened {{ $activeShift->opened_at->format('d M, H:i') }} · {{ $summary['orders_count'] }} order(s)/tab(s)

Print / PDF

Opening cash

{{ number_format($summary['opening_float'], 2) }}

Cash sales

{{ number_format($summary['cash_sales'], 2) }}

M-Pesa sales

{{ number_format($summary['mpesa_sales'], 2) }}

Credit sales

{{ number_format($summary['credit_sales'], 2) }}

Total sales

{{ number_format($summary['total_sales'], 2) }}

Products sold

Quantity and sales amount
@forelse ($summary['products'] as $name => $row) @empty @endforelse
ProductQuantityAmount
{{ $name }}{{ number_format($row['qty'], 2) }}{{ number_format($row['total'], 2) }}
No products sold on this shift yet.
Total{{ number_format(collect($summary['products'])->sum('qty'), 2) }}{{ number_format(collect($summary['products'])->sum('total'), 2) }}
@endif
@forelse ($shifts as $shift) @empty @endforelse
CashierOpenedClosedOpening CashStatus
{{ $shift->cashier->name }} {{ $shift->opened_at->format('d M, H:i') }} {{ $shift->closed_at?->format('d M, H:i') ?? '—' }} {{ number_format($shift->opening_float, 2) }} {{ ucfirst($shift->status) }}
Print / PDF @if ($shift->status === 'closed' && auth()->user()->can('shifts.approve'))
@csrf
@endif
No shifts recorded yet.
{{ $shifts->links() }}
@csrf
@endsection