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

expsigladb.Procedure.prc_load_table_stampa_rendic.prc Maven / Gradle / Ivy

There is a newer version: 6.6.11
Show newest version
CREATE OR REPLACE Procedure         PRC_LOAD_TABLE_STAMPA_RENDIC
(P_ESERCIZIO IN ESERCIZIO.ESERCIZIO%TYPE,
 P_TIPO IN VARCHAR2, --     Valori ammessi E per Entrate S per Spese
 P_NUM_LIV IN NUMBER,
 P_TIPO_AGGREGAZIONE IN VARCHAR2, -- Valori ammessi SCI per Scientifico FIN per finanziario
 P_TIPO_RENDICONTO IN VARCHAR2, -- Valori ammessi DEC per decisionale GES per gestionale
 P_ORIGINE IN VARCHAR2 DEFAULT 'REA', -- Valori ammessi REA per dati reali EXT per dati esterni
 P_COMPLETA IN VARCHAR2 DEFAULT 'Y',
 P_AGG_COMPETENZA_AC IN VARCHAR2 DEFAULT 'N',
 P_AGG_RESIDUI_AC IN VARCHAR2 DEFAULT 'N',
 P_AGG_CASSA_AC IN VARCHAR2 DEFAULT 'N', 
 P_AGG_COMPETENZA_AP IN VARCHAR2 DEFAULT 'N',
 P_AGG_RESIDUI_AP IN VARCHAR2 DEFAULT 'N',
 P_AGG_CASSA_AP IN VARCHAR2 DEFAULT 'N', 
 P_UTCR IN VARCHAR2 DEFAULT 'SYSTEM'
) Is
    FONTE_DATI                  VARCHAR2(6);
    
    /* Gestione di Competenza */
    PREV_INI                    NUMBER(17,2) :=0;--Iniziali
    VARIAZIONI                  NUMBER(17,2) :=0;--Variazioni in aumento
    ASSESTATO                   NUMBER(17,2) :=0;--Variazioni Definitive
    RIS_PAG                     NUMBER(17,2) :=0;--Riscosse/Pagate
    RIM_RIS_PAG                 NUMBER(17,2) :=0;--Rimaste da Riscuotere/Pagare
    TOT_ACC_IMP                 NUMBER(17,2) :=0;--Totali Accertament/Impegni
    DIFF_COMP                   NUMBER(17,2) :=0;--Differenze rispetto alle Previsioni

    /* Gestione dei Residui Attivi */
    RES_INI_ES                  NUMBER(17,2) :=0;--Residui all'inizio dell'esercizio
    RES_RIS_PAG                 NUMBER(17,2) :=0;--Riscossioni - Pagamenti
    RES_RIM_RIS_PAG             NUMBER(17,2) :=0;--Rimasti da riscuotere/pagare
    RES_TOTALI                  NUMBER(17,2) :=0;--Totali
    RES_VAR_PIU                 NUMBER(17,2) :=0;--Variazioni +
    RES_VAR_MENO                NUMBER(17,2) :=0;--Variazioni -

    PREVISIONE_INI_ES_PREC      NUMBER(17,2) :=0;
    SALDO_VARIAZIONI_ES_PREC    NUMBER(17,2) :=0;
    TOT_IMPACC_COMP_ES_PREC     NUMBER(17,2) :=0;
    TOT_IMPACC_RES_ES_PREC      NUMBER(17,2) :=0;
    TOT_MANREV_COMP_ES_PREC     NUMBER(17,2) :=0;
    TOT_MANREV_RES_ES_PREC      NUMBER(17,2) :=0;
    TOT_MOD_IMPACC_RES_ES_PREC  NUMBER(17,2) :=0;
    ASSESTATO_CASSA_ES_PREC     NUMBER(17,2) :=0;

    /* Gestione di Cassa */
    CASSA_PREV                  NUMBER(17,2) :=0;--Previsioni
    CASSA_RIS_PAG               NUMBER(17,2) :=0;--Riscossioni/Pagamenti
    CASSA_DIFF                  NUMBER(17,2) :=0;--Differenze rispetto alle previsioni

    TOT_RES_TER                 NUMBER(17,2) :=0;--Totale residui al termine dell'esecizio

    RES_INI_ES_PREC             NUMBER(17,2) :=0;--Residui anno precedente
    TOT_ACC_IMP_PREC            NUMBER(17,2) :=0;--Totali Accertament/Impegni anno precedente
    RIS_PAG_PREC                NUMBER(17,2) :=0;--Riscosse/Pagate anno precedente
    CASSA_PREV_ES_PREC          NUMBER(17,2) :=0;

    SEQUENZA                    NUMBER := 0;
    NUM_MAX_LIV                 NUMBER;

    PARLIV1_DS                  VARCHAR2(20);
    PARLIV2_DS                  VARCHAR2(20);
    PARLIV3_DS                  VARCHAR2(20);
    PARLIV4_DS                  VARCHAR2(20);
    PARLIV5_DS                  VARCHAR2(20);
    PARLIV6_DS                  VARCHAR2(20);
    PARLIV7_DS                  VARCHAR2(20);
    PARLIV8_DS                  VARCHAR2(20);
    PARLIV9_DS                  VARCHAR2(20);

    INNER_TIPO_AGGREGAZIONE     VARCHAR2(3);
