DROP VIEW AD74A01V00;
DROP VIEW AD74A02V00;
DROP VIEW AD74A03V00;
DROP VIEW AD74A04V00;
DROP VIEW AD74A04V10;
DROP VIEW AD74A05V00;
DROP VIEW AD74A06V00;
DROP VIEW AD74A07V10;
DROP VIEW AD74A07V20;

-------------------------------------------
/* AD74A01V00 -  BANDEJA_ENTRADAS */
-------------------------------------------
PROMPT 'VISTA AD74A01V00';
CREATE OR REPLACE FORCE EDITIONABLE VIEW "AD74A"."AD74A01V00" ("IDTIPOENTRADA", "IDENTRADA", "ESTADO", "IDJMS", "PROCEDUREID", "FREGISTRO", "NUMREGISTRO", "NUMEXPEDIENTE", "IDEXPEDIENTE", "URGENCIA", "ERROREXPEDIENTE", "IDSOLICITANTE", "IDENTIFICADOR", "NOMBRE", "APELLIDO1", "APELLIDO2", "TIPO", "NUMREGORIGINAL", "FREGORIGINAL", "REMITENTE", "BLOQUEO", "USURESPONSABLE", "NUMDOCUMENTOS", "QRCODE", "MOTIVOOCULTAR", "OBSERVACIONES") AS 
  SELECT
    --T2.ID_TIPO_ENTRADA_00,
    -- [jbhg] en vez del tipo de entrada del expediente, se pasa a consultar el submission type de la accion telematica.
    -- Si tiene mÃ¡s de 3 caracteres, es presencial (r02d1869618978B004C6E5823C4C682F2C2B681A2E3F/r02dFE0673A510281D750C9F9758A73EE2A8DD217E5C)
    -- si no es telematica
    CASE
        WHEN LENGTH(T1.SUBMISIONTYPE_14) > 3 THEN '3'
        ELSE '1'
    END,
    T1.ID_ENTRADA_14, T1.ESTADO_14, T1.IDJMS_14, T1.PROCEDUREID_14, T1.F_REGISTRO_14, T1.NUM_REGISTRO_14,
T2.NUM_EXPEDIENTE_00, T2.ID_EXPEDIENTE_00, NVL(T2.URGENCIA_00,0), T2.ERROR_EXPEDIENTE_00, T3.ID_SOLICITANTE_01, T3.IDENTIFICADOR_01, T3.NOMBRE_01, T3.APELLIDO1_01, T3.APELLIDO2_01, '0' || T1.SUBMISIONTYPE_14,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL
FROM
  BANDEJA_TELEMATICA T1
  INNER JOIN EXPEDIENTES T2 ON (T1.FOLDERID_14 = T2.FOLDER_ID_00)
  LEFT JOIN SOLICITANTES T3 ON (
    T2.ID_SOLICITANTE_00 = T3.ID_SOLICITANTE_01
  )
  INNER JOIN ESTADOS T4 ON (
    T2.ID_ESTADO_00 = T4.ID_ESTADO_30
  )
WHERE
  1 = 1
UNION
SELECT '2', T1.ID_ENTRADA_12, T1.ESTADO_12, T1.IDJMS_12, T1.PROCEDUREID_12, T1.F_REGISTRO_12, T1.NUM_REGISTRO_12,
T1.NUM_EXPEDIENTE_12, T2.ID_EXPEDIENTE_00, NVL(T1.URGENCIA_12,0), NULL, NULL, NULL,
NULL, NULL, NULL, T1.TIPO_12,
NUM_REG_ORIGINAL_12, T1.F_REG_ORIGINAL_12, T1.REMITENTE_12, T1.BLOQUEO_12, T1.USU_RESPONSABLE_12,
  (
    SELECT
      COUNT(*)
    FROM
      DOCUMENTO_PAPEL0 T2
    WHERE
      T2.ID_ENTRADA_13 = T1.ID_ENTRADA_12
  ),
  T1.QRCODE_12, MOTIVO_OCULTAR_12, OBSERVACIONES_12
FROM
  BANDEJA_PAPEL0 T1 LEFT JOIN EXPEDIENTES T2 ON (T1.NUM_EXPEDIENTE_12 = T2.NUM_EXPEDIENTE_00)
