Migracion 3.7.1/Error migración módulo matrículas

Hola a todos, estoy migrando con los script de la versión 3.17.1, y me encuentro que en la migración del módulo de Matrículas, me da error el script 04_sga_alumnos.sql: “Alumno duplicado”
Veo que el problema está en el siguiente query:
– +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
– Aspirantes a carrera que aun no tienen legajo. Les genero el registro en sga_alumnos.
– De cada carrera recupera el plan vigente (estado = ‘V’) y su version actual.
– Aspiratenes a carrera que fueron rechazados y que no tienen registro en tabla de alumnos…
– +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
– 1. Alumnos Aspirantes a Carrera (sin legajo en G2)
INSERT INTO sga_alumnos(alumno, persona,propuesta,plan_version,ubicacion,modalidad,cnt_readmisiones,regular,calidad)
SELECT
cpa.alumno,
cpp.persona,
cppr.propuesta,
cppv.plan_version,
mig.get_default(‘ubicacion’)::integer,
‘P’, – Presencial
0,
‘S’,
CASE
WHEN ca.situacion_asp = ‘AC’ THEN ‘A’ – Activo
WHEN sit.resultado_asp = ‘R’ THEN ‘P’ – Pasivo
ELSE ‘A’
END
FROM
mig._cnv_pk_alumnos as cpa,
mig._cnv_pk_propuestas_aspira as mpa,
mig.sga_carrera_aspira as ca,
mig.sga_situacion_asp as sit,
mig._cnv_pk_personas as cpp,
mig._cnv_pk_propuestas as cppr,
mig.sga_planes as sp,
mig._cnv_pk_planes_versiones as cppv
WHERE
cpa.tabla = ‘sga_carrera_aspira’ AND

mpa.unidad_academica = cpa.unidad_academica AND
mpa.carrera          = cpa.carrera AND
mpa.nro_inscripcion  = cpa.nro_inscripcion AND

ca.unidad_academica    = mpa.unidad_academica AND
ca.carrera             = mpa.carrera AND
ca.nro_inscripcion     = mpa.nro_inscripcion AND
ca.periodo_inscripcio  = mpa.periodo_inscripcio AND

sit.situacion_asp   = ca.situacion_asp AND
ca.situacion_asp  = 'AC'  AND   -- Aspirante a Carrera

-- NOT EXISTS (SELECT alumno FROM sga_alumnos as a WHERE a.alumno = cpa.alumno) AND
NOT EXISTS (SELECT alumno FROM sga_alumnos as a WHERE a.propuesta = cppr.propuesta AND a.persona = cpp.persona) AND  -- no exista la persona en la propuesta

cpp.unidad_academica = cpa.unidad_academica AND
cpp.nro_inscripcion  = cpa.nro_inscripcion AND

cppr.unidad_academica = cpa.unidad_academica AND
cppr.carrera          = cpa.carrera AND

sp.unidad_academica = cpa.unidad_academica AND
sp.carrera          = cpa.carrera AND
sp.estado = 'V' AND -- Plan vigente (Ultimo plan de la carrera que entro en vigencia)

– sp.fecha_ent_vigencia = (SELECT max(fecha_ent_vigencia)
– FROM mig.sga_planes as a
– WHERE a.unidad_academica = cpa.unidad_academica
– AND a.carrera = cpa.carrera) AND – Ultimo plan que entro en vigencia.

cppv.unidad_academica = sp.unidad_academica AND
cppv.carrera = sp.carrera AND
cppv.plan_g2 = sp.plan AND
cppv.version = sp.version_actual
;

y es porque tengo en mig.sga_planes dos planes para esa carrera en estado = ‘V’. No recuerdo bine el modelo en G2, pero ¿no era que podía tener muchos planes con estado = ‘A’, pero sólo uno con estado = ‘V’?
Gracias por su tiempo.
ANA

Ana, es lo contrario.
Los valores del campo estado en sga_planes de la base de Guarani 2 es:
V = Activo Vigente (solo uno)
A = Activo No Vigente (0, 1 o mas)
B = Baja
N = Nuevo

Deberías cambiar el estado de uno de esos dos planes de V a A. El anteúltimo plan que entró en vigencia, dejando el último en estado V.

Si, Ale, es lo que hice. Pero quería estar segura que en Guarani 2 era así. Gracias