expsigladb.Procedure.aggiungi_moduli_da_saldi.prc Maven / Gradle / Ivy
CREATE OR REPLACE Procedure AGGIUNGI_MODULI_DA_SALDI (INES In NUMBER, IN_MODULO In NUMBER) As
PG_COMMESSA_REALE NUMBER;
PG_PROGETTO_REALE NUMBER;
ESISTE_PROGETTO_GEST NUMBER;
ESISTE_COMMESSA_GEST NUMBER;
Begin
-- DETERMINO LA COPPIA ESERCIZIO/MODULO MANCANTE COME "GEST"
For MODULI_MANCANTI In
(Select ESERCIZIO, PG_PROGETTO
From LINEA_ATTIVITA LA, VOCE_F_SALDI_CDR_LINEA SALDI
Where LA.CD_CENTRO_RESPONSABILITA = SALDI.CD_CENTRO_RESPONSABILITA AND
LA.CD_LINEA_ATTIVITA = SALDI.CD_LINEA_ATTIVITA And
LA.PG_PROGETTO Is Not Null And
SALDI.ESERCIZIO = NVL(INES, SALDI.ESERCIZIO) And
PG_PROGETTO = Nvl(IN_MODULO, PG_PROGETTO)
Minus
Select ESERCIZIO, PG_PROGETTO
From PROGETTO
Where ESERCIZIO = NVL(INES, PROGETTO.ESERCIZIO) And
TIPO_FASE = 'G') Loop
-- DATA LA COPPIA MANCANTE DETERMINO PROGETTO E COMMESSA DA QUALSIASI ANNO
Select PG_PROGETTO_PADRE
Into PG_COMMESSA_REALE
From PROGETTO
Where PG_PROGETTO = MODULI_MANCANTI.PG_PROGETTO And
Rownum < 2;
Select PG_PROGETTO_PADRE
Into PG_PROGETTO_REALE
From PROGETTO
Where PG_PROGETTO = PG_COMMESSA_REALE And
Rownum < 2;
Begin
-- VEDO SE IL PROGETTO ESISTE IN GESTIONE NELL'ANNO IN CUI MI OCCORRE,
-- SE NON C'E' LO INSERISCO
Select Count(*)
Into ESISTE_PROGETTO_GEST
From PROGETTO
Where ESERCIZIO = MODULI_MANCANTI.ESERCIZIO And
PG_PROGETTO = PG_PROGETTO_REALE And
TIPO_FASE = 'G';
If ESISTE_PROGETTO_GEST = 0 Then
Insert Into PROGETTO_SIC
(ESERCIZIO, PG_PROGETTO, TIPO_FASE, ESERCIZIO_PROGETTO_PADRE, PG_PROGETTO_PADRE, TIPO_FASE_PROGETTO_PADRE, CD_PROGETTO, DS_PROGETTO,
CD_TIPO_PROGETTO, CD_UNITA_ORGANIZZATIVA, CD_RESPONSABILE_TERZO, DT_INIZIO, DT_FINE, DT_PROROGA, IMPORTO_PROGETTO, IMPORTO_DIVISA,
CD_DIVISA, NOTE, STATO, CONDIVISO, DURATA_PROGETTO, LIVELLO, DACR, UTCR, DUVA, UTUV, PG_VER_REC, CD_DIPARTIMENTO,
FL_PIANO_TRIENNALE, FL_UTILIZZABILE)
Select MODULI_MANCANTI.ESERCIZIO, PG_PROGETTO, 'G', MODULI_MANCANTI.ESERCIZIO, PG_PROGETTO_PADRE, 'G', CD_PROGETTO, DS_PROGETTO,
CD_TIPO_PROGETTO, Nvl(CD_UNITA_ORGANIZZATIVA,'999.000'), Nvl(CD_RESPONSABILE_TERZO, 1),
Nvl(DT_INIZIO,To_Date('0101'||MODULI_MANCANTI.ESERCIZIO,'ddmmyyyy')), DT_FINE, DT_PROROGA, IMPORTO_PROGETTO, IMPORTO_DIVISA,
CD_DIVISA, NOTE, STATO, CONDIVISO, DURATA_PROGETTO, LIVELLO, Trunc(Sysdate), 'SI_SF_AUTO', Trunc(Sysdate), 'SI_SF_AUTO', 1,
CD_DIPARTIMENTO, 'N', FL_UTILIZZABILE
From PROGETTO
Where PG_PROGETTO = PG_PROGETTO_REALE And
Rownum < 2;
End If;
Exception
When Dup_Val_On_Index Then
Null;
End;
-- INSERISCO LA COMMESSA, SE GIA' C'E' ESCO
Begin
Select Count(*)
Into ESISTE_COMMESSA_GEST
From PROGETTO
Where ESERCIZIO = MODULI_MANCANTI.ESERCIZIO And
PG_PROGETTO = PG_COMMESSA_REALE And
TIPO_FASE = 'G';
If ESISTE_COMMESSA_GEST = 0 Then
Insert Into PROGETTO_SIC
(ESERCIZIO, PG_PROGETTO, TIPO_FASE, ESERCIZIO_PROGETTO_PADRE, PG_PROGETTO_PADRE, TIPO_FASE_PROGETTO_PADRE, CD_PROGETTO, DS_PROGETTO,
CD_TIPO_PROGETTO, CD_UNITA_ORGANIZZATIVA, CD_RESPONSABILE_TERZO, DT_INIZIO, DT_FINE, DT_PROROGA, IMPORTO_PROGETTO, IMPORTO_DIVISA,
CD_DIVISA, NOTE, STATO, CONDIVISO, DURATA_PROGETTO, LIVELLO, DACR, UTCR, DUVA, UTUV, PG_VER_REC, CD_DIPARTIMENTO,
FL_PIANO_TRIENNALE, FL_UTILIZZABILE)
Select MODULI_MANCANTI.ESERCIZIO, PG_PROGETTO, 'G', MODULI_MANCANTI.ESERCIZIO, PG_PROGETTO_PADRE, 'G', CD_PROGETTO, DS_PROGETTO,
CD_TIPO_PROGETTO, Nvl(CD_UNITA_ORGANIZZATIVA,'999.000'), Nvl(CD_RESPONSABILE_TERZO, 1),
Nvl(DT_INIZIO,To_Date('0101'||MODULI_MANCANTI.ESERCIZIO,'ddmmyyyy')), DT_FINE, DT_PROROGA, IMPORTO_PROGETTO, IMPORTO_DIVISA,
CD_DIVISA, NOTE, STATO, CONDIVISO, DURATA_PROGETTO, LIVELLO, Trunc(Sysdate), 'SI_SF_AUTO', Trunc(Sysdate), 'SI_SF_AUTO', 1,
CD_DIPARTIMENTO, 'N', FL_UTILIZZABILE
From PROGETTO
Where PG_PROGETTO = PG_COMMESSA_REALE And
Rownum < 2;
End If;
Exception
When Dup_Val_On_Index Then
Null;
End;
-- INSERISCO IL MODULO, SE GIA' C'E' ESCO
Begin
Insert Into PROGETTO_SIC
(ESERCIZIO, PG_PROGETTO, TIPO_FASE, ESERCIZIO_PROGETTO_PADRE, PG_PROGETTO_PADRE, TIPO_FASE_PROGETTO_PADRE, CD_PROGETTO, DS_PROGETTO,
CD_TIPO_PROGETTO, CD_UNITA_ORGANIZZATIVA, CD_RESPONSABILE_TERZO, DT_INIZIO, DT_FINE, DT_PROROGA, IMPORTO_PROGETTO, IMPORTO_DIVISA,
CD_DIVISA, NOTE, STATO, CONDIVISO, DURATA_PROGETTO, LIVELLO, DACR, UTCR, DUVA, UTUV, PG_VER_REC, CD_DIPARTIMENTO,
FL_PIANO_TRIENNALE, FL_UTILIZZABILE)
Select MODULI_MANCANTI.ESERCIZIO, PG_PROGETTO, 'G', MODULI_MANCANTI.ESERCIZIO, PG_PROGETTO_PADRE, 'G', CD_PROGETTO, DS_PROGETTO,
CD_TIPO_PROGETTO, Nvl(CD_UNITA_ORGANIZZATIVA,'999.000'), Nvl(CD_RESPONSABILE_TERZO, 1),
Nvl(DT_INIZIO,To_Date('0101'||MODULI_MANCANTI.ESERCIZIO,'ddmmyyyy')), DT_FINE, DT_PROROGA, IMPORTO_PROGETTO, IMPORTO_DIVISA,
CD_DIVISA, NOTE, STATO, CONDIVISO, DURATA_PROGETTO, LIVELLO, Trunc(Sysdate), 'SI_SF_AUTO', Trunc(Sysdate), 'SI_SF_AUTO', 1,
CD_DIPARTIMENTO, 'N', FL_UTILIZZABILE
From PROGETTO
Where PG_PROGETTO = MODULI_MANCANTI.PG_PROGETTO And
Rownum < 2;
Exception
When Dup_Val_On_Index Then
Null;
End;
End Loop;
End;
/
© 2015 - 2024 Weber Informatics LLC | Privacy Policy