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

expsigladb.View.V_ANALITICA_LDA_COMRES.sql Maven / Gradle / Ivy

There is a newer version: 6.6.11
Show newest version
--------------------------------------------------------
--  DDL for View V_ANALITICA_LDA_COMRES
--------------------------------------------------------

  CREATE OR REPLACE FORCE VIEW "V_ANALITICA_LDA_COMRES" ("ESERCIZIO", "CDR", "CDS", "UO", "COMMESSA", "MODULO", "LDA", "VOCE", "SPESE_A1_INI", "SPESE_A1_VAR", "SPESE_A1", "RESIDUO_A1", "OBBL_A1", "DOC_OBBL_A1", "MND_OBBL_A1", "FUNZ", "NAT", "DS_CDR", "DS_COMMESSA", "DS_MODULO", "DS_LDA", "DS_VOCE", "CDR_AFF", "UO_AFF", "DIP_PRG") AS 
  SELECT
--
-- Date: 09/11/2006
-- Version: 1.1
--
-- History
--
-- Date: 26/09/2005
-- Version: 1.0
-- Gestione Impegni/Accertamenti Residui:
-- gestito il nuovo campo ESERCIZIO_ORIGINALE
--
-- Date: 09/11/2006
-- Version: 1.1
-- Aggiunta la selezione del progetto/commessa/modulo per anno
--
-- Body
--
A.ESERCIZIO,
       CDR, cds, uo,
       NVL(COMMESSA.CD_PROGETTO, 'ZZZZZZZZZZ') commessa,
       NVL(MODULO.CD_PROGETTO, 'ZZZZZZZZZZ') modulo,
       lda, voce,
       SUM(imp_spese_A1_ini) spese_a1_ini,
       SUM(imp_spese_A1_var) spese_a1_var,
       SUM(imp_spese_A1_ini + imp_spese_A1_var)	spese_a1,
       SUM(imp_residuo_A1),
       SUM(imp_obbl_A1),
       SUM(imp_doc_obbl_A1),
       SUM(imp_mnd_obbl_A1),
       LINEA_ATTIVITA.CD_FUNZIONE, LINEA_ATTIVITA.CD_NATURA,
       CDR.DS_CDR,
       NVL(COMMESSA.DS_PROGETTO, 'ZZZZZZZZZZ') DS_COMMESSA,
       NVL(MODULO.DS_PROGETTO, 'ZZZZZZZZZZ') DS_MODULO,
       LINEA_ATTIVITA.DS_LINEA_ATTIVITA, ds_voce,
       CDR.CD_CDR_AFFERENZA, NVL(SUBSTR(CDR.cd_cdr_afferenza,1,7),' '),	NVL(PROGETTO.CD_DIPARTIMENTO, 'XXX')
