-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- View: vw_actas
-- Version: 3.0.0
-- Recupera los datos de un acta y sus rectificativas.
--  * Solo el estado final del detalle del acta. 
--  * Muestra todos los registros que NO esten rectificados, en cualquier estado (Activo, Invalido, Baja)
--  * Actas Cerradas. Se debe consultar por el campo "id_acta_original"
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

-- DROP VIEW IF EXISTS vw_actas;
CREATE OR REPLACE VIEW vw_actas 
(
 id_acta,
 id_acta_original,
 nro_acta,
 tipo_acta,
 origen,
 evaluacion,
 comision,
 llamado_mesa,
 alumno,
 plan_version,
 instancia,
 fecha,
 fecha_vigencia,
 folio,
 renglon,
 escala_nota,
 nota,
 resultado,
 cond_regularidad,
 estado,
 pct_asistencia,
 observaciones,
 nota_descripcion,
 resultado_descripcion
 )
AS 
 -- Actas Original
 SELECT 
    sga_actas.id_acta,
    sga_actas.id_acta as id_acta_original,
    sga_actas.nro_acta,
    sga_actas.tipo_acta,
    sga_actas.origen,
    sga_actas.evaluacion,
    sga_actas.comision,
    sga_actas.llamado_mesa,
    sga_actas_detalle.alumno,
    sga_actas_detalle.plan_version,
    sga_actas_detalle.instancia,
    sga_actas_detalle.fecha,
    sga_actas_detalle.fecha_vigencia,
    sga_actas_detalle.folio,
    sga_actas_detalle.renglon,
    sga_actas_detalle.escala_nota,
    sga_actas_detalle.nota,
    sga_actas_detalle.resultado,
    sga_actas_detalle.cond_regularidad,
    sga_actas_detalle.estado,
    sga_actas_detalle.pct_asistencia,
    sga_actas_detalle.observaciones,
    sga_escalas_notas_det.descripcion,
    sga_instancias_resultado.descripcion
   
 FROM 
    sga_actas,
    sga_actas_detalle
      LEFT JOIN sga_escalas_notas_det ON sga_actas_detalle.escala_nota = sga_escalas_notas_det.escala_nota  AND
                                        sga_actas_detalle.nota = sga_escalas_notas_det.nota,
    sga_instancias_resultado
      
 WHERE sga_actas_detalle.id_acta = sga_actas.id_acta
 AND sga_actas.tipo_acta = 'N'
 AND sga_actas.estado = 'C'
 AND sga_actas_detalle.rectificado = 'N'
 AND sga_instancias_resultado.instancia = sga_actas_detalle.instancia
 AND sga_instancias_resultado.resultado = sga_actas_detalle.resultado

UNION ALL
 -- Actas Rectificativas
 SELECT 
    sga_actas.id_acta,
    sga_actas.acta_referencia as id_acta_original,
    sga_actas.nro_acta,
    sga_actas.tipo_acta,
    sga_actas.origen,
    sga_actas.evaluacion,
    sga_actas.comision,
    sga_actas.llamado_mesa,
    sga_actas_detalle.alumno,
    sga_actas_detalle.plan_version,
    sga_actas_detalle.instancia,
    sga_actas_detalle.fecha,
    sga_actas_detalle.fecha_vigencia,
    sga_actas_detalle.folio,
    sga_actas_detalle.renglon,
    sga_actas_detalle.escala_nota,
    sga_actas_detalle.nota,
    sga_actas_detalle.resultado,
    sga_actas_detalle.cond_regularidad,
    sga_actas_detalle.estado,
    sga_actas_detalle.pct_asistencia,
    sga_actas_detalle.observaciones,
    sga_escalas_notas_det.descripcion,
    sga_instancias_resultado.descripcion
   
 FROM 
    sga_actas,
    sga_actas_detalle
      LEFT JOIN sga_escalas_notas_det ON (sga_actas_detalle.escala_nota = sga_escalas_notas_det.escala_nota  AND
                                          sga_actas_detalle.nota = sga_escalas_notas_det.nota),
    sga_instancias_resultado
      
 WHERE sga_actas_detalle.id_acta = sga_actas.id_acta
 AND sga_actas.tipo_acta = 'R'
 AND sga_actas.estado = 'C'
 AND sga_actas_detalle.rectificado = 'N'
 AND sga_instancias_resultado.instancia = sga_actas_detalle.instancia
 AND sga_instancias_resultado.resultado = sga_actas_detalle.resultado
;

 -- ++++++++++++++++++++++++++++++ Fin view vw_actas +++++++++++++++++++++++++++++++++++++++

GRANT SELECT ON vw_actas to public;
 