WHERE
  1 = 1;

   COMMENT ON COLUMN "AD74A"."AD74A01V00"."IDTIPOENTRADA" IS '1: entrada telemática; 2: entrada de papel 0; 3: presencial cuidadanía';
   COMMENT ON COLUMN "AD74A"."AD74A01V00"."IDENTRADA" IS 'Identificador de la entrada';
   COMMENT ON COLUMN "AD74A"."AD74A01V00"."ESTADO" IS 'Estado de la entrada';
   COMMENT ON COLUMN "AD74A"."AD74A01V00"."IDJMS" IS 'Identificador del mensaje';
   COMMENT ON COLUMN "AD74A"."AD74A01V00"."PROCEDUREID" IS 'Id del procedimiento';
   COMMENT ON COLUMN "AD74A"."AD74A01V00"."FREGISTRO" IS 'Fecha de registro';
   COMMENT ON COLUMN "AD74A"."AD74A01V00"."NUMREGISTRO" IS 'Número de registro';
   COMMENT ON COLUMN "AD74A"."AD74A01V00"."NUMEXPEDIENTE" IS 'Número de expediente';
   COMMENT ON COLUMN "AD74A"."AD74A01V00"."IDEXPEDIENTE" IS 'Telematica: FK a la tabla de EXPEDIENTES';
   COMMENT ON COLUMN "AD74A"."AD74A01V00"."URGENCIA" IS 'Indica si la solicitud es urgente: 0-No urgente; 1-Urgente Solicitud 2- Urgente direccion 3- Urgente Técnico DSS';
   COMMENT ON COLUMN "AD74A"."AD74A01V00"."ERROREXPEDIENTE" IS 'Telematica: marca si hay errores en el expediente. 0 - Sin errores';
   COMMENT ON COLUMN "AD74A"."AD74A01V00"."IDSOLICITANTE" IS 'Telematica: FK a SOLICITANTES 01. Identificador del solicitante/beneficiario';
   COMMENT ON COLUMN "AD74A"."AD74A01V00"."IDENTIFICADOR" IS 'Telematica: documento de identificación';
   COMMENT ON COLUMN "AD74A"."AD74A01V00"."NOMBRE" IS 'Telematica: nombre del solicitante/beneficiario';
   COMMENT ON COLUMN "AD74A"."AD74A01V00"."APELLIDO1" IS 'Telematica: apellido 1';
   COMMENT ON COLUMN "AD74A"."AD74A01V00"."APELLIDO2" IS 'Telematica: apellido 2';
   COMMENT ON COLUMN "AD74A"."AD74A01V00"."TIPO" IS 'Tipo de aportación según PLATEA';
   COMMENT ON COLUMN "AD74A"."AD74A01V00"."NUMREGORIGINAL" IS 'Papel 0: número de registro original';
   COMMENT ON COLUMN "AD74A"."AD74A01V00"."FREGORIGINAL" IS 'Papel 0: fecha de registro original';
   COMMENT ON COLUMN "AD74A"."AD74A01V00"."REMITENTE" IS 'Papel 0: remitente';
   COMMENT ON COLUMN "AD74A"."AD74A01V00"."BLOQUEO" IS 'Papel 0: registro bloqueado por otro usuario 0 = NO, 1 = SI';
   COMMENT ON COLUMN "AD74A"."AD74A01V00"."USURESPONSABLE" IS 'Papel 0: usuario responsable de la tramitacion del expediente';
   COMMENT ON COLUMN "AD74A"."AD74A01V00"."NUMDOCUMENTOS" IS 'Papel 0: número de documentos de la entrada';
   COMMENT ON COLUMN "AD74A"."AD74A01V00"."QRCODE" IS 'Papel 0: código QR';
   COMMENT ON COLUMN "AD74A"."AD74A01V00"."MOTIVOOCULTAR" IS 'Motivo para ocultar la entrada de papel0';
   COMMENT ON COLUMN "AD74A"."AD74A01V00"."OBSERVACIONES" IS 'Observaciones de la entrada de papel0';
   COMMENT ON TABLE "AD74A"."AD74A01V00"  IS 'Bandeja de entrada común: telemática/presencial y papel0';


