All Downloads are FREE. Search and download functionalities are using the official Maven repository.

expsigladb.View.V_CONTRATTI_TOTALI.sql Maven / Gradle / Ivy

There is a newer version: 6.6.11
Show newest version
--------------------------------------------------------
--  DDL for View V_CONTRATTI_TOTALI
--------------------------------------------------------

CREATE OR REPLACE FORCE VIEW v_contratti_totali (tipo,
                                                 terzo,
                                                 esercizio_contratto,
                                                 pg_contratto,
                                                 stato_contratto,
                                                 oggetto,
                                                 data_inizio,
                                                 data_fine,
                                                 tipo_contratto,
                                                 unita_organizzativa,
                                                 pg_progetto_contratto,
                                                 totale_entrate_contratto,
                                                 totale_spese_contratto,
                                                 totale_entrate,
                                                 totale_spese,
                                                 liquidato_entrate,
                                                 liquidato_spese,
                                                 totale_reversali,
                                                 totale_mandati
                                                )
AS
   SELECT   a.tipo, a.cd_terzo, a.esercizio_contratto, a.pg_contratto,
            a.stato_contratto, b.oggetto, b.dt_inizio_validita,
            b.dt_fine_validita, b.cd_tipo_contratto, a.cd_unita_organizzativa,
            b.pg_progetto, b.im_contratto_attivo, b.im_contratto_passivo,
            SUM (a.totale_entrate), SUM (a.totale_spese),
            SUM (a.liquidato_entrate), SUM (a.liquidato_spese),
            SUM (a.totale_reversale), SUM (a.totale_mandati)
       FROM (SELECT 'ETR' tipo, accertamento.cd_terzo,
                    accertamento.esercizio_contratto,
                    accertamento.pg_contratto, accertamento.stato_contratto,
                    accertamento.cd_uo_origine cd_unita_organizzativa,
                    accertamento_scad_voce.im_voce totale_entrate,
                    0 totale_spese, 0 liquidato_entrate, 0 liquidato_spese,
                    0 totale_reversale, 0 totale_mandati
               FROM accertamento, accertamento_scad_voce
              WHERE accertamento.esercizio_contratto IS NOT NULL
                AND accertamento.pg_contratto IS NOT NULL
                AND accertamento.cd_cds = accertamento_scad_voce.cd_cds
                AND accertamento.esercizio = accertamento_scad_voce.esercizio
                AND accertamento.esercizio_originale =
                                    accertamento_scad_voce.esercizio_originale
                AND accertamento.pg_accertamento =
                                        accertamento_scad_voce.pg_accertamento
                AND (   accertamento.esercizio_originale =
                                                        accertamento.esercizio
                     OR (    accertamento.cd_tipo_documento_cont = 'ACR_RES'
                         AND NOT EXISTS (
                                SELECT 1
                                  FROM accertamento acc
                                 WHERE accertamento.cd_cds = acc.cd_cds
                                   AND accertamento.esercizio > acc.esercizio
                                   AND accertamento.esercizio_originale =
                                                       acc.esercizio_originale
                                   AND accertamento.pg_accertamento =
                                                           acc.pg_accertamento
                                   AND accertamento.esercizio_contratto =
                                                       acc.esercizio_contratto
                                   AND accertamento.stato_contratto =
                                                           acc.stato_contratto
                                   AND accertamento.pg_contratto =
                                                              acc.pg_contratto)
                        )
                    )
             UNION ALL
             SELECT 'ETR' tipo, accertamento.cd_terzo,
                    accertamento.esercizio_contratto,
                    accertamento.pg_contratto, accertamento.stato_contratto,
                    accertamento.cd_uo_origine,
                    accertamento_mod_voce.im_modifica totale_entrate,
                    0 totale_spese, 0 liquidato_entrate, 0 liquidato_spese,
                    0 totale_reversale, 0 totale_mandati
               FROM accertamento, accertamento_modifica,
                    accertamento_mod_voce
              WHERE accertamento.esercizio_contratto IS NOT NULL
                AND accertamento.pg_contratto IS NOT NULL
                AND accertamento.cd_cds = accertamento_modifica.cd_cds
                AND accertamento.esercizio = accertamento_modifica.esercizio
                AND accertamento.esercizio_originale =
                                     accertamento_modifica.esercizio_originale
                AND accertamento.pg_accertamento =
                                         accertamento_modifica.pg_accertamento
                AND accertamento_modifica.cd_cds =
                                                  accertamento_mod_voce.cd_cds
                AND accertamento_modifica.esercizio =
                                               accertamento_mod_voce.esercizio
                AND accertamento_modifica.pg_modifica =
                                             accertamento_mod_voce.pg_modifica
                AND EXISTS (
                       SELECT 1
                         FROM accertamento acc
                        WHERE accertamento.cd_cds = acc.cd_cds
                          AND accertamento.esercizio_originale =
                                                       acc.esercizio_originale
                          AND accertamento.pg_accertamento =
                                                           acc.pg_accertamento
                          AND accertamento.esercizio_contratto =
                                                       acc.esercizio_contratto
                          AND accertamento.stato_contratto =
                                                           acc.stato_contratto
                          AND accertamento.pg_contratto = acc.pg_contratto
                          AND acc.esercizio = acc.esercizio_originale)
             UNION ALL
             SELECT 'ETR' tipo, accertamento.cd_terzo,
                    accertamento.esercizio_contratto,
                    accertamento.pg_contratto, accertamento.stato_contratto,
                    accertamento.cd_uo_origine, 0 totale_entrate,
                    0 totale_spese, 0 liquidato_entrate, 0 liquidato_spese,
                    DECODE
                       (NVL (accertamento_scadenzario.im_scadenza, 0),
                        0, 0,
                          (  accertamento_scad_voce.im_voce
                           / accertamento_scadenzario.im_scadenza
                          )
                        * riga.im_reversale_riga
                       ) totale_reversale,
                    0 totale_mandati
               FROM accertamento,
                    accertamento_scadenzario,
                    accertamento_scad_voce,
                    reversale_riga riga
              WHERE accertamento.esercizio_contratto IS NOT NULL
                AND accertamento.stato_contratto IS NOT NULL
                AND accertamento.pg_contratto IS NOT NULL
                AND accertamento.cd_cds = accertamento_scadenzario.cd_cds
                AND accertamento.esercizio =
                                            accertamento_scadenzario.esercizio
                AND accertamento.esercizio_originale =
                                  accertamento_scadenzario.esercizio_originale
                AND accertamento.pg_accertamento =
                                      accertamento_scadenzario.pg_accertamento
                AND accertamento_scadenzario.cd_cds = riga.cd_cds
                AND accertamento_scadenzario.esercizio =
                                                   riga.esercizio_accertamento
                AND accertamento_scadenzario.esercizio_originale =
                                               riga.esercizio_ori_accertamento
                AND accertamento_scadenzario.pg_accertamento =
                                                          riga.pg_accertamento
                AND accertamento_scadenzario.pg_accertamento_scadenzario =
                                              riga.pg_accertamento_scadenzario
                AND riga.stato <> 'A'
                AND accertamento_scadenzario.cd_cds =
                                                 accertamento_scad_voce.cd_cds
                AND accertamento_scadenzario.esercizio =
                                              accertamento_scad_voce.esercizio
                AND accertamento_scadenzario.esercizio_originale =
                                    accertamento_scad_voce.esercizio_originale
                AND accertamento_scadenzario.pg_accertamento =
                                        accertamento_scad_voce.pg_accertamento
                AND accertamento_scadenzario.pg_accertamento_scadenzario =
                            accertamento_scad_voce.pg_accertamento_scadenzario
             UNION ALL
             SELECT 'ETR' tipo, accertamento.cd_terzo,
                    accertamento.esercizio_contratto,
                    accertamento.pg_contratto, accertamento.stato_contratto,
                    accertamento.cd_uo_origine, 0 totale_entrate,
                    0 totale_spese, v.im_totale_doc_amm liquidato_entrate,
                    0 liquidato_spese, 0 totale_reversale, 0 totale_mandati
               FROM accertamento, accertamento_scadenzario, v_doc_attivo v
              WHERE accertamento.esercizio_contratto IS NOT NULL
                AND accertamento.stato_contratto IS NOT NULL
                AND accertamento.pg_contratto IS NOT NULL
                AND accertamento.cd_cds = accertamento_scadenzario.cd_cds
                AND accertamento.esercizio =
                                            accertamento_scadenzario.esercizio
                AND accertamento.esercizio_originale =
                                  accertamento_scadenzario.esercizio_originale
                AND accertamento.pg_accertamento =
                                      accertamento_scadenzario.pg_accertamento
                AND accertamento_scadenzario.cd_cds = v.cd_cds_accertamento
                AND accertamento_scadenzario.esercizio =
                                                      v.esercizio_accertamento
                AND accertamento_scadenzario.esercizio_originale =
                                                  v.esercizio_ori_accertamento
                AND accertamento_scadenzario.pg_accertamento =
                                                             v.pg_accertamento
                AND accertamento_scadenzario.pg_accertamento_scadenzario =
                                                 v.pg_accertamento_scadenzario
             UNION ALL
             SELECT 'SPE' tipo, obbligazione.cd_terzo,
                    obbligazione.esercizio_contratto,
                    obbligazione.pg_contratto, obbligazione.stato_contratto,
                    obbligazione.cd_uo_origine, 0 totale_entrate,
                    obbligazione_scad_voce.im_voce totale_spese,
                    0 liquidato_entrate, 0 liquidato_spese,
                    0 totale_reversale, 0 totale_mandati
               FROM obbligazione, obbligazione_scad_voce
              WHERE obbligazione.esercizio_contratto IS NOT NULL
                AND obbligazione.stato_contratto IS NOT NULL
                AND obbligazione.pg_contratto IS NOT NULL
                AND obbligazione.cd_cds = obbligazione_scad_voce.cd_cds
                AND obbligazione.esercizio = obbligazione_scad_voce.esercizio
                AND obbligazione.esercizio_originale =
                                    obbligazione_scad_voce.esercizio_originale
                AND obbligazione.pg_obbligazione =
                                        obbligazione_scad_voce.pg_obbligazione
                AND (   obbligazione.esercizio_originale =
                                                        obbligazione.esercizio
                     OR obbligazione.cd_tipo_documento_cont = 'OBB_RESIM'
                     OR (    obbligazione.cd_tipo_documento_cont = 'OBB_RES'
                         AND NOT EXISTS (
                                SELECT 1
                                  FROM obbligazione obb
                                 WHERE obbligazione.cd_cds = obb.cd_cds
                                   AND obbligazione.esercizio > obb.esercizio
                                   AND obbligazione.esercizio_originale =
                                                       obb.esercizio_originale
                                   AND obbligazione.pg_obbligazione =
                                                           obb.pg_obbligazione
                                   AND obbligazione.esercizio_contratto =
                                                       obb.esercizio_contratto
                                   AND obbligazione.stato_contratto =
                                                           obb.stato_contratto
                                   AND obbligazione.pg_contratto =
                                                              obb.pg_contratto)
                        )
                    )
             UNION ALL
             SELECT 'SPE' tipo, obbligazione.cd_terzo,
                    obbligazione.esercizio_contratto,
                    obbligazione.pg_contratto, obbligazione.stato_contratto,
                    obbligazione.cd_uo_origine, 0 totale_entrate,
                    obbligazione_mod_voce.im_modifica totale_spese,
                    0 liquidato_entrate, 0 liquidato_spese,
                    0 totale_reversale, 0 totale_mandati
               FROM obbligazione, obbligazione_modifica,
                    obbligazione_mod_voce
              WHERE obbligazione.esercizio_contratto IS NOT NULL
                AND obbligazione.stato_contratto IS NOT NULL
                AND obbligazione.pg_contratto IS NOT NULL
                AND obbligazione.cd_cds = obbligazione_modifica.cd_cds
                AND obbligazione.esercizio = obbligazione_modifica.esercizio
                AND obbligazione.esercizio_originale =
                                     obbligazione_modifica.esercizio_originale
                AND obbligazione.pg_obbligazione =
                                         obbligazione_modifica.pg_obbligazione
                AND obbligazione_modifica.cd_cds =
                                                  obbligazione_mod_voce.cd_cds
                AND obbligazione_modifica.esercizio =
                                               obbligazione_mod_voce.esercizio
                AND obbligazione_modifica.pg_modifica =
                                             obbligazione_mod_voce.pg_modifica
                -- per evitare che prende le variazioni su impegni già diminuiti nell'importo sull'obbligazione collegato al contratto
                AND EXISTS (
                       SELECT 1
                         FROM obbligazione obb
                        WHERE obbligazione.cd_cds = obb.cd_cds
                          AND obbligazione.esercizio_originale =
                                                       obb.esercizio_originale
                          AND obbligazione.pg_obbligazione =
                                                           obb.pg_obbligazione
                          AND obbligazione.esercizio_contratto =
                                                       obb.esercizio_contratto
                          AND obbligazione.stato_contratto =
                                                           obb.stato_contratto
                          AND obbligazione.pg_contratto = obb.pg_contratto
                          AND (   obb.esercizio = obb.esercizio_originale
                               OR obb.cd_tipo_documento_cont = 'OBB_RESIM'
                              ))
             UNION ALL
             SELECT 'SPE' tipo, obbligazione.cd_terzo,
                    obbligazione.esercizio_contratto,
                    obbligazione.pg_contratto, obbligazione.stato_contratto,
                    obbligazione.cd_uo_origine, 0 totale_entrate,
                    0 totale_spese, 0 liquidato_entrate, 0 liquidato_spese,
                    0 totale_reversale,
                    DECODE
                       (NVL (obbligazione_scadenzario.im_scadenza, 0),
                        0, 0,
                          (  obbligazione_scad_voce.im_voce
                           / obbligazione_scadenzario.im_scadenza
                          )
                        * riga.im_mandato_riga
                       ) totale_mandati
               FROM obbligazione,
                    obbligazione_scadenzario,
                    obbligazione_scad_voce,
                    mandato_riga riga
              WHERE obbligazione.esercizio_contratto IS NOT NULL
                AND obbligazione.stato_contratto IS NOT NULL
                AND obbligazione.pg_contratto IS NOT NULL
                AND obbligazione.cd_cds = obbligazione_scadenzario.cd_cds
                AND obbligazione.esercizio =
                                            obbligazione_scadenzario.esercizio
                AND obbligazione.esercizio_originale =
                                  obbligazione_scadenzario.esercizio_originale
                AND obbligazione.pg_obbligazione =
                                      obbligazione_scadenzario.pg_obbligazione
                AND obbligazione_scadenzario.cd_cds = riga.cd_cds
                AND obbligazione_scadenzario.esercizio =
                                                   riga.esercizio_obbligazione
                AND obbligazione_scadenzario.esercizio_originale =
                                               riga.esercizio_ori_obbligazione
                AND obbligazione_scadenzario.pg_obbligazione =
                                                          riga.pg_obbligazione
                AND obbligazione_scadenzario.pg_obbligazione_scadenzario =
                                              riga.pg_obbligazione_scadenzario
                AND riga.stato <> 'A'
                AND obbligazione_scadenzario.cd_cds =
                                                 obbligazione_scad_voce.cd_cds
                AND obbligazione_scadenzario.esercizio =
                                              obbligazione_scad_voce.esercizio
                AND obbligazione_scadenzario.esercizio_originale =
                                    obbligazione_scad_voce.esercizio_originale
                AND obbligazione_scadenzario.pg_obbligazione =
                                        obbligazione_scad_voce.pg_obbligazione
                AND obbligazione_scadenzario.pg_obbligazione_scadenzario =
                            obbligazione_scad_voce.pg_obbligazione_scadenzario
             UNION ALL
             SELECT 'SPE' tipo, obbligazione.cd_terzo,
                    obbligazione.esercizio_contratto,
                    obbligazione.pg_contratto, obbligazione.stato_contratto,
                    obbligazione.cd_uo_origine, 0 totale_entrate,
                    0 totale_spese, 0 liquidato_entrate,
                    v.im_totale_doc_amm liquidato_spese, 0 totale_reversale,
                    0 totale_mandati
               FROM obbligazione, obbligazione_scadenzario, v_doc_passivo v
              WHERE obbligazione.esercizio_contratto IS NOT NULL
                AND obbligazione.stato_contratto IS NOT NULL
                AND obbligazione.pg_contratto IS NOT NULL
                AND obbligazione.cd_cds = obbligazione_scadenzario.cd_cds
                AND obbligazione.esercizio =
                                            obbligazione_scadenzario.esercizio
                AND obbligazione.esercizio_originale =
                                  obbligazione_scadenzario.esercizio_originale
                AND obbligazione.pg_obbligazione =
                                      obbligazione_scadenzario.pg_obbligazione
                AND obbligazione_scadenzario.cd_cds = v.cd_cds_obbligazione
                AND obbligazione_scadenzario.esercizio =
                                                      v.esercizio_obbligazione
                AND obbligazione_scadenzario.esercizio_originale =
                                                  v.esercizio_ori_obbligazione
                AND obbligazione_scadenzario.pg_obbligazione =
                                                             v.pg_obbligazione
                AND obbligazione_scadenzario.pg_obbligazione_scadenzario =
                                                 v.pg_obbligazione_scadenzario) a,
            contratto b
      WHERE a.esercizio_contratto = b.esercizio
        AND a.stato_contratto = b.stato
        AND a.pg_contratto = b.pg_contratto
   GROUP BY a.tipo,
            a.cd_terzo,
            a.esercizio_contratto,
            a.pg_contratto,
            a.stato_contratto,
            b.oggetto,
            b.dt_inizio_validita,
            b.dt_fine_validita,
            b.cd_tipo_contratto,
            b.im_contratto_attivo,
            b.im_contratto_passivo,
            a.cd_unita_organizzativa,
            b.pg_progetto
   UNION ALL
   SELECT 'ETR' tipo, contratto.fig_giur_est, contratto.esercizio,
          contratto.pg_contratto, contratto.stato, contratto.oggetto,
          contratto.dt_inizio_validita, contratto.dt_fine_validita,
          contratto.cd_tipo_contratto, contratto.cd_unita_organizzativa,
          contratto.pg_progetto, contratto.im_contratto_attivo,
          contratto.im_contratto_passivo, 0 totale_entrate, 0 totale_spese,
          0 liquidato_entrate, 0 liquidato_spese, 0 totale_reversale,
          0 totale_mandati
     FROM contratto
    WHERE stato = 'D'
      AND natura_contabile IN ('E', 'A')
      AND NOT EXISTS (
             SELECT 1
               FROM accertamento
              WHERE accertamento.esercizio_contratto = contratto.esercizio
                AND accertamento.stato_contratto = contratto.stato
                AND accertamento.pg_contratto = contratto.pg_contratto)
   UNION ALL
   SELECT 'SPE' tipo, contratto.fig_giur_est, contratto.esercizio,
          contratto.pg_contratto, contratto.stato, contratto.oggetto,
          contratto.dt_inizio_validita, contratto.dt_fine_validita,
          contratto.cd_tipo_contratto, contratto.cd_unita_organizzativa,
          contratto.pg_progetto, contratto.im_contratto_attivo,
          contratto.im_contratto_passivo, 0 totale_entrate, 0 totale_spese,
          0 liquidato_entrate, 0 liquidato_spese, 0 totale_reversale,
          0 totale_mandati
     FROM contratto
    WHERE stato = 'D'
      AND natura_contabile IN ('E', 'P')
      AND NOT EXISTS (
             SELECT 1
               FROM obbligazione
              WHERE obbligazione.esercizio_contratto = contratto.esercizio
                AND obbligazione.stato_contratto = contratto.stato
                AND obbligazione.pg_contratto = contratto.pg_contratto);




© 2015 - 2024 Weber Informatics LLC | Privacy Policy