[bug] Reportes por producto y utilidad no restan el descuento del carrito #10

Open
opened 2026-10-02 18:37:08 +00:00 by Carlos · 0 comments
Member

Qué pasa

Los reportes de ventas por producto, utilidad y más vendidos calculan el ingreso como unitPrice × cantidad y no restan el descuento del carrito (apps/web/src/app/admin/reportes/page.tsx:82-83). Toda venta con descuento sube el ingreso y la utilidad reportados.

Entorno

local

Módulos

Web / frontend, Reportes

Severidad

Molesta; hay workaround

Pasos para reproducir

  1. Registrar una venta de $100 con $20 de descuento.
  2. Abrir Reportes → Ventas por producto y Utilidad.
  3. Comparar con Ventas del día, que usa ShopCart.totalPrice.

Esperado

El ingreso del producto es $80 y la utilidad se calcula sobre $80, igual que el total cobrado.

Actual

El ingreso del producto es $100 y la utilidad está inflada en $20. Los totales de "Ventas por producto" y "Ventas del día" no cuadran entre sí.

Evidencia

Encontrado en auditoría de código; no reproducido en ejecución.

// reportes/page.tsx:82-83
entry.revenue += Number(h.unitPrice) * cp.quantity;
entry.profit += (Number(h.unitPrice) - Number(h.costUnit)) * cp.quantity;

Arreglo sugerido: repartir el descuento del carrito proporcionalmente entre sus líneas. Workaround: usar "Ventas del día" para el total cobrado.

¿Está también en producción?

  • Sí — este issue no basta; hay que abrir un Incidente / hotfix
  • No — solo local / staging
  • No sé

Antes de abrir

  • Busqué un issue duplicado
### Qué pasa Los reportes de ventas por producto, utilidad y más vendidos calculan el ingreso como `unitPrice × cantidad` y no restan el descuento del carrito (`apps/web/src/app/admin/reportes/page.tsx:82-83`). Toda venta con descuento sube el ingreso y la utilidad reportados. ### Entorno local ### Módulos Web / frontend, Reportes ### Severidad Molesta; hay workaround ### Pasos para reproducir 1. Registrar una venta de $100 con $20 de descuento. 2. Abrir **Reportes → Ventas por producto** y **Utilidad**. 3. Comparar con **Ventas del día**, que usa `ShopCart.totalPrice`. ### Esperado El ingreso del producto es $80 y la utilidad se calcula sobre $80, igual que el total cobrado. ### Actual El ingreso del producto es $100 y la utilidad está inflada en $20. Los totales de "Ventas por producto" y "Ventas del día" no cuadran entre sí. ### Evidencia ```shell Encontrado en auditoría de código; no reproducido en ejecución. // reportes/page.tsx:82-83 entry.revenue += Number(h.unitPrice) * cp.quantity; entry.profit += (Number(h.unitPrice) - Number(h.costUnit)) * cp.quantity; ``` Arreglo sugerido: repartir el descuento del carrito proporcionalmente entre sus líneas. Workaround: usar "Ventas del día" para el total cobrado. ### ¿Está también en producción? - [ ] Sí — este issue no basta; hay que abrir un Incidente / hotfix - [ ] No — solo local / staging - [x] No sé ### Antes de abrir - [x] Busqué un issue duplicado
Nolberto was assigned by Carlos 2026-10-02 20:06:15 +00:00
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: RynextTechnologies/PDV#10