-------------------------------------------
/* AD74A02V00 - COPAGOS_CARGOS_MENSUALES  */
-------------------------------------------
PROMPT 'VISTA AD74A02V00';
CREATE OR REPLACE FORCE EDITIONABLE VIEW "AD74A"."AD74A02V00" (
    "IDMENSUALIDAD",
    "IDLIQUIDACION",
    "IDSOLICITANTE",
    "IDENTIFICADOR",
    "NOMBRE",
    "APELLIDO1",
    "APELLIDO2",
    "BENEFICIARIO",
    "CODORIGEN",
    "IDTIPOINGRESO",
    "MES",
    "ANYO",
    "EXONERACION",
    "IDTERRITORIO",
    "REFERENCIALIQ",
    "FCARGO",
    "IMPORTE",
    "ESTADOLIQ",
    "IDMOTIVO",
    "DESCRIPCIONES",
    "DESCRIPCIONEU",
    "INDCTAERRONEA",
    "FECMODIFIBAN"
) AS
    WITH cuentas_mod AS (
        SELECT
            tc.id_solicitante_05,
            tc.num_cuenta_05,
            MIN(tc.f_historico_05) AS f_historico_05
        FROM
            cuentas tc
        GROUP BY
            tc.id_solicitante_05,
            tc.num_cuenta_05
    )
    SELECT
        t1.id_mensualidad_89   idmensualidad,
        t2.id_liquidacion_00   idliquidacion,
        t1.id_solicitante_89   idsolicitante,
        t4.identificador_01    identificador,
        t4.nombre_01           nombre,
        t4.apellido1_01        apellido1,
        t4.apellido2_01        apellido2,
        t4.beneficiario_01     beneficiario,
        t2.cod_origen_00       codorigen,
        t2.id_tipo_ingreso_00  idtipoingreso,
        t1.mes_89              mes,
        t1.anyo_89             anyo,
        t1.exoneracion_89      exoneracion,
        t2.id_territorio_00    idterritorio,
        t2.referencia_liq_00   referencialiq,
        t2.f_cargo_00          fcargo,
        t2.importe_00          importe,
        t2.estado_liq_00       estadoliq,
        t5.id_mot_anu_cobro_37 idmotivo,
        t5.descripcion_es_37   descripciones,
        t5.descripcion_eu_37   descripcioneu,
        t5.ind_cta_erronea_37  indctaerronea,
        (
            CASE
                WHEN t2.f_emision_00 > cm.f_historico_05 THEN
                    NULL
                ELSE
                    cm.f_historico_05
            END
        )                      fecmodifiban
    FROM
             mensualidades t1
        JOIN (
            SELECT
                id_mensualidad_89,
                MAX(id_liquidacion_00) id_liquidacion_00
            FROM
                (
                    SELECT
                        t1.id_mensualidad_89,
                        tlm.id_liquidacion_00 AS id_liquidacion_00
                    FROM
                             mensualidades t1
                        JOIN ae01b.liquidaciones tlm ON ( tlm.id_liquidacion_00 = (
                            SELECT
                                MAX(id_liquidacion_00)
                            FROM
                                ae01b.liquidaciones tlm2
                            WHERE
                                ( to_char(t1.id_mensualidad_89) = tlm2.cod_origen_00
                                  AND tlm2.id_tipo_ingreso_00 = 2 )
                        ) )
                    UNION
                    SELECT
                        t1.id_mensualidad_89,
                        tlm.id_liquidacion_00 AS id_liquidacion_00
                    FROM
                             mensualidades t1
                        JOIN ae01b.liquidaciones tlm ON ( tlm.id_liquidacion_00 = (
                            SELECT
                                MAX(id_liquidacion_00)
                            FROM
                                ae01b.liquidaciones tlm2
                            WHERE
                                ( to_char(t1.grupo_impago_89) = tlm2.cod_origen_00
                                  AND tlm2.id_tipo_ingreso_00 = 1 )
                        ) )
                )
            GROUP BY
                id_mensualidad_89
        )                   tlmmax ON t1.id_mensualidad_89 = tlmmax.id_mensualidad_89
        JOIN ae01b.liquidaciones t2 ON tlmmax.id_liquidacion_00 = t2.id_liquidacion_00
        JOIN solicitantes        t4 ON t1.id_solicitante_89 = t4.id_solicitante_01
        LEFT JOIN cuentas_mod         cm ON cm.id_solicitante_05 = t1.id_solicitante_89
                                    AND cm.num_cuenta_05 = t2.iban_00
        LEFT JOIN ae01b.mot_anu_cobro t5 ON t2.motivo_anu_cobro_00 = t5.id_mot_anu_cobro_37;
		
   COMMENT ON TABLE "AD74A"."AD74A02V00"  IS 'Copagos - Cargos mensuales';


-------------------------------------------
/* AD74A03V00 - COPAGOS_SEGUIMIENTO  */
-------------------------------------------
PROMPT 'VISTA AD74A03V00';
CREATE OR REPLACE FORCE EDITIONABLE VIEW "AD74A"."AD74A03V00" ("ANYO", "MES", "IDTERRITORIO", "NUMBENEFICIARIOS", "IMPORTETOTAL") AS 
  SELECT
    t1.anyo_89 ANYO,
    t1.mes_89 MES,
    t2.id_territorio_00 IDTERRITORIO,
    --MAX(t2.id_liquidacion_00) IDLIQUIDACION,
    COUNT(DISTINCT t1.id_solicitante_89) NUMBENEFICIARIOS,
    SUM(t2.importe_00) IMPORTETOTAL
FROM
    mensualidades          t1,
    ae01b.liquidaciones    t2
WHERE
    TO_CHAR(t1.id_mensualidad_89) = t2.cod_origen_00
AND t2.id_liquidacion_00 = (SELECT MAX(t3.id_liquidacion_00) from ae01b.liquidaciones t3 
                            where t3.id_tipo_ingreso_00=2 and t3.cod_origen_00 = TO_CHAR(t1.id_mensualidad_89))
GROUP BY
    t1.anyo_89,
    t1.mes_89,
    t2.id_territorio_00
ORDER BY
    t1.anyo_89 desc,
    t1.mes_89 desc,
    t2.id_territorio_00 asc;


   COMMENT ON COLUMN "AD74A"."AD74A03V00"."ANYO" IS 'Año';
   COMMENT ON COLUMN "AD74A"."AD74A03V00"."MES" IS 'Mes (En letra)';
   COMMENT ON COLUMN "AD74A"."AD74A03V00"."IDTERRITORIO" IS 'Territorio según la codificación de SIPCA: 1 ? Álava/Araba, 2 ? Gipuzkoa, 3 ? Bizkaia';
   COMMENT ON COLUMN "AD74A"."AD74A03V00"."NUMBENEFICIARIOS" IS 'Numero de beneficiarios';
   COMMENT ON COLUMN "AD74A"."AD74A03V00"."IMPORTETOTAL" IS 'Importe total';
   COMMENT ON TABLE "AD74A"."AD74A03V00"  IS 'Copagos - Seguimiento';


