# Pandora CRM — Criterios de Dashboard, Reportes y Analíticas

## Venta neta

Para métricas comerciales se usa **venta neta = total de la orden - costo de envío**. El costo de envío se obtiene del item `costo_envio`; para registros legacy sin item explícito se reconstruye como la diferencia entre el total de la orden y la suma de líneas comerciales visibles.

## Dashboard

- `Productos a entregar` usa `delivery_date`.
- Se excluyen órdenes canceladas y órdenes eliminadas/anuladas (soft delete).
- Los combos se expanden en sus componentes.
- En órdenes legacy, las líneas internas de reserva se usan para respetar variante y sexo reales de las aves del combo sin duplicar los componentes.
- Ventas del mes y tendencia de 14 días usan `created_at` y venta neta.

## Rendimiento por lote

Solo considera registros de faena e hígados no anulados.

`Peso promedio = (peso aves + peso hígados) / número de aves`

Se presenta en gramos enteros y libras con dos decimales.

## Reportes

Los filtros `Desde/Hasta` se aplican a `created_at` de la orden. Puede filtrarse además por estado de orden y estado de pago.

La exportación XLSX no depende de paquetes Composer externos ni de `ZipArchive`: Pandora construye directamente un contenedor OpenXML válido, lo que evita diferencias entre las extensiones disponibles en PHP CLI/web del hosting.

La exportación PDF es multipágina y usa fuentes PDF estándar con codificación WinAnsi para español.

## Analíticas

- Venta neta y ticket promedio excluyen envío.
- Top clientes suma venta neta por cliente.
- Top productos/combos/servicios usa las líneas comerciales vendidas y excluye costo de envío y líneas internas de reserva.
- Órdenes con soft delete no forman parte de los indicadores.
