Nuevos controles de registros repetidos en próxima versión 3.1.0 (RESPONDIDO)

Hola comunidad!,

Les comentamos que con el fin de ir mejorando la calidad de los datos y evitar que a futuro se den situaciones de registros duplicados tanto en los renglones del informe técnico, como los documentos de los proveedores y en los catálogos de bienes patrimoniales, en la próxima versión 3.1.0 que publicaremos en las próximas semanas, se agregarán 3 nuevos controles en el proceso de instalación para que -en caso de que alguna universidad llegue a tener registros duplicados-, se pueda detectar y corregir tempranamente.

Los controles incorporados son los siguientes:

1- Renglones duplicados en los informes técnicos

La consulta SQL que pueden utilizar para chequear actualmente es la siguiente:


SELECT 
    it.id_informe_tecnico
    ,CASE WHEN it.ejercicio isnull THEN 'S/N' ELSE 'APP:' || it.numero || '/' || it.ejercicio END as tramite
FROM
    diaguita.scp_informe_tecnico_detalles itd,
    diaguita.scp_informes_tecnicos it
WHERE 
    itd.id_informe_tecnico_detalle IN (SELECT MAX(id_informe_tecnico_detalle) FROM diaguita.scp_informe_tecnico_detalles GROUP BY  id_renglon_oferente  HAVING COUNT(id_renglon_oferente) > 1)
AND
    itd.id_informe_tecnico=it.id_informe_tecnico
GROUP BY it.id_informe_tecnico;

En caso de detectarse renglones duplicados en las BD de su universidad, les recomendamos que creen un GDS con el fin de que les orientemos en la corrección de los datos duplicados, de modo que para cuando se publique la versión 3.1.0 -si ocurriese- ya tengan corregido esta situación.

2- Documentos de proveedores repetidos (por ej CUITS duplicados):

La consulta SQL que pueden utilizar para chequear actualmente es la siguiente:


SELECT 
                        numero
                    FROM 
                        diaguita.anx_personas_x_documentos 
                        WHERE 
                            persona IN (SELECT persona from diaguita.anx_personas) 
                            AND tipo_de_documento_de_identidad ='CUIT' 
                            AND  left(numero, 2) NOT IN ('50','51','55')
                    GROUP BY numero HAVING count(*) > 1;


Solución

Para instalaciones que cuenten con sincronización con Arai-Proveedores

Se debe ejecutar el script de remapeo y eliminación de proveedores duplicados para que les deje normalizada la base de datos de proveedores de diaguita.

Script para remapeo
https://documentacion.siu.edu.ar/wiki/images/f/f1/Script_arreglo_de_proveedores.zip

Para instalaciones que no tengan sincronización con Arai-Proveedores

En este caso nos deben cargar un gds para solucionarlo y ver el caso en detalle.

3- catálogos repetidos

La consulta SQL que pueden utilizar para chequear actualmente es la siguiente:



SELECT codigo_completo FROM diaguita.scp_catalogo_bienes_patrimoniales 
  GROUP BY codigo_completo HAVING count(codigo_completo) > 1;



solución
La solución consiste en cambiar el dígito que corresponda con un update similar a este por ejemplo:

UPDATE scp_catalogo_bienes_patrimoniales SET codigo_completo = ‘4.6.1.00000’ WHERE codigo_completo = ‘4.6.0.00000’ AND id_catalogo_bien_patrimonial = 10007373 ;

Nota: Se recomienda consultar el catálogo de bienes y servicios brindado por la ONC, el mismo pueden descargarlo de:

https://infra.datos.gob.ar/catalog/modernizacion/dataset/2/distribution/2.13/download/sibys.csv

Les mantenemos al tanto de cualquier otra novedad.

Saludos!
Equipo SIU-Diaguita

Buenos días.
Para el punto “3- catálogos repetidos”, nosotros tenemos repetido “4.3.5.08831”;“EQ. P/ ENTRENAMIENTO MÉDICO” , mismo código, misma descripcion. Pero uno se encuentra activo y el otro inactivo (“AC”,“IN”), el activo tiene código padre.
Que deberíamos hacer en este caso?
Desde ya muchas gracias.
Saludos.

Hola Martin,

En ese caso que tienen dos códigos de catálogos repetidos, el control se realiza por el código de catálogo. Entonces pueden:

  • 1- Renombrar el catálogo que está inactivo a otro código (no recomendado)
  • 2- Eliminar el catálogo repetido inactivo. Pero en este caso primero deben verificar que este código de catálogo no se encuentre referenciado en ningún lugar del sistema, esto pueden chequearlo a través del siguiente procedimiento:

Para cada caso de código repetido, recuperar los catálogos

Reemplazar CODIGO-REPETIDO por el código de catálogo que se visualiza en la query de duplicados SELECT * FROM diaguita.scp_catalogo_bienes_patrimoniales WHERE codigo_completo = CODIGO-REPETIDO;
--Reemplazar ID_CATALOGO_ELIMINAR por el id del catálogo duplicado a chequear

select count() from diaguita.scp_solicitud_alta_bien_patrimonial_detalles where id_catalogo_bien_patrimonial = ID_CATALOGO_ELIMINAR;
select count(
) from diaguita.scp_alta_bien_patrimonial_detalles where id_catalogo_bien_patrimonial = ID_CATALOGO_ELIMINAR;
select count() from diaguita.scp_bienes_patrimoniales where id_catalogo_bien_patrimonial = ID_CATALOGO_ELIMINAR;
select count(
) from diaguita.scp_amortizacion_detalles where id_catalogo_bien_patrimonial = ID_CATALOGO_ELIMINAR;

Si algunas de las consultas anteriores devuelve más de 1, es decir que tiene alguna referencia desde la tabla consultada, se debe eliminar la referencia al catálogo a eliminar, por el catálogo que va a quedar, esto pueden realizarlo por medio de los siguientes sql:
NOTA: sólo utilizar el update para la tabla donde el punto anterior haya devuelto un valor mayor a 0.

UPDATE diaguita.scp_solicitud_alta_bien_patrimonial_detalles SET id_catalogo_bien_patrimonial=ID_CATALOGO_QUEDA WHERE id_catalogo_bien_patrimonial=ID_CATALOGO_ELIMINAR; UPDATE diaguita.scp_alta_bien_patrimonial_detalles SET id_catalogo_bien_patrimonial=ID_CATALOGO_QUEDA WHERE id_catalogo_bien_patrimonial=ID_CATALOGO_ELIMINAR; UPDATE diaguita.scp_bienes_patrimoniales SET id_catalogo_bien_patrimonial=ID_CATALOGO_QUEDA WHERE id_catalogo_bien_patrimonial=ID_CATALOGO_ELIMINAR; UPDATE diaguita.scp_amortizacion_detalles SET id_catalogo_bien_patrimonial=ID_CATALOGO_QUEDA WHERE id_catalogo_bien_patrimonial=ID_CATALOGO_ELIMINAR;

Finalmente, se puede proceder a eliminar el registro del catálogo duplicado:

DELETE FROM diaguita.scp_catalogo_bienes_servicios_bienes_patrimoniales WHERE id_catalogo_bien_patrimonial = ID_CATALOGO_ELIMINAR; DELETE FROM diaguita.scp_catalogo_bienes_patrimoniales WHERE id_catalogo_bien_patrimonial = ID_CATALOGO_ELIMINAR;

Les recomendamos que este procedimiento primero lo realicen en un servidor de pruebas y verifiquen que los resultados sean los esperados antes de aplicarlo en producción.

Saludos,
Fernando.

Hola Fernando,
Excelente, Muchas gracias por la pronta respuesta.
Saludos.