Error al cerrar un acta

Hola buenas tardes, tenemos un inconveniente al intentar cerrar un acta de comisión de regulares (adjunto captura del error) , se revisaron los logs del sistema y nos dice puntualmente :

" Unique violation: 7 ERROR: duplicate key value violates unique constraint "pk_sga_actas_folios"\nDETAIL: Key (id_y (id_acta, folio)=(49522, 1) already exists.\nCONTEXT: SQL statement "INSERT INTO sga_actas_folios (id_acta, folio) VALUES (pActa, i)"\nPL/pgSQL function f_generar_folio_fisico_acta(integer) line 21 at SQL statement"

Se busca el id que arroja el log por base, y se encuentra 2 veces con la siguiente consulta:

SELECT sga_actas_folios.id_acta, sga_actas_folios.folio, sga_actas_folios.libro_tomo FROM sga_actas_folios WHERE sga_actas_folios.id_acta = 49522 ORDER BY sga_actas_folios.folio

La única distinción entre ambas es que el folio en una es 1, y en otra es 2…
Me podrían ayudar a distinguir cual de las 2 actas debería borrar y sobre que tablas debería realizar el proceso ademas de sga_actas_folios ?
Como puedo solucionar el inconveniente?


popup_guarani.png

popup_guarani.png

Hola Mariana,

Pareciera que intenta asignar folio físico a un acta que ya tiene dicha asignación. Cómo tienen configurado el parámetro ‘cur_forma_asignacion_folio_fisico_regul’? Siempre tuvo el mismo valor o fue cambiado?

Saludos, Florencia.

Hola Flor, gracias por tu respuesta. Adjunto captura del parámetro que me consultas


parametro_guarani.png

parametro_guarani.png

Mariana,

No se cómo llegaron a esta situación pero para resolverla deberían borrar todos los folios de ese acta para que durante el proceso de cierre se puedan generar:

DELETE FROM sga_actas_folios WHERE id_acta = 49522;

Saludos, Florencia.

Genial , muchas gracias … Ya lo estamos probando en test!
Que tengas buen día

Se complico el inconveniente, lamentablemente no se va a poder solucionar con un simple delete, me informan los usuarios que el caso en el que trabajamos era sólo una de todas las actas que están presentando este inconveniente…
Para dar contexto a cómo se origino el problema me dicen que el parámetro que verificamos como estaba configurado ‘cur_forma_asignacion_folio_fisico_regul’ tuvo que ser modificado por el siguiente inconveniente y cito:

"En un primer momento estaba puesto que se asigne en la impresión del acta, pero se tuvo que cambiar porque de esa manera, las actas de podían cerrar desde autogestión pero no desde gestión"
O sea que para realizar la operación en autogestión lo ponían de una manera, y para poder operar en gestión de otra.. de allí me imagino que viene la duplicidad en las actas y folios.. Recibida esta noticia, pregunto...¿Será posible que tuviesen algún script que corrigiera los datos? Desde ya muchas gracias

Si, seria borrar todos esos registros de actas abiertas.

DELETE FROM sga_actas_folios WHERE id_acta IN (SELECT id_acta FROM sga_actas WHERE origen = 'R' AND estado = 'A');

En todo caso pueden primero verificar si son las actas de cursadas con este problema:

SELECT * FROM sga_actas as a JOIN vw_comisiones as c ON c.comision = a.comision WHERE a.origen = 'R' AND a.estado = 'A';