Tareas #17653

modulo de expedientes

Añadido por Nicolas Arquiel hace 5 días. Actualizado hace 5 días.

Estado:NuevaFecha de inicio:04/03/2026
Prioridad:NormalFecha 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();

Exportar a: Atom PDF

Redmine Appliance - Powered by TurnKey Linux