Información requerida en Ficha de la Persona (HA y Créditos Otorgados)

Hola
Estamos haciendo pruebas de migración de G2 a G3.20.0
Contamos con planes compuestos por ciclos, que contienen genéricas, y éstas a su vez actividades específicas.
Dentro de la operación » MATRÍCULA » REPORTES »FICHA DE LA PERSONA, en las pestañas de “Historia Académica” y “Créditos Otorgados”, se pueden ver los créditos otorgados a las actividades / módulos. Pero necesitamos también poder visualizar a qué “genérica” perteneces cada actividad. Ya que para cumplimentar el plan, el alumno necesita una determinada cantidad de créditos por cada genérica, y es requisito funcional de la UA poder visualizar dicha información.
Es posible que lo tengan en consideración para incorporar?
Cómo me aconsejan personalizar ahora para poder verlo?
Gracias!
Saludos

Iris

En el reporte Optativas de la Ficha de la persona ves esto.
Reporte que recupera propuestas del alumno y las actividades genericas con sus optativas.

La query del reporte tiene un campo que indica lo siguiente:
optativa_compartida =
Valores: 0 = No esta compartida o la actividad (pOptativa) NO es una actividad optativa.
1 = Es optativa compartida y el alumno la eligió para la generica por la cual se informa.
2 = Esta compartida y el alumno la eligió para otra generica
-1 = El alumno aun no eligio para gue generica se cumple la optativa

Este dato se recupera desde la funcion f_optativa_es_compartida a la que se le pasa los datos de la optativa y generica por la que se esta informando.

Esta query se encuentra en el archivo co_alumnos.php, en el metodo get_reporte_optativas

Si necesitas mostrar est informacion en otros reportes deberias hacer alguna funcion similar a la f_optativa_es_compartida para que informe la generica para la que se cumple (si esta en una sola generica o mas de una y el alumno eligió la generica) o si esta en mas de una generica y el alumno no eligió que indique que falta elegir la genérica.

Si queres ingresá una solicitud y vemos como podría ser esta función para que devuelva esta información en cada optativa.

2

Gracias Alejandro
Hay alguna manera que en el reporte Optativas de Ficha de la Persona, se puedan ver los créditos efectivamente otorgados al alumno?
Hicimos una adecuación al plan de estudios, para administrar las ALE por medio de optativas. En la migración se da el reconocimiento de las mismas a través de las resoluciones correspondientes. Luego serán administradas a través de actas. Pero necesitamos poder visualizar y contabilizar los puntos otorgados al alumno, no los definidos en la actividad (que son el tope máximo que se puede asignar).
La regla de cumplimiento se que la tengo que personalizar, pero al menos pueden contemplar incorporar el hecho de visualizar los puntos otorgados al alumno?
Muchas gracias!
Saludos.
Iris

Estas actividades ALE, que las registran como optativas, se las reconocen al alumno por resolución y alli le indican los créditos que le reconocen?
Pueden consultar estos creditos de la actividad, con una query como esta:

SELECT 
.....,
(SELECT SUM(ra.creditos) 
FROM sga_reconocimiento as r
JOIN sga_reconocimiento_act as ra on ra.nro_tramite = r.nro_tramite
WHERE r.alumno = <alumno>
       AND ra.elemento = <elemento>
       AND r.estado = 'C' 
       AND ra.estado = 'A' 
       AND ra.rectificado = 'N'
) as total_creditos_reconocidos_optativa

FROM ....
...;

Para version 3.21 las vistas de historia academica se modifican para que en los creditos de actividades aprobadas por resolucion, si se reconocen creditos se visualicen los reconocidos en la resolución, y sino los creditos definidos en la actividad en el plan.

Gracias Alejandro
a qué corresponde? A la optativa o a la genérica?
Cómo sería la consulta para identificar a las mismas?
Gracias!!

Iris

a qué corresponde? A la optativa o a la genérica?
A la optativa. Si es que entendi bien que registran creditos por cada ALE (optativa) que el alumno realiza. ¿O reconocen creditos a la genérica?
Cómo sería la consulta para identificar a las mismas?
Decias de agregarlo en el reporte [b]Optativas [/b]de la Ficha de la persona. Debes buscar la query que se usa en este reporte y agregar alli esta nueva columna que visualizará los créditos obtenidos.

Hola Alejandro
Si, los créditos los registramos por cada ALE (cada optativa).
En realidad queríamos poder visualizar la información de a qué “genérica” perteneces cada actividad “optativa” en la Historia Académica y en los Créditos Otorgados de la Ficha de la Persona.
Ustedes nos indicaron que en el reporte Optativas de la Ficha de la persona podíamos ver esto.