FROM
     (
      -- recupero i dati di previsione dai pdg	con la voce di bilancio
      SELECT a.ESERCIZIO ESERCIZIO,
	     a.cd_centro_responsabilita	CDR,
	     SUBSTR(a.cd_centro_responsabilita,1,3) cds,
	     SUBSTR(a.cd_centro_responsabilita,1,7) uo,
	     a.cd_linea_attivita lda,
	     a.CD_ELEMENTO_VOCE	voce,
	     a.ds_voce,
	     SUM(a.IM_RI_CCS_SPESE_ODC_I+a.IM_RK_CCS_SPESE_OGC_I+a.IM_RQ_SSC_COSTI_ODC_I+
		 a.IM_RS_SSC_COSTI_OGC_I+a.IM_RU_SPESE_COSTI_ALTRUI_I) imp_spese_A1_ini,
	     SUM(a.IM_RI_CCS_SPESE_ODC_V+a.IM_RK_CCS_SPESE_OGC_V+a.IM_RQ_SSC_COSTI_ODC_V+
		 a.IM_RS_SSC_COSTI_OGC_V+a.IM_RU_SPESE_COSTI_ALTRUI_V) imp_spese_A1_var,
	     SUM(a.IM_RI_CCS_SPESE_ODC_I+a.IM_RK_CCS_SPESE_OGC_I+a.IM_RQ_SSC_COSTI_ODC_I+
		 a.IM_RS_SSC_COSTI_OGC_I+a.IM_RU_SPESE_COSTI_ALTRUI_I+
		 a.IM_RI_CCS_SPESE_ODC_V+a.IM_RK_CCS_SPESE_OGC_V+a.IM_RQ_SSC_COSTI_ODC_V+
		 a.IM_RS_SSC_COSTI_OGC_V+a.IM_RU_SPESE_COSTI_ALTRUI_V) imp_spese_A1,
	     SUM(a.IM_RESIDUO) imp_residuo_A1,
	     0 imp_obbl_A1,
	     0 imp_doc_obbl_A1,
	     0 imp_mnd_obbl_A1
      FROM
	   V_ANALITICA_LDA_COMRES_PDG_SPE a
      GROUP BY
	       a.ESERCIZIO,
	       a.cd_centro_responsabilita,
	       SUBSTR(a.cd_centro_responsabilita,1,3),
	       SUBSTR(a.cd_centro_responsabilita,1,7),
	       a.cd_linea_attivita,
	       a.CD_ELEMENTO_VOCE,
	       a.ds_voce
      UNION ALL
      -- recupero i dati di previsione relativi	alla competenza	dai pdg	con la voce di bilancio
      -- sulla nuova tabella previsionale PDG_MODULO_SPESE_GEST
      SELECT PDG_MODULO_SPESE_GEST.ESERCIZIO ESERCIZIO,
	     PDG_MODULO_SPESE_GEST.CD_CDR_ASSEGNATARIO CDR,
	     SUBSTR(PDG_MODULO_SPESE_GEST.CD_CDR_ASSEGNATARIO,1,3) cds,
	     SUBSTR(PDG_MODULO_SPESE_GEST.CD_CDR_ASSEGNATARIO,1,7) uo,
	     PDG_MODULO_SPESE_GEST.CD_LINEA_ATTIVITA lda,
	     PDG_MODULO_SPESE_GEST.CD_ELEMENTO_VOCE voce,
	     ELEMENTO_VOCE.DS_ELEMENTO_VOCE,
	     SUM(DECODE(PDG_MODULO_SPESE_GEST.PG_VARIAZIONE_PDG, NULL,
			NVL(PDG_MODULO_SPESE_GEST.IM_SPESE_GEST_DECENTRATA_INT,0)+
			NVL(PDG_MODULO_SPESE_GEST.IM_SPESE_GEST_DECENTRATA_EST,0)+
			DECODE(PDG_MODULO_SPESE_GEST.CD_CDR_ASSEGNATARIO, CLASSIFICAZIONE_VOCI.CDR_ACCENTRATORE,
			       NVL(PDG_MODULO_SPESE_GEST.IM_SPESE_GEST_ACCENTRATA_INT,0)+
			       NVL(PDG_MODULO_SPESE_GEST.IM_SPESE_GEST_ACCENTRATA_EST,0), 0), 0)) imp_spese_A1_ini,
	     SUM(DECODE(PDG_MODULO_SPESE_GEST.PG_VARIAZIONE_PDG, NULL,
			0 ,NVL(PDG_MODULO_SPESE_GEST.IM_SPESE_GEST_DECENTRATA_INT,0)+
			   NVL(PDG_MODULO_SPESE_GEST.IM_SPESE_GEST_DECENTRATA_EST,0)+
			   DECODE(PDG_MODULO_SPESE_GEST.CD_CDR_ASSEGNATARIO, CLASSIFICAZIONE_VOCI.CDR_ACCENTRATORE,
				  NVL(PDG_MODULO_SPESE_GEST.IM_SPESE_GEST_ACCENTRATA_INT,0)+
				  NVL(PDG_MODULO_SPESE_GEST.IM_SPESE_GEST_ACCENTRATA_EST,0), 0)))  imp_spese_A1_var,
	     SUM(NVL(PDG_MODULO_SPESE_GEST.IM_SPESE_GEST_DECENTRATA_INT,0)+
		 NVL(PDG_MODULO_SPESE_GEST.IM_SPESE_GEST_DECENTRATA_EST,0)+
		 DECODE(PDG_MODULO_SPESE_GEST.CD_CDR_ASSEGNATARIO, CLASSIFICAZIONE_VOCI.CDR_ACCENTRATORE,
			NVL(PDG_MODULO_SPESE_GEST.IM_SPESE_GEST_ACCENTRATA_INT,0)+
			NVL(PDG_MODULO_SPESE_GEST.IM_SPESE_GEST_ACCENTRATA_EST,0))) imp_spese_A1,
	     0 imp_residuo_A1,
	     0 imp_obbl_A1,
	     0 imp_doc_obbl_A1,
	     0 imp_mnd_obbl_A1
      FROM
	   PDG_MODULO_SPESE_GEST,
	   ELEMENTO_VOCE,
	   CLASSIFICAZIONE_VOCI
      WHERE
	   (SUBSTR(PDG_MODULO_SPESE_GEST.CD_CENTRO_RESPONSABILITA,1,3) = PDG_MODULO_SPESE_GEST.CD_CDS_AREA Or
	    SUBSTR(PDG_MODULO_SPESE_GEST.CD_CDR_ASSEGNATARIO,1,3) = PDG_MODULO_SPESE_GEST.CD_CDS_AREA) AND
	   --Join tra "PDG_MODULO_SPESE_GEST" e	"ELEMENTO_VOCE"
	   PDG_MODULO_SPESE_GEST.ESERCIZIO = ELEMENTO_VOCE.ESERCIZIO AND
	   PDG_MODULO_SPESE_GEST.TI_GESTIONE = ELEMENTO_VOCE.TI_GESTIONE AND
	   PDG_MODULO_SPESE_GEST.TI_APPARTENENZA = ELEMENTO_VOCE.TI_APPARTENENZA AND
	   PDG_MODULO_SPESE_GEST.CD_ELEMENTO_VOCE = ELEMENTO_VOCE.CD_ELEMENTO_VOCE AND
	   PDG_MODULO_SPESE_GEST.ID_CLASSIFICAZIONE = CLASSIFICAZIONE_VOCI.ID_CLASSIFICAZIONE
      GROUP BY
	       PDG_MODULO_SPESE_GEST.ESERCIZIO,
	       PDG_MODULO_SPESE_GEST.CD_CDR_ASSEGNATARIO,
	       SUBSTR(PDG_MODULO_SPESE_GEST.CD_CDR_ASSEGNATARIO,1,3),
	       SUBSTR(PDG_MODULO_SPESE_GEST.CD_CDR_ASSEGNATARIO,1,7),
	       PDG_MODULO_SPESE_GEST.CD_LINEA_ATTIVITA,
	       PDG_MODULO_SPESE_GEST.CD_ELEMENTO_VOCE,
	       ELEMENTO_VOCE.DS_ELEMENTO_VOCE
      UNION ALL
      -- recupero i dati di previsione relativi	ai residui dai pdg con la voce di bilancio
      -- sulla nuova tabella previsionale VOCE_F_SALDI_CDR_LINEA
      SELECT VOCE_F_SALDI_CDR_LINEA.ESERCIZIO ESERCIZIO,
	     VOCE_F_SALDI_CDR_LINEA.CD_CENTRO_RESPONSABILITA CDR,
	     SUBSTR(VOCE_F_SALDI_CDR_LINEA.CD_CENTRO_RESPONSABILITA,1,3) cds,
	     SUBSTR(VOCE_F_SALDI_CDR_LINEA.CD_CENTRO_RESPONSABILITA,1,7) uo,
	     VOCE_F_SALDI_CDR_LINEA.CD_LINEA_ATTIVITA lda,
	     VOCE_F_SALDI_CDR_LINEA.CD_ELEMENTO_VOCE voce,
	     ELEMENTO_VOCE.DS_ELEMENTO_VOCE,
	     0 imp_spese_A1_ini,
	     0 imp_spese_A1_var,
	     0 imp_spese_A1,
	     SUM(NVL(VOCE_F_SALDI_CDR_LINEA.IM_STANZ_RES_IMPROPRIO,0)+
		 NVL(VOCE_F_SALDI_CDR_LINEA.IM_OBBL_RES_PRO,0))	imp_residuo_A1,
	     0 imp_obbl_A1,
	     0 imp_doc_obbl_A1,
	     0 imp_mnd_obbl_A1
      FROM
	   VOCE_F_SALDI_CDR_LINEA,
	   ELEMENTO_VOCE
      WHERE
	   --Join tra "VOCE_F_SALDI_CDR_LINEA" e "ELEMENTO_VOCE"
	   VOCE_F_SALDI_CDR_LINEA.TI_GESTIONE =	'S' AND
	   VOCE_F_SALDI_CDR_LINEA.ESERCIZIO = ELEMENTO_VOCE.ESERCIZIO AND
	   VOCE_F_SALDI_CDR_LINEA.TI_GESTIONE =	ELEMENTO_VOCE.TI_GESTIONE AND
	   VOCE_F_SALDI_CDR_LINEA.TI_APPARTENENZA = ELEMENTO_VOCE.TI_APPARTENENZA AND
	   VOCE_F_SALDI_CDR_LINEA.CD_ELEMENTO_VOCE = ELEMENTO_VOCE.CD_ELEMENTO_VOCE
      GROUP BY
	       VOCE_F_SALDI_CDR_LINEA.ESERCIZIO,
	       VOCE_F_SALDI_CDR_LINEA.CD_CENTRO_RESPONSABILITA,
	       SUBSTR(VOCE_F_SALDI_CDR_LINEA.CD_CENTRO_RESPONSABILITA,1,3),
	       SUBSTR(VOCE_F_SALDI_CDR_LINEA.CD_CENTRO_RESPONSABILITA,1,7),
	       VOCE_F_SALDI_CDR_LINEA.CD_LINEA_ATTIVITA,
	       VOCE_F_SALDI_CDR_LINEA.CD_ELEMENTO_VOCE,
	       ELEMENTO_VOCE.DS_ELEMENTO_VOCE
      UNION ALL
      -- recupero i dati delle obbligazioni per	lda con	indicata la voce di bilancio
      SELECT b.ESERCIZIO ESERCIZIO,
	     b.cd_centro_responsabilita	CDR,
	     SUBSTR(b.cd_centro_responsabilita,1,3) cds,
	     SUBSTR(b.cd_centro_responsabilita,1,7) uo,
	     b.cd_linea_attivita lda,
	     a.CD_ELEMENTO_VOCE	voce,
	     e.ds_elemento_voce,
	     0 imp_spese_A1_ini,
	     0 imp_spese_A1_var,
	     0 imp_spese_A1,
	     0 imp_residuo_A1,
	     (DECODE(a.ESERCIZIO,a.esercizio_competenza,b.IM_VOCE,0)) imp_obbl_A1,
	     ROUND((DECODE(a.ESERCIZIO,a.esercizio_competenza,(d.IM_ASSOCIATO_DOC_AMM*(b.im_voce*100/DECODE(d.im_scadenza,0,1,d.im_scadenza))/100) ,0)),2) imp_doc_obbl_A1,
	     ROUND((DECODE(a.ESERCIZIO,a.esercizio_competenza,(d.IM_ASSOCIATO_DOC_CONTABILE*(b.im_voce*100/DECODE(d.im_scadenza,0,1,d.im_scadenza))/100),0)),2)	imp_mnd_obbl_A1
      FROM
	   OBBLIGAZIONE	a,
	   OBBLIGAZIONE_SCAD_VOCE b,
	   OBBLIGAZIONE_SCADENZARIO d,
	   ELEMENTO_VOCE e
      WHERE
	    a.pg_obbligazione >	0 AND
	    b.cd_cds=a.cd_cds AND
	    b.ESERCIZIO=a.ESERCIZIO AND
	    b.esercizio_originale=a.esercizio_originale And
            b.pg_obbligazione=a.pg_obbligazione	AND
	    d.cd_cds=a.cd_cds AND
	    D.ESERCIZIO=A.ESERCIZIO AND
	    d.esercizio_originale=a.esercizio_originale And
            d.pg_obbligazione=a.pg_obbligazione	AND
	    B.CD_CDS=D.CD_CDS AND
	    B.ESERCIZIO=D.ESERCIZIO AND
	    B.ESERCIZIO_ORIGINALE=D.ESERCIZIO_ORIGINALE And
            B.PG_OBBLIGAZIONE=D.PG_OBBLIGAZIONE	AND
	    b.PG_OBBLIGAZIONE_SCADENZARIO=d.PG_OBBLIGAZIONE_SCADENZARIO	AND
	    e.ESERCIZIO=a.ESERCIZIO AND
	    e.ti_appartenenza='D' AND
	    e.ti_gestione='S' AND
	    e.cd_elemento_voce=a.cd_elemento_voce AND
	    e.ESERCIZIO=a.ESERCIZIO AND
	    EXISTS( SELECT 1
		    FROM CDR c
		    WHERE b.cd_centro_responsabilita = c.cd_centro_responsabilita AND
			  a.CD_UNITA_ORGANIZZATIVA = c.CD_UNITA_ORGANIZZATIVA)
      /* unione	di una query per estrarre le obbligazioni sul 000.999.000 */
      UNION ALL
      SELECT b.ESERCIZIO ESERCIZIO,
	     b.cd_centro_responsabilita	CDR,
	     SUBSTR(b.cd_centro_responsabilita,1,3) cds,
	     SUBSTR(b.cd_centro_responsabilita,1,7) uo,
	     b.cd_linea_attivita lda,
	     a.CD_ELEMENTO_VOCE	voce,
	     e.ds_elemento_voce,
	     0 imp_spese_A1_ini,
	     0 imp_spese_A1_var,
	     0 imp_spese_A1,
	     0 imp_residuo_A1,
	     (DECODE(a.ESERCIZIO,a.esercizio_competenza,b.IM_VOCE,0)) imp_obbl_A1,
	     ROUND((DECODE(a.ESERCIZIO,a.esercizio_competenza,(d.IM_ASSOCIATO_DOC_AMM*(b.im_voce*100/DECODE(d.im_scadenza,0,1,d.im_scadenza))/100) ,0)),2) imp_doc_obbl_A1,
	     ROUND((DECODE(a.ESERCIZIO,a.esercizio_competenza,(d.IM_ASSOCIATO_DOC_CONTABILE*(b.im_voce*100/DECODE(d.im_scadenza,0,1,d.im_scadenza))/100),0)),2)	imp_mnd_obbl_A1
      FROM
	   OBBLIGAZIONE	a,
	   OBBLIGAZIONE_SCAD_VOCE b,
	   OBBLIGAZIONE_SCADENZARIO d,
	   ELEMENTO_VOCE e
      WHERE
	    a.pg_obbligazione >	0 AND
	    b.cd_cds=a.cd_cds AND
	    b.ESERCIZIO=a.ESERCIZIO AND
	    b.esercizio_originale=a.esercizio_originale And
            b.pg_obbligazione=a.pg_obbligazione	AND
	    d.cd_cds=a.cd_cds AND
	    D.ESERCIZIO=A.ESERCIZIO AND
	    d.esercizio_originale=a.esercizio_originale And
            d.pg_obbligazione=a.pg_obbligazione	AND
	    B.CD_CDS=D.CD_CDS AND
	    B.ESERCIZIO=D.ESERCIZIO AND
	    B.ESERCIZIO_ORIGINALE=D.ESERCIZIO_ORIGINALE And
            B.PG_OBBLIGAZIONE=D.PG_OBBLIGAZIONE	AND
	    b.PG_OBBLIGAZIONE_SCADENZARIO=d.PG_OBBLIGAZIONE_SCADENZARIO	AND
	    e.ESERCIZIO=a.ESERCIZIO AND
	    e.ti_appartenenza='D' AND
	    e.ti_gestione='S' AND
	    e.cd_elemento_voce=a.cd_elemento_voce AND
	    SUBSTR(b.cd_centro_responsabilita,1,3)<>'999' AND
	    NOT	EXISTS ( SELECT	1
			 FROM CDR c
			 WHERE b.cd_centro_responsabilita = c.cd_centro_responsabilita AND
			       a.CD_UNITA_ORGANIZZATIVA	= c.CD_UNITA_ORGANIZZATIVA)
      /* fine inserimento nuova	query*/
      ) A, LINEA_ATTIVITA, CDR, PROGETTO_GEST MODULO, PROGETTO_GEST COMMESSA, PROGETTO_GEST PROGETTO