-------------------------------------------
/* AD74A04V00 -  COPAGOS_GESTION_IMPAGOS */
-------------------------------------------
PROMPT 'VISTA AD74A04V00';
CREATE OR REPLACE FORCE EDITIONABLE VIEW "AD74A"."AD74A04V00" ("ID_SOLICITANTE", "TIPO_IDENTIFICADOR", "IDENTIFICADOR", "NOMBRE", "APELLIDO1", "APELLIDO2", "TERRITORIO", "F_ALTA", "F_BAJA", "TIPO_INGRESO", "CANTIDAD_MENSUALIDADES", "DEUDA") AS 
  SELECT
    t3.id_solicitante_01              AS id_solicitante,
    t3.tipo_identificador_01          AS tipo_identificador,
    t3.identificador_01               AS identificador,
    t3.nombre_01                      AS nombre,
    t3.apellido1_01                   AS apellido1,
    t3.apellido2_01                   AS apellido2,
    t4.id_provincia_06                AS territorio,
    t3.f_inicio_01                    AS f_alta,
    t3.f_baja_01                      AS f_baja,
    null as TIPO_INGRESO,
    COUNT(t1.id_mensualidad_89)     AS cantidad_mensualidades,
    SUM(ROUND(importes.IMPORTE_00/importes.DIVISOR,2))      AS deuda
FROM
mensualidades t1
    JOIN solicitantes           t3 ON t1.id_solicitante_89 = t3.id_solicitante_01
    JOIN direcciones            t4 ON t4.id_direccion_06 = t3.id_direccion_01
JOIN (SELECT id_mensualidad_89,IMPORTE_00,COD_ORIGEN_00,
SUM(1)
  OVER (PARTITION BY COD_ORIGEN_00) AS DIVISOR,estado_liq_00,f_limite_pago_00,id_tipo_ingreso_00
FROM
(
SELECT LIQMAX.id_mensualidad_89,LIQMAX.id_liquidacion_00,id_tipo_ingreso_00,COD_ORIGEN_00,importe_00,estado_liq_00,f_limite_pago_00
FROM (
SELECT t1.id_mensualidad_89,max(tlm.id_liquidacion_00)id_liquidacion_00
FROM mensualidades t1
    JOIN solicitantes           t3 ON t1.id_solicitante_89 = t3.id_solicitante_01
JOIN AE01B.LIQUIDACIONES tlm on (tlm.cod_origen_00 =TO_CHAR(t1.id_mensualidad_89) and tlm.id_tipo_ingreso_00  = 2 OR tlm.cod_origen_00 =TO_CHAR(t1.grupo_impago_89) and tlm.id_tipo_ingreso_00 = 1)
group by(t1.id_mensualidad_89)) LIQMAX,AE01B.LIQUIDACIONES LIQTIPOING
WHERE liqtipoing.id_liquidacion_00=LIQMAX.id_liquidacion_00))  IMPORTES ON t1.id_mensualidad_89=importes.id_mensualidad_89
where (t1.exoneracion_89 = 0 or t1.exoneracion_89 is null)
    AND ( ( t1.anyo_89 = to_number(to_char(t3.f_baja_01, 'YYYY'))
            AND t1.mes_89 <= to_number(to_char(t3.f_baja_01, 'MM')) )
          OR t1.anyo_89 < to_number(to_char(t3.f_baja_01, 'YYYY')) OR t3.f_baja_01 is null )
    AND ( IMPORTES.estado_liq_00 = 2
          OR ( IMPORTES.estado_liq_00 = 1
               AND IMPORTES.f_limite_pago_00 < sysdate AND IMPORTES.id_tipo_ingreso_00 = 1)
        )
GROUP BY
    t3.id_solicitante_01,
    t3.tipo_identificador_01,
    t3.identificador_01,
    t3.nombre_01,
    t3.apellido1_01,
    t3.apellido2_01,
    t4.id_provincia_06,
    t3.f_inicio_01,
    t3.f_baja_01;

COMMENT ON TABLE "AD74A"."AD74A04V00"  IS 'Copagos - Gestión de impagos';
   
   
-------------------------------------------
/* AD74A04V10 -  MENSUALIDADES_A_EXONERAR */
-------------------------------------------
PROMPT 'VISTA AD74A04V10';
CREATE OR REPLACE FORCE EDITIONABLE VIEW "AD74A"."AD74A04V10" ("ID_SOLICITANTE", "ID_MENSUALIDAD", "ID_LIQUIDACION", "ESTADO_LIQ") AS 
  SELECT
    t3.id_solicitante_01              AS id_solicitante,
    t1.id_mensualidad_89     AS id_mensualidad,
    id_liquidacion_00 AS id_liquidacion,
    importes.estado_liq_00    AS estado_liq
FROM
mensualidades t1
    JOIN solicitantes           t3 ON t1.id_solicitante_89 = t3.id_solicitante_01
    JOIN direcciones            t4 ON t4.id_direccion_06 = t3.id_direccion_01
