-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- View: vw_equiv_parciales
-- 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) : esta nulo
--    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;
CREATE OR REPLACE VIEW vw_equiv_parciales
(
 elemento,
 id_acta,
 id_acta_original,
 nro_acta,
 tipo_acta,
 origen,
 tipo,
 evaluacion,
 comision,
 equivalencia_tramite,
 equivalencia_tramite_original,
 tipo_tramite,
 nro_resolucion,
 equivalencia,
 alumno,
 plan_version,
 instancia,
 fecha,
 fecha_vigencia,
 es_vigente,
 folio,
 renglon,
 escala_nota,
 nota,
 resultado,
 cond_regularidad,
 estado,
 pct_asistencia,
 observaciones,
 nota_descripcion,
 resultado_descripcion
 )
AS 
 SELECT 
    sga_equiv_otorgada.elemento,
    cast(null as integer) as id_acta,
    cast(null as integer) as id_acta_original,
    cast(null as varchar(30)) as  nro_acta,
    cast(null as char(1)) as tipo_acta,
    cast(null as char(1)) as origen,
    cast('Equivalencia Parcial' as varchar(30)) as tipo,
    cast(null as integer) as evaluacion,
    cast(null as integer) as comision,
    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_tramite.documento as nro_resolucion,
    sga_equiv_otorgada.equivalencia,
    sga_equiv_tramite.alumno,
    sga_equiv_tramite.plan_version,
    cast(null as integer) as instancia,
    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,
    cast(null as smallint) as folio,
    cast(null as smallint) as renglon,
    sga_equiv_otorgada.escala_nota,
    sga_equiv_otorgada.nota,
    sga_equiv_otorgada.resultado,
    cast(null as integer) as cond_regularidad,
    sga_equiv_otorgada.estado,
    cast(null as numeric(5,2)) as pct_asistencia,
    sga_equiv_otorgada.temas_a_rendir as observaciones,
    sga_escalas_notas_det.descripcion,
    sga_escalas_notas_resultado.descripcion
 FROM 
    sga_equiv_tramite,
    sga_equiv_otorgada
      LEFT JOIN sga_escalas_notas_det ON (sga_equiv_otorgada.escala_nota = sga_escalas_notas_det.escala_nota  AND
                                          sga_equiv_otorgada.nota = sga_escalas_notas_det.nota),
    sga_escalas_notas_resultado
 WHERE sga_equiv_otorgada.equivalencia_tramite = sga_equiv_tramite.equivalencia_tramite
 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
 AND sga_escalas_notas_resultado.resultado = sga_equiv_otorgada.resultado
;

-- ++++++++++++++++++++++++++++++ Fin view vw_equiv_parciales +++++++++++++++++++++++++++++++++++++++

GRANT SELECT ON vw_equiv_parciales to public;

