Buenos días!
Tenemos un problema con la fecha que se visualiza en la Ficha de la Persona → Historia Académica que corresponde a módulos
de actividades extracurriculares.
Veo que en co_alumnos, la función get_historia_academica,
1- toma la current_date para la fecha de orden de dichos módulos
2- le pone null a la fecha
Entiendo que ésto se debe a que estos módulos están cumplidos con los créditos de actividades que los componen y no tienen fecha de cumplimiento propia. Pero, no se ve correcto mostrar esta current_date ya que no queda claro que se trata de una fecha de orden.
No sé cuál sería la mejor opción, pienso podría ser esa y no visualizarla (para estos casos) o ponerle la mayor fecha de entre las resoluciones que lo componen.
Copio el código que menciono arriba:
UNION
-- Modulos de cumplimiento por Creditos, que estan cumplidos y que fueron reconociendose creditos en forma parcial
-- En general se usan en modulos de actividades extracurriculares.
SELECT
vw_modulos_plan.nombre as actividad_nombre,
sga_propuestas.propuesta,
cast(NULL as integer) AS id_acta,
cast(NULL as integer) AS equivalencia,
cast(NULL as integer) AS equivalencia_tramite,
CURRENT_DATE as fecha_orden,
CAST(NULL as varchar(10)) as fecha,
CAST(NULL as varchar(10)) as nota,
'Aprobado' as resultado_descripcion,
cast('Aprob. por Resolución' as varchar(30)) as tipo,
sga_propuestas.codigo as propuesta_codigo,
sga_planes.codigo as plan_codigo,
sga_planes_versiones.plan_version as plan_version_origen,
sga_propuestas.nombre as propuesta_nombre,
'(' || sga_propuestas.codigo || ') ' || sga_propuestas.nombre_abreviado as propuesta_descripcion,
vw_modulos_plan.elemento as actividad,
vw_modulos_plan.elemento_revision,
cast(NULL as varchar(100)) AS clave_acta_equivalencia,
vw_modulos_plan.nombre as actividad_codigo_y_nombre,
CAST(NULL AS varchar(30)) as acta_o_resolucion,
cast(NULL as varchar(100)) as periodo_o_turno,
cast(NULL as varchar(50)) as instancia,
-- sga_reconocimiento_act.creditos as creditos,
CASE sga_elementos_revision.origen_creditos
WHEN 'M' THEN vw_modulos_plan.creditos
WHEN 'A' THEN
(SELECT SUM(ra2.creditos)
FROM sga_reconocimiento as r2
JOIN sga_reconocimiento_act as ra2 ON ra2.nro_tramite = r2.nro_tramite
WHERE r2.alumno = sga_alumnos.alumno
AND r2.estado = 'C'
AND r2.tipo_reconocimiento = 'AM'
AND ra2.elemento = vw_modulos_plan.elemento
AND ra2.reconocimiento_total = 'N'
AND ra2.estado = 'A'
AND ra2.rectificado = 'N'
)
ELSE cast(NULL as decimal(8,2))
END as creditos, -- Total creditos reconocidos para el modulo.
'No' as op,
false as origen_otra_propuesta,
'A' as origen,
sga_alumnos.alumno,
sga_alumnos.alumno as alumno2,
CASE
WHEN (SELECT COUNT(1) FROM sga_elementos_comp WHERE elemento_padre = sga_elementos_revision.elemento_revision) > 0 THEN 1
ELSE 0
END es_modulo, -- Solo habilito lupa de modulo si el modulo tiene componentes.
sga_alumnos.plan_version,
CAST(NULL as integer) as reconocimiento_act,
cast(null as varchar(60)) as libro_nombre,
cast(null as varchar(60)) as folio_fisico
FROM sga_alumnos
JOIN vw_modulos_plan ON vw_modulos_plan.plan_version = sga_alumnos.plan_version
JOIN sga_elementos_revision ON sga_elementos_revision.elemento_revision = vw_modulos_plan.elemento_revision
JOIN sga_propuestas ON sga_propuestas.propuesta = sga_alumnos.propuesta
JOIN sga_planes_versiones ON sga_planes_versiones.plan_version = sga_alumnos.plan_version
JOIN sga_planes ON sga_planes.plan = sga_planes_versiones.plan
WHERE
-- Modulo que se cumple por creditos.
sga_elementos_revision.regla = 105 -- Obtener n cantidad de créditos
-- AND vw_modulos.entidad_subtipo = 6 -- Area de Actividades Extracurriculares
-- El alumno llegó a la cantidad de creditos requeridos en el módulo, reconocidos en forma parcial.
AND (SELECT SUM(ra2.creditos)
FROM sga_reconocimiento as r2
JOIN sga_reconocimiento_act as ra2 ON ra2.nro_tramite = r2.nro_tramite
WHERE r2.alumno = sga_alumnos.alumno
AND r2.estado = 'C'
AND r2.tipo_reconocimiento = 'AM'
AND ra2.elemento = vw_modulos_plan.elemento
AND ra2.reconocimiento_total = 'N'
AND ra2.estado = 'A'
AND ra2.rectificado = 'N'
) >= sga_elementos_revision.parametros::decimal(8,2)
$where2
";
}
// Agrego el ordenamiento
$sql = $sql . " ORDER BY propuesta_nombre, fecha_orden";
return guarani_db::consultar($sql);
Qué deberíamos hacer?
Saludos,
Natalia