JOIN (SELECT id_mensualidad_89,id_liquidacion_00,estado_liq_00,f_limite_pago_00,id_tipo_ingreso_00
FROM
(
SELECT LIQMAX.id_mensualidad_89,LIQMAX.id_liquidacion_00,id_tipo_ingreso_00,estado_liq_00,f_limite_pago_00
FROM (
SELECT t1.id_mensualidad_89,max(tlm.id_liquidacion_00)id_liquidacion_00
FROM mensualidades t1
    JOIN solicitantes           t3 ON t1.id_solicitante_89 = t3.id_solicitante_01
JOIN AE01B.LIQUIDACIONES tlm on (tlm.cod_origen_00 =TO_CHAR(t1.id_mensualidad_89) and tlm.id_tipo_ingreso_00  = 2 OR tlm.cod_origen_00 =TO_CHAR(t1.grupo_impago_89) and tlm.id_tipo_ingreso_00 = 1)
group by(t1.id_mensualidad_89)) LIQMAX,AE01B.LIQUIDACIONES LIQTIPOING
WHERE liqtipoing.id_liquidacion_00=LIQMAX.id_liquidacion_00))  IMPORTES ON t1.id_mensualidad_89=importes.id_mensualidad_89
where (t1.exoneracion_89 = 0 or t1.exoneracion_89 is null)
    AND ( ( t1.anyo_89 = to_number(to_char(t3.f_baja_01, 'YYYY'))
            AND t1.mes_89 <= to_number(to_char(t3.f_baja_01, 'MM')) )
          OR t1.anyo_89 < to_number(to_char(t3.f_baja_01, 'YYYY')) OR t3.f_baja_01 is null )
    AND ( IMPORTES.estado_liq_00 = 2
          OR ( IMPORTES.estado_liq_00 = 1
               AND IMPORTES.f_limite_pago_00 < sysdate AND IMPORTES.id_tipo_ingreso_00 = 1)
        );

COMMENT ON TABLE "AD74A"."AD74A04V10"  IS 'Mensualidades a exonerar';
   
