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

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

There is a newer version: 6.6.11
Show newest version
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