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

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

There is a newer version: 6.6.11
Show newest version
CREATE OR REPLACE Procedure POPOLA_ART_22_BIS (IN_DA_DATA DATE,
                                               IN_A_DATA  DATE,
                                               perc_int   NUMBER) Is

VARPIU          NUMBER;
VARMENO         NUMBER;
IMP             NUMBER;
Aassestato       NUMBER;
Aperc_ass  NUMBER;
Adisp            NUMBER;
Ariduzione       NUMBER;

numVariazione     Number := 0;
numRiga           Number := 0;
totRiduzioneCDS   Number := 0;
totRiduzioneCDR   Number := 0;
Begin

Delete DATI_ART_22;


For aSaldi in (Select V.ESERCIZIO, V.ESERCIZIO_RES, V.CD_CENTRO_RESPONSABILITA, V.CD_LINEA_ATTIVITA, V.TI_APPARTENENZA, V.TI_GESTIONE,
                      V.CD_VOCE, IM_STANZ_INIZIALE_A1, v.cd_elemento_voce
              From  VOCE_F_SALDI_CDR_LINEA V, LINEA_ATTIVITA L
              Where V.esercizio = 2006 And
                    V.ESERCIZIO_RES = 2006 And
                    V.TI_GESTIONE = 'S' And
                    l.PG_PROGETTO != '2694' And
                    NOT (v.CD_CENTRO_RESPONSABILITA = '000.301.000' AND v.CD_LINEA_ATTIVITA = 'P0000008') And
                    Substr(v.cd_centro_responsabilita, 1, 3) != '035' And
                    V.cd_ELEMENTO_VOCE In ('1.01.061', '1.01.065', '1.01.101', '1.01.103', '1.01.104', '1.01.105', '1.01.107',
                                           '1.01.109', '1.01.110', '1.01.111', '1.01.113', '1.01.118', '1.01.124',
                                           '1.01.126', '1.01.127', '1.01.128', '1.01.129', '1.01.131', '1.01.133',
                                           '1.01.134', '1.01.135', '1.01.136', '1.01.139') And
                    V.CD_CENTRO_RESPONSABILITA = L.CD_CENTRO_RESPONSABILITA And
                    V.cd_linea_attivita = L.CD_LINEA_ATTIVITA And
--                    V.CD_CENTRO_RESPONSABILITA In ('038.000.000', '002.000.000', '313.000.000') And
                    CD_NATURA = '1') Loop

--Dbms_Output.put_line('1');
VARPIU := CNRUTL002.VARIAZIONI_PIU (aSaldi.ESERCIZIO, aSaldi.ESERCIZIO_RES, aSaldi.CD_CENTRO_RESPONSABILITA,
                                    aSaldi.CD_LINEA_ATTIVITA, aSaldi.TI_APPARTENENZA, aSaldi.TI_GESTIONE,
                                    aSaldi.CD_VOCE, aSaldi.CD_ELEMENTO_VOCE, IN_DA_DATA, IN_A_DATA);

--Dbms_Output.put_line('2');
VARMENO := CNRUTL002.VARIAZIONI_MENO (aSaldi.ESERCIZIO, aSaldi.ESERCIZIO_RES, aSaldi.CD_CENTRO_RESPONSABILITA,
                                      aSaldi.CD_LINEA_ATTIVITA, aSaldi.TI_APPARTENENZA, aSaldi.TI_GESTIONE,
                                      aSaldi.CD_VOCE, aSaldi.CD_ELEMENTO_VOCE, IN_DA_DATA, IN_A_DATA);


--Dbms_Output.put_line('3');
IMP := CNRUTL002.IM_OBBL_ACC_COMP     (aSaldi.ESERCIZIO, aSaldi.ESERCIZIO_RES, aSaldi.CD_CENTRO_RESPONSABILITA,
                                       aSaldi.CD_LINEA_ATTIVITA, aSaldi.TI_APPARTENENZA, aSaldi.TI_GESTIONE,
                                       aSaldi.CD_VOCE, aSaldi.CD_ELEMENTO_VOCE, IN_DA_DATA, IN_A_DATA);

Aassestato      := Nvl(aSaldi.IM_STANZ_INIZIALE_A1, 0) + Nvl(varpiu, 0) + Nvl(varmeno, 0);
Aperc_ass := (Nvl(aSaldi.IM_STANZ_INIZIALE_A1, 0) + Nvl(varpiu, 0) + Nvl(varmeno, 0))*(perc_int/100);
Adisp           := Nvl(aSaldi.IM_STANZ_INIZIALE_A1, 0) + Nvl(varpiu, 0) + Nvl(varmeno, 0) - Nvl(imp, 0);


If Aperc_ass <= Adisp Then
  Ariduzione := Aperc_ass;
