Ir al contenido principal

Lentitud en Reservation Summary Odoo

duplicados postgre
Este problema se presentó recientemente con el complemento de Hoteleria 

Odoo Hotel Management System ya que al guardar una reservación esta se crea muchas veces dentro de la tabla hotel_room_reservation_line y al intentar cargar el reservation summary el sistema tarda demasiado.
En la imagen se puede observar como un solo registro se crea muchas veces, actualmente encontré una solución a nivel base de datos ya que aún no depuro el código fuente de la aplicación para ver que está causando la repetición.

Si tienen el mismo problema pueden ejecutar la siguiente sentencia la cual eliminará los duplicados dentro de la base de datos y agilizará las transacciones.
Para solucionar el problema temporalmente sin afectar el código fuente de la aplicación realicé un JOB dentro de PostgreSQL que elimina los registro duplicados, puedes ver el tema en el siguiente link en donde explico como realizarlo.

https://erpconsultores.blogspot.com/2019/03/crear-un-job-en-posgresql.html

Verificar que existen duplicados:
SELECT * FROM hotel_room_reservation_line ORDER BY id
Eliminar los duplicados dentro de la tabla:
DELETE FROM hotel_room_reservation_line a USING (
SELECT MIN(id) as ctid, reservation_id
FROM hotel_room_reservation_line
GROUP BY reservation_id HAVING COUNT(*) > 1
)b
WHERE a.reservation_id = b.reservation_id
AND a.id <> b.ctid

Solamente deben copiar y ejecutar el código dentro de pgAdmin o el gestor de base de datos que utilicen. 

Pueden ver el siguiente vídeo en donde realizo la eliminación de los duplicados.


Comentarios

Entradas más populares de este blog

Crear un job en PosgreSQL

En este caso necesito crear un JOB dentro de PostgreSQL que elimine algunos elementos duplicados de la base de datos, para hacerlo es necesario instalar pgAgent y realizar la configuración correctamente. Para realizar la instalación de pgAgent podemos utilizar Stack Builder el cual está en el inicio de Windows, dentro de la carpeta de instalación de PosgreSQL. Debes seleccionar la instancia que se tiene instalada en el equipo.

Reimprimir vale de salida Maxicomercio y Deminus ERP

Las aplicaciones Maxicomercio ERP y Deminus ERP no cuentan con un reporte que permita reimprimir una salida realizada al inventario, para ello he realizado una modificación al reporte de salidas para que se pueda realizar una reimpresión cuando se requiera. Primeramente hay que descargar el reporte que se encuentra haciendo clic aquí .