Resolución: Campo de Cantidad en POS solo permite un dígito después de actualización (Odoo 17)
Este artículo detalla la solución a un problema en Odoo 17 POS donde el campo de cantidad solo permitía ingresar un dígito, causado por un error en el módulo de multimoneda del POS tras una actualización. La solución implicó una corrección de código y la limpieza de caché del navegador.
Problema
Los usuarios del Punto de Venta (POS) en Odoo 17 reportaron que al intentar ingresar una cantidad para un producto utilizando el teclado numérico (numpad) o la opción 'cantidad', el sistema solo permitía la entrada de un único dígito. Cada vez que se intentaba ingresar un segundo dígito, el campo se reiniciaba, impidiendo así la venta de productos en cantidades mayores a nueve unidades. Este comportamiento se presentó nuevamente después de una actualización de módulos, a pesar de haber sido resuelto previamente en un ticket anterior (#60).
Causa Raíz
Se identificó que la causa raíz del problema era un error en el módulo de multimoneda del Punto de Venta (POS) de Odoo 17. Este error provocaba que el campo de entrada de cantidad se reiniciara automáticamente después de cada dígito ingresado, impidiendo la asignación de cantidades de dos o más dígitos. Este comportamiento se hizo evidente o recurrente después de una actualización de módulos, posiblemente debido a la interacción con la caché del navegador o la reintroducción de un bug.
Solución
- Diagnóstico Inicial y Limpieza de Caché del Servidor: El equipo de soporte realizó una revisión inicial del código del módulo POS y la configuración de Unidades de Medida, confirmando que la corrección previa seguía vigente. Se identificó una posible causa en la caché del navegador debido a una actualización reciente de módulos. Se procedió a limpiar la caché del servidor.
-
Limpieza de Caché del Navegador (Cliente): Se instruyó al cliente a realizar los siguientes pasos en todos los dispositivos donde se utiliza el POS:
- Cerrar la sesión del POS.
- Presionar
Ctrl + Shift + Ren el navegador para forzar la limpieza de la caché y recargar la página. - Volver a abrir el POS y probar la entrada de cantidades.
- Identificación de la Causa Raíz y Corrección de Código: Tras confirmar que la limpieza de caché del navegador no resolvió el problema, el equipo de soporte realizó una investigación más profunda. Se identificó un error específico en el módulo de multimoneda del POS que estaba causando que el campo de cantidad se reiniciara después de cada dígito ingresado. Se desarrolló y aplicó una corrección de código para este módulo.
-
Validación en Instancia de Pruebas: Se solicitó al cliente validar la corrección en una instancia de pruebas (https://demodavid.logosoftla.com/). Los pasos para la validación fueron:
- Ingresar al POS de la instancia de pruebas.
- Presionar
Ctrl + Shift + Rpara limpiar la caché del navegador. - Abrir una sesión del POS.
- Agregar cualquier producto.
- En el numpad, intentar asignar cantidades de dos o más dígitos (ej: 50, 100, 25).
- Verificar que la cantidad se mantenga correctamente.
-
Despliegue a Producción y Confirmación Final: Una vez confirmada la solución en la instancia de pruebas, la mejora fue desplegada exitosamente en todas las instancias de producción (incluyendo https://ferreutil.logosoftla.com/). Se reiteró al cliente la importancia de realizar
Ctrl + Shift + R(o usar una ventana de incógnito) al ingresar al POS para asegurar la carga de la versión actualizada y confirmar el correcto funcionamiento.
Prevención
- Pruebas Rigurosas Post-Actualización: Siempre realizar pruebas exhaustivas de las funcionalidades críticas (como el POS) en un entorno de pruebas después de cualquier actualización de módulos o de la plataforma antes de desplegar a producción.
-
Gestión de Caché: Educar a los usuarios sobre la importancia de limpiar la caché del navegador (
Ctrl + Shift + R) después de actualizaciones o si experimentan comportamientos inconsistentes en el POS. - Monitoreo de Módulos Personalizados: Si se utilizan módulos personalizados (como el de multimoneda en este caso), asegurar que sean compatibles con las versiones de Odoo y que se mantengan actualizados y probados para evitar regresiones.
- Revisión de Logs: Monitorear los logs del servidor y del navegador para identificar errores o advertencias que puedan indicar problemas subyacentes.