Procesar matrices de equiv. no otorga equivalencias entre planes

Buen día.

Estamos intentando procesar matrices de equivalencias desde la operación “PROCESAR MATRICES DE EQUIVALENCIA” pero no está otorgando las equivalencias esperadas. Si vamos individualmente a través de la operación “Otorgar equivalencia” para un caso que debería aplicar y seleccionamos la matriz, levanta las actividades correctamente.
Las matrices están configuradas como automáticas y el parámetro de otorgar equiv_automatica_generar se encuentra configurado con el valor “Se otorgan equivalencias en forma automática”.
Puede estar faltando algo más?
Adjunto capturas.

Saludos!


capturas.zip (431 KB)

Hola Ramiro!

Gracias por levantar el foro con las capturas.

Vamos a hacer unas pruebas para replicar el caso.

Por lo que vemos en las capturas la matriz está hecha para tomar como origen todas las versiones del plan 1997, y como destino la versión 3 del plan 2015 y por lo que se ve el alumno no pasó directamente del plan 1997 a la versión 3 del 2015, sino que primero pasó a la versión 1, dsp a la versión 2 y dsp a la versión 3.
La matriz debería de aplicarse correctamente, pero es posible que sea esta situación lo que haga que no se esté aplicando. Vamos a replicar el caso y les comentamos lo que encontremos.

La versión es 3.19.1?

Saludos!

2

Hola Martín!

Cuando vi los cambios de versión pensé lo mismo, que al no haber un cambio directo del 1997 al plan versión del alumno no lo esté tomando. Correcto, la versión es la 3.19.1.

Saludos!

Hola Ramiro!

Ahí estuvimos haciendo pruebas y analizando la operación, y la razón por la que no se están aplicando las matrices es efectivamente la descrita: como el alumno no pasó directamente del plan origen a la versión del plan destino de la matriz, la operación no está recuperando ese cambio como para aplicar la matriz.
Vamos a analizar en profundidad el caso, estaría bueno poder mejorarlo para que pueda contemplar también estos casos, pero tenemos que ver de qué manera se puede lograr sin que el procesamiento se vuelva extremadamente pesado. Vamos a analizarlo y les comentamos por acá lo que se decida.

Mientras tanto, la única forma de procesar estas matrices sería haciéndolo alumno por alumno a través de la operación de Otorgar Equivalencias.

Saludos!

8

Ramiro, revisé el código y debería aplicar todas las matrices definidas como “cambio de version de plan” que esten definidas en la version del plan actual del alumno. Si el plan tiene 3 versiones: v1, v2 y v3.
El alumno ingreso en v1, se cambio a v2 y luego se cambió a v3.
Actualmente esta en la v3. Si se aplica matrices por cambio de version de plan que es el caso que estas viendo, debería aplicar todas las matrices que esten definidas en la v3 (destino) y con cualquier version origen del mismo plan

Si existen estas matrices:
Matriz - Origen - Destino
M1 - v1 - v2
M2 - v1 - v3
M3 - v2 - v3
M4 - - v2
M5 - - v3

El alumno que este en v3 y tuvo un cambio de version de plan (ya sea que paso de v1 a v2 y luego a v3 o paso de v1 a v3), debería aplicarse las matrices definidas en v3: M2, M3 y M5.

Por favor busca ese alumno y fijate que devuelve estas consultas:

SELECT		sga_alumnos.alumno,
			sga_alumnos.propuesta as propuesta_origen,
			sga_planes_versiones.plan as plan_origen
FROM		sga_alumnos 
JOIN sga_planes_versiones ON sga_alumnos.plan_version = sga_planes_versiones.plan_version
WHERE		sga_alumnos.calidad ='A' AND
			sga_alumnos.ubcacion IN (<ID UBICACIONES SELECCIONADAS> AND
			sga_alumnos.plan_version IN (<ID de Versiones de plan seleccionadas>) AND
			-- Tuvo un cambio de version de plan de estudios.
			EXISTS (SELECT	1
					FROM	sga_alumnos_hist_planes
					WHERE	sga_alumnos_hist_planes.alumno = sga_alumnos.alumno AND
							sga_alumnos_hist_planes.plan_version = sga_alumnos.plan_version AND
							sga_alumnos_hist_planes.motivo_plan = 3)
-- AND sga_alumnos.alumno = 	

Con los valores de la consulta anterior, fijate esta otra y si devuelve las matrices de equivalencias con destino la version del plan en el que se encuentra el alumno hoy (supongamos la v3) y con cualquier version origen del mismo plan (v1, v2, o sin version origen-NULL)

      SELECT m.matriz -- , pPropuestaOrigen, pPlanOrigen, pPlanVersionOrigen 
         FROM sga_equiv_matrices as m
        WHERE m.plan_version_destino  = <PLAN VERSION DESTINO - EN LA QUE ESTA ACTUALMENTE EL ALUMNO>
          AND m.aplicacion_automatica = 'S' 
          AND m.activo           = 'S' 
          AND m.alcance          = 'Version'
          AND m.propuesta_origen = <propuesta_origen de la query anterior>
          AND m.plan_origen      = <plan_origen de la query anterior. Que deberia ser el mismo plan actual del alumno>
          AND (NULL IS NULL OR m.plan_version_origen IS NULL OR m.plan_version_origen = NULL);


Podes poner un debug en el metodo otorgar_equivalencias del archivo act_equivalencias_nucleo.php y ver que querys se ejecutan, es decir esta sql como se construye:

$sql = "	SELECT	*
					FROM	f_equiv_otorgar_equivalencias('$accion', $alumno, $propuesta_origen, $plan_origen, $plan_version_origen, $actividad)
		";

Si podes dejar un registro de lo que contiene $sql cada vez que se llama a este metodo y busquemos ese alumno para ver con que parametros se ejecuta esa función.

3