Problema para inscribir a Estudiante a propuesta

Hola buen dia, les escribo porque estamos teniendo un inconveniente al inscribir al estudiante en una propuesta. Figura como que el requisito del aspirante (15760) ya esta registrado en la base y efectivamente es asi, lo tiene asignado otra estudiante (dejo adjunto las imagenes). Pienso que si modifico manualmente ese campo y cambio 15760 por un numero consecutivo que este disponible en la tabla sga_requisitos_aspirante va a funcionar pero se que no es lo adecuado. El sistema por si mismo deberia buscar un requisito_aspirante que este libre y asignarselo a la persona que se esta inscribiendo. como se podria arreglar esto, habria que reparar la tabla?

Aguardo comentarios.
Gracias.
Saludos.
Rodrigo


ErrorRequisitoAspirante.jpg

ErrorRequisitoAspirante.png

RequisitoAsignadoAotroEstudiante.jpg

RequisitoAsignadoAotroEstudiante.png

Perdon, me corrijo… si hago la siguiente consulta:

select * from negocio.sga_requisitos_aspirante
where propuesta_aspira=15760 and requisito=1001

no me devuelve nada. Siguiendo el siguiente foro: https://foro.comunidad.siu.edu.ar/index.php?topic=18322.0 ,al ejecutar la query que sirve para ver si hay duplicidad en los requisitos no me retorna nada tampoco.

voy a seguir averiguando.
Saludos.
Rodrigo

Hola Rodrigo,

Adjuntanos los logs al momento del error (archivo instalacion/i__desarrollo/p__guarani/logs/sistema.log).

No te devuelve nada porque falla dentro de la transacción y finalmente no guarda en la tabla sga_requisitos_aspirante, quizás esta queriendo hacer dos INSERTS iguales dentro de la misma transacción.

¿la persona tiene algún requisito repetido dentro de la tabla sga_requisitos_digitales?

saludos.
2

Hola Leonel, te paso adjunto los logs. Sabes que revisandolo vi que la transaccion esta haciendo eso que me decis, esta intentando agregar 2 inserts en la tabla sga_requisitos_aspirante.
Por otro lado,el estudiante tiene repetido(duplicado) el requisito en la tabla sga_requisitos_digitales.(dejo adjunto la imagen).

Gracias.
Saludos.
Rodrigo


error insc a prop.txt (160 KB)

duplicidad_requisitos-sga_requisitos_digitales.PNG

duplicidad_requisitos-sga_requisitos_digitales.PNG_thumb.png

Hola Rodrigo,

Si, es extraño que tenga los requisitos repetidos en sga_requisitos_digitales, cuando subís uno nuevo debería pisar al anterior y no quedar dos inserts.

Te voy a pedir que revises la tabla de auditoria:


SELECT * FROM negocio_auditoria.logs_sga_requisitos_digitales
WHERE persona = 6287 AND requisito = 1001;

También veo que tenes repetidos los requisitos 1019 y 1020.

Otra forma mas visual de ver los logs de auditoria es a través del Toba Usuarios menú Auditoría => Log de Datos, te dejo captura. Hace click en la columna Nro. Acceso para ver desde donde se hicieron los cambios.

saludos.
2


Screenshot from 2022-04-01 10-18-11.png

Screenshot from 2022-04-01 10-18-11.png

Hola Leonel, la tabla de auditoria la teniamos deshabilitada. Recien la acabo de activar de acuerdo a la documentacion. Acabamos de hacer la prueba nuevamente de la inscripcion a propuesta para ver si el error queda grabado pero no. Ambas tablas (logs.sga_requisitos_digitales y logs.sga_requisitos_aspirante) estan vacias.

Voy a seguir revisando,
Saludos.
Rodrigo

El error lo da por el requisito 1001 que lo intenta registrar dos veces en la tabla sga_requisitos_aspirante para el dato “propuesta_aspira = 15768”

Pero no lo vas a encontrar en la base porque finalmente la inscripción no quedó registrada al dar error el insert de los requisitos de ingreso.