Ahora, con lo que estoy medio perdida, es con la personalización de la regla de cumplimiento. Estaba mirando para tomar de referencia la regla 105 (Obtener n cantidad de créditos), pero me doy cuenta no me sirve mucho… ya que la misma controla por cada genérica si se cumple o no.

Lo que necesitamos es que la regla de cumplimiento aplique al ciclo que contiene las genéricas.
Una genérica por si misma no determina si se cumple o no, hasta puede ocurrir también que no se realice ninguna optativa de una genérica en particular. El alumno sólo necesita sumar una determinada cantidad de créditos generales en todo el ciclo que contiene unas 35 genéricas aprox. con ciertas particularidades.
Es decir, es el ciclo el que determina y sabe, si se cumple o no.

Un ciclo se cumple al tener créditos dentro de 4 genéricas diferentes (cualesquiera). Y cada genérica aporta la suma de créditos que se le otorguen al alumno en cada optativa que realice (con un máximo estipulado por la genérica). El ciclo se cumple con una sumatoria general de X de créditos obtenidos de al menos 4 genéricas.
Podrías orientarme como establecer la regla para que se verifique en los ciclos? O qué puedo mirar de referencia?

Gracias!!
Iris

En realidad queríamos poder visualizar la información de a qué "genérica" perteneces cada actividad "optativa" en la Historia Académica y en los Créditos Otorgados de la Ficha de la Persona.
Respecto a esto, te habia indicado que cargues una solicitud porque desarrollamso una funcion en la base que informa, en el caso de ser una opatitva, la generica para la que se cumple. Agregarias elllamado a esta funcion en la query del reporte de historia academica/regularidades y podrias agregarlo como una columna al reporte. Pero no evalua si la generica esta cumplida o no, solo indica en que generica se encuentra la optativa, y en el caso que este en mas de una devuelve el nombre de la generica si el alumno ya eligió para que generica se cumple o una leyenda que indica que el alumno debe seleccionar la genérica.

Hola Alejandro
Perdón, no había leído la indicación de cargar la solicitud en el GDS.
Quedó subida como solicitud número 59874.
Gracias!
Iris

Hola Alejandro
Estaba mirando PROPUESTAS FORMATIVAS >> PLANES DE ESTUDIOS >> ADMINISTRAR PLANES DE ESTUDIOS
Hay alguna manera que al consultar un ciclo en los Atributos del Módulo en el Plan, se muestren los puntos requeridos en cada genérica que los compone (tal vez en la columna créditos)?

Por otro lado, cual sería la consulta para poder recuperar para un determinado alumno:

  • las optativas aprobadas y cuántos créditos se le reconocen al alumno por cada una
  • la genércia a la cual pertenece cada optativa y los créditos requeridos por la genérica
  • el ciclo al cual pertenece la genérica y los puntos requeridos para cumplir dicho ciclo

Muchas gracias por toda la ayuda!
Saludos

Iris


atributos_modulo.png

atributos_modulo.png

Hay alguna manera que al consultar un ciclo en los Atributos del Módulo en el Plan, se muestren los puntos requeridos en cada genérica que los compone (tal vez en la columna créditos)?
Si, se puede agregar una columna que sea "Puntos".Cargá una solicitud en el GDS para que se agregue esta columna.

Por otro lado, cual sería la consulta para poder recuperar para un determinado alumno:

- las optativas aprobadas y cuántos créditos se le reconocen al alumno por cada una
De la vista de historia academica, recuperas las aprobadas y los creditos. De esta consulta solo debes recuperar las que son optativas, es decir las que existen en genericas:
AND vw_hist_academica.elemento IN (SELECT elemento FROM vw_optativas_plan WHERE plan_version = <PLAN VERSION ALUMNO>)
 
- la genérica a la cual pertenece cada optativa y los créditos requeridos por la genérica
A que generica pertenece, podes consultar la vista vw_opativas_plan, el problema lo tenes cuando la optativa se encuentra en mas de una generica. Ahi puede ser que el alumno ya eligió para que generica se cumple o aun no. Fijate la funcion [b]f_optativa_es_compartida[/b]

Los créditos requeridos los obtenes de la genérica en el campo parámetros (estaba viendo que la vista vw_opativas_plan no devuelve este dato ni tampoco la regla de cumplimiento, se podrian agregar…):
SELECT er.parametros as creditos
FROM sga_elementos_revision as er
JOIN sga_elementos_plan as ep ON ep.elemento_revision = er.elemento_revision
WHERE er.elemento =
AND ep.plan_version = <PLAN_VERSION>

