Hoy corrimos la función “Generar Legajos” para una de las propuestas y nos encontramos con que se asignaron números de legajo a los estudiantes que ya tenían otros estudiantes de la misma propuesta.
Mi consulta es precisa: veníamos utilizando la generación MANUAL de número de legajo (como veníamos de una reciente migración, aún se estaba manteniendo una numeración correlativa con un sistema paralelo). Hoy establecimos el parámetro para generación AUTOMÁTICA de número de legajo, y cuando revisamos los legajos creados, duplicó a partir del número 1.442. ¿Es posible que el último número de legajo de carrera haya quedado seteado en 1.441 (cuando corrimos el script para establecer el número de legajo) y que al utilizar la asignación manual no se haya actualizado este número? Es la única explicación que se nos ocurre.
De momento pensamos modificar el número de legajo de estas duplicaciones a través de la base, setear nuevamente el último número de legajo al MAX y establecer nuevamente la asignación automática.
CONSULTA ADICIONAL: Estamos utilizando generación manual de número de actas actualmente para poner al día algunas actas que quedaron para cargar. ¿Sería necesario también setear el último número de acta al máximo una vez que pasemos a la generación automática?
Como siempre, muchas gracias!
Saludos!
Federico
PD: Estamos en versión 3.11.2, pasando a 3.13.2 en los próximos días.
Buenos días Federico. Cuando hicieron el corrimiento manual la secuencia nro_legajo_alumno_seq no se iba actualizando entonces cuando corrio el proceso, comenzó a partir del 1442. Lo que deberían hacer es modificar esa secuencia que te comenté anteriormente para que no les vuelva a suceder.
Para el caso de los nros de acta puede llegar a suceder lo mismo, con la salvedad de que cuando quieras generar y se repita va a tirar un error pk.
¿Te podría pedir los scripts de actualización de las secuencias para número de legajo de alumno y de número de actas? Así cotejamos con lo que tenemos y nos aseguramos de que no estén errados!
Buenas Federico. Para dejar correctamente el nro de legajo podrían correr este query si de ahora en más lo van a correr automáticamente
SELECT SETVAL('nro_legajo_alumno_seq', (SELECT MAX(legajo) FROM sga_alumnos WHERE legajo IS NOT NULL));
Para obtener una forma de generar los nros de actas de forma automática deberían personalizar el método generar_nro_acta del co_actas (<path_gestion>/php/nucleo/actas/co_actas.php)
Buenas Federico. Para el número de acta no hay una secuencia para que puedan dejar correctamente el mismo como si lo hay en el número de legajo.
Por ello te comentaba sobre el método, porque vas a poder ver como se incrementa el mismo. Para corregirlo vas a tener que hacerlo a mano.
Mi pregunta sobre actas era porque en la generación de actas (para todo tipo) hemos pasado a la generación manual y luego a la automática y no hubo problemas. Es decir, la generación automática de actas tomó a partir del último número que se utilizó manualmente.
Con respecto al Legajo parece que es distinto, porque ahí sí es necesario setear el valor al último.
Buenas Federico, tal como decís, para el legajo tenes una secuencia, en cambio para lo de actas es un entero que se hace a mano a través de las funciones que te comenté anteriormente.
Esto para las actas funciono bien ya que los nros de actas que tenías eran enteros, pero fijate que el campo en la tabla sga_actas es un varchar, donde se podría enviar letras y números.
Como comentario adicional querría pedirles que se queden en la generación manual o en la automática pero que no se pasen de una a otra porque pueden aparecer errores como los que detallaste vos u otros que desconocemos.
Para cerrar este tema, necesitaríamos corregir los números de legajo que se generaron incorrectamente. La tabla que hay que trabajar es sga_alumnos, ¿es así? ¿Hay alguna otra tabla vinculada?