Les comento que tenemos varios casos de estudiantes que se quieren preinscribir desde el módulo de autogestión a la propuesta formativa de Medicina 2024, la cual no aparece en el combo de selección de la propuesta a pesar de que el periodo está habilitado.
Estos estudiantes ya tienen inscripciones a la misma propuesta formativa, pero las mismas se encuentran en Estado de Inscripción Rechazado.
A raíz de estos casos, hemos analizado las consultas que se realizan para traer las propuestas disponibles en la función get_propuestas_disponibles_preinscripcion de la clase preinscripcion.php, donde se invoca a la función get_propuestas_a_excluir(). En esta última es donde observamos que se excluye la propuesta mencionada anteriormente.
Entendemos que además de consultar si sga_preinscripcion_propuesta.estado = I, hay que verificar si el estado de la inscripción en la tabla sga_propuestas_aspira se encuentra en Pendiente o Aceptada para determinar correctamente si se debe excluir o no.
¿Podrían indicarnos si la deducción es correcta, y de ser así, guiarnos para poder resolver el error?
Desde ya muchas gracias.
Saludos.
PD: Recientemente hemos actualizado a la versión 3.21.1.
El método get_propuestas_a_excluir fue cambiado por Ticket #45930 (Preinscripcion de estudiantes rechazados) en version 3.21.2, Por favor actualizar a esta version.
Vi que la query que mencionas es diferente a la que existe actualmente, ya que fue resuelto el problema que informas.
WHERE
sga_preinscripcion_propuesta.persona = $persona
AND (--1. Esta inscripto en la propuesta. La preinscripción fue procesada desde Gestion.
( sga_preinscripcion_propuesta.estado = $estado_pre_inscripto
-- Que tenga la inscripcion aceptada o pendiente en la propuesta (que no se haya rechazado)
AND EXISTS (SELECT 1
FROM sga_propuestas_aspira
JOIN sga_situacion_aspirante ON sga_propuestas_aspira.situacion_asp = sga_situacion_aspirante.situacion_asp
WHERE sga_propuestas_aspira.persona = sga_preinscripcion_propuesta.persona
AND sga_propuestas_aspira.propuesta = sga_preinscripcion_propuesta.propuesta
AND sga_situacion_aspirante.resultado_asp IN ($inscripcion_pendiente, $inscripcion_aceptada)
)
) OR
(--2. La preinscripción está vigente para ser procesada desde Gestion
sga_preinscripcion_propuesta.estado = $estado_pre_pendiente AND
sga_preinscripcion_propuesta.fecha_fin_vigencia >= CURRENT_DATE
)
)
UNION
Estamos 3.21.0
Hoy empezamos la preinscripción 2024, por lo que estos días está complicado para actualizar a 3.21.2
Me encontré con este mismo problema. Actualicé la parte del SQL que ponés acá y aparte tuve que agregar (que vi en el colab) estas dos variable que no estaban definidas en 3.21.0
Sin embargo me quedan las propuestas en blanco. Pude notar que insc_pendiente no se usaba en 3.20.0 por lo que me queda la duda si lo que falla es esta línea kernel::db()->quote(\preinscripcion::insc_pendiente);
Las constantes estaban todas definidas en 3.21.0 … No pasaba por ahí …
Así que copié el get_propuestas_a_excluir() completo desde 3.21.2 y anduvo perfecto …
La duda mayor que me queda siempre que hago un cambio …
El cambio lo hice directo en producción.
Hay que versionar ? O correr algún comando del svn ? O cuando instale 3.21.2 todo esto ya quedará pisado y listo ?
Deberias ubicarlo en la carpeta de personalizaciones /pers o /pers_gestion, segun corresponda. Si directamente cambiaste el método, este será actualizado cuadno migren a 3.21.2. Tal vez de conflicto al intentar actualizar y el cambio no se aplique pisando el codigo actual. Recordá volver atras ese cambio antes de migrar de versión.