Begin
  IF Nvl(P_AGG_COMPETENZA_AC,'N')='Y' or Nvl(P_AGG_RESIDUI_AC,'N')='Y' or Nvl(P_AGG_CASSA_AC,'N')='Y' or 
     Nvl(P_AGG_COMPETENZA_AP,'N')='Y' or Nvl(P_AGG_RESIDUI_AP,'N')='Y' or Nvl(P_AGG_CASSA_AP,'N')='Y' THEN

     UPDATE PDG_DATI_STAMPA_RENDIC_TEMP
     SET PREVISIONE_INI = decode(Nvl(P_AGG_COMPETENZA_AC,'N'), 'Y', 0, PREVISIONE_INI),
         SALDO_VARIAZIONI = decode(Nvl(P_AGG_COMPETENZA_AC,'N'), 'Y', 0, SALDO_VARIAZIONI),
         TOT_IMPACC_COMP = decode(Nvl(P_AGG_COMPETENZA_AC,'N'), 'Y', 0, TOT_IMPACC_COMP),
         TOT_MANREV_COMP = decode(Nvl(P_AGG_COMPETENZA_AC,'N'), 'Y', 0, TOT_MANREV_COMP),
         TOT_IMPACC_RES = decode(Nvl(P_AGG_RESIDUI_AC,'N'), 'Y', 0, TOT_IMPACC_RES),
         TOT_MOD_IMPACC_RES = decode(Nvl(P_AGG_RESIDUI_AC,'N'), 'Y', 0, TOT_MOD_IMPACC_RES),
         TOT_MANREV_RES = decode(Nvl(P_AGG_RESIDUI_AC,'N'), 'Y', 0, TOT_MANREV_RES),
         ASSESTATO_CASSA = decode(Nvl(P_AGG_CASSA_AC,'N'), 'Y', 0, ASSESTATO_CASSA),
         PREVISIONE_INI_ES_PREC = decode(Nvl(P_AGG_COMPETENZA_AP,'N'), 'Y', 0, PREVISIONE_INI_ES_PREC),
         SALDO_VARIAZIONI_ES_PREC = decode(Nvl(P_AGG_COMPETENZA_AP,'N'), 'Y', 0, SALDO_VARIAZIONI_ES_PREC),
         TOT_IMPACC_COMP_ES_PREC = decode(Nvl(P_AGG_COMPETENZA_AP,'N'), 'Y', 0, TOT_IMPACC_COMP_ES_PREC),
         TOT_MANREV_COMP_ES_PREC = decode(Nvl(P_AGG_COMPETENZA_AP,'N'), 'Y', 0, TOT_MANREV_COMP_ES_PREC),
         TOT_IMPACC_RES_ES_PREC = decode(Nvl(P_AGG_RESIDUI_AP,'N'), 'Y', 0, TOT_IMPACC_RES_ES_PREC),
         TOT_MOD_IMPACC_RES_ES_PREC = decode(Nvl(P_AGG_RESIDUI_AP,'N'), 'Y', 0, TOT_MOD_IMPACC_RES_ES_PREC),
         TOT_MANREV_RES_ES_PREC = decode(Nvl(P_AGG_RESIDUI_AP,'N'), 'Y', 0, TOT_MANREV_RES_ES_PREC),
         ASSESTATO_CASSA_ES_PREC = decode(Nvl(P_AGG_CASSA_AP,'N'), 'Y', 0, ASSESTATO_CASSA_ES_PREC),
         UTUV = P_UTCR,
         DUVA = SYSDATE,
         PG_VER_REC = PG_VER_REC + 1
     WHERE ESERCIZIO = P_ESERCIZIO;

     for rec in (SELECT a.esercizio, a.CD_CENTRO_RESPONSABILITA, a.tipo, 
                        a.cd_elemento_voce, a.cd_livello1 CD_MISSIONE, a.cd_livello2 CD_PROGRAMMA,
                        a.PREVISIONE_INI, a.SALDO_VARIAZIONI, a.TOT_IMPACC_COMP, a.TOT_IMPACC_RES,
                        a.TOT_MANREV_COMP, a.TOT_MANREV_RES, a.TOT_MOD_IMPACC_RES, a.ASSESTATO_CASSA, 
                        a.PREVISIONE_INI_ES_PREC, a.SALDO_VARIAZIONI_ES_PREC, a.TOT_IMPACC_COMP_ES_PREC, 
                        a.TOT_IMPACC_RES_ES_PREC, a.TOT_MANREV_COMP_ES_PREC, a.TOT_MANREV_RES_ES_PREC, 
                        a.TOT_MOD_IMPACC_RES_ES_PREC, a.ASSESTATO_CASSA_ES_PREC
                  FROM v_stampa_bilancio_rendic_x_cdr a
                WHERE a.esercizio = P_ESERCIZIO
                And   ((a.tipo='E' and a.fonte = 'REAFIN') or
                       (a.tipo='S' and a.fonte = 'REASCI'))) Loop
     
        Update PDG_DATI_STAMPA_RENDIC_TEMP
        SET PREVISIONE_INI = decode(Nvl(P_AGG_COMPETENZA_AC,'N'), 'Y', rec.PREVISIONE_INI, PREVISIONE_INI),
            SALDO_VARIAZIONI = decode(Nvl(P_AGG_COMPETENZA_AC,'N'), 'Y', rec.SALDO_VARIAZIONI, SALDO_VARIAZIONI),
            TOT_IMPACC_COMP = decode(Nvl(P_AGG_COMPETENZA_AC,'N'), 'Y', rec.TOT_IMPACC_COMP, TOT_IMPACC_COMP),
            TOT_MANREV_COMP = decode(Nvl(P_AGG_COMPETENZA_AC,'N'), 'Y', rec.TOT_MANREV_COMP, TOT_MANREV_COMP),
            TOT_IMPACC_RES = decode(Nvl(P_AGG_RESIDUI_AC,'N'), 'Y', rec.TOT_IMPACC_RES, TOT_IMPACC_RES),
            TOT_MOD_IMPACC_RES = decode(Nvl(P_AGG_RESIDUI_AC,'N'), 'Y', rec.TOT_MOD_IMPACC_RES, TOT_MOD_IMPACC_RES),
            TOT_MANREV_RES = decode(Nvl(P_AGG_RESIDUI_AC,'N'), 'Y', rec.TOT_MANREV_RES, TOT_MANREV_RES),
            ASSESTATO_CASSA = decode(Nvl(P_AGG_CASSA_AC,'N'), 'Y', rec.ASSESTATO_CASSA, ASSESTATO_CASSA),
            PREVISIONE_INI_ES_PREC = decode(Nvl(P_AGG_COMPETENZA_AP,'N'), 'Y', rec.PREVISIONE_INI_ES_PREC, PREVISIONE_INI_ES_PREC),
            SALDO_VARIAZIONI_ES_PREC = decode(Nvl(P_AGG_COMPETENZA_AP,'N'), 'Y', rec.SALDO_VARIAZIONI_ES_PREC, SALDO_VARIAZIONI_ES_PREC),
            TOT_IMPACC_COMP_ES_PREC = decode(Nvl(P_AGG_COMPETENZA_AP,'N'), 'Y', rec.TOT_IMPACC_COMP_ES_PREC, TOT_IMPACC_COMP_ES_PREC),
            TOT_MANREV_COMP_ES_PREC = decode(Nvl(P_AGG_COMPETENZA_AP,'N'), 'Y', rec.TOT_MANREV_COMP_ES_PREC, TOT_MANREV_COMP_ES_PREC),
            TOT_IMPACC_RES_ES_PREC = decode(Nvl(P_AGG_RESIDUI_AP,'N'), 'Y', rec.TOT_IMPACC_RES_ES_PREC, TOT_IMPACC_RES_ES_PREC),
            TOT_MOD_IMPACC_RES_ES_PREC = decode(Nvl(P_AGG_RESIDUI_AP,'N'), 'Y', rec.TOT_MOD_IMPACC_RES_ES_PREC, TOT_MOD_IMPACC_RES_ES_PREC),
            TOT_MANREV_RES_ES_PREC = decode(Nvl(P_AGG_RESIDUI_AP,'N'), 'Y', rec.TOT_MANREV_RES_ES_PREC, TOT_MANREV_RES_ES_PREC),
            ASSESTATO_CASSA_ES_PREC = decode(Nvl(P_AGG_CASSA_AP,'N'), 'Y', rec.ASSESTATO_CASSA_ES_PREC, ASSESTATO_CASSA_ES_PREC),
            UTUV = P_UTCR,
            DUVA = SYSDATE,
            PG_VER_REC = PG_VER_REC + 1
        where ESERCIZIO = P_ESERCIZIO
        and   CD_CENTRO_RESPONSABILITA = rec.CD_CENTRO_RESPONSABILITA
        and   TI_GESTIONE = rec.TIPO
        and   CD_ELEMENTO_VOCE = rec.CD_ELEMENTO_VOCE
        and   (rec.TIPO = 'E' OR
               (
                ((rec.CD_PROGRAMMA IS NULL AND CD_PROGRAMMA IS NULL) OR CD_PROGRAMMA = rec.CD_PROGRAMMA) and   
                ((rec.CD_MISSIONE IS NULL AND CD_MISSIONE IS NULL) OR CD_MISSIONE = rec.CD_MISSIONE)
               )
              );

        If sql%rowcount=0 Then
           INSERT INTO PDG_DATI_STAMPA_RENDIC_TEMP
                 (ESERCIZIO, CD_CENTRO_RESPONSABILITA, TI_GESTIONE, CD_ELEMENTO_VOCE, CD_PROGRAMMA, CD_MISSIONE,
                  PREVISIONE_INI, SALDO_VARIAZIONI, TOT_IMPACC_COMP, TOT_MANREV_COMP, 
                  TOT_IMPACC_RES, TOT_MOD_IMPACC_RES, TOT_MANREV_RES, ASSESTATO_CASSA, 
                  PREVISIONE_INI_ES_PREC, SALDO_VARIAZIONI_ES_PREC, TOT_IMPACC_COMP_ES_PREC, TOT_MANREV_COMP_ES_PREC, 
                  TOT_IMPACC_RES_ES_PREC, TOT_MOD_IMPACC_RES_ES_PREC, TOT_MANREV_RES_ES_PREC, ASSESTATO_CASSA_ES_PREC,
                  UTCR, DACR, UTUV, DUVA, PG_VER_REC)
           VALUES
                 (P_ESERCIZIO, rec.CD_CENTRO_RESPONSABILITA, rec.TIPO, rec.CD_ELEMENTO_VOCE,rec.cd_programma, rec.CD_MISSIONE, 
                  decode(Nvl(P_AGG_COMPETENZA_AC,'N'), 'Y', rec.PREVISIONE_INI, 0),
                  decode(Nvl(P_AGG_COMPETENZA_AC,'N'), 'Y', rec.SALDO_VARIAZIONI, 0),
                  decode(Nvl(P_AGG_COMPETENZA_AC,'N'), 'Y', rec.TOT_IMPACC_COMP, 0),
                  decode(Nvl(P_AGG_COMPETENZA_AC,'N'), 'Y', rec.TOT_MANREV_COMP, 0),
                  decode(Nvl(P_AGG_RESIDUI_AC,'N'), 'Y', rec.TOT_IMPACC_RES, 0),
                  decode(Nvl(P_AGG_RESIDUI_AC,'N'), 'Y', rec.TOT_MOD_IMPACC_RES, 0),
                  decode(Nvl(P_AGG_RESIDUI_AC,'N'), 'Y', rec.TOT_MANREV_RES, 0),
                  decode(Nvl(P_AGG_CASSA_AC,'N'), 'Y', rec.ASSESTATO_CASSA, 0),
                  decode(Nvl(P_AGG_COMPETENZA_AP,'N'), 'Y', rec.PREVISIONE_INI_ES_PREC, 0),
                  decode(Nvl(P_AGG_COMPETENZA_AP,'N'), 'Y', rec.SALDO_VARIAZIONI_ES_PREC, 0),
                  decode(Nvl(P_AGG_COMPETENZA_AP,'N'), 'Y', rec.TOT_IMPACC_COMP_ES_PREC, 0),
                  decode(Nvl(P_AGG_COMPETENZA_AP,'N'), 'Y', rec.TOT_MANREV_COMP_ES_PREC, 0),
                  decode(Nvl(P_AGG_RESIDUI_AP,'N'), 'Y', rec.TOT_IMPACC_RES_ES_PREC, 0),
                  decode(Nvl(P_AGG_RESIDUI_AP,'N'), 'Y', rec.TOT_MOD_IMPACC_RES_ES_PREC, 0),
                  decode(Nvl(P_AGG_RESIDUI_AP,'N'), 'Y', rec.TOT_MANREV_RES_ES_PREC, 0),
                  decode(Nvl(P_AGG_CASSA_AP,'N'), 'Y', rec.ASSESTATO_CASSA_ES_PREC, 0),
                  P_UTCR, SYSDATE, P_UTCR, SYSDATE, 1);
        End If;
     End Loop;

     Delete PDG_DATI_STAMPA_RENDIC_TEMP
     where PREVISIONE_INI = 0 
     and   SALDO_VARIAZIONI = 0
     and   TOT_IMPACC_COMP = 0
     and   TOT_MANREV_COMP = 0
     and   TOT_IMPACC_RES = 0
     and   TOT_MOD_IMPACC_RES = 0
     and   TOT_MANREV_RES = 0
     and   ASSESTATO_CASSA = 0
     and   PREVISIONE_INI_ES_PREC = 0
     and   SALDO_VARIAZIONI_ES_PREC = 0
     and   TOT_IMPACC_COMP_ES_PREC = 0
     and   TOT_MANREV_COMP_ES_PREC = 0
     and   TOT_IMPACC_RES_ES_PREC = 0
     and   TOT_MOD_IMPACC_RES_ES_PREC = 0
     and   TOT_MANREV_RES_ES_PREC = 0
     and   ASSESTATO_CASSA_ES_PREC = 0;

  Else
     If P_TIPO='E' and P_TIPO_AGGREGAZIONE='SCI' Then
        INNER_TIPO_AGGREGAZIONE := 'FIN';
     Else
        INNER_TIPO_AGGREGAZIONE := P_TIPO_AGGREGAZIONE;
     End If;
 
     FONTE_DATI := P_ORIGINE||INNER_TIPO_AGGREGAZIONE;

     Declare
        rec PARAMETRI_LIVELLI%rowtype;
     Begin
        Select * into rec
        From PARAMETRI_LIVELLI
        Where ESERCIZIO = P_ESERCIZIO;

        If (INNER_TIPO_AGGREGAZIONE = 'SCI') Then
           PARLIV1_DS := 'Area Progettuale';
           PARLIV2_DS := 'Progetto';
           If (P_TIPO = 'E') Then
              PARLIV3_DS := rec.DS_LIVELLO1E;
              PARLIV4_DS := rec.DS_LIVELLO2E;
              PARLIV5_DS := rec.DS_LIVELLO3E;
              PARLIV6_DS := rec.DS_LIVELLO4E;
              PARLIV7_DS := rec.DS_LIVELLO5E;
              PARLIV8_DS := rec.DS_LIVELLO6E;
              PARLIV9_DS := rec.DS_LIVELLO7E;
           Else
              PARLIV3_DS := rec.DS_LIVELLO1S;
              PARLIV4_DS := rec.DS_LIVELLO2S;
              PARLIV5_DS := rec.DS_LIVELLO3S;
              PARLIV6_DS := rec.DS_LIVELLO4S;
              PARLIV7_DS := rec.DS_LIVELLO5S;
              PARLIV8_DS := rec.DS_LIVELLO6S;
              PARLIV9_DS := rec.DS_LIVELLO7S;
           End If;
        Else
           If (P_TIPO = 'E') Then
              PARLIV1_DS := rec.DS_LIVELLO1E;
              PARLIV2_DS := rec.DS_LIVELLO2E;
              PARLIV3_DS := rec.DS_LIVELLO3E;
              PARLIV4_DS := rec.DS_LIVELLO4E;
              PARLIV5_DS := rec.DS_LIVELLO5E;
              PARLIV6_DS := rec.DS_LIVELLO6E;
              PARLIV7_DS := rec.DS_LIVELLO7E;
           Else
              PARLIV1_DS := rec.DS_LIVELLO1S;
              PARLIV2_DS := rec.DS_LIVELLO2S;
              PARLIV3_DS := rec.DS_LIVELLO3S;
              PARLIV4_DS := rec.DS_LIVELLO4S;
              PARLIV5_DS := rec.DS_LIVELLO5S;
              PARLIV6_DS := rec.DS_LIVELLO6S;
              PARLIV7_DS := rec.DS_LIVELLO7S;
           End If;
        End If;
     Exception
        WHEN NO_DATA_FOUND THEN
          NULL;
     End;

     --execute PRC_RENDICONTO_DEC_GEST('00001','E1',2010,'000000000000',null,'DPR',3,'D','E');
     FOR PREV_COMP IN (SELECT esercizio, tipo,  
                              cd_livello1, 
                              DECODE(SIGN(P_NUM_LIV-1),1,cd_livello2,null) cd_livello2,
                              DECODE(SIGN(P_NUM_LIV-2),1,cd_livello3,null) cd_livello3,
                              DECODE(SIGN(P_NUM_LIV-3),1,cd_livello4,null) cd_livello4,
                              DECODE(SIGN(P_NUM_LIV-4),1,cd_livello5,null) cd_livello5,
                              DECODE(SIGN(P_NUM_LIV-5),1,cd_livello6,null) cd_livello6,
                              DECODE(SIGN(P_NUM_LIV-6),1,cd_livello7,null) cd_livello7,
                              DECODE(SIGN(P_NUM_LIV-7),1,cd_livello8,null) cd_livello8,
                              DECODE(SIGN(P_NUM_LIV-8),1,cd_livello9,null) cd_livello9,
                              ds_livello1,
                              DECODE(SIGN(P_NUM_LIV-1),1,ds_livello2,null) ds_livello2,
                              DECODE(SIGN(P_NUM_LIV-2),1,ds_livello3,null) ds_livello3,
                              DECODE(SIGN(P_NUM_LIV-3),1,ds_livello4,null) ds_livello4,
                              DECODE(SIGN(P_NUM_LIV-4),1,ds_livello5,null) ds_livello5,
                              DECODE(SIGN(P_NUM_LIV-5),1,ds_livello6,null) ds_livello6,
                              DECODE(SIGN(P_NUM_LIV-6),1,ds_livello7,null) ds_livello7,
                              DECODE(SIGN(P_NUM_LIV-7),1,ds_livello8,null) ds_livello8,
                              DECODE(SIGN(P_NUM_LIV-8),1,ds_livello9,null) ds_livello9,
                              NVL(SUM(previsione_ini), 0) previsione_ini, 
                              NVL(SUM(saldo_variazioni), 0) saldo_variazioni, 
                              NVL(SUM(tot_impacc_comp), 0) tot_impacc_comp, 
                              NVL(SUM(tot_impacc_res), 0) tot_impacc_res, 
                              NVL(SUM(tot_manrev_comp), 0) tot_manrev_comp, 
                              NVL(SUM(tot_manrev_res), 0) tot_manrev_res, 
                              NVL(SUM(tot_mod_impacc_res), 0) tot_mod_impacc_res, 
                              NVL(SUM(assestato_cassa), 0) assestato_cassa, 
                              NVL(SUM(previsione_ini_es_prec), 0) previsione_ini_es_prec,  
                              NVL(SUM(saldo_variazioni_es_prec), 0) saldo_variazioni_es_prec, 
                              NVL(SUM(tot_impacc_comp_es_prec), 0) tot_impacc_comp_es_prec, 
                              NVL(SUM(tot_impacc_res_es_prec), 0) tot_impacc_res_es_prec, 
                              NVL(SUM(tot_manrev_comp_es_prec), 0) tot_manrev_comp_es_prec, 
                              NVL(SUM(tot_manrev_res_es_prec), 0) tot_manrev_res_es_prec, 
                              NVL(SUM(tot_mod_impacc_res_es_prec), 0) tot_mod_impacc_res_es_prec, 
                              NVL(SUM(assestato_cassa_es_prec), 0) assestato_cassa_es_prec
                        FROM v_stampa_bilancio_rendic
                        WHERE fonte = FONTE_DATI
                          AND esercizio = P_ESERCIZIO
                          AND tipo = P_TIPO
                        GROUP BY 
                              esercizio, 
                              tipo,  
                              cd_livello1, 
                              DECODE(SIGN(P_NUM_LIV-1),1,cd_livello2,null),
                              DECODE(SIGN(P_NUM_LIV-2),1,cd_livello3,null),
                              DECODE(SIGN(P_NUM_LIV-3),1,cd_livello4,null),
                              DECODE(SIGN(P_NUM_LIV-4),1,cd_livello5,null),
                              DECODE(SIGN(P_NUM_LIV-5),1,cd_livello6,null),
                              DECODE(SIGN(P_NUM_LIV-6),1,cd_livello7,null),
                              DECODE(SIGN(P_NUM_LIV-7),1,cd_livello8,null),
                              DECODE(SIGN(P_NUM_LIV-8),1,cd_livello9,null),
                              ds_livello1,
                              DECODE(SIGN(P_NUM_LIV-1),1,ds_livello2,null),
                              DECODE(SIGN(P_NUM_LIV-2),1,ds_livello3,null),
                              DECODE(SIGN(P_NUM_LIV-3),1,ds_livello4,null),
                              DECODE(SIGN(P_NUM_LIV-4),1,ds_livello5,null),
                              DECODE(SIGN(P_NUM_LIV-5),1,ds_livello6,null),
                              DECODE(SIGN(P_NUM_LIV-6),1,ds_livello7,null),
                              DECODE(SIGN(P_NUM_LIV-7),1,ds_livello8,null),
                              DECODE(SIGN(P_NUM_LIV-8),1,ds_livello9,null)) Loop
            
            PREVISIONE_INI_ES_PREC := 0;
            SALDO_VARIAZIONI_ES_PREC := 0;
            TOT_IMPACC_COMP_ES_PREC := 0;
            TOT_IMPACC_RES_ES_PREC := 0;
            TOT_MANREV_COMP_ES_PREC := 0;
            TOT_MANREV_RES_ES_PREC := 0;
            TOT_MOD_IMPACC_RES_ES_PREC := 0;
            ASSESTATO_CASSA_ES_PREC := 0;

            If (P_TIPO_RENDICONTO = 'DEC') Then
              PREVISIONE_INI_ES_PREC := PREV_COMP.PREVISIONE_INI_ES_PREC;
              SALDO_VARIAZIONI_ES_PREC := PREV_COMP.SALDO_VARIAZIONI_ES_PREC;
              TOT_IMPACC_COMP_ES_PREC := PREV_COMP.TOT_IMPACC_COMP_ES_PREC;
              TOT_IMPACC_RES_ES_PREC := PREV_COMP.TOT_IMPACC_RES_ES_PREC;
              TOT_MANREV_COMP_ES_PREC := PREV_COMP.TOT_MANREV_COMP_ES_PREC;
              TOT_MANREV_RES_ES_PREC := PREV_COMP.TOT_MANREV_RES_ES_PREC;
              TOT_MOD_IMPACC_RES_ES_PREC := PREV_COMP.TOT_MOD_IMPACC_RES_ES_PREC;
              ASSESTATO_CASSA_ES_PREC := PREV_COMP.ASSESTATO_CASSA_ES_PREC;
                

              RES_INI_ES_PREC := TOT_IMPACC_RES_ES_PREC;
              TOT_ACC_IMP_PREC := TOT_IMPACC_COMP_ES_PREC;
              RIS_PAG_PREC := TOT_MANREV_COMP_ES_PREC;
              CASSA_PREV_ES_PREC := ASSESTATO_CASSA_ES_PREC;
            End If;

            PREV_INI   := PREV_COMP.PREVISIONE_INI;
            VARIAZIONI := PREV_COMP.SALDO_VARIAZIONI;
            ASSESTATO  := PREV_COMP.PREVISIONE_INI + PREV_COMP.SALDO_VARIAZIONI;

            TOT_ACC_IMP := PREV_COMP.TOT_IMPACC_COMP;
            RIS_PAG     := PREV_COMP.TOT_MANREV_COMP;
            RIM_RIS_PAG := TOT_ACC_IMP - RIS_PAG;
            DIFF_COMP   := TOT_ACC_IMP - ASSESTATO;
            
            RES_INI_ES  := PREV_COMP.TOT_IMPACC_RES;
            RES_RIS_PAG := PREV_COMP.TOT_MANREV_RES;
            RES_TOTALI  := RES_INI_ES + NVL(PREV_COMP.TOT_MOD_IMPACC_RES,0);
            RES_RIM_RIS_PAG := RES_TOTALI - RES_RIS_PAG;

            If (PREV_COMP.TOT_MOD_IMPACC_RES >= 0)then
               RES_VAR_PIU := PREV_COMP.TOT_MOD_IMPACC_RES;
               RES_VAR_MENO := 0;
            Else
               RES_VAR_PIU := 0;
               RES_VAR_MENO := (PREV_COMP.TOT_MOD_IMPACC_RES) * -1;
            End If;

            CASSA_PREV := PREV_COMP.ASSESTATO_CASSA;
            CASSA_RIS_PAG := PREV_COMP.TOT_MANREV_COMP + PREV_COMP.TOT_MANREV_RES ;
            CASSA_DIFF := CASSA_RIS_PAG - PREV_COMP.ASSESTATO_CASSA;

            TOT_RES_TER := RIM_RIS_PAG + RES_RIM_RIS_PAG;

            /*Azzero le somme sui livelli inferiori in quanto vengono calcolate dal report*/
            If ((P_NUM_LIV=2 AND PREV_COMP.CD_LIVELLO2 IS null) OR
                (P_NUM_LIV=3 AND PREV_COMP.CD_LIVELLO3 IS null) OR
                (P_NUM_LIV=4 AND PREV_COMP.CD_LIVELLO4 IS null) OR
                (P_NUM_LIV=5 AND PREV_COMP.CD_LIVELLO5 IS null) OR
                (P_NUM_LIV=6 AND PREV_COMP.CD_LIVELLO6 IS null) OR
                (P_NUM_LIV=7 AND PREV_COMP.CD_LIVELLO7 IS null) OR
                (P_NUM_LIV=8 AND PREV_COMP.CD_LIVELLO8 IS null) OR
                (P_NUM_LIV=9 AND PREV_COMP.CD_LIVELLO9 IS null)) Then
               PREV_INI := 0;
               VARIAZIONI := 0;
               ASSESTATO := 0;
               RIS_PAG := 0;
               RIM_RIS_PAG := 0;
               TOT_ACC_IMP := 0;
               DIFF_COMP := 0;
               RES_INI_ES := 0;
               RES_RIS_PAG := 0;
               RES_RIM_RIS_PAG := 0;
               RES_TOTALI := 0;
               RES_VAR_PIU := 0;
               RES_VAR_MENO := 0;
               CASSA_PREV := 0;
               CASSA_RIS_PAG := 0;
               CASSA_DIFF := 0;
               TOT_RES_TER := 0;
               RES_INI_ES_PREC := NVL(RES_INI_ES_PREC,0);
               TOT_ACC_IMP_PREC := NVL(TOT_ACC_IMP_PREC,0);
               RIS_PAG_PREC := NVL(RIS_PAG_PREC,0);
               PREVISIONE_INI_ES_PREC := 0;
               CASSA_PREV_ES_PREC := 0;
            End If;

            SEQUENZA := SEQUENZA + 1;

            Insert Into TMP_STAMPA_RENDICONTO(
                SEQUENZA, TIPO, TOTALE,
                CD_LIVELLO1, CD_LIVELLO2, CD_LIVELLO3, CD_LIVELLO4,
                CD_LIVELLO5, CD_LIVELLO6, CD_LIVELLO7, CD_LIVELLO8, CD_LIVELLO9,
                DS_LIVELLO1, DS_LIVELLO2, DS_LIVELLO3, DS_LIVELLO4,
                DS_LIVELLO5, DS_LIVELLO6, DS_LIVELLO7, DS_LIVELLO8, DS_LIVELLO9,
                LIVELLO1_DS, LIVELLO2_DS, LIVELLO3_DS, LIVELLO4_DS,
                LIVELLO5_DS, LIVELLO6_DS, LIVELLO7_DS, LIVELLO8_DS, LIVELLO9_DS,
                PREV_INI, VARIAZIONI, ASSESTATO, RIS_PAG, RIM_RIS_PAG, TOT_ACC_IMP, DIFF_COMP,
                RES_INI_ES, RES_RIS_PAG, RES_RIM_RIS_PAG, RES_TOTALI, RES_VAR_PIU, RES_VAR_MENO,
                CASSA_PREV, CASSA_RIS_PAG, CASSA_DIFF, TOT_RES_TER,
                RES_INI_ES_PREC, TOT_ACC_IMP_PREC, RIS_PAG_PREC,
                PREV_INI_ES_PREC, CASSA_PREV_ES_PREC)
            Values(
                SEQUENZA, P_TIPO, 'N',
                PREV_COMP.CD_LIVELLO1, PREV_COMP.CD_LIVELLO2, PREV_COMP.CD_LIVELLO3, PREV_COMP.CD_LIVELLO4,
                PREV_COMP.CD_LIVELLO5, PREV_COMP.CD_LIVELLO6, PREV_COMP.CD_LIVELLO7, PREV_COMP.CD_LIVELLO8, 
                PREV_COMP.CD_LIVELLO9,
                PREV_COMP.DS_LIVELLO1, PREV_COMP.DS_LIVELLO2, PREV_COMP.DS_LIVELLO3, PREV_COMP.DS_LIVELLO4,
                PREV_COMP.DS_LIVELLO5, PREV_COMP.DS_LIVELLO6, PREV_COMP.DS_LIVELLO7, PREV_COMP.DS_LIVELLO8,
                PREV_COMP.DS_LIVELLO9,
                PARLIV1_DS, PARLIV2_DS, PARLIV3_DS, PARLIV4_DS, 
                PARLIV5_DS, PARLIV6_DS, PARLIV7_DS, PARLIV8_DS, PARLIV9_DS,
                PREV_INI, VARIAZIONI, ASSESTATO, RIS_PAG, RIM_RIS_PAG, TOT_ACC_IMP, DIFF_COMP,
                RES_INI_ES, RES_RIS_PAG, RES_RIM_RIS_PAG, RES_TOTALI, RES_VAR_PIU, RES_VAR_MENO,
                CASSA_PREV, CASSA_RIS_PAG, CASSA_DIFF, TOT_RES_TER,
                RES_INI_ES_PREC, TOT_ACC_IMP_PREC, RIS_PAG_PREC,
                PREVISIONE_INI_ES_PREC, CASSA_PREV_ES_PREC);
      End Loop;
      
      If (P_COMPLETA = 'Y') Then
         If (P_TIPO = 'S') Then
            PRC_LOAD_TABLE_STAMPA_RENDIC(P_ESERCIZIO, 'E', P_NUM_LIV, P_TIPO_AGGREGAZIONE, P_TIPO_RENDICONTO, P_ORIGINE, 'N');
         Else
            PRC_LOAD_TABLE_STAMPA_RENDIC(P_ESERCIZIO, 'S', P_NUM_LIV, P_TIPO_AGGREGAZIONE, P_TIPO_RENDICONTO, P_ORIGINE, 'N');
         End If;
      End If;
    End If;
End;
/






© 2015 - 2024 Weber Informatics LLC | Privacy Policy