Tareas #17653
modulo de expedientes
| Estado: | Nueva | Fecha de inicio: | 04/03/2026 | |
|---|---|---|---|---|
| Prioridad: | Normal | Fecha fin: | ||
| Asignado a: | - | % Realizado: | 0% | |
| Categoría: | - | Tiempo dedicado: | - | |
| Versión prevista: | - | |||
| Analisis: |
Descripción
Requisitos
Migrar modulo de expedientes
Histórico
#1
Actualizado por Nicolas Arquiel hace 5 días
CREATE TABLE IF NOT EXISTS expedientes_aprobaciones (
idaprobacion INT NOT NULL AUTO_INCREMENT,
idexpediente BIGINT(20) NOT NULL,
area ENUM('sede','biblioteca','administracion','auditoria','titulos') NOT NULL,
estado ENUM('pendiente','aprobado','rechazado') NOT NULL DEFAULT 'pendiente',
observaciones TEXT NULL,
fecha DATETIME NULL,
created_at DATETIME NOT NULL DEFAULT NOW(),
updated_at DATETIME NOT NULL DEFAULT NOW() ON UPDATE NOW(),
PRIMARY KEY (idaprobacion),
UNIQUE KEY uq_expediente_area (idexpediente, area),
CONSTRAINT fk_aprobaciones_expediente
FOREIGN KEY (idexpediente) REFERENCES expedientes_egresados(idexpediente)
);
#2
Actualizado por Nicolas Arquiel hace 5 días
ACTUALIZAR TODO CON LA NUEVA TABLA
-- Sede
INSERT INTO expedientes_aprobaciones (idexpediente, area, estado, fecha)
SELECT ee.idexpediente, 'sede',
CASE WHEN EXISTS (
SELECT 1 FROM expedientes_derivaciones ed
WHERE ed.idexpediente = ee.idexpediente AND ed.activo = 1
) THEN 'aprobado' ELSE 'pendiente' END,
ee.fechasolicitud
FROM expedientes_egresados ee WHERE ee.activo = 1
ON DUPLICATE KEY UPDATE estado = VALUES(estado), fecha = VALUES(fecha), updated_at = NOW();
-- Biblioteca
INSERT INTO expedientes_aprobaciones (idexpediente, area, estado, fecha)
SELECT ee.idexpediente, 'biblioteca',
CASE WHEN ee.idderivacionbiblioteca IS NOT NULL AND ee.idderivacionbiblioteca != 0
THEN 'aprobado' ELSE 'pendiente' END,
NOW()
FROM expedientes_egresados ee WHERE ee.activo = 1
ON DUPLICATE KEY UPDATE estado = VALUES(estado), fecha = VALUES(fecha), updated_at = NOW();
-- Administración
INSERT INTO expedientes_aprobaciones (idexpediente, area, estado, fecha)
SELECT ee.idexpediente, 'administracion',
CASE WHEN ee.idderivacionadministracion IS NOT NULL AND ee.idderivacionadministracion != 0
THEN 'aprobado' ELSE 'pendiente' END,
NOW()
FROM expedientes_egresados ee WHERE ee.activo = 1
ON DUPLICATE KEY UPDATE estado = VALUES(estado), fecha = VALUES(fecha), updated_at = NOW();
-- Auditoría
INSERT INTO expedientes_aprobaciones (idexpediente, area, estado, fecha)
SELECT ee.idexpediente, 'auditoria',
CASE WHEN ee.folio IS NOT NULL AND ee.folio != ''
AND ee.fechainformeauditoria IS NOT NULL
THEN 'aprobado' ELSE 'pendiente' END,
ee.fechainformeauditoria
FROM expedientes_egresados ee WHERE ee.activo = 1
ON DUPLICATE KEY UPDATE estado = VALUES(estado), fecha = VALUES(fecha), updated_at = NOW();
-- Títulos
INSERT INTO expedientes_aprobaciones (idexpediente, area, estado, fecha)
SELECT ee.idexpediente, 'titulos',
CASE WHEN (ee.registrodiplomame IS NOT NULL AND ee.registrodiplomame != '')
OR (ee.registrocertificadome IS NOT NULL AND ee.registrocertificadome != '')
THEN 'aprobado' ELSE 'pendiente' END,
ee.fechaentregatitulo
FROM expedientes_egresados ee WHERE ee.activo = 1
ON DUPLICATE KEY UPDATE estado = VALUES(estado), fecha = VALUES(fecha), updated_at = NOW();