-------------------------------------------
/* AD74A05V00 -  COBROS */
-------------------------------------------
PROMPT 'VISTA AD74A05V00';
CREATE OR REPLACE FORCE EDITIONABLE VIEW "AD74A"."AD74A05V00" (
    "IDLIQUIDACION",
    "NUMLIQUIDACION",
    "CONCEPTO",
    "FECEMISION",
    "IMPORTE",
    "ESTADO",
    "IDSOLICITANTE",
    "IDMENSUALIDAD",
    "GRUPO_IMPAGO_89",
    "MOTANULACIONES",
    "MOTANULACIONEU"
) AS
    SELECT
        tlmtot.id_liquidacion_00 idliquidacion,
        tlmtot.referencia_liq_00 numliquidacion,
        tlmtot.concepto_00       concepto,
        tlmtot.f_emision_00      fecemision,
        tlmtot.importe_00        importe,
        tlmtot.estado_liq_00     estado,
        tm.id_solicitante_89     idsolicitante,
        tm.id_mensualidad_89     idmensualidad,
        tm.grupo_impago_89,
        (
            CASE
                WHEN tlmtot.ind_domic_00 = 1
                     AND tlmtot.motivo_anu_cobro_00 IS NOT NULL THEN
                    (
                        SELECT
                            tmc.descripcion_es_37
                        FROM
                            ae01b.mot_anu_cobro tmc
                        WHERE
                            tmc.id_mot_anu_cobro_37 = tlmtot.motivo_anu_cobro_00
                    )
                ELSE
                    (
                        CASE
                            WHEN (
                                SELECT
                                    to_char(top.tipo_ope_02)
                                FROM
                                    ae01b.operaciones top
                                WHERE
                                        top.id_liquidacion_02 = tlmtot.id_liquidacion_00
                                    AND top.estado_ope_02 <> 2
                                ORDER BY
                                    top.id_operacion_02 DESC
                                FETCH FIRST 1 ROWS ONLY
                            ) = 1 THEN
                                (
                                    SELECT
                                        tma.descripcion_es_32
                                    FROM
                                        ae01b.motivos_anul_dev tma,
                                        ae01b.operaciones      top
                                    WHERE
                                            tma.id_motivo_32 = top.id_motivo_02
                                        AND top.id_liquidacion_02 = tlmtot.id_liquidacion_00
                                        AND top.estado_ope_02 <> 2
                                    ORDER BY
                                        top.id_operacion_02 DESC
                                    FETCH FIRST 1 ROW ONLY
                                )
                            ELSE
                                (
                                    CASE
                                        WHEN (
                                            SELECT
                                                to_char(top.tipo_ope_02)
                                            FROM
                                                ae01b.operaciones top
                                            WHERE
                                                    top.id_liquidacion_02 = tlmtot.id_liquidacion_00
                                                AND top.estado_ope_02 <> 2
                                            ORDER BY
                                                top.id_operacion_02 DESC
                                            FETCH FIRST 1 ROWS ONLY
                                        ) = 2 THEN
                                            'Devolución de ingreso'
                                        WHEN (
                                            SELECT
                                                to_char(top.tipo_ope_02)
                                            FROM
                                                ae01b.operaciones top
                                            WHERE
                                                    top.id_liquidacion_02 = tlmtot.id_liquidacion_00
                                                AND top.estado_ope_02 <> 2
                                            ORDER BY
                                                top.id_operacion_02 DESC
                                            FETCH FIRST 1 ROWS ONLY
                                        ) NOT IN ( 1, 2 ) THEN
                                            ''
                                    END
                                )
                        END
                    )
            END
        )                        motanulaciones,
        (
            CASE
                WHEN tlmtot.ind_domic_00 = 1
                     AND tlmtot.motivo_anu_cobro_00 IS NOT NULL THEN
                    (
                        SELECT
                            tmc.descripcion_eu_37
                        FROM
                            ae01b.mot_anu_cobro tmc
                        WHERE
                            tmc.id_mot_anu_cobro_37 = tlmtot.motivo_anu_cobro_00
                    )
                ELSE
                    (
                        CASE
                            WHEN (
                                SELECT
                                    to_char(top.tipo_ope_02)
                                FROM
                                    ae01b.operaciones top
                                WHERE
                                        top.id_liquidacion_02 = tlmtot.id_liquidacion_00
                                    AND top.estado_ope_02 <> 2
                                ORDER BY
                                    top.id_operacion_02 DESC
                                FETCH FIRST 1 ROWS ONLY
                            ) = 1 THEN
                                (
                                    SELECT
                                        tma.descripcion_eu_32
                                    FROM
                                        ae01b.motivos_anul_dev tma,
                                        ae01b.operaciones      top
                                    WHERE
                                            tma.id_motivo_32 = top.id_motivo_02
                                        AND top.id_liquidacion_02 = tlmtot.id_liquidacion_00
                                        AND top.estado_ope_02 <> 2
                                    ORDER BY
                                        top.id_operacion_02 DESC
                                    FETCH FIRST 1 ROW ONLY
                                )
                            ELSE
                                (
                                    CASE
                                        WHEN (
                                            SELECT
                                                to_char(top.tipo_ope_02)
                                            FROM
                                                ae01b.operaciones top
                                            WHERE
                                                    top.id_liquidacion_02 = tlmtot.id_liquidacion_00
                                                AND top.estado_ope_02 <> 2
                                            ORDER BY
                                                top.id_operacion_02 DESC
                                            FETCH FIRST 1 ROWS ONLY
                                        ) = 2 THEN
                                            'Diru-sarrera itzultzea'
                                        WHEN (
                                            SELECT
                                                to_char(top.tipo_ope_02)
                                            FROM
                                                ae01b.operaciones top
                                            WHERE
                                                    top.id_liquidacion_02 = tlmtot.id_liquidacion_00
                                                AND top.estado_ope_02 <> 2
                                            ORDER BY
                                                top.id_operacion_02 DESC
                                            FETCH FIRST 1 ROWS ONLY
                                        ) NOT IN ( 1, 2 ) THEN
                                            ''
                                    END
                                )
                        END
                    )
            END
        )                        motanulacioneu
    FROM
             mensualidades tm
        JOIN (
            SELECT
                id_mensualidad_89,
                id_liquidacion_00,
                referencia_liq_00,
                concepto_00,
                f_emision_00,
                importe_00,
                estado_liq_00,
                ind_domic_00,
                motivo_anu_cobro_00
            FROM
                     mensualidades t1
                JOIN ae01b.liquidaciones tlm ON ( to_char(t1.id_mensualidad_89) = tlm.cod_origen_00
                                                  AND tlm.id_tipo_ingreso_00 = 2 )
            UNION
            SELECT
                id_mensualidad_89,
                id_liquidacion_00,
                referencia_liq_00,
                concepto_00,
                f_emision_00,
                importe_00,
                estado_liq_00,
                ind_domic_00,
                motivo_anu_cobro_00
            FROM
                     mensualidades t1
                JOIN ae01b.liquidaciones tlm ON ( to_char(t1.grupo_impago_89) = tlm.cod_origen_00
                                                  AND tlm.id_tipo_ingreso_00 = 1 )
        ) tlmtot ON tm.id_mensualidad_89 = tlmtot.id_mensualidad_89;


   COMMENT ON COLUMN "AD74A"."AD74A05V00"."IDLIQUIDACION" IS 'Identificador único de liquidaciones';
   COMMENT ON COLUMN "AD74A"."AD74A05V00"."NUMLIQUIDACION" IS 'Nº de liquidación.';
   COMMENT ON COLUMN "AD74A"."AD74A05V00"."CONCEPTO" IS 'Concepto u observaciones';
   COMMENT ON COLUMN "AD74A"."AD74A05V00"."FECEMISION" IS 'Fecha de emisión';
   COMMENT ON COLUMN "AD74A"."AD74A05V00"."IMPORTE" IS 'Importe total de la liquidación (suma conceptos)';
   COMMENT ON COLUMN "AD74A"."AD74A05V00"."ESTADO" IS 'Estado de la liquidación:1-Pendiente de cobro,2-Anulada,3-Cobro provisional,4-Cobro definitivo,5-Vía de apremio';
   COMMENT ON COLUMN "AD74A"."AD74A05V00"."IDSOLICITANTE" IS 'Identificador interno del solicitante';
   COMMENT ON COLUMN "AD74A"."AD74A05V00"."MOTANULACIONES" IS 'Motivo de anulación Castellano';
   COMMENT ON COLUMN "AD74A"."AD74A05V00"."MOTANULACIONEU" IS 'Motivo de anulación Euskera';
   COMMENT ON COLUMN "AD74A"."AD74A05V00"."IDMENSUALIDAD" IS 'Identificador de la mensualidad';
   COMMENT ON TABLE "AD74A"."AD74A05V00"  IS 'Cobros';

