-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- View: vw_equiv_parciales_basica
-- Version: 3.0.0
-- Recupera las equivalencias parciales (Aprobadas/Reprobadas) activas.
-- Tiene la misma estructura que la vista de regularidades: vw_regularidades
--
-- Valores de los campos:
--    origen (solo para cursadas) : D - Equivalencas Parciales (sga_actas_origen.origen)
--    alcance (equivalencias) : Equivalencia Parcial
--    tipo                    : Equivalencia Parcial
--    resultado               : A - Aprobado / R - Desaprobado
--    tipo_tramite            : N - Normal / R - Rectificativo
--    vigente                 : 1 - Es Vigente / 0 - No esta vigente
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

-- DROP VIEW vw_equiv_parciales_basica;
CREATE OR REPLACE VIEW vw_equiv_parciales_basica
(
 elemento,
 origen,
 equivalencia_tramite,
 equivalencia_tramite_original,
 tipo_tramite,
 equivalencia,
 persona,
 alumno,
 plan_version,
 fecha,
 fecha_vigencia,
 es_vigente,
 escala_nota,
 nota,
 resultado
 )
AS 
 SELECT 
    sga_equiv_otorgada.elemento,
    cast('D' as char(1)) as origen,
    sga_equiv_tramite.equivalencia_tramite,
    CASE sga_equiv_tramite.tipo_tramite
      WHEN 'N' THEN sga_equiv_tramite.equivalencia_tramite
      WHEN 'R' THEN sga_equiv_tramite.rectifica_a 
    END as equivalencia_tramite_original,
    sga_equiv_tramite.tipo_tramite as tipo_tramite,
    sga_equiv_otorgada.equivalencia,
    sga_alumnos.persona,
    sga_equiv_tramite.alumno,
    sga_equiv_tramite.plan_version,
    sga_equiv_otorgada.fecha,
    sga_equiv_otorgada.fecha_vigencia,
    CASE 
      WHEN (sga_equiv_otorgada.fecha_vigencia IS NULL OR sga_equiv_otorgada.fecha_vigencia >= CURRENT_DATE) THEN 1
      ELSE 0
    END as es_vigente,
    sga_equiv_otorgada.escala_nota,
    sga_equiv_otorgada.nota,
    sga_equiv_otorgada.resultado
 FROM 
    sga_equiv_tramite,
    sga_equiv_otorgada,
    sga_alumnos
 WHERE sga_equiv_otorgada.equivalencia_tramite = sga_equiv_tramite.equivalencia_tramite
 AND sga_alumnos.alumno = sga_equiv_tramite.alumno
 AND sga_equiv_tramite.estado = 'C' -- Cerrado
 AND sga_equiv_otorgada.alcance = 'P' -- Equivalencia Parcial
 AND sga_equiv_otorgada.rectificado = 'N' -- No Rectificado
 AND sga_equiv_otorgada.estado = 'A' -- Activo 
 AND sga_equiv_otorgada.resultado IN ('A','R') -- Aprobado/Reprobado
;

-- ++++++++++++++++++++++++++++++ Fin view vw_equiv_parciales_basica +++++++++++++++++++++++++++++++++++++++

GRANT SELECT ON vw_equiv_parciales_basica to public;
