feat(F-161): completed feature
This commit is contained in:
@@ -1,14 +1,16 @@
|
||||
# Feature activa: F-160 — Fix Reporting sales grouped queries returning 500
|
||||
# Feature activa: F-161 — Complete 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.
|
||||
|
||||
Reference in New Issue
Block a user