@extends('layouts.app') @section('title', 'Register shifts') @section('content')

Register shifts

{{ $shifts->total() }} shift(s) matching your filters.

Registers
@include('components.kpi', ['label' => 'Open now', 'value' => (string) $totals['open'], 'variant' => $totals['open'] ? 'warn' : 'good']) @include('components.kpi', ['label' => 'Cash expected', 'value' => money($totals['cash']), 'variant' => 'info']) @include('components.kpi', ['label' => 'Net variance', 'value' => money($totals['variance']), 'variant' => $totals['variance'] < 0 ? 'bad' : 'good']) @include('components.kpi', ['label' => 'Short shifts', 'value' => (string) $totals['short'], 'variant' => $totals['short'] ? 'bad' : 'good'])
@if ($shifts->isEmpty()) @include('components.empty-state', [ 'icon' => '💰', 'title' => 'No shifts yet', 'message' => 'Open a shift on a register to start recording cash takings.', ]) @else @foreach ($shifts as $shift) @endforeach
RegisterOperatorOpened FloatExpected CountedVariance TxnsStatusClose
{{ $shift->register?->name ?: '—' }} {{ $shift->user?->name ?: '—' }} {{ $shift->opened_at?->format('d M H:i') }} {{ money($shift->opening_amount) }} {{ money($shift->expected_amount) }} {{ $shift->status === 'closed' ? money($shift->counted_amount) : '—' }} @if ($shift->closed_at)
{{ $shift->closed_at->format('d M H:i') }}
@endif
{{ $shift->status === 'closed' ? money($shift->variance) : '—' }} @if ($shift->status === 'closed' && $shift->variance < 0)
short
@endif
{{ $shift->transactions_count }} {{ title_case_words($shift->status) }} @if ($shift->status === 'open')
@csrf
@csrf
@elseif ($shift->notes) {{ \Illuminate\Support\Str::limit($shift->notes, 40) }} @endif
@endif
@if ($shifts->hasPages())
{{ $shifts->links('partials.pagination') }}
@endif
@endsection