Exception - Propuesta inicial por defecto

Buen día, nos encontramos en proceso de migrar una nueva facultad. Actualmente, contamos con 5 facultades en producción y aún nos quedan dos más.
Al momento de migrar esta nueva facultad existen varios alumnos que tienen asignadas en la tabla “mdp_configuracion” en la columna “propuesta_inicial_autogestion” propuestas que se encuentran en estado rechazado. Como consecuencia de esto, al intentar iniciar sesión en autogestión obtienen una pantalla en blanco. El log de autogestión devuelve esta exepcion :

clase: Exception
mensaje: PERSONA: Error interno. La carrera activa: 130 no esta entre las carreras del alumno
traza: [TRAZA]

Cabe destacar que nos encontramos en la versión 3.20.2 y estamos usando la versión del migrador para dicha versión. Todas las facultades anteriores migraron con la versión 3.19.1 y no tuvimos problemas de este tipo.
Otro detalle a tener en cuenta es que si realizo la migración contra una base de datos vacía, no tenemos problemas, el problema se da cuando la fusionamos con producción.

Para verificar esto corrimos la siguiente consulta :


SELECT *
FROM negocio.mdp_configuracion AS mc
WHERE persona IN
    (SELECT persona
     FROM negocio.sga_propuestas_aspira AS spa
     WHERE situacion_asp NOT IN (1,2)
       AND mc.propuesta_inicial_autogestion = spa.propuesta)
  AND propuesta_inicial_autogestion IS NOT NULL

La cual nos devuelve 2956 registros. Probando algunas personas de manera random, estas también obtienen una pantalla en blanco al iniciar sesión.

Si nos podrían dar una mano por donde buscar este error seria de mucha ayuda.

¡Muchas gracias!

Debes limpiar ese campo de propuesta de ingreso por default, en el caso que el alumno no tenga una inscripción pendiente o aceptada en esa propuesta.
Corre lo siguiente en la base:

SET search_path = negocio;
UPDATE mdp_configuracion
   SET propuesta_inicial_autogestion = NULL
WHERE NOT EXISTS (SELECT 1
     FROM sga_propuestas_aspira AS pa
	  JOIN sga_situacion_aspirante as sa ON sa.situacion_asp = pa.situacion_asp			  
     WHERE pa.persona = mdp_configuracion.persona 
       AND pa.propuesta = mdp_configuracion.propuesta_inicial_autogestion
	   AND sa.resultado_asp IN ('A','P'))
  AND propuesta_inicial_autogestion IS NOT NULL;

En 3.20 se agrega una configuracion en el tipo de propuesta que indica si las propuestas de ese tipo estan visibles o no en el combo de propuestas dle home del alumno, para ello debes correr este update por si quedó algo mal:


SET search_path = negocio;
UPDATE mdp_configuracion
   SET propuesta_inicial_autogestion = NULL
WHERE propuesta_inicial_autogestion NOT IN 
   (SELECT p.propuesta
     FROM sga_propuestas AS p
	  JOIN sga_propuestas_tipos as t ON t.propuesta_tipo = p.propuesta_tipo
       AND t.disponible_en_autogestion = 'S')
  AND propuesta_inicial_autogestion IS NOT NULL;  

Luego de esto volve a verificar esos casos que daban ese mensaje de error.

2

Hola Ale,

Cambiamos el parámetro “muestra solo carreras activas en el combo” a SÍ y nos pasó lo mismo que se comenta en el foro, en versión 3.21.0.
Si corremos tu script todo bien para arreglar los problemas existentes… Pero la pregunta es como arreglarlo a futuro … con los que se cambien de carrera y/o sean rechazados de su propuesta default de autogestión y después vuelven a la universidad a otra propuesta.

¿Tendríamos que correr el script cada vez que recibimos alguna queja? ¿O podría pensarse en una validación desde el sistema en cada cambio de calidad, y si la que pasa a Pasivo es la default , que default se ponga en NULL?

Por otro lado distinto, se me ocurre… ¿qué pasa con los pasivos por Egreso?..¿no pueden ver más esa carrera?

Abrazo !

Si corremos tu script todo bien para arreglar los problemas existentes... Pero la pregunta es como arreglarlo a futuro .. con los que se cambien de carrera y/o sean rechazados de su propuesta default de autogestión y después vuelven a la universidad a otra propuesta. ¿Tendríamos que correr el script cada vez que recibimos alguna queja? ¿O podría pensarse en una validación desde el sistema en cada cambio de calidad, y si la que pasa a Pasivo es la default , que default se ponga en NULL?
Pueden limpiar esa configuración cuando el alumno cambia a calidad Pasivo. Adjunto trigger personalizado que implementa esta funcionalidad.
Por otro lado distinto, se me ocurre... ¿qué pasa con los pasivos por Egreso?...¿no pueden ver más esa carrera?
Si configuran ese parametro, no van a poder acceder mas a esa propueta por autogestion. O pueden personalizar la query que recupera las propuestas del alumno (archivo "persona.php", metodo "carreras"), para que en el caso de pasivo, si lo recupere si el pasivo es por un motivo por egreso. Donde dice:
                     // Solo alumnos con calidad Activo.
			$filtro_calidad_alumno = " AND sga_alumnos.calidad = '".\alumno::calidad_activo."'";

Cambiarlo por:


                        // Solo alumnos con calidad Activo o Pasivos por Egreso.
			$filtro_calidad_alumno = " AND (sga_alumnos.calidad = '".\alumno::calidad_activo."' OR sga_alumnos.calidad = '".\alumno::calidad_pasivo."'  AND EXIST (SELECT 1 FROM sga_alumnos_hist_calidad as ha
                                                                                                             WHERE ha.cambio_calidad = (SELECT MAX(ha2.cambio_calidad) FROM sga_alumnos_hist_calidad as ha2 WHERE ha2.alumno = sga_alumnos.alumno AND ha2.motivo_calidad = 2 ) ) ) ";  -- motivo por egreso


tua_sga_alumnos_PERS.sql (1.55 KB)