Buenos días, me acuerdo de haber escuchado esto en el taller anual en Córdoba, pero no lo he encontrado ni en la wiki ni en el foro.
El tema es que necesitamos que se guarden en G3 datos adicionales desde preinscripción que no vienen por defecto.
Hay algunos pasos a seguir o convenciones? Se me ocurre en principio crear un tabla nueva “mdp_personas_datos_extra” que tenga un FK a la “mdp_personas” y allí ir colocar los nuevos datos que se necesiten.
Esta es la forma de encararlo, o hay alguna otra consideración?
Desde ya, muchas gracias.
Saludos!
Modificaciones a realizar: Preinscripcion: Modificar la tabla sga_preinscripcion (BD\Sql\tablas\postgres\sga_preinscripcion_postgresql.sql) agregando los campos que necesitas y ademas configurando los nuevos campos como esta especificado en el otro post que te pase anteriormente.
Guarani: En la base de guaraní la metodología para personalizar será agregar una nueva tabla con la misma clave y que haga referencia a la tabla mdp_datos_censales (podes tomar como ejemplo el código de la tabla mdp_datos_personales que lo encontras en BD\Ddl_nucleo\Tablas). Luego tendrás que modificar el proceso que importa los datos desde la base de preinscripción a la base de guarani para recuperar estos datos e insertarlos en la nueva tabla. Tambien en la operación de datos censales ver de agregar el alta del registro correspondiente sobre esta tabla cuando se da de alta los datos censales de un alumno.
No queda claro, es un dato de tipo censal? O es un dato asociado a la persona? Los datos censales son los que pueden sufrir algún cambio en el transcurso del tiempo, por ejemplo mail y teléfono. Los datos asociados a la persona nunca sufren un cambio, por ejemplo fecha y lugar de nacimiento, ya que se nace 1 sola vez.
Primero tenés que determinar eso para ver como será la nueva tabla, a cual la vas a asociar.
Otra cosa que podés hacer es algo que hicimos nosotros (en realidad hizo el programador) que es que el registro en la nueva tabla se da de alta con el trigger de Insert de la tabla del caso, sga_preinscripcion en el módulo de preinscripcion (nosotros no modificamos esta tabla sino que hicimos una nueva con la misma clave) y mdp_personas en el Guaraní.
Allí se indica que en “src/pers/ejemplo/modelo/manejador_datos.php” se dejó un ejemplo documentado de cómo proceder en caso de tener que recolectar datos extra a los manejados por el SIU.
Lo que deberías hacer es crear un archivo manejador_datos.php a partir del entregado en el ejemplo, en tu carpeta de personalización “src/pers/<tu_institucion>/modelo/manejador_datos.php”, y completar la implementación según lo que está autodocumentado en ese ejemplo (ojo con esta sentencia: “namespace ejemplo\modelo;”, en lugar de “ejemplo” poné el nombre de tu carpeta de personalizaciones). Allí se indica tanto cómo crear la tabla anexa, el trigger after insert que menciona Gustavo en la respuesta anterior, y cómo redefinir los métodos de obtención y seteo de datos.
Te hago una consulta: es recomendado cuando se trabaja con personalizaciones solicitar una url de svn checkout propia, para poder hacer commits de tu desarrollo, y de esa manera poder restaurar fácilmente los cambios cuando sacamos nuevas versiones. ¿Ustedes ya lo solicitaron? De no ser así, pedilo mediante el Gestor de Solicitudes.
Gracias por las respuestas chicos.
Fernando: con el tema del svn, nosotros mantenemos nuestro propio repositorio y estamos siguiendo la estructura que se planteó para el colab.
De todas maneras, pedimos ids de desarrollador por si en un futuro es necesario subir nuestras personalizaciones a su repositorio. Saludos
Pablo, perdon por la respuesta anterior ya que te habia indicado erroneamente como personalizar el módulo de preinscripción ya que en vez de agregar los campos a la tabla existente, el modo de personalizar es similar al de Guarani, es decir agregando una tabla anexa con la misma clave, etc, como te lo indicó Fernando.