Else
  If Adisp > 0 Then
     Ariduzione := Adisp;
  Else
     Ariduzione := 0;
  End If;
End If;

If aSaldi.IM_STANZ_INIZIALE_A1 != 0 Or varpiu != 0 Or varmeno != 0 Or imp != 0 Then

Insert Into DATI_ART_22
(DA_DATA, A_DATA, ESERCIZIO, ESERCIZIO_RES, CD_CENTRO_RESPONSABILITA, CD_LINEA_ATTIVITA, TI_APPARTENENZA,
 TI_GESTIONE, CD_VOCE, cd_elemento_voce, IM_STANZ_INIZIALE_A1, VARIAZIONI_PIU, VARIAZIONI_MENO, IM_OBBL_ACC_COMP,
 assestato, perc_ass, disp, riduzione)
Values
(IN_DA_DATA, IN_A_DATA, aSaldi.ESERCIZIO, aSaldi.ESERCIZIO_RES, aSaldi.CD_CENTRO_RESPONSABILITA,
 aSaldi.CD_LINEA_ATTIVITA, aSaldi.TI_APPARTENENZA, aSaldi.TI_GESTIONE, aSaldi.CD_VOCE, aSaldi.CD_ELEMENTO_VOCE,
 aSaldi.IM_STANZ_INIZIALE_A1, varpiu, varmeno, imp, Aassestato, Aperc_ass, Adisp, Nvl(ariduzione, 0));

Commit;

End If;

End Loop;

--Dbms_Output.put_line('E VAI!!!');
--Carico le variazioni con i dati caricati in DATI_ART_22

Select nvl(max(PG_VARIAZIONE_PDG), 0)
into numVariazione
from PDG_VARIAZIONE
where esercizio = 2006;

For recCDS in (select distinct substr(CD_CENTRO_RESPONSABILITA,1,3) cds
               from DATI_ART_22
               where esercizio = 2006
               order by 1) Loop

--Dbms_Output.put_line('entro');
   numRiga := 0;
   numVariazione := numVariazione + 1;
   totRiduzioneCDS := 0;
   totRiduzioneCDR := 0;

--Dbms_Output.put_line('inserisco');
   Insert into PDG_VARIAZIONE (ESERCIZIO, PG_VARIAZIONE_PDG, CD_CENTRO_RESPONSABILITA,
                               DT_APERTURA, DT_CHIUSURA, DT_APPROVAZIONE, DT_ANNULLAMENTO,
                               DS_VARIAZIONE, DS_DELIBERA, STATO, RIFERIMENTI,
                               CD_CAUSALE_RESPINTA, DS_CAUSALE_RESPINTA,
                               DACR, UTCR, DUVA, UTUV, PG_VER_REC,
                               DT_APP_FORMALE, TIPOLOGIA, TIPOLOGIA_FIN,
                               TI_APPARTENENZA, TI_GESTIONE, CD_ELEMENTO_VOCE)
                        values(2006, numVariazione, '000.100.000',
                               trunc(sysdate), null, null, null,
                               Substr('Riduzione delle spese di funzionamento (fonti interne) per consumi intermedi in c/competenza di cui '||
                                      'all''art.22 D.L. 04/07/2006, n. 223, pubblicato sulla G.U. n. 153 del 04/07/2006',1,300),
                               Substr('Riduzione delle spese di funzionamento (fonti interne) per consumi intermedi in c/competenza di cui '||
                                      'all''art.22 D.L. 04/07/2006, n. 223, pubblicato sulla G.U. n. 153 del 04/07/2006',1,200),
                               'PRP', 'Centro di Spesa '||recCDS.cds,
                               null, null,
                               trunc(sysdate), 'S.I.', trunc(sysdate), 'S.I.', 1,
                               null, 'STO_S_TOT', 'FIN',
                               null, null, null);

--Dbms_Output.put_line('inserito');
   For recCDR in (select distinct CD_CENTRO_RESPONSABILITA from DATI_ART_22
                  where esercizio = 2006
                  and   substr(CD_CENTRO_RESPONSABILITA,1,3) = recCDS.cds) Loop

      totRiduzioneCDR := 0;

--Dbms_Output.put_line('rientro2');
      For recDET in (select * from DATI_ART_22
                     where esercizio = 2006
                     and   CD_CENTRO_RESPONSABILITA = recCDR.CD_CENTRO_RESPONSABILITA) Loop

 --Dbms_Output.put_line('rientro3');
         If recDET.RIDUZIONE != 0 Then

             numRiga := numRiga + 1;

             totRiduzioneCDR := totRiduzioneCDR + recDET.RIDUZIONE;
             totRiduzioneCDS := totRiduzioneCDS + recDET.RIDUZIONE;