- el ciclo al cual pertenece la genérica y los puntos requeridos para cumplir dicho ciclo
Aca tenes el mismo problema de optativas compartidas, si tenes la generica en mas de un ciclo/modulo en el plan, pro ejemplo en diferentes orientaciones. Fijate la vista vw_opativas_plan, una generica es un tipo de modulo, fijate que filtra por entidad_subtipo = 2. Si a la query de esa vist le sacas esta condicion, cada "generica" seria un modulo del plan.. podrias tomar es query y buscar cual esel módulo donde se encuentra la generica

– Devuelve todos los modulos donde se encuentra la generica en el plan

SELECT  modulo.nombre
-- Generica
JOIN sga_elementos_revision as er_generica
JOIN sga_elementos_plan as ep_generica ON (ep_generica.plan_version = er_generica.plan_version AND ep_generica.elemento_revision = er_generica.elemento_revision)
JOIN sga_elementos_comp ON sga_elementos_comp.elemento_hijo = er_generica.elemento_revision

-- Modulo donde se encuentra la generica.
JOIN sga_elementos_revision as er_modulo ON er_modulo.elemento_revision = sga_elementos_comp.elemento_padre
JOIN sga_elementos as e_modulo ON e_modulo.elemento = er_modulo.elemento
JOIN sga_elementos_plan as modulo ON modulo.elemento_revision = er_modulo.elemento_revision AND modulo.plan_version = ep_generica.plan_version

WHERE er_generica.elemento = <ID GENERICA>
  AND ep_generica.plan_version = <PLAN_VERSION>

3

Muchas gracias Alejandro por toda la orientación!!
Me pongo a analizarlo!

Quedó como Solicitud número 59899 el pedido de mostrar los puntos requeridos por cada genérica dentro de cada ciclo en los atributos del módulo del plan.

Lo que estaba intentando era personalizar la función get_reporte_optativas que está en la clase co_alumnos.
Pero necesito que la personalización sólo actúe ante ciertas propuestas de una determinada Responsable Académica.
No me doy cuenta como realizarlo, ya que como parámetro lo único que recibe es “$where” que contiene el dato del código de persona.
Veo que después de alguna manera aplica perfil de datos, no se si eso me pueda ser de utilidad, y en caso de serlo, como recuperarlo dentro de la función. Para que de acuerdo a ese dato, ejecute la función personalizada o la del padre (original).

Muchas gracias!!
Saludos

Iris

Se continua via gds 59899

No me doy cuenta como realizarlo, ya que como parámetro lo único que recibe es "$where" que contiene el dato del código de persona.
No recuerdo ese parametro $where que tiene, si por ejemplo viene " sga_alumnos.persona = 236" Lo que podes hacer es antes hacer otra consulta sobre la tabla de alumnos:
SELECT propuesta FROM sga_alumnos WHERE $where

Luego recorrer el array devuelto por esa consulta y ver en que propuestas se encuentra esa persona, y en base a eso ves que reporte mostras al usuario.

Hola Alejandro
Desde la operación donde se llama a esa función (solapa Optativas de Ficha de la Persona), el parámetro “$where” trae lo siguiente

WHERE sga_alumnos.persona = 9758

Pero es posible que si se invoca desde otra operación o desde otro lugar el parámetro cambie? O que venga en null? Cómo lo resolvería ahí?
Y en el caso de una persona que es alumno en más de una Responsable Académica? La idea es que retorne la consulta original para todos aquellos casos que no corresponden a ciertas propuesta de una Responsable Académica en particular.
Puedo saber el usuario que está ejecutando la operación a qué perfil de datos corresponde?

Gracias!
Iris

Pero es posible que si se invoca desde otra operación o desde otro lugar el parámetro cambie? O que venga en null? Cómo lo resolvería ahí?
[/quote] A que te referis desde otro lugar, está buscando por esta persona que ingresaste en su ficha.
Y en el caso de una persona que es alumno en más de una Responsable Académica? La idea es que retorne la consulta original para todos aquellos casos que no corresponden a ciertas propuesta de una Responsable Académica en particular.

Te muestra en bandas separadas por propuesta la Historia académica.

Puedo saber el usuario que está ejecutando la operación a qué perfil de datos corresponde?

si tenes el usuario que está logueado podrías buscar algo así

