feat(F-161): completed feature

This commit is contained in:
chattie
2026-08-22 18:13:37 +02:00
parent 83a44980c6
commit 9152b3a65e
15 changed files with 164 additions and 63 deletions

View File

@@ -1,14 +1,16 @@
# Feature activa: F-160Fix Reporting sales grouped queries returning 500
# Feature activa: F-161Complete admin order detail information
## Causa raíz
`runSalesQuery` concatena `${selectExpr}` directamente antes de `COUNT(...)` sin coma, generando SQL inválido en todos los grupos. Además, el grupo `terminal` selecciona `o.store_id` pero agrupa solo por `terminal_id`.
## Diagnóstico
El pedido existente se creó con `user_id` de `backoffice_users` porque Checkout usa `combinedAuth`, que prioriza `backoffice_session` si ambos cookies existen. Por eso el JOIN a `identity_users` no encuentra email, perfil ni dirección. La UI además oculta por completo Cliente, Direcciones y Pago cuando faltan datos.
## Solución
- Añadir coma explícita tras las columnas dimensionales.
- Agrupar terminal por `store_id, terminal_id`.
- Añadir tests de integración del servicio SQL real para day/channel/store/terminal.
- Checkout debe usar exclusivamente el autenticador de identidad/customer.
- El detalle obtiene nombre/teléfono desde `users_profiles` como fallback.
- Las tarjetas Cliente, Envío, Facturación y Pago siempre aparecen, mostrando estado explícito cuando un dato no fue registrado.
- Reparar la asociación del pedido local afectado con el cliente correcto.
## Aceptación
- Los cuatro endpoints usados por Dashboard responden 200.
- No hay interpolación de valores del usuario; solo expresiones de enum controlado.
- Build, tests y verify pasan.
- El pedido muestra email, nombre, teléfono y dirección de envío.
- No aparece el falso aviso «El cliente no tiene email asociado».
- Pago/facturación ausentes se muestran como «No registrado», no desaparecen.
- Futuros checkouts no usan sesiones backoffice.