Tareas #17288
Agregar tabla de Plan de Correlativas
Estado: | Nueva | Fecha de inicio: | 04/09/2025 | |
---|---|---|---|---|
Prioridad: | Normal | Fecha fin: | ||
Asignado a: | - | % Realizado: | 0% | |
Categoría: | - | Tiempo dedicado: | - | |
Versión prevista: | - |
Descripción
Ahora se debe permitir que en un mismo plan se carguen diferentes correlativas. El plan sigue el mismo pero las correlativas peuden cambianr
Para evitar que el alumno se inscriba en el momento que se este modificando el plan de correlativas. Lo que se hara es dejar un historico de planes de correlatvas vinculados a un plan de estudio con la posibilidad de activar uno u otro plan de correlativas posibilitando cargar un plan de correlativas distinto sin afectar el actual hasta que se active
-- Tabla para agrupar y versionar conjuntos de correlativas CREATE TABLE planes_correlativas ( idplancorrelativa INT PRIMARY KEY AUTO_INCREMENT, idplanestudio BIGINT(20) NOT NULL, nombre VARCHAR(255) NOT NULL, -- ej: "Correlativas 2025-V1", "Correlativas 2025-V2" descripcion TEXT, activo BOOLEAN DEFAULT 0, -- solo una versión puede estar activa por plan fecha_creacion DATE NOT NULL, fecha_vigencia_desde DATE, fecha_vigencia_hasta DATE, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, created_by INT DEFAULT 1, updated_by INT DEFAULT 1, FOREIGN KEY (idplanestudio) REFERENCES planes_estudios(idplanestudio) ); -- agregamos un campo a la tabla existente acacorrelativas ALTER TABLE acacorrelativas ADD COLUMN idplancorrelativa INT DEFAULT NULL, ADD FOREIGN KEY (idplancorrelativa) REFERENCES planes_correlativas(idplancorrelativa);
Histórico
#1
Actualizado por Nicolas Arquiel hace 10 días
- Se actualizó Descripción (diff)
#2
Actualizado por Nicolas Arquiel hace 10 días
Agregar registro segun planes
INSERT INTO planes_correlativas (idplanestudio, nombre, descripcion, activo, fecha_creacion, fecha_vigencia_desde) SELECT DISTINCT mp.idplanestudio, CONCAT('Correlativas Actuales - Plan ', pe.nombre) as nombre, 'Plan de correlativas inicial migrado del sistema existente' as descripcion, 1 as activo, -- Lo marcamos como activo CURDATE() as fecha_creacion, CURDATE() as fecha_vigencia_desde FROM materias_planes mp INNER JOIN planes_estudios pe ON mp.idplanestudio = pe.idplanestudio INNER JOIN acacorrelativas ac ON mp.idmateriaplan = ac.idmateriaplan WHERE mp.idplanestudio IS NOT NULL GROUP BY mp.idplanestudio, pe.nombre;
#3
Actualizado por Nicolas Arquiel hace 10 días
VINCULAR TODAS LAS CORRELATIVAS EXISTENTES CON SUS RESPECTIVOS PLANES
-- Esto actualiza acacorrelativas para vincular cada correlativa con su plan correspondiente
UPDATE acacorrelativas ac INNER JOIN materias_planes mp ON ac.idmateriaplan = mp.idmateriaplan INNER JOIN planes_correlativas pc ON mp.idplanestudio = pc.idplanestudio AND pc.activo = 1 SET ac.idplancorrelativa = pc.idplancorrelativa;
#4
Actualizado por Nicolas Arquiel hace 10 días
VERIFICAR QUE TODO SE HAYA VINCULADO CORRECTAMENTE
Esta consulta te muestra el resumen de lo que se creó
SELECT pe.idplanestudio, pe.nombre as plan_estudios, pc.idplancorrelativa, pc.nombre as plan_correlativas, pc.activo, COUNT(ac.id) as cantidad_correlativas FROM planes_estudios pe LEFT JOIN planes_correlativas pc ON pe.idplanestudio = pc.idplanestudio LEFT JOIN acacorrelativas ac ON pc.idplancorrelativa = ac.idplancorrelativa GROUP BY pe.idplanestudio, pe.nombre, pc.idplancorrelativa, pc.nombre, pc.activo ORDER BY pe.idplanestudio;