Actividades Extracurriculares-Fecha mal en Hist Acad

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

Cambia:
CURRENT_DATE as fecha_orden,



Por:

(SELECT max(coalesce(coalesce(d.fecha_hasta, d.fecha_desde),r2.fecha_cierre))
						       FROM sga_reconocimiento as r2
						       JOIN sga_reconocimiento_act as ra2 ON ra2.nro_tramite = r2.nro_tramite 
							   LEFT JOIN sga_reconocimiento_doc as d ON d.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'
) as fecha_orden,

Y:

     CAST(NULL as varchar(10)) as fecha,

por:

(SELECT to_char(max(coalesce(coalesce(d.fecha_hasta, d.fecha_desde),r2.fecha_cierre)), 'DD/MM/YYYY')
						       FROM sga_reconocimiento as r2
						       JOIN sga_reconocimiento_act as ra2 ON ra2.nro_tramite = r2.nro_tramite 
							   LEFT JOIN sga_reconocimiento_doc as d ON d.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'
) as fecha,

Gracias Alejandro!
Anduvo bien. Esto lo dejo como personalización nuestra o lo van a modificar uds también?

Sera incluido en version 3.21 (Ticket #43563)

Ok, muchas gracias!!
Saludos