Hasta ahora todas las actas de exámenes finales no se generaban por gestión sino que se migraban por sistemas externos según lo que se iba cargando a mano en libro fisico/papel. Vamos a empezar a generar las actas de exámen final por gestión.
Se nos presenta el problema de que hasta ahora las actas cargadas estaban nomencladas de la siguiente forma: numero_de_libro+guion+nro_folio_libro
Por ejemplo: 201-27
Nos gustaría empezar a utilizar la numeración automática de Guaraní 3, pero sabemos que el método que genera el acta toma el valor más alto de todas las actas con el mismo origen y le suma 1. En nuestro caso como el campo nro_acta es alfanumérico no es posible generar el próximo número de acta.
¿Es posible de alguna forma pasar a la numeración automática ya que vamos a empezar con libros nuevos generados desde Guaraní?
¿Podremos setear un valor máximo temporalmente y de ahí en más generar los valores de las próximas actas?
¿Podremos realizarlo sin tener que personalizar el método?
Nos gustaría empezar a utilizar la numeración automática de Guaraní 3, pero sabemos que el método que genera el acta toma el valor más alto de todas las actas con el mismo origen y le suma 1. En nuestro caso como el campo nro_acta es alfanumérico no es posible generar el próximo número de acta.
Por mas que sea alfanumerica, pueden separar el nro de acta que actualmente lo tienen con este format: aaa-bbb. Por un lado lo que esta a izquierda del guion (aaa) y lo que esta a la derecha (bbb) y de ahi tomar el dato como un numero y hacer el calculo que necesiten.
¿Es posible de alguna forma pasar a la numeración automática ya que vamos a empezar con libros nuevos generados desde Guaraní?
Si.
¿Podremos setear un valor máximo temporalmente y de ahí en más generar los valores de las próximas actas?
Si.
Deberían crear una tabla donde vayan registrando el ultimo nro de acta según como quieran enumerar las actas (cursadas/promociones/examenes) y de alli hacer el calculo para recuperar el próximo numero de acta, ya que en la tabla de actas va a haber actas con la numeración actual (alfanumérica = aaa-bbb) y con la nueva (solo numérica).
¿Podremos realizarlo sin tener que personalizar el método?
Van a tener que personalizar para obtener el próximo numero de acta. A menos que reenumeren las actas actuales llevándolas al formato nuevo que sea solo numérico.
Se me ocurre que podríamos personalizar la función generar_nro_acta() de co_actas.php
Y en la línea SQL que se trae el máximo número de acta agregar una condición al WHERE que excluya todas las actas que contengan el caracter “-”.
De esa forma no tendríamos que llevar una tabla aparte:
$sql = "SELECT COALESCE(MAX(CAST(sga_actas.nro_acta AS integer)), 0) + 1 as nro_acta
FROM sga_actas
WHERE sga_actas.origen = $origen
AND nro_acta NOT LIKE '%-%'
";
Probamos la setencia en pgadmin y nos devuelve un entero.
En nuestro caso solo necesitamos modificar un método de PHP. Entendemos que desde toba solo haría falta modificar la consulta PHP co_actas. Cambiar el punto de montaje a “personalización” y luego apuntar al archivo dentro del directorio personalizacion que contiene la nueva definición del método generar_nro_acta()
En este caso, ¿basta con solo redefinir la consulta PHP desde toba editor? ¿Hace falta modificar algún objeto o algún CI?
¿Podemos solo redefinir el método con el mismo nombre: “generar_nro_acta” o hace falta que lo clonemos como nuevo método con un nuevo nombre?
Buenos días, deberías hacer lo que dijiste.
Para reutilizar la clase co_actas que enviamos desde el siu, deberías extender tu nueva clase del co_actas original.
Para modificar la función generar_nro_acta deberías solamente en la clase hija sobreescribir el método este.
Igualmente siempre recomendamos que revises cuando haces este tipo de cambios desde donde se esta llamando a esa función para que veas si el nuevo método cumple con el nuevo comportamiento que estas modificando.
Te dejo un link para que puedas ver más rapidamente desde donde se está llamando esa función.
Espero sea de utilidad la info anteriormente descripta.
Ante cualquier otra duda no dudes en consultar.
Saludos.