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

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

There is a newer version: 6.6.11
Show newest version
CREATE OR REPLACE Procedure PRC_LOAD_SITUAZIONE_PROG2
(P_ESERCIZIO             IN ESERCIZIO.ESERCIZIO%TYPE,
 P_PROGETTO              IN PROGETTO_SIP.PG_PROGETTO%TYPE,
 P_UO                    IN UNITA_ORGANIZZATIVA.CD_UNITA_ORGANIZZATIVA%TYPE,
 P_GAE                   IN LINEA_ATTIVITA.CD_LINEA_ATTIVITA%TYPE,
 P_ROTTURA_ANNO          IN VARCHAR2 DEFAULT 'N',
 P_ROTTURA_GAE           IN VARCHAR2 DEFAULT 'N',
 P_ROTTURA_VOCE          IN VARCHAR2 DEFAULT 'N',
 P_ROTTURA_PIANO         IN VARCHAR2 DEFAULT 'N',
 P_SOLO_GAE_ATTIVE       IN VARCHAR2 DEFAULT 'N',
 P_PRINT_MOVIMENTAZIONE  IN VARCHAR2 DEFAULT 'N',
 P_RESPONSABILE_GAE      IN LINEA_ATTIVITA.CD_RESPONSABILE_TERZO%TYPE DEFAULT NULL
) Is
  P_CENTRO_RESPONSABILITA LINEA_ATTIVITA.CD_CENTRO_RESPONSABILITA%TYPE;
  P_PG_PROGLIV2           PROGETTO_SIP.PG_PROGETTO%TYPE;
  P_ROTTURA_ANNO_LOCAL    VARCHAR2(1) := 'N';
  P_CONTA_INSERT          NUMBER := 0;
  P_REC_PRINCIPALE        VARCHAR2(6) := 'PRINC';
  P_REC_DETAIL_MOVIMENTI  VARCHAR2(6) := 'DETMOV';
  P_REC_DETAIL_VARIAZIONI VARCHAR2(6) := 'DETVAR';
Begin
  if P_ROTTURA_PIANO = 'S' then
     P_ROTTURA_ANNO_LOCAL := 'S';
  else
     P_ROTTURA_ANNO_LOCAL := P_ROTTURA_ANNO;
  end if;

  For rec in (SELECT distinct A.CD_CENTRO_RESPONSABILITA, A.PG_PROGETTO
              FROM V_LINEA_ATTIVITA_VALIDA A
              WHERE A.ESERCIZIO = P_ESERCIZIO
              AND  (P_UO IS NULL OR A.CD_CENTRO_RESPONSABILITA LIKE P_UO||'%')
              AND  (P_PROGETTO IS NULL OR A.PG_PROGETTO = P_PROGETTO)
              AND  (P_GAE IS NULL OR P_GAE = '*' OR A.CD_LINEA_ATTIVITA = P_GAE)
              AND  (P_RESPONSABILE_GAE IS NULL OR A.CD_LINEA_ATTIVITA = P_RESPONSABILE_GAE)
              AND  A.ESERCIZIO >= 2016) Loop

      P_CENTRO_RESPONSABILITA := rec.CD_CENTRO_RESPONSABILITA;
      P_PG_PROGLIV2 := rec.PG_PROGETTO;

      INSERT INTO TMP_STAMPA_SITUAZIONE_PROGETTI
         (ESERCIZIO, ESERCIZIO_RES, TI_GESTIONE,
          CD_CENTRO_RESPONSABILITA, PG_PROGETTO,
          CD_UNITA_PIANO, CD_VOCE_PIANO, DS_VOCE_PIANO,
          CD_LINEA_ATTIVITA, DS_LINEA_ATTIVITA,
          CD_ELEMENTO_VOCE, DS_ELEMENTO_VOCE, TIPO_RECORD,
          STANZIAMENTO_ACC, VARIAZIONI_ACC, STANZIAMENTO_DEC, VARIAZIONI_DEC,
          TOT_IMPACC, TOT_MANREV, TOT_NUMMOV, TOT_NUMMOV_OBBACC, TOT_NUMMOV_VARIAZIONI)
      (SELECT P_ESERCIZIO, p.esercizio_res, p.tipo,
              P_CENTRO_RESPONSABILITA, P_PG_PROGLIV2,
              'PIANONULLO',
              'PIANONULLO',
              'PIANONULLO',
              p.cd_linea_attivita,
              CASE WHEN P_ROTTURA_GAE='S'
                   THEN (SELECT nvl(q.ds_linea_attivita,q.denominazione) from linea_attivita q
                         WHERE q.cd_centro_responsabilita = P_CENTRO_RESPONSABILITA
                         AND   q.cd_linea_attivita = p.cd_linea_attivita)
                   ELSE 'DS_GAE_UNICA'
                   END ds_linea_attivita,
              p.cd_elemento_voce,
              CASE WHEN P_ROTTURA_VOCE='S'
                   THEN (SELECT b.ds_elemento_voce FROM ELEMENTO_VOCE B
                         WHERE B.TI_GESTIONE = P.TIPO
                         AND B.CD_ELEMENTO_VOCE = P.CD_ELEMENTO_VOCE
                         and ROWNUM<2)
                   ELSE 'DS_VOCE_UNICA'
                   END ds_elemento_voce,
              P_REC_PRINCIPALE,
              p.stanziamento_acc, p.variazioni_acc,
              p.stanziamento, p.variazioni,
              p.impacc, p.pagris, p.nummov, 0, 0
       FROM (SELECT a.tipo, a.esercizio_res, a.cd_unita_piano, a.cd_voce_piano,
                    a.cd_linea_attivita, a.cd_elemento_voce,
                    sum(a.stanziamento_acc) stanziamento_acc,
                    sum(a.variazioni_acc) variazioni_acc,
                    sum(a.stanziamento) stanziamento,
                    sum(a.variazioni) variazioni,
                    sum(CASE WHEN a.esercizio=P_ESERCIZIO
                             THEN a.impacc
                             ELSE (CASE WHEN a.impacc




© 2015 - 2024 Weber Informatics LLC | Privacy Policy