@extends('layouts.app') @section('title', 'Reporte de ventas') @section('content') @php $puntoElegido = request('punto_venta_id'); $cajeraElegida = request('creado_por'); $desdeElegido = request('desde'); $hastaElegido = request('hasta'); $periodoBoton = ($desdeElegido || $hastaElegido) ? '' : $periodo; $excelParams = array_filter([ 'periodo' => $periodoBoton ?: 'personalizado', 'punto_venta_id' => $puntoElegido, 'creado_por' => $cajeraElegida, 'desde' => $desdeElegido, 'hasta' => $hastaElegido, ], fn ($v) => $v !== null && $v !== ''); $excelUrl = route('admin.reporte-ventas.excel', $excelParams); @endphp

Reporte de ventas

Panorama de todo lo vendido. Los totales no cambian. Al descargar Excel, las familias salen juntas.

{{ $evento['nombre'] }} · {{ $evento['fecha'] }}

@foreach (['hoy' => 'Hoy', 'semana' => 'Esta semana', 'evento' => 'Todo el evento'] as $key => $label) {{ $label }} @endforeach
@include('venta.partials.descargar-excel')
Dinero cobrado ({{ $rango['etiqueta'] }}) S/ {{ number_format($resumen['pagado'], 2) }} De un total de S/ {{ number_format($resumen['precio'], 2) }}
Ventas y entradas {{ $resumen['ventas'] }} {{ $resumen['entradas'] }} entradas emitidas
Avance de cobro {{ $avance_cobro }}%
Saldo pendiente S/ {{ number_format($resumen['saldo'], 2) }} Ver quiénes deben

Cuadre de soles

Valor ventas S/ {{ number_format($cuadre['valor'], 2) }} = Pagado S/ {{ number_format($cuadre['pagado'], 2) }} + Saldo S/ {{ number_format($cuadre['saldo'], 2) }}

@if (abs($cuadre['delta']) > 0.01)

Diferencia (delta): S/ {{ number_format($cuadre['delta'], 2) }}. Revisar ventas con precio ≠ pagado + saldo.

@endif

No multiplique cantidades del dashboard × precios de etiqueta.

@foreach ($por_categoria_dinero as $fila) @endforeach
Categoría Ventas Valor Pagado Saldo
{{ $fila['nombre'] }} {{ $fila['ventas'] }} S/ {{ number_format($fila['valor'], 2) }} S/ {{ number_format($fila['pagado'], 2) }} S/ {{ number_format($fila['saldo'], 2) }}
@if (abs(($cuadre['abonos'] ?? 0) - $cuadre['pagado']) > 0.01)

Caja (abonos) S/ {{ number_format($cuadre['abonos'], 2) }} vs Pagado en ventas S/ {{ number_format($cuadre['pagado'], 2) }}

@endif

Dinero cobrado por día

Cada barra es un día. El número de arriba es lo cobrado.

@if (count($por_dia) > 0)
@foreach ($por_dia as $barra)
S/ {{ number_format($barra['pagado'], 0) }} {{ $barra['dia'] }} {{ $barra['ventas'] }} ventas
@endforeach
@else

Aún no hay cobros en este periodo.

@endif

Cómo se cobró

@foreach ($por_metodo_barras as $fila)
{{ $fila['nombre'] }} S/ {{ number_format($fila['pagado'], 2) }}
@endforeach

Códigos / pases emitidos (cantidades)

Conteo de códigos por tipo de pase — no es desglose de soles. El dinero está en «Cuadre de soles».

@foreach ($por_tipo as $fila)
{{ $fila['nombre'] }} {{ $fila['ventas'] }}
@endforeach

Por cajera

@forelse ($por_cajera as $fila)
{{ $fila['nombre'] }} · {{ $fila['ventas'] }} ventas S/ {{ number_format($fila['pagado'], 2) }}
@empty

Sin cobros en este periodo.

@endforelse

Por punto de venta

@forelse ($por_punto as $fila)
{{ $fila['nombre'] }} · {{ $fila['ventas'] }} ventas S/ {{ number_format($fila['pagado'], 2) }}
@empty

Sin cobros en este periodo.

@endforelse

Estado de las ventas

@foreach ($por_estado as $fila)
{{ $fila['nombre'] }} {{ $fila['ventas'] }}
@endforeach
@endsection