select distinct vw_personas.persona,vw_personas.apellido_nombres, vw_personas.tipo_nro_documento,desarrollo.apex_usuario_grupo_acc.nombre as perfil_funcional, desarrollo.apex_usuario_perfil_datos.nombre as perfil_datos

from vw_personas
join mdp_personas_grupo_acc on mdp_personas_grupo_acc.persona=vw_personas.persona and mdp_personas_grupo_acc.tipo_usuario=‘Gestion’
left join mdp_personas_perfil_datos on mdp_personas_perfil_datos.persona=mdp_personas_grupo_acc.persona and mdp_personas_perfil_datos.tipo_usuario=‘Gestion’
left join desarrollo.apex_usuario_perfil_datos on apex_usuario_perfil_datos.usuario_perfil_datos= mdp_personas_perfil_datos.usuario_perfil_datos and apex_usuario_perfil_datos.proyecto=‘guarani’
left join desarrollo.apex_usuario_grupo_acc on desarrollo.apex_usuario_grupo_acc.usuario_grupo_Acc = mdp_personas_perfil_datos.usuario_grupo_acc
where vw_personas.persona = $persona
order by desarrollo.apex_usuario_grupo_acc.nombre ,vw_personas.persona,vw_personas.apellido_nombres, vw_personas.tipo_nro_documento, desarrollo.apex_usuario_perfil_datos.nombre

Hola
Gracias por la respuesta.
Cuando digo desde otro lugar, es porque desconozco si esa misma función se utiliza en algún otro lado del sistema.
Está bien que muestra las bandas separadas, el punto es que de acuerdo a la propuesta, la función get_reporte_optativas es que necesito retorne lo que calcula o originalmente o lo que estoy tratando de personalizar.
Lo estoy viendo desde gestión, así que el usuario conectado no es el mismo que la persona por la cual se trata de consulta la Historia Académica.
Saludos

Iris

Hola
Sigo complicada con la regla de cumplimiento de los módulos…

Estaba mirando para tomar de referencia la regla 105 (Obtener n cantidad de créditos), pero no me sirve mucho, salvo obtener los créditos obtenidos por el alumno en cada genérica… ya que la misma controla por cada genérica si se cumple o no. Pero en nuestro caso con que el alumno tenga algunos créditos (y no los totales requeridos por la genérica), ya cuentan para el cumplimiento del ciclo que abarca todas las genéricas.

Lo que necesitamos es que la regla de cumplimiento aplique al ciclo que contiene las genéricas.
Una genérica por si misma no determina si se cumple o no, hasta puede ocurrir también que no se realice ninguna optativa de una genérica en particular. El alumno sólo necesita sumar una determinada cantidad de créditos generales en todo el ciclo que contiene unas 35 genéricas aprox. con ciertas particularidades.
Es decir, es el ciclo el que determina y sabe, si se cumple o no.

Un ciclo se cumple al tener créditos dentro de 4 genéricas diferentes (cualesquiera). Y cada genérica aporta la suma de créditos que se le otorguen al alumno en cada optativa que realice (con un máximo estipulado por la genérica). El ciclo se cumple con una sumatoria general de X de créditos obtenidos de al menos 4 genéricas.
Podrías orientarme como establecer la regla para que se verifique en los ciclos? O qué puedo mirar de referencia?

Un punto que por ahí simplifica, es que dentro de un mismo plan / propuesta, las actividades no son compartidas.

Gracias por la ayuda que pudieran brindarme.
Saludos

Iris

Hola Aljendaro

Esta consulta no estaría funcionando…
No me doy cuenta cómo debe ser.

Gracias
Iris

Envio la query con la corrección:

SELECT modulo.nombre
    --  ,e_modulo.elemento,er_generica.elemento, er_generica.elemento_revision, ep_generica.nombre  -> para probar la query y ver los datos de la generica...

-- Generica
FROM sga_elementos_revision as er_generica
JOIN sga_elementos_plan as ep_generica ON ep_generica.elemento_revision = er_generica.elemento_revision
JOIN sga_elementos_comp ON sga_elementos_comp.elemento_hijo = er_generica.elemento_revision

-- Modulo donde se encuentra la generica.
JOIN sga_elementos_revision as er_modulo ON er_modulo.elemento_revision = sga_elementos_comp.elemento_padre
JOIN sga_elementos as e_modulo ON e_modulo.elemento = er_modulo.elemento
JOIN sga_elementos_plan as modulo ON modulo.elemento_revision = er_modulo.elemento_revision AND modulo.plan_version = ep_generica.plan_version

WHERE er_generica.elemento = <ID GENERICA>
  AND ep_generica.plan_version =  <PLAN_VERSION>