{{-- resources/views/livewire/caja/index.blade.php --}}
{{-- ── HEADER ──────────────────────────────────── --}}
🧮 Caja
Apertura · movimientos · cierre y arqueo
{{-- ── MENSAJES ─────────────────────────────────── --}} @if($mensaje_exito)
✅ {{ $mensaje_exito }}
@endif @if($mensaje_error)
❌ {{ $mensaje_error }}
@endif @if($ventas_sin_turno['cantidad'] > 0)
⚠️ Hay {{ $ventas_sin_turno['cantidad'] }} venta(s) aceptada(s) por ₡{{ number_format($ventas_sin_turno['monto'], 2) }} sin turno de caja asignado — no aparecen en ningún cierre. Revíselas aparte para la conciliación contable.
@endif @if(! $turno_activo) {{-- ────────────────────────────────────────────── SIN TURNO ACTIVO → PANTALLA DE APERTURA ─────────────────────────────────────────────── --}}
🧮
Abrir turno de caja
Registra el efectivo inicial para comenzar las ventas del turno
@if($apertura_error)
❌ {{ $apertura_error }}
@endif
@else {{-- ────────────────────────────────────────────── CON TURNO ACTIVO → PANEL DE OPERACIÓN ─────────────────────────────────────────────── --}} {{-- Estado del turno --}}
Turno activo · {{ $turno_activo->caja?->nombre }}
Apertura: {{ $turno_activo->apertura_at->format('d/m/Y H:i') }} · Efectivo inicial: ₡{{ number_format($turno_activo->monto_apertura, 2) }}
{{-- KPIs del turno --}} @if($resumen)
Ventas turno
₡{{ number_format($resumen['total_ventas'], 0) }}
Efectivo
₡{{ number_format($resumen['total_efectivo'], 0) }}
Tarjeta + SINPE
₡{{ number_format($resumen['total_tarjeta'] + $resumen['total_sinpe'], 0) }}
IVA cobrado
₡{{ number_format($resumen['total_iva'], 0) }}
@endif {{-- Movimientos del turno --}} @if($turno_activo->movimientos && $turno_activo->movimientos->count() > 0)
Movimientos del turno
@foreach($turno_activo->movimientos as $mov) @endforeach
Tipo Motivo Hora Monto
{{ $mov->tipo === 'retiro' ? '↓ Retiro' : '↑ Depósito' }} {{ $mov->motivo }} {{ $mov->created_at->format('H:i') }} {{ $mov->tipo === 'retiro' ? '-' : '+' }}₡{{ number_format($mov->monto, 2) }}
@endif @endif {{-- fin if turno_activo --}} {{-- ── MODAL MOVIMIENTO ─────────────────────────── --}} @if($mostrar_movimiento)
💸 Movimiento de caja
@if($movimiento_error)
❌ {{ $movimiento_error }}
@endif
@endif {{-- ── MODAL CIERRE ─────────────────────────────── --}} @if($mostrar_cierre && $resumen)
🔴 Cierre de turno
Arqueo de caja · {{ now()->format('d/m/Y H:i') }}
@if($cierre_error)
❌ {{ $cierre_error }}
@endif {{-- Resumen del turno --}}
Resumen del turno
@foreach([ ['Ventas totales', $resumen['total_ventas']], ['N. de crédito', -$resumen['total_nc']], ['Efectivo en ventas', $resumen['total_efectivo']], ['Tarjeta / SINPE', $resumen['total_tarjeta'] + $resumen['total_sinpe']], ['Transferencias', $resumen['total_transferencia']], ['Retiros', -$resumen['total_retiros']], ['Depósitos', $resumen['total_depositos']], ['IVA cobrado', $resumen['total_iva']], ] as [$label, $valor])
{{ $label }} {{ $valor < 0 ? '-' : '' }}₡{{ number_format(abs($valor), 2) }}
@endforeach
Efectivo esperado en caja ₡{{ number_format($resumen['efectivo_esperado'], 2) }}
{{-- Diferencia --}} @php $diferencia = $efectivo_contado - $resumen['efectivo_esperado']; @endphp
{{ $diferencia >= 0 ? 'Sobrante: +' : 'Faltante: -' }} ₡{{ number_format(abs($diferencia), 2) }}
@endif