WHERE
      LINEA_ATTIVITA.CD_LINEA_ATTIVITA = lda AND
      LINEA_ATTIVITA.CD_CENTRO_RESPONSABILITA =	CDR AND
      CDR.CD_CENTRO_RESPONSABILITA = CDR AND
      LINEA_ATTIVITA.PG_PROGETTO = MODULO.PG_PROGETTO(+) And
      (MODULO.ESERCIZIO Is Null Or MODULO.ESERCIZIO = A.ESERCIZIO) And
      NVL(MODULO.ESERCIZIO_PROGETTO_PADRE, -999) = COMMESSA.ESERCIZIO(+) AND
      NVL(MODULO.PG_PROGETTO_PADRE, -999) = COMMESSA.PG_PROGETTO(+) AND
      NVL(COMMESSA.ESERCIZIO_PROGETTO_PADRE, -999) = PROGETTO.ESERCIZIO(+) AND
      NVL(COMMESSA.PG_PROGETTO_PADRE, -999) = PROGETTO.PG_PROGETTO (+)
GROUP BY
	 A.ESERCIZIO,
	 CDR,
	 cds,
	 uo,
	 NVL(COMMESSA.CD_PROGETTO, 'ZZZZZZZZZZ'),
	 NVL(MODULO.CD_PROGETTO, 'ZZZZZZZZZZ'),
	 LDA,
	 voce,
	 LINEA_ATTIVITA.CD_FUNZIONE,
	 LINEA_ATTIVITA.CD_NATURA,
	 CDR.DS_CDR,
	 NVL(COMMESSA.DS_PROGETTO, 'ZZZZZZZZZZ'),
	 NVL(MODULO.DS_PROGETTO, 'ZZZZZZZZZZ'),
	 LINEA_ATTIVITA.DS_LINEA_ATTIVITA,
	 ds_voce,
	 CDR.CD_CDR_AFFERENZA,
	 SUBSTR(CDR.CD_CDR_AFFERENZA,1,7),
	 Nvl(PROGETTO.CD_DIPARTIMENTO, 'XXX');




© 2015 - 2024 Weber Informatics LLC | Privacy Policy