@php $money = static fn($value) => '$' . number_format((float) $value, 0, ',', '.'); $dateTime = static fn($value) => $value ? $value->format('d/m/Y h:i A') : '—'; $difference = (float) $cashSession->difference; $resultClass = $difference > 0 ? 'result-positive' : ($difference < 0 ? 'result-negative' : 'result-exact'); $differenceLabel = $difference > 0 ? 'Sobrante' : ($difference < 0 ? 'Faltante' : 'Caja exacta'); $positiveMovementTypes = [ \App\Enums\CashMovementType::Income->value, \App\Enums\CashMovementType::AdjustmentIn->value, ]; @endphp
{{ config('app.name', 'Salón') }}
Control administrativo

Cierre de Caja Diaria

Sesión #{{ $cashSession->id }}
Cerrada

Información de la sesión

Sede
{{ $cashSession->branch?->name ?? '—' }}
Caja
{{ $cashSession->cashRegister?->name ?? '—' }}
Apertura
{{ $dateTime($cashSession->opened_at) }}
Cierre
{{ $dateTime($cashSession->closed_at) }}
Abierta por
{{ $cashSession->opener?->name ?? '—' }}
Cerrada por
{{ $cashSession->closer?->name ?? '—' }}
Ciudad
{{ $cashSession->branch?->city ?? '—' }}
Dirección
{{ $cashSession->branch?->address ?? '—' }}

Resumen financiero

Fondo inicial
{{ $money($cashSession->opening_cash) }}
Pagos en efectivo
{{ $money($cashSession->cash_payments_total) }}
Pagos electrónicos
{{ $money($cashSession->non_cash_payments_total) }}
Ingresos manuales
{{ $money($cashSession->manual_income_total) }}
Gastos
{{ $money($cashSession->expense_total) }}
Retiros
{{ $money($cashSession->withdrawal_total) }}
Ajustes positivos
{{ $money($cashSession->adjustment_in_total) }}
Ajustes negativos
{{ $money($cashSession->adjustment_out_total) }}

Arqueo de efectivo

Efectivo esperado
{{ $money($cashSession->expected_cash) }}
Efectivo contado
{{ $money($cashSession->counted_cash) }}
Diferencia
{{ $money($cashSession->difference) }}
Resultado del arqueo
{{ $differenceLabel }}: {{ $money(abs($difference)) }}
@if ($difference > 0) El efectivo contado supera el efectivo esperado. @elseif ($difference < 0) El efectivo contado es inferior al efectivo esperado. @else El efectivo contado coincide exactamente con el esperado. @endif

Totales por medio de pago

@forelse ($paymentMethodLabels as $value => $label) @php $methodPayments = $cashSession->payments->where('payment_method', $value); $methodTotal = (float) ($paymentTotals[$value] ?? 0); @endphp @if ($methodPayments->isNotEmpty()) @endif @empty @endforelse
Medio de pago Cantidad Total
{{ $label }} {{ $methodPayments->count() }} {{ $money($methodTotal) }}
No hay pagos registrados.

Detalle de pagos

@forelse ($cashSession->payments as $payment) @empty @endforelse @if ($cashSession->payments->isNotEmpty()) @endif
Fecha Venta Medio Referencia Recibido por Valor
{{ $dateTime($payment->paid_at) }} {{ $payment->sale?->sale_number ?? '—' }} {{ $paymentMethodLabels[$payment->payment_method] ?? $payment->payment_method }} {{ $payment->reference ?: '—' }} {{ $payment->receiver?->name ?? 'Sistema' }} {{ $money($payment->amount) }}
No hay pagos asociados a esta sesión.
Total pagos {{ $money($cashSession->payments->sum('amount')) }}

Detalle de movimientos manuales

@forelse ($cashSession->movements as $movement) @php $isPositive = in_array($movement->type->value, $positiveMovementTypes, true); @endphp @empty @endforelse
Fecha Tipo Descripción Referencia Registrado por Valor
{{ $dateTime($movement->occurred_at) }} {{ $movement->type->label() }} {{ $movement->description }} @if ($movement->observations)
{{ $movement->observations }} @endif
{{ $movement->reference ?: '—' }} {{ $movement->creator?->name ?? 'Sistema' }} {{ $isPositive ? '+' : '-' }} {{ $money($movement->amount) }}
No hay movimientos manuales registrados.
@if ($deletedMovements->isNotEmpty())

Movimientos eliminados / reversados

@foreach ($deletedMovements as $movement) @php $isPositive = in_array($movement->type->value, $positiveMovementTypes, true); @endphp @endforeach
Registrado Eliminado Tipo Descripción Registrado por Eliminado por Valor
{{ $dateTime($movement->occurred_at) }} {{ $dateTime($movement->deleted_at) }} {{ $movement->type->label() }}
ELIMINADO
{{ $movement->description }} @if ($movement->reference)
Ref: {{ $movement->reference }} @endif @if ($movement->observations)
{{ $movement->observations }} @endif
{{ $movement->creator?->name ?? 'Sistema' }} {{ $deletedByNames[$movement->deleted_by] ?? 'Sistema' }} {{ $isPositive ? '+' : '-' }} {{ $money($movement->amount) }}
Estos movimientos se conservan únicamente como trazabilidad y no forman parte de los totales ni del arqueo final.
@endif @if ($cashSession->opening_observations || $cashSession->closing_observations)

Observaciones

@if ($cashSession->opening_observations)
Observaciones de apertura
{{ $cashSession->opening_observations }}
@endif @if ($cashSession->closing_observations)
Observaciones de cierre
{{ $cashSession->closing_observations }}
@endif
@endif
{{ $cashSession->opener?->name ?? 'Responsable de apertura' }}
Responsable de apertura
{{ $cashSession->closer?->name ?? 'Responsable de cierre' }}
Responsable de cierre