--Dbms_Output.put_line('inserisco2');
             Insert into PDG_VARIAZIONE_RIGA_GEST(ESERCIZIO, PG_VARIAZIONE_PDG, PG_RIGA,
                                                  CD_CDR_ASSEGNATARIO, CD_LINEA_ATTIVITA, CD_CDS_AREA,
                                                  TI_APPARTENENZA, TI_GESTIONE, CD_ELEMENTO_VOCE,
                                                  DT_REGISTRAZIONE, DESCRIZIONE, CATEGORIA_DETTAGLIO,
                                                  IM_SPESE_GEST_DECENTRATA_INT,
                                                  IM_SPESE_GEST_DECENTRATA_EST,
                                                  IM_SPESE_GEST_ACCENTRATA_INT,
                                                  IM_SPESE_GEST_ACCENTRATA_EST,
                                                  IM_ENTRATA, PG_RIGA_CLGS,
                                                  CD_CDR_ASSEGNATARIO_CLGS, CD_LINEA_ATTIVITA_CLGS,
                                                  DACR, UTCR, DUVA, UTUV, PG_VER_REC)
                                           Values(2006, numVariazione, numRiga,
                                                  recDET.CD_CENTRO_RESPONSABILITA, recDET.CD_LINEA_ATTIVITA, recCDS.cds,
                                                  recDET.TI_APPARTENENZA, recDET.TI_GESTIONE, recDET.CD_ELEMENTO_VOCE,
                                                  trunc(sysdate), null, 'DIR',
                                                  decode(recDET.TI_GESTIONE, 'S', -recDET.RIDUZIONE, 0),
                                                  0,
                                                  0,
                                                  0 ,
                                                  0, null,
                                                  null, null,
                                                  trunc(sysdate), 'S.I.', trunc(sysdate), 'S.I.', 1);
          End If;
      End Loop;

      If totRiduzioneCDR != 0 Then
--Dbms_Output.put_line('inserisco3');
         Insert into ASS_PDG_VARIAZIONE_CDR(ESERCIZIO, PG_VARIAZIONE_PDG, CD_CENTRO_RESPONSABILITA,
                                            IM_ENTRATA, IM_SPESA,
                                            DACR, UTCR, DUVA, UTUV, PG_VER_REC)
                                     Values(2006, numVariazione, recCDR.CD_CENTRO_RESPONSABILITA,
                                            0, -totRiduzioneCDR,
                                            trunc(sysdate), 'S.I.', trunc(sysdate), 'S.I.', 1);
      End If;
   End Loop;

   If totRiduzioneCDS != 0 Then
--Dbms_Output.put_line('inserisco4');
      Insert into ASS_PDG_VARIAZIONE_CDR(ESERCIZIO, PG_VARIAZIONE_PDG, CD_CENTRO_RESPONSABILITA,
                                         IM_ENTRATA, IM_SPESA,
                                         DACR, UTCR, DUVA, UTUV, PG_VER_REC)
                                  Values(2006, numVariazione, '000.101.000',
                                         0, totRiduzioneCDS,
                                         trunc(sysdate), 'S.I.', trunc(sysdate), 'S.I.', 1);

      numRiga := numRiga + 1;
--Dbms_Output.put_line('inserisco5');
     Insert into PDG_VARIAZIONE_RIGA_GEST(ESERCIZIO, PG_VARIAZIONE_PDG, PG_RIGA,
                                           CD_CDR_ASSEGNATARIO, CD_LINEA_ATTIVITA, CD_CDS_AREA,
                                           TI_APPARTENENZA, TI_GESTIONE, CD_ELEMENTO_VOCE,
                                           DT_REGISTRAZIONE, DESCRIZIONE, CATEGORIA_DETTAGLIO,
                                           IM_SPESE_GEST_DECENTRATA_INT,
                                           IM_SPESE_GEST_DECENTRATA_EST,
                                           IM_SPESE_GEST_ACCENTRATA_INT,
                                           IM_SPESE_GEST_ACCENTRATA_EST,
                                           IM_ENTRATA, PG_RIGA_CLGS,
                                           CD_CDR_ASSEGNATARIO_CLGS, CD_LINEA_ATTIVITA_CLGS,
                                           DACR, UTCR, DUVA, UTUV, PG_VER_REC)
                                    Values(2006, numVariazione, numRiga,
                                           '000.101.000', 'P0000015', '000',
                                           'D', 'S', '1.01.124',
                                           trunc(sysdate), null, 'DIR',
                                           totRiduzioneCDS,
                                           0,
                                           0,
                                           0,
                                           0, null,
                                           null, null,
                                           trunc(sysdate), 'S.I.', trunc(sysdate), 'S.I.', 1);
   End If;
End Loop;
End;
/






© 2015 - 2024 Weber Informatics LLC | Privacy Policy