registro: 1 - INSERT INTO sga_requisitos_aspirante ( parametros, propuesta_aspira, requisito, fecha_prorroga, documento_prorroga, exceptuado, fecha_excepcion, documento_excepcion, motivo_excepcion, observaciones, origen, restrictivo ) VALUES (DEFAULT, '15768', '1001', DEFAULT, DEFAULT, 'N', DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, 'S'); [DEBUG][toba] AP_TABLA: [sga_requisitos_aspirante] registro: 2 - INSERT INTO sga_requisitos_aspirante ( parametros, propuesta_aspira, requisito, fecha_prorroga, documento_prorroga, exceptuado, fecha_excepcion, documento_excepcion, motivo_excepcion, observaciones, origen, restrictivo ) VALUES (DEFAULT, '15768', '1001', DEFAULT, DEFAULT, 'N', DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, 'S');

Por favor, corre esta query y envianos el resultado:

SELECT        DISTINCT
                                                sga_requisitos_ingreso_aplanado.requisito_propuesta,
                                                sga_requisitos_ingreso.requisito,
                                                sga_requisitos_ingreso.restrictivo,
                                                sga_requisitos_ingreso.parametros,
                                                sga_requisitos.nombre as nombre_req,
                                                sga_requisitos.regla,
                                                sga_requisitos.requisito_tipo,
                                                sga_requisitos_tipos.nombre as tipo_req,
                                                sga_requisitos.tipo_documento_digital,
                                                sga_requisitos_presentados.requisito_presentado,
                                                sga_requisitos_presentados.fecha_presentacion,
                                                sga_requisitos_presentados.fecha_vencimiento,
                                                sga_requisitos_presentados.fecha_alta,
                                                CASE
                                                        WHEN (sga_requisitos_presentados.fecha_presentacion IS NULL OR sga_requisitos_presentados.fecha_vencimiento < CURRENT_DATE) THEN 0
                                                ELSE 1
                                        END as cumplido,
                                                COALESCE(sga_requisitos_ingreso_excep.fecha_tope,sga_periodos_inscripcion_propuesta.fecha_cierre_requisitos) as fecha_tope,
                                                sga_requisitos_digitales.requisito_digital,
                                                sga_requisitos_digitales.id_documento

                                FROM    sga_requisitos_ingreso_aplanado
                                JOIN    sga_requisitos_ingreso ON sga_requisitos_ingreso.requisito_propuesta = sga_requisitos_ingreso_aplanado.requisito_propuesta
                                JOIN    sga_requisitos ON sga_requisitos.requisito = sga_requisitos_ingreso.requisito
                                JOIN    sga_requisitos_tipos ON sga_requisitos_tipos.requisito_tipo = sga_requisitos.requisito_tipo
                                JOIN    sga_periodos_inscripcion_propuesta ON true
                                LEFT JOIN sga_requisitos_presentados ON sga_requisitos_presentados.requisito_presentado =
                                        (SELECT rp.requisito_presentado
                           FROM sga_requisitos_presentados as rp
                                          WHERE rp.persona = '6287'
                                                    AND rp.requisito = sga_requisitos_ingreso.requisito
                                       ORDER BY rp.fecha_presentacion DESC, rp.requisito_presentado DESC
                                       LIMIT 1)
                                LEFT JOIN sga_requisitos_ingreso_excep ON       sga_requisitos_ingreso.requisito = sga_requisitos_ingreso_excep.requisito AND
                                                                                                                        sga_requisitos_ingreso_excep.periodo_inscripcion = '31'
                                LEFT JOIN sga_requisitos_digitales ON   sga_requisitos_ingreso.requisito = sga_requisitos_digitales.requisito AND
                                                                                                                sga_requisitos_digitales.persona = '6287'
                                WHERE sga_requisitos_ingreso_aplanado.plan_version = '18'
                                  AND sga_periodos_inscripcion_propuesta.periodo_inscripcion = '31'

                                ORDER BY sga_requisitos_ingreso.requisito

Tambien fijate si esta query devuelve registros:

SELECT r.requisito, r.nombre as requisito_nombre, p.propuesta, p.propuesta_nombre, p.plan, p.plan_version
  FROM vw_planes as p 
  JOIN sga_requisitos_ingreso_aplanado as ria ON ria.plan_version = p.plan_version
  JOIN sga_requisitos_ingreso as ri ON ri.requisito_propuesta = ria.requisito_propuesta 
  JOIN sga_requisitos as r ON r.requisito = ri.requisito
GROUP BY r.requisito, r.nombre, p.propuesta, p.propuesta_nombre, p.plan, p.plan_version
HAVING COUNT(distinct ri.restrictivo) > 1 
ORDER BY r.requisito, p.propuesta

3

Hola Rodrigo, agrego a lo de Ale:

¿en que versión están?
Para Guaraní 3.20.1 se hicieron mejoras sobre la operación Administrar Requisitos de una Persona (ticket #34301).

Quise intentar reproducir el caso subiendo varias veces los requisitos digitales, aceptado algunos y rechazando otros, pero no logre que me duplique los mismos en la tabla sga_requisitos_digitales. Si te ocurre con solo esa persona te recomendaría que borres registros en la tabla sga_requisitos_digitales, quédate con los últimos insertados y los demás eliminalos (guárdate el id_documento por las dudas). También probé preinscribiendo desde Autogestión, pero no me duplica los registros.

DELETE FROM sga_requisitos_digitales WHERE requisito_digital IN (15685,15686,15687);

saludos.
4

Hola, gracias por la ayuda… les comento, ejecute la primer query que paso Alejandro y me devuelve el listado que dejo adjunto. Se ve claramente la repeticion de los requisitos 1001, 1019 y 1020. la 2da query no me devolvio nada. Estamos usando la version 3.19.1 de Guarani. Voy a probar eso que me decis Leonardo, para ver si soluciona el inconveniente y les aviso.

Gracias.
Saludos.
Rodrigo


resultados_1erQuery.rar (8.91 KB)

Hola Rodrigo, el problema es que por esos requisitos que se duplican es porque tienen registrado mas de una vez el requisito digital correspondiente.
No logramos reproducir ese caso.
Si corres la siguiente consulta no te da los requisitos duplicados, no?


SELECT        DISTINCT
                                                sga_requisitos_ingreso_aplanado.requisito_propuesta,
                                                sga_requisitos_ingreso.requisito,
                                                sga_requisitos_ingreso.restrictivo,
                                                sga_requisitos_ingreso.parametros,
                                                sga_requisitos.nombre as nombre_req,
                                                sga_requisitos.regla,
                                                sga_requisitos.requisito_tipo,
                                                sga_requisitos_tipos.nombre as tipo_req,
                                                sga_requisitos.tipo_documento_digital,
                                                sga_requisitos_presentados.requisito_presentado,
                                                sga_requisitos_presentados.fecha_presentacion,
                                                sga_requisitos_presentados.fecha_vencimiento,
                                                sga_requisitos_presentados.fecha_alta,
                                                CASE
                                                        WHEN (sga_requisitos_presentados.fecha_presentacion IS NULL OR sga_requisitos_presentados.fecha_vencimiento < CURRENT_DATE) THEN 0
                                                ELSE 1
                                        END as cumplido,
                                                COALESCE(sga_requisitos_ingreso_excep.fecha_tope,sga_periodos_inscripcion_propuesta.fecha_cierre_requisitos) as fecha_tope,
                                                sga_requisitos_digitales.requisito_digital,
                                                sga_requisitos_digitales.id_documento

                                FROM    sga_requisitos_ingreso_aplanado
                                JOIN    sga_requisitos_ingreso ON sga_requisitos_ingreso.requisito_propuesta = sga_requisitos_ingreso_aplanado.requisito_propuesta
                                JOIN    sga_requisitos ON sga_requisitos.requisito = sga_requisitos_ingreso.requisito
                                JOIN    sga_requisitos_tipos ON sga_requisitos_tipos.requisito_tipo = sga_requisitos.requisito_tipo
                                JOIN    sga_periodos_inscripcion_propuesta ON true
                                LEFT JOIN sga_requisitos_presentados ON sga_requisitos_presentados.requisito_presentado =
                                        (SELECT rp.requisito_presentado
                           FROM sga_requisitos_presentados as rp
                                          WHERE rp.persona = '6287'
                                                    AND rp.requisito = sga_requisitos_ingreso.requisito
                                       ORDER BY rp.fecha_presentacion DESC, rp.requisito_presentado DESC
                                       LIMIT 1)
                                LEFT JOIN sga_requisitos_ingreso_excep ON       sga_requisitos_ingreso.requisito = sga_requisitos_ingreso_excep.requisito AND
                                                                                                                        sga_requisitos_ingreso_excep.periodo_inscripcion = '31'
                                LEFT JOIN sga_requisitos_digitales ON	sga_requisitos_digitales.requisito_digital = (SELECT MAX(rd_max.requisito_digital) 
																						FROM sga_requisitos_digitales as rd_max
																						WHERE rd_max.persona = 6287
																					 AND rd_max.requisito = sga_requisitos_ingreso.requisito = sga_requisitos_digitales.requisito
																										)
                                WHERE sga_requisitos_ingreso_aplanado.plan_version = '18'
                                  AND sga_periodos_inscripcion_propuesta.periodo_inscripcion = '31'

                                ORDER BY sga_requisitos_ingreso.requisito

Tambien enviame el resultado de la 2da query de la Respuesta #6

4

Hola Rodrigo, agrego a lo de Ale:

¿como tenes configurados los requisitos en la operación » Requisitos » Requisitos de Ingreso » Definir Requisitos de Ingreso?

En la operación » Requisitos » Requisitos de Ingreso » Reporte de Requisitos de Ingreso por Propuesta ¿como te figuran los requisitos que se repiten?

¿esto te pasa con solo una persona o con varias?

La idea nuestra es poder reproducir el caso.

saludos.
4

Hola buen dia, queria avisarles que ya pudimos solucionar el inconveniente. Paso en limpio… la 2da query que propuso Ale:

SELECT r.requisito, r.nombre as requisito_nombre, p.propuesta, p.propuesta_nombre, p.plan, p.plan_version
FROM vw_planes as p
JOIN sga_requisitos_ingreso_aplanado as ria ON ria.plan_version = p.plan_version
JOIN sga_requisitos_ingreso as ri ON ri.requisito_propuesta = ria.requisito_propuesta
JOIN sga_requisitos as r ON r.requisito = ri.requisito
GROUP BY r.requisito, r.nombre, p.propuesta, p.propuesta_nombre, p.plan, p.plan_version
HAVING COUNT(distinct ri.restrictivo) > 1
ORDER BY r.requisito, p.propuesta

no me devolvio nada. Con respecto a la ultima query, me muestra los requisitos y los mismos no estan duplicados (dejo el resultado adjunto).

Desde el area funcional probaron realizar las operaciones planteadas por Leonel y no vieron los requisitos duplicados, por lo cual esos registros duplicados se ven solo desde la base. Por alguna razon que desconocemos se realizo mal la operacion con este alumno ya que con los demas estudiantes no tuvimos problemas al momento de inscribirlos a la propuesta.

SOLUCION: Probe la solucion planteada por Leonel. Elimine los requisitos que estaban duplicados (req 1019 y 1020), me quede con los ultimos inserts. Para el requisito 1001 lo borre completamente de la tabla sga_requisitos_digitales pero tuve que sacarlo primero de la tabla sga_requisitos_presentados ya que estaban vinculadas. A partir de eso ya se pudo agregar el estudiante en la propuesta.

Muchas gracias a ambos.
Saludos.
Rodrigo


3er Query.rar (8.53 KB)