Buen dia
Estamos en una situación que tenemos en G3 unas personas dadas de alta (alumnos y/o docentes con y sin legajo cargado).
En el momento de la migración del modulo de docentes, en los precontroles nos salen algunos errores y advertencias, referentes a que la persona ya existe, o el docente ya existe, o de legajos de docentes que ya existen.
Analizando la situación de los datos con que contamos, creería que lo correcto y lo que nos serviría en estos casos puntuales es que actualice el legajo de los docentes con el que se provee en el archivo.
Mirando el script de migración correspondiente, veo que se valida que si no existe la persona la inserta en mdp_personas y luego hace el insert en sga_docentes asociada a esta persona (nueva o ya existente)
Hicimos una pequeña modificación en el script para que en caso que el docente ya exista haga un update y si no existe haga el insert normal.
Es correcto esta modificacion del código?
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- Inserto al docente
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- Validar si existe docente (actualizar legajo, si no hacer el insert)
select docente INTO _docente
from sga_docentes
where persona = _persona
LIMIT 1;
IF _docente IS NOT NULL THEN
_existe_docente := true;
ELSE
_existe_docente := false;
END IF;
IF NOT _existe_docente THEN
INSERT INTO sga_docentes (legajo, persona, estado) VALUES (cursor1.docente_legajo, _persona, cursor1.docente_estado);
ELSE
UPDATE sga_docentes SET legajo = cursor1.docente_legajo, estado = cursor1.docente_estado WHERE persona = _persona;
END IF;
Sucede que dos docentes tengan el mismo legajo?
El legajo de un docente que deja de trabajar en la institución, puede luego otro docente tener el mismo número de legajo?
Por lo que sabemos esto no debería ocurrir y de ser asi es un error en el registro del legajo al docente que ya existe en la base o el nuevo que estan importando.
Estoy consultando con los funcionales sobre ese tema.
Pero en base a esta pregunta que me haces, me surgen otras dudas.
Ya que al migrar el mismo módulo, se solicita tribunal examen
Archivo mig_tribunal_examen.csv
Con tres campos:
nombre_tribunal, docente_legajo y rol
Por lo que entiendo que el nro de legajo debería tomarse como único, porque en caso de tener 2 docentes con el mismo legajo se estaría asignando ambos docentes con el mismo rol a un mismo tribunal.
Es así, o estoy entendiendo mal la migración del módulo?
Es como decís, el número de legajo del docente debe ser único. Por eso la sorpresa y la pregunta de Alejandro en la primera respuesta, No se pueden tener 2 docentes con el mismo legajo.
OK, entonces estaría correcta la modificación que hago al script, actualizando el nro de legajo, que en G3 el docente no lo tiene cargado, o la persona está dada de alta solo como alumno y se están migrando datos de cuando fue docente?
O este tipo de actualización debiera hacerse administrativamente administración?
Podrías subir el script que modificaste. Estamos migrando desde G2 a G3 (3.15.1), y nos pasa algo similar, y quería ver si lo podemos solucionar con esa modificación.
-- Validar si existe docente (actualizar legajo, si no hacer el insert)
select docente INTO _docente
from sga_docentes
where persona = _persona
Verifiquen que en la base de Guarani 3 no debería haber registro de docentes sin legajo.
Igualmente pueden modificar el script , asignandole un valor si viene en Nulo y de esta forma no va a entra por la condicion IS NULL y actualizará el nro de legajo del docente y no va a insertar un nuevo registro:
-- Validar si existe docente (actualizar legajo, si no hacer el insert)
select COALESCE(docente,'') INTO _docente
from sga_docentes
where persona = _persona
Buenas tardes, aprovecho a consultar por acá para no abrir un hilo nuevo ya que creo es un tema similar.
Respecto a la migración de personas, podria migrarlas con el campo colegio (integer) “vacío” y luego en la próxima migración hacer un update de ese campo sobre las personas ya migradas?
colegio integer S Colegio Secundario sga_colegios_secundarios
Si, en realidad no es un update sino un insert sobre la tabla mdp_datos_estudios registrando este dato en el campo “colegio” o “colegio_otro” si no tienen el número de identificación del colegio (CUE - Código unico de escuela)