Numero de tomo para el libro de acta

Hola

Estuve viendo como personalizar las funciones referente al circuito de actas. En particular a la que define el libro de actas, y me surgieron algunas dudas:

1- Es posible tener un libro para cada actividad? Los libros en particular se llaman igual, pero cada actividad tiene el suyo propio

2- Los libros se enumeran de la siguiente forma:1-A, 1-B, …, 1-Z, 2-A, 2-B,…, 2-Z, …, n-Z. A mi se me habia ocurrido que los libros podian ser la parte numerica, y cada tomo tener asignado una letra(por ej: 1-A tiene 200 folios, igual que el resto de los libros), pero vi que en la definicion de la tabla sga_libros_tomos el campo “libro” tiene que ser numerico.

Eso es todo por ahora.

Muchas gracias!

Francisco

  1. Si es posible. Cuando se crea el libro se puede indicar para que actividad corresponde el libro. Estos datos se registran en sga_libros_actas_actividad.
    Luego deberán personalizar el proceso donde se recupera el libro a asignar a un acta, para que busque que libro corresponde segun la actividad que corresponde la mesa de examen o la comision en las cursadas.

  2. El dato libro es un dato numerico, es el campo que identifica a un libro (sga_libros_actas.libro), pero el dato que se muestra del libro es el campo nro_libro que este es un varchar(30)
    Si el libro no se divide en tomos, entonces por defecto va a tener un tomo, ya que el modelo de datos asi lo requiere.
    Los tomos en el libro son numericos (sga_libros_tomos.nro_tomo). Si en este caso el libro es el 1 y los tomos van de la A a la Z, no podras actualmente registrar ese nombre de cada tomo, Salvo personalizar creando una tabla de tomos donde indiques que el tomo 1 corresponde a la letra A, el tomo 2 a la letra B, etc.
    O analizar otra forma de identificarlos tomos por un caracter alfanumerico y no mumerico como esta hoy.

Gracias por la respuesta Alejandro.

Seria posible personalizar la funcion que get_libro_actas para que:
1- Si el libro de actas que corresponde a esa actividad esta lleno, genera uno nuevo manteniendo la regla de nombres para nuevos libros, generando ademas el tomo unico correspondiente.
2- Sino, devolver el libro de actas actual.

Me parece la forma mas adecuada de replicar el comportamiento actual

Saludos!

Deberias en principio tratar de implementar los libros de actas como lo llevan alli.
1-A, 1-B… son diferentes tomos de un mismo libro o diferentes libros de actas?

Gracias

Consulte aca en la facultad y cada uno son libros distintos, con un unico tomo(el concepto de tomo no lo tienen).

Ok. Mejor entonces, no deben personalizar nada respecto a que el número de tomo sea alfanumerico.
En todo caso deberan personalizar algun listado donde se este mostrando el número de tomo para no mostrarlo. Como esta el modelo de datos por defecto cada libro de actas debe tener al menos un tomo.

Hola

Vengo con una nueva consulta sobre libros de actas y tomos.

Seguimos con nuestra personalizacion y modificamos la funcion “get_libro_de_actas” para poder devolver el libro que nosotros queremos.

Recuerdo como es nuestro contexto:

  • Cada libro de actas es por actividad y contiene 1 unico tomo. Ej: Libro 1 A
  • Cuando se completa el tomo del libro de actas, se crea un nuevo LIBRO llamado 1 B con un unico tomo.

El problema surge que viendo el sistema.log, encuentro que guarani mismo crea un nuevo tomo cuando luego de cerrar un acta, el tomo se encuentra completo(o en caso de tener el parametro habilitado, cuando tiene mas folios que max_cant_folios en la tabla). Esto ocurre dentro del los metodos “actualizar_folios_fisicos” y “reasignacion” de la clase “co_actas”.

Estoy intentando entender porque duplica automaticamente tomos, ya que interfiere un poco en mi propia funcion.

Voy a tener que personalizar tambien esas funciones para evitar que dupliquen tomos?
Hay alguna otra funcion que tambien tenga que ver para evitar que se dupliquen tomos ?

Gracias por la ayuda.

Saludos!

Hola Francisco,

Efectivamente, en la función “actualizar_folios_fisicos” del “co_actas” se crea un nuevo tomo en caso de que se llene el actual, porque es el proceso estándar del sistema.


    ...
    // Si los folios físicos asignados completan o superan la cantidad disponible en el tomo, se deberá abrir otro nuevo.
    if ((!empty($cant_max_folios) && $folio_fisico >= $cant_max_folios)) {
        $libro_tomo = guarani::act('act_actas')->duplicar_libro_tomo_actas($libro_tomo);
    }

Si ustedes redefinieron ese circuito, este sería uno de los puntos a personalizar para una adecuación completa.

Haciendo una búsqueda exhaustiva en el código del string “duplicar_libro_tomo_actas” (la función del “act_actas” que hace la tarea), verás que es llamado en varios puntos. Quedará en ustedes ver si personalizan cada una de esas funciones, o si les conviene aprovechar ese punto (“function duplicar_libro_tomo_actas”) para implementar ahí el mecanismo de duplicación de libro con un solo tomo, con una nueva función de BD (para evitar pisar la que enviamos nosotros, que puede llegar a variar con el tiempo).

Analizalo, y cualquier cosa lo volvemos a conversar.

Saludos!
Fernando

Hola Fernando,

Decidimos ir modificando las funciones de php del acta_nucleo.php, ya que nos parecio mas prolijo.

Te queria hacer una consulta: ¿Hay que hacer algun paso extra ademas de crear la nueva clase acta_nucleo_ffyb.php dentro del directorio de personalizaciones? Creo recordar que en un momento me habian comentado que las clases de nucleo se personalizaban de otra manera, pero no lo recuerdo.

Saludos!!

Hola Francisco,

No es necesario crear esa nueva clase, podrías aprovechar la que se distribuye en …/personalizacion/php/nucleo/actas/acta.php. Desde nuestro código siempre invocamos a esa, que en principio está vacía y extiende a acta_nucleo, donde tenemos implementadas las funciones.

Saludos!

Fernando,

Puse las funciones cambiadas dentro de la clase …/personalizacion/php/nucleo/actas/acta.php, pero estas no son llamadas.

Localmente agregue prints en las funciones de la clase dentro de …/siu/nucleo/actas(acta.php y esas son llamadas. Tengo las personalizaciones actividas porque el resto son llamadas correctamente.

Es necesario alguna configuracion extra?

Saludos!

Hola Francisco,

Ustedes modificaron la clase ‘<path proyecto Guaraní>/personalizacion/php/nucleo/actas/acta.php’ agregando un método que querían personalizar? Es el procedimiento correcto y debería funcionar… Están usando el repositorio colab? Si es así, pueden commitear los cambios para que los revisemos?

Saludos, Florencia.

Florencia,

Gracias por la respuesta!

Acabo de subir una version estable del problema a nuestro repositorio.

Saludos!

Francisco,

El problema es que los métodos ‘primera_asignacion’ y ‘reasignacion’ que ustedes redefinieron como personalización en la clase ‘acta’ (‘/personalizacion/php/nucleo/actas/acta.php’) son estáticos y se están invocando desde el método ‘asignar_folio_fisico’ de ‘acta_nucleo’ (‘php/nucleo/actas/acta_nucleo.php’) con ‘self::’. Esto hace que se tome siempre el código de la clase ‘acta_nucleo’ e ignore el de ‘acta’. Para evitarlo tendrían que incluir también en la personalización el método ‘asignar_folio_fisico’.

Saludos, Florencia.