-------------------------------------------
/* AD74A06V00 -  CUENTAS_ERRONEAS */
-------------------------------------------
PROMPT 'VISTA AD74A06V00';  
CREATE OR REPLACE FORCE EDITIONABLE VIEW "AD74A"."AD74A06V00" ("IDENTIFICADOR", "IDSOLICITANTE", "NOMBRE", "APELLIDO1", "APELLIDO2", "TERRITORIO", "IBANERRONEO", "IDCUENTAACTUALIZADA", "IBANACTUALIZADO", "ESTADO", "FACTUALIZACION", "ERRORES", "ERROREU") AS 
SELECT
    t3.identificador_01                                                                              identificador,
    t1.id_solicitante_89                                                                             idsolicitante,
    t3.nombre_01                                                                                     nombre,
    t3.apellido1_01                                                                                  apellido1,
    t3.apellido2_01                                                                                  apellido2,
    t4.id_provincia_06                                                                               territorio,
    t2.iban_00                                                                                       ibanerroneo,
    t5.id_cuenta_05                                                                                  idcuentaactualizada,
    decode(t2.iban_00, t5.num_cuenta_05, NULL, t5.num_cuenta_05)                                     ibanactualizado,
    decode(t2.iban_00, t5.num_cuenta_05, 1, 0)                                                       estado,
    to_date(decode(t2.iban_00, t5.num_cuenta_05, NULL, t5.f_alta_05), 'DD/MM/RRRR')                  factualizacion,
    t7.descripcion_es_37                                                                             errores,
    t7.descripcion_eu_37                                                                             erroreu
FROM
    mensualidades          t1,
    ae01b.liquidaciones    t2,
    solicitantes           t3,
    direcciones            t4,
    cuentas                t5,
    ae01b.mot_anu_cobro    t7
WHERE
        1 = 1
    AND TO_CHAR(t1.id_mensualidad_89) = t2.cod_origen_00
    AND t1.id_solicitante_89 = t3.id_solicitante_01
    AND t3.id_solicitante_01 = t5.id_solicitante_05
    and t5.id_cuenta_05 = t3.id_cuenta_01
    AND t7.id_mot_anu_cobro_37 = t2.motivo_anu_cobro_00
    AND t4.id_direccion_06 = t3.id_direccion_01
    AND t2.id_liquidacion_00 = (
        SELECT MAX(id_liquidacion_00)
        FROM
            ae01b.liquidaciones tl2, mensualidades tm2
        WHERE 1=1
            AND tl2.id_tipo_ingreso_00 = 2
            AND tl2.cod_origen_00 = TO_CHAR(tm2.id_mensualidad_89)
            AND tm2.id_solicitante_89 = t3.id_solicitante_01)
    AND t2.id_tipo_ingreso_00 = 2
    AND t2.ind_domic_00 = 1
    AND t2.estado_liq_00 = 2
    AND t7.ind_cta_erronea_37 = 1
    AND t2.motivo_anu_cobro_00 IS NOT NULL
    AND t3.f_baja_01 is null;
   COMMENT ON COLUMN "AD74A"."AD74A06V00"."IDENTIFICADOR" IS 'Identificador del beneficiario';
   COMMENT ON COLUMN "AD74A"."AD74A06V00"."IDSOLICITANTE" IS 'ID del beneficiario (PK en la tabla SOLICITANTES)';
   COMMENT ON COLUMN "AD74A"."AD74A06V00"."NOMBRE" IS 'Nombre del beneficiario';
   COMMENT ON COLUMN "AD74A"."AD74A06V00"."APELLIDO1" IS 'Apellido1 del beneficiario';
   COMMENT ON COLUMN "AD74A"."AD74A06V00"."APELLIDO2" IS 'Apellido 2 del beneficiario';
   COMMENT ON COLUMN "AD74A"."AD74A06V00"."TERRITORIO" IS 'Territorio del beneficiario';
   COMMENT ON COLUMN "AD74A"."AD74A06V00"."IBANERRONEO" IS 'IBAN erróneo. IBAN anterior a la liq. no historico o histórico posterior';
   COMMENT ON COLUMN "AD74A"."AD74A06V00"."IDCUENTAACTUALIZADA" IS 'ID de la cuenta actualizada (PK de la tabla CUENTAS)';
   COMMENT ON COLUMN "AD74A"."AD74A06V00"."IBANACTUALIZADO" IS 'IBAN actualizado. IBAN actualizado después de liq. no historico';
   COMMENT ON COLUMN "AD74A"."AD74A06V00"."ESTADO" IS 'Indica si se ha actualizado el IBAN posteriormente a la fecha de la liq. 0: no; 1: sí';
   COMMENT ON COLUMN "AD74A"."AD74A06V00"."FACTUALIZACION" IS 'Fecha de actualización. La fecha del histórico en la que se actualizó';
   COMMENT ON COLUMN "AD74A"."AD74A06V00"."ERRORES" IS 'Descripción del error en castellano';
   COMMENT ON COLUMN "AD74A"."AD74A06V00"."ERROREU" IS 'Descripción del error en euskera';
   COMMENT ON TABLE "AD74A"."AD74A06V00"  IS 'Cuentas erróneas';
   

-------------------------------------------
/* AD74A07V00 -   */
-------------------------------------------  

  CREATE OR REPLACE FORCE EDITIONABLE VIEW "AD74A"."AD74A07V00" ("ID_EXPEDIENTE_00", "OIDDOKUSI_18", "OIDDOKUSI_18_MAX", "NOMBRE_DOC_18") AS 
  SELECT id_expediente_00,OIDDOKUSI_18, MAX(OIDDOKUSI_18)OVER (PARTITION BY id_expediente_00) AS OIDDOKUSI_18_max, NOMBRE_DOC_18
FROM(SELECT DOCS.id_expediente_00,
DT.OIDDOKUSI_18,
DT.NOMBRE_DOC_18
FROM DOCUMENTOS_TAREA DT,(
SELECT
--EX
ex.id_expediente_00 id_expediente_00,
--DT
MAX(dt.id_doc_tarea_18) id_doc_tarea_18,
dt.id_tipo_doc_18 id_tipo_doc_18
FROM DOCUMENTOS_TAREA DT,TAREAS_TRAMITE TT, TRAMITES_EXPEDIENTE TE, EXPEDIENTES EX
WHERE 1=1
AND tt.id_tarea_tram_11=dt.id_tarea_tram_18
AND TE.ID_TRAMITE_EXP_10 = TT.ID_TRAMITE_EXP_11
AND ex.id_expediente_00=te.id_expediente_10
AND TE.ID_ESTADO_10=2--TAREA FINALIZADA
AND OIDDOKUSI_18 IS NOT NULL
AND dt.id_tipo_doc_18 =20--INFORME MEDICO
GROUP BY ex.id_expediente_00,dt.id_tipo_doc_18) DOCS
WHERE DT.id_doc_tarea_18=DOCS.id_doc_tarea_18
UNION 
SELECT de.id_expediente_13, de.oid_documento_13, de.nombre_doc_13 || '.' || de.extension_13
FROM AD74A12T00 BE INNER JOIN AD74A13T00 DE ON (de.id_entrada_13 = BE.ID_ENTRADA_12)
WHERE de.id_tipo_doc_13 = 20);



-------------------------------------------
/* AD74A07V10 -  DOCUMENTOS_MEDICOS */
-------------------------------------------   
PROMPT 'VISTA AD74A07V10'; 
  CREATE OR REPLACE FORCE EDITIONABLE VIEW "AD74A"."AD74A07V10" ("ID_EXPEDIENTE_00", "OIDDOKUSI_18", "NOMBRE_DOC_18") AS 
  SELECT id_expediente_00,
OIDDOKUSI_18,
NOMBRE_DOC_18
FROM AD74A07V00 WHERE OIDDOKUSI_18=OIDDOKUSI_18_MAX;

-------------------------------------------
/* AD74A07V20 -  DOCUMENTOS_INF_SOCIAL */
-------------------------------------------   
PROMPT 'VISTA AD74A07V20'; 
CREATE OR REPLACE FORCE EDITIONABLE VIEW "AD74A"."AD74A07V20" ("ID_EXPEDIENTE_00", "OIDDOKUSI_18", "NOMBRE_DOC_18", "F_INFORME_02", "SOLA_02", "ESTA_SOLA_MANANA_02", "ESTA_SOLA_TARDE_02", "ESTA_SOLA_NOCHE_02", "RELACION_ENTORNO_02", "FAMILIAR_FALLECIDO_02", "VINCULO_FALLECIDO_02", "VISITAS_FAMILIA_02", "VISITAS_AMIGOS_02", "FRECUENCIA_SALIDAS_02", "PERIODO_SIN_VISITAS_02", "TIEMPO_SIN_VISITAS_02", "OBSERVACIONES_02") AS 
  SELECT DOCS.id_expediente_00,
DT.OIDDOKUSI_18,
DT.NOMBRE_DOC_18,
INF_SOC.F_INFORME_02,
INF_SOC.SOLA_02, 
INF_SOC.ESTA_SOLA_MANANA_02, 
INF_SOC.ESTA_SOLA_TARDE_02, 
INF_SOC.ESTA_SOLA_NOCHE_02, 
INF_SOC.RELACION_ENTORNO_02, 
INF_SOC.FAMILIAR_FALLECIDO_02, 
INF_SOC.VINCULO_FALLECIDO_02,
INF_SOC.VISITAS_FAMILIA_02, 
INF_SOC.VISITAS_AMIGOS_02, 
INF_SOC.FRECUENCIA_SALIDAS_02, 
INF_SOC.PERIODO_SIN_VISITAS_02, 
INF_SOC.TIEMPO_SIN_VISITAS_02, 
INF_SOC.OBSERVACIONES_02
FROM DOCUMENTOS_TAREA DT,INFORMES INF,INFORME_SOCIAL INF_SOC
,(
SELECT 
--EX
ex.id_expediente_00 id_expediente_00,
--DT
MAX(dt.id_doc_tarea_18) id_doc_tarea_18,
dt.id_tipo_doc_18 id_tipo_doc_18
FROM DOCUMENTOS_TAREA DT,TAREAS_TRAMITE TT, TRAMITES_EXPEDIENTE TE, EXPEDIENTES EX
WHERE 1=1
AND tt.id_tarea_tram_11=dt.id_tarea_tram_18
AND TE.ID_TRAMITE_EXP_10 = TT.ID_TRAMITE_EXP_11
AND ex.id_expediente_00=te.id_expediente_10
AND TE.ID_ESTADO_10=2--TAREA FINALIZADA
AND OIDDOKUSI_18 IS NOT NULL
AND dt.id_tipo_doc_18 =3--INFORME SOCIAL
GROUP BY ex.id_expediente_00,dt.id_tipo_doc_18) DOCS
WHERE DT.id_doc_tarea_18=DOCS.id_doc_tarea_18
AND inf.id_expediente_16(+)=DOCS.id_expediente_00
AND inf_soc.id_informe_02(+)=inf.id_informe_16;

	 
COMMIT;