Estamos encarando las personalizaciones para agregar turno elegido, en base a los que se ofrecen según modalidad / propuesta.
La idea es desde Gestion cargar los turnos de cada propuesta, y obtener esa informacion tanto desde Preinscripcion como desde Autogestion.
Fui modificando el formulario, los controles visuales y varias cosas, pero al momento de implementar la consulta nueva a Gestion, no puedo descubrir cual es la forma correcta de personalizar el archivo. Es decir, como tengo que hacer para tener dentro de la estructura de carpetas de personalizacion una con la consulta nueva y que el resto las recupere del archivo original.
La idea es agregar, en el popup que selecciona la propuestas, el campo turno.
Por lo tanto necesito una nueva funcion (get_turnos_propuestas) que consulte la información a Gestion. Seria muy similar a get_modalidades_propuesta que se encuentra en modelo/g3/consultas_bd/propuestas.php
El Turno preferido lo puede seleccionar el aspirante en la solapa Datos adicionales, se termina guardando en la columna sga_preinscripcion.turno_preferido. Si lo queres hacer obligatorio lo podes hacer desde la operación Configuración de campos de formulario del perfil administrador de Preinscripción, te adjunto capturas:
Si, comprendo esa parte. El tema es que en ese lugar el turno elegido es genérico y lo que me piden es que segun la propuesta elegida, se habiliten solo los turnos que existen.
Se me ocurrio agregarlo en el popup, pero podria llegar a ser desde el lugar que decis. Igual, entiendo que tendria que agregar la consulta nueva y vuelvo al mismo problema de como manejar la personalizacion.
Veo que en Gestión operaciones Administrar Propuestas Formativas y Administrar Planes de Estudio no da la opción de seleccionar el turno, si da la opción para cursadas y exámenes.
Muchas gracias por la respuesta. Los primeros pasos parece que los descule bien, aunque voy a revisar si me falta algo, hasta visualizar el campo turno en el popup voy bien.
Con respecto a esto, como tengo que hacer? Probe creando en src/pers/general/modelo/g3/consultas_bd/propuestas.php y creando la funcion. Pero no pude llamarla.
Tambien probe agregar en la estructura de carpetas personalizadas el archivo g3.php que devuelve la interfaz y el archivo interface_propuestas. Pero o estoy armando mal los encabezados, o no los estoy llamando bien.
Podes crear la clase src/pers/unla/modelo/g3/consultas_bd/turnos_propuesta.php:
<?php
namespace unla\modelo\g3\consultas_bd;
use SIU\Chulupi\kernel;
use siu\modelo\g3\consultas_bd\entidad_g3;
class turnos_propuesta extends entidad_g3
{
protected static $instancia;
static function instancia()
{
$clase = substr(strrchr(get_class(), "\\"), 1);
if (!isset(static::$instancia)) {
static::$instancia = kernel::localizador()->instanciar("modelo\\g3\\consultas_bd\\$clase");
}
return static::$instancia;
}
}
y src/pers/unla/modelo/g3/g3.php:
<?php
namespace unla\modelo\g3;
use SIU\Chulupi\kernel;
use unla\modelo\g3\consultas_bd\turnos_propuesta;
use siu\modelo\g3\g3 as g3_siu;
class g3 extends g3_siu
{
/**
* Instancia el objeto de consultas de Parámetros mediante el patrón Singleton.
*
* @return turnos_propuesta
*/
static function turnos_propuesta()
{
$modo_consultas = kernel::proyecto()->get_modo_consultas_g3();
return kernel::localizador()->instanciar_singleton("modelo\\g3\\$modo_consultas\\turnos_propuesta");
}
}
Luego podes usarlo así:
use unla\modelo\g3\g3;
g3::turnos_propuesta()->funcion_ejemplo($par1, $par2);
funcion_ejemplo la tenes que definir dentro de src/pers/unla/modelo/g3/consultas_bd/turnos_propuesta.php.
Hola! Sigo con la misma personalizacion. Desde el modulo pude hacer todas las modificaciones necesarias ya. Pero desde la parte de Autogestion, no logro personalizar la impresion de la ficha de preinscripcion.
Si modifico esta clase me toma los cambios:
Pero cuando quiero hacerlo con la estructura de personalizacion correcta no lo logro.
@rmansilla Vos deberías personalizar en personalizacion/php/nucleo/_lib/guarani_ficha_preinscripcion.php de Guaraní Gestión, luego debido a la Interconexión entre SIU-Guaraní Gestión y 3w al ejecutar svn update en 3w vas a ver los cambios en src/pers_gestion/php/nucleo/_lib/guarani_ficha_preinscripcion.php (es como si fuera un link simbólico).
Luego dicha clase se utiliza en la función accion__generar_pdf de src/siu/operaciones/preinscripcion/controlador.php.
Bien, pude hacer que tome los cambios con lo que me sugeriste. Ahora lo que se me complica es la consulta a la BDD para traer el dato extra en la impresion.
Desde Gestion hice la personalizacion de la clase co_preinscripciones, con las configuraciones en toba y la estructura sugerida. Desde allí la impresion esta bien y con el dato.
Cuando traigo en 3w el pers_gestion actualizado, la ficha sale modificada (con el espacio que agregue para el dato nuevo) pero esta llamando a la clase de consulta (co_preinscripcion) original y no la personalizada. En la estructura de carpetas de pers_gestion figura la nueva clase de consulta, pero no la esta llamando desde el metodo de imprimir.
En el Toba Editor, anda a la solapa Datos => Consultas PHP. Luego hace click en el icono azul (el de la derecha de todo) de co_certificados, cámbiale el Punto de Montaje y el Archivo a lo personalizado.
Luego de esto corre el comando bin/guarani pers_autoload. Comitea en Gestión, y hace un svn up en 3W para ver los cambios.
Lo hice, y se actualizo correctamente el autoload con la nueva clase, y la tengo en 3w.
Ojo, en el Toba Editor solapa Consultas PHP el Identificador debe seguir siendo co_preinscripciones, lo único que cambia es el Archivo y la Clase, ya que luego en el código se llama así toba::consulta_php('co_preinscripciones')->funcion($parametros);.