Eror al sincronizar cierres de mesas con Cover Manager (Intento de dividir por cero)

Modificado el Sat, 13 Apr 2024 a las 01:55 PM

Descripción del Problema

El cliente reporta que no se le liberan las mesas de ágora en Cover Manager. Al revisar el Log, se encuentra el siguiente error:

ERROR: No se han podido sincronizar las reservas online pendientes de cierre (from IGT.POS.Server.Services.Impl.OnlineReservationManager)
System.DivideByZeroException: Intento de dividir por cero.

Causa del Error

En versiones antiguas de Ágora, existe un bug en las líneas de servicio que permite tener una cantidad en cero. Esto provoca un error de división por cero al intentar notificar el cierre de mesa a CoverManager.

Solución del Error

* Estas consultas hay que ejecutarlas en el servidor del local.


Paso 1: Identificación de Reservas Pendientes de Notificar

Primero, necesitamos identificar cuántas reservas están pendientes de ser notificadas como cerradas. Ejecuta la siguiente consulta SQL en la base de datos para contar las reservas pendientes:

SELECT COUNT(id) as 'Reservas pendientes de subir'
FROM OnlineReservation
WHERE CloseNotified = 0

El resultado nos mostrará el nº de tickets pendientes de notificar.

Puedes ejecutar esta consulta múltiples veces para comprobar que se ha notificado todos los tickets.

Paso 2: Corrección de Reservas con Cantidad Cero

Luego, debemos marcar como notificadas las reservas que generan el error debido a líneas con cantidad igual a cero. Esto evitará el error de división. Utiliza la siguiente consulta SQL para actualizar las reservas afectadas:

UPDATE OnlineReservation
SET CloseNotified = 1
WHERE TicketId IN ( SELECT TicketId FROM TicketLine WHERE Quantity = 0 )
)

Recomendaciones Adicionales


Actualizar el Sistema: Considera actualizar Ágora a la última versión disponible para corregir este y otros posibles bugs. 

Revisión Regular de Logs: Implementa una revisión regular de los logs del sistema para detectar y resolver errores proactivamente. 

Comprobar que el proceso a finalizado: Ágora envía las notificaciones de 20 en 20 por lo que si hay muchos mensajes pendientes el proceso puede demorar varios minutos, verifica que no hay reservar pendientes de notificar ejecutando de nuevo la consulta para contar reservas pendientes.


Siguiendo estos pasos, podrás corregir el error específico.


¿Le ha sido útil este artículo?

¡Qué bien!

Gracias por sus comentarios

¡Sentimos mucho no haber sido de ayuda!

Gracias por sus comentarios

¡Háganos saber cómo podemos mejorar este artículo!

Seleccione al menos una de las razones

Sus comentarios se han enviado

Agradecemos su esfuerzo e intentaremos corregir el artículo