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

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

There is a newer version: 6.6.11
Show newest version
CREATE OR REPLACE procedure popola_pcc_modello3 is
begin
declare
cursor testata_pag is

select  fattura_passiva.esercizio,fattura_passiva.cd_unita_organizzativa,fattura_passiva.pg_fattura_passiva,ti_fattura,fattura_passiva.cd_terzo,
				fattura_passiva.cd_cds,fattura_passiva.im_totale_fattura,fattura_passiva.STATO_PAGAMENTO_FONDO_ECO, fattura_passiva.PG_COMPENSO,FL_FATTURA_COMPENSO ,
				DT_FATTURA_FORNITORE,NR_FATTURA_FORNITORE,fattura_passiva.identificativo_sdi,
				cd_iso,ti_nazione,terzo_uo.codice_univoco_ufficio_ipa,
anagrafico.partita_iva ana_partita_iva,anagrafico.codice_fiscale ana_codice_fiscale ,
fattura_passiva.fl_split_payment split,sum(fattura_passiva_riga.im_iva) tot_iva,sum(fattura_passiva_riga.im_imponibile) tot_imp,fattura_passiva.TI_ISTITUZ_COMMERC
from fattura_passiva,nazione,anagrafico,terzo,terzo terzo_uo,fattura_passiva_riga
where
	fattura_passiva.cd_cds = fattura_passiva_riga.cd_cds  and
   fattura_passiva.cd_unita_organizzativa = fattura_passiva_riga.cd_unita_organizzativa and
   fattura_passiva.esercizio = fattura_passiva_riga.esercizio  and
   fattura_passiva.pg_fattura_passiva =   fattura_passiva_riga.pg_fattura_passiva and
	 terzo_uo.cd_unita_organizzativa = fattura_passiva.cd_unita_organizzativa and
   anagrafico.cd_anag = terzo.cd_anag and


   terzo.cd_terzo  = fattura_passiva.cd_terzo and
   (terzo_uo.cd_terzo = (select min(cd_terzo) from terzo uo where
   uo.cd_unita_organizzativa =   fattura_passiva.cd_unita_organizzativa and
   fattura_passiva.identificativo_sdi is null) or
   (fattura_passiva.identificativo_sdi is not null and
   terzo_uo.cd_unita_organizzativa =   fattura_passiva.cd_unita_organizzativa
   and exists(select 1 from documento_ele_trasmissione where
   documento_ele_trasmissione.identificativo_sdi = fattura_passiva.identificativo_sdi and
   documento_ele_trasmissione.codice_destinatario = terzo_uo.CODICE_UNIVOCO_UFFICIO_IPA))) and
   nazione.pg_nazione =  anagrafico.pg_nazione_fiscale and
   (DT_FATTURA_FORNITORE    > (select dt01 from configurazione_cnr where
   cd_chiave_primaria   = 'REGISTRO_UNICO_FATPAS' and
   cd_chiave_secondaria = 'DATA_INIZIO') or
   (fattura_passiva.identificativo_sdi is not null))
   and (fattura_passiva.stato_cofi in('P','Q') or
   	    STATO_PAGAMENTO_FONDO_ECO = 'R' or
   	    (FL_FATTURA_COMPENSO = 'Y' and
   	     exists(select 1 from compenso
   	     where
   	     compenso.stato_cofi='P' and
   	     fattura_passiva.ESERCIZIO_COMPENSO = compenso.esercizio and
   	     fattura_passiva.CDS_COMPENSO       = compenso.cd_cds and
   	     fattura_passiva.UO_COMPENSO				= compenso.cd_unita_organizzativa and
   	     fattura_passiva.PG_COMPENSO			  = compenso.pg_compenso)))
   and exists
   (select 1 from modello2_pcc
   where
   nvl(modello2_pcc.codice_segnalazione,'OK')='OK' and


   modello2_pcc.NUMERO_FATTURA = fattura_passiva.NR_FATTURA_FORNITORE AND
   modello2_pcc.data_emissione = fattura_passiva.DT_FATTURA_FORNITORE AND
   modello2_pcc.id_fiscale_IVA =substr(decode(nazione.TI_NAZIONE,'E',nvl(anagrafico.partita_iva,anagrafico.codice_fiscale),decode(nazione.cd_iso||anagrafico.partita_iva,nazione.cd_iso,anagrafico.codice_fiscale,nazione.cd_iso||anagrafico.partita_iva)),0,16))
   and not exists
   (select 1 from modello3_pcc
   where
   nvl(modello3_pcc.codice_segnalazione,'OK')='OK' and
   modello3_pcc.azione='CP' and
   modello3_pcc.importo_pagato=fattura_passiva.im_totale_fattura  and
   modello3_pcc.NUMERO_FATTURA = fattura_passiva.NR_FATTURA_FORNITORE AND
   modello3_pcc.data_emissione = fattura_passiva.DT_FATTURA_FORNITORE AND
   modello3_pcc.id_fiscale_IVA =substr(decode(nazione.TI_NAZIONE,'E',nvl(anagrafico.partita_iva,anagrafico.codice_fiscale),decode(nazione.cd_iso||anagrafico.partita_iva,nazione.cd_iso,anagrafico.codice_fiscale,nazione.cd_iso||anagrafico.partita_iva)),0,16))
   group by fattura_passiva.esercizio,fattura_passiva.cd_unita_organizzativa,fattura_passiva.pg_fattura_passiva,ti_fattura,fattura_passiva.cd_terzo,
   fattura_passiva.cd_cds,fattura_passiva.im_totale_fattura,fattura_passiva.STATO_PAGAMENTO_FONDO_ECO, fattura_passiva.PG_COMPENSO,FL_FATTURA_COMPENSO ,
   DT_FATTURA_FORNITORE,NR_FATTURA_FORNITORE,fattura_passiva.identificativo_sdi,
   cd_iso,ti_nazione,terzo_uo.codice_univoco_ufficio_ipa,
	anagrafico.partita_iva ,anagrafico.codice_fiscale  ,fattura_passiva.fl_split_payment,fattura_passiva.TI_ISTITUZ_COMMERC
   order by fattura_passiva.esercizio,fattura_passiva.cd_unita_organizzativa,fattura_passiva.pg_fattura_passiva;


  cursor testata_cont is

select fattura_passiva.*,cd_iso,ti_nazione,terzo_uo.codice_univoco_ufficio_ipa,
anagrafico.partita_iva ana_partita_iva,anagrafico.codice_fiscale ana_codice_fiscale
from fattura_passiva,nazione,anagrafico,terzo,terzo terzo_uo
where
	 terzo_uo.cd_unita_organizzativa = fattura_passiva.cd_unita_organizzativa and
   anagrafico.cd_anag = terzo.cd_anag and
   terzo.cd_terzo  = fattura_passiva.cd_terzo and
   (terzo_uo.cd_terzo = (select min(cd_terzo) from terzo uo where
   uo.cd_unita_organizzativa =   fattura_passiva.cd_unita_organizzativa and
   fattura_passiva.identificativo_sdi is null) or
   (fattura_passiva.identificativo_sdi is not null and
   terzo_uo.cd_unita_organizzativa =   fattura_passiva.cd_unita_organizzativa
   and exists(select 1 from documento_ele_trasmissione where
   documento_ele_trasmissione.identificativo_sdi = fattura_passiva.identificativo_sdi and
   documento_ele_trasmissione.codice_destinatario = terzo_uo.CODICE_UNIVOCO_UFFICIO_IPA))) and
   nazione.pg_nazione =  anagrafico.pg_nazione_fiscale and
   DT_FATTURA_FORNITORE    > (select dt01 from configurazione_cnr where
   cd_chiave_primaria   = 'REGISTRO_UNICO_FATPAS' and
   cd_chiave_secondaria = 'DATA_INIZIO')


   and exists
   (select 1 from modello2_pcc
   where
   modello2_pcc.NUMERO_FATTURA = fattura_passiva.NR_FATTURA_FORNITORE AND
   modello2_pcc.data_emissione = fattura_passiva.DT_FATTURA_FORNITORE AND
   nvl(modello2_pcc.codice_segnalazione,'OK')='OK' and


   modello2_pcc.id_fiscale_IVA =substr(decode(nazione.TI_NAZIONE,'E',nvl(anagrafico.partita_iva,anagrafico.codice_fiscale),decode(nazione.cd_iso||anagrafico.partita_iva,nazione.cd_iso,anagrafico.codice_fiscale,nazione.cd_iso||anagrafico.partita_iva)),0,16))
   and not exists
   		 (select 1 from modello3_pcc
   				where
   				 (modello3_pcc.CODICE_UFFICIO =terzo_uo.codice_univoco_pcc or
   				 modello3_pcc.CODICE_UFFICIO =terzo_uo.codice_univoco_ufficio_ipa) and
				   modello3_pcc.azione  ='CP' and
				   nvl(modello3_pcc.codice_segnalazione,'OK')='OK' and
				   modello3_pcc.data_emissione = fattura_passiva.dt_fattura_fornitore and
				   modello3_pcc.id_fiscale_IVA =substr(decode(nazione.TI_NAZIONE,'E',nvl(anagrafico.partita_iva,anagrafico.codice_fiscale),decode(nazione.cd_iso||anagrafico.partita_iva,nazione.cd_iso,anagrafico.codice_fiscale,nazione.cd_iso||anagrafico.partita_iva)),0,16))
   order by esercizio,fattura_passiva.cd_unita_organizzativa,pg_fattura_passiva;

	cursor cig_cupImpegno(es number,cds varchar2,uo varchar2,pg number,cd_terzo_in number) is
	select
	ds_obbligazione,ds_elemento_voce,sum(v_doc_passivo_obbligazione.im_scadenza)imp,cd_cig,cd_cup, decode(FL_INV_BENI_COMP,'Y','CA',decode(FL_INV_BENI_PATR,'Y','CA','CO')) natura,
	v_doc_passivo_obbligazione.esercizio_obbligazione,v_doc_passivo_obbligazione.cd_cds_obbligazione,v_doc_passivo_obbligazione.pg_obbligazione,v_doc_passivo_obbligazione.esercizio_ori_obbligazione
  from v_doc_passivo_obbligazione,obbligazione,obbligazione_scadenzario,contratto,elemento_voce
        where
        v_doc_passivo_obbligazione.cd_cds  = cds  and
      	v_doc_passivo_obbligazione.cd_unita_organizzativa  = uo and
        v_doc_passivo_obbligazione.esercizio               = es  and
        v_doc_passivo_obbligazione.PG_DOCUMENTO_AMM      = pg  and
        v_doc_passivo_obbligazione.CD_TERZO              =cd_terzo_in  AND
        v_doc_passivo_obbligazione.CD_TIPO_DOCUMENTO_AMM in('FATTURA_P','COMPENSO') and
        v_doc_passivo_obbligazione.stato_cofi not in('A') and
        	  obbligazione.cd_cds                 = obbligazione_scadenzario.cd_cds
        AND obbligazione.esercizio              = obbligazione_scadenzario.esercizio
        AND obbligazione.esercizio_originale    = obbligazione_scadenzario.esercizio_originale
        AND obbligazione.pg_obbligazione        = obbligazione_scadenzario.pg_obbligazione
        AND obbligazione_scadenzario.cd_cds                      = v_doc_passivo_obbligazione.cd_cds_obbligazione
        AND obbligazione_scadenzario.esercizio                   = v_doc_passivo_obbligazione.esercizio_obbligazione
        AND obbligazione_scadenzario.esercizio_originale         = v_doc_passivo_obbligazione.esercizio_ori_obbligazione
        AND obbligazione_scadenzario.pg_obbligazione             = v_doc_passivo_obbligazione.pg_obbligazione
        AND obbligazione_scadenzario.pg_obbligazione_scadenzario = v_doc_passivo_obbligazione.pg_obbligazione_scadenzario
        and elemento_voce.esercizio 			= obbligazione.esercizio
        AND elemento_voce.ti_appartenenza = obbligazione.ti_appartenenza
        AND elemento_voce.ti_gestione 		= obbligazione.ti_gestione
        AND elemento_voce.cd_elemento_voce = obbligazione.cd_elemento_voce
        AND contratto.esercizio         (+)= obbligazione.esercizio_contratto
        AND contratto.stato             (+)= obbligazione.stato_contratto
        AND contratto.pg_contratto      (+)= obbligazione.pg_contratto
  group by ds_obbligazione,ds_elemento_voce,cd_cig,cd_cup, decode(FL_INV_BENI_COMP,'Y','CA',decode(FL_INV_BENI_PATR,'Y','CA','CO')),
	v_doc_passivo_obbligazione.esercizio_obbligazione,v_doc_passivo_obbligazione.cd_cds_obbligazione,v_doc_passivo_obbligazione.pg_obbligazione,v_doc_passivo_obbligazione.esercizio_ori_obbligazione;

  cursor cig_cupMandato(es number,cds varchar2,uo varchar2,pg number,cd_terzo_in number,dt_fat date,nr_fat varchar2) is
	select dt_emissione,
	ds_mandato,ds_elemento_voce,sum(nvl(mandato_siope.importo,mandato_riga.im_mandato_riga)) imp,cd_cig,mandato_siope_cup.cd_cup, sum(nvl(mandato_siope_cup.importo,0)) imp_cup,decode(FL_INV_BENI_COMP,'Y','CA',decode(FL_INV_BENI_PATR,'Y','CA','CO')) natura,mandato_riga.esercizio,mandato_riga.cd_cds,mandato_riga.pg_mandato,
	v_doc_passivo_obbligazione.esercizio_obbligazione,v_doc_passivo_obbligazione.cd_cds_obbligazione,v_doc_passivo_obbligazione.pg_obbligazione,v_doc_passivo_obbligazione.esercizio_ori_obbligazione,v_doc_passivo_obbligazione.pg_obbligazione_scadenzario,
  ANAGRAFICO.PARTITA_IVA,ANAGRAFICO.CODICE_FISCALE,cd_iso,ti_nazione,decode(v_doc_passivo_obbligazione.CD_TIPO_DOCUMENTO_AMM,'FATTURA_P', v_doc_passivo_obbligazione.IM_IMPONIBILE_DOC_AMM,fattura_passiva.IM_TOTALE_IMPONIBILE) tot_imp,v_doc_passivo_obbligazione.IM_TOTALE_DOC_AMM tot_doc
	from v_doc_passivo_obbligazione,obbligazione,obbligazione_scadenzario,contratto,
				mandato_riga,mandato_siope_cup,elemento_voce,nazione,anagrafico,terzo,MANDATO,mandato_siope,fattura_passiva
          where
            anagrafico.cd_anag = terzo.cd_anag and
   				  terzo.cd_terzo  = nvl(mandato_riga.cd_terzo_cedente,mandato_riga.cd_terzo) and
   					nazione.pg_nazione =  anagrafico.pg_nazione_fiscale and
          	v_doc_passivo_obbligazione.cd_cds  = cds  and
          	v_doc_passivo_obbligazione.cd_unita_organizzativa  = uo and
        		v_doc_passivo_obbligazione.esercizio               = es  and
        		v_doc_passivo_obbligazione.PG_DOCUMENTO_AMM      = pg  and
        		v_doc_passivo_obbligazione.CD_TERZO              =cd_terzo_in  AND
        		((v_doc_passivo_obbligazione.DT_FATTURA_FORNITORE = dt_fat and
        		v_doc_passivo_obbligazione.NR_FATTURA_FORNITORE = nr_fat and
        		v_doc_passivo_obbligazione.CD_TIPO_DOCUMENTO_AMM ='FATTURA_P' AND
        		fattura_passiva.esercizio = v_doc_passivo_obbligazione.esercizio and
   	      	fattura_passiva.cd_cds     = v_doc_passivo_obbligazione.cd_cds and
   	      	fattura_passiva.cd_unita_organizzativa			= v_doc_passivo_obbligazione.cd_unita_organizzativa and
   	      	fattura_passiva.pg_fattura_passiva		  = v_doc_passivo_obbligazione.PG_DOCUMENTO_AMM ) or
            (v_doc_passivo_obbligazione.CD_TIPO_DOCUMENTO_AMM ='COMPENSO'  AND
            fattura_passiva.DT_FATTURA_FORNITORE = dt_fat and
        		fattura_passiva.NR_FATTURA_FORNITORE = nr_fat and
            fattura_passiva.ESERCIZIO_COMPENSO = v_doc_passivo_obbligazione.esercizio and
            fattura_passiva.CDS_COMPENSO       = v_doc_passivo_obbligazione.cd_cds and
            fattura_passiva.UO_COMPENSO			 	 = v_doc_passivo_obbligazione.cd_unita_organizzativa and
            fattura_passiva.PG_COMPENSO			   = v_doc_passivo_obbligazione.PG_DOCUMENTO_AMM )) and
        	  obbligazione.cd_cds                 = obbligazione_scadenzario.cd_cds  and
        	  obbligazione.esercizio              = obbligazione_scadenzario.esercizio
        AND obbligazione.esercizio_originale    = obbligazione_scadenzario.esercizio_originale
        AND obbligazione.pg_obbligazione        = obbligazione_scadenzario.pg_obbligazione
        AND obbligazione_scadenzario.cd_cds                      = v_doc_passivo_obbligazione.cd_cds_obbligazione
        AND obbligazione_scadenzario.esercizio                   = v_doc_passivo_obbligazione.esercizio_obbligazione
        AND obbligazione_scadenzario.esercizio_originale         = v_doc_passivo_obbligazione.esercizio_ori_obbligazione
        AND obbligazione_scadenzario.pg_obbligazione             = v_doc_passivo_obbligazione.pg_obbligazione
        AND obbligazione_scadenzario.pg_obbligazione_scadenzario = v_doc_passivo_obbligazione.pg_obbligazione_scadenzario
        and elemento_voce.esercizio 			= obbligazione.esercizio
        AND elemento_voce.ti_appartenenza = obbligazione.ti_appartenenza
        AND elemento_voce.ti_gestione 		= obbligazione.ti_gestione
        AND elemento_voce.cd_elemento_voce = obbligazione.cd_elemento_voce
        AND contratto.esercizio         (+)= obbligazione.esercizio_contratto
        AND contratto.stato             (+)= obbligazione.stato_contratto
        AND contratto.pg_contratto      (+)= obbligazione.pg_contratto
        and v_doc_passivo_obbligazione.CD_TIPO_DOCUMENTO_AMM =mandato_riga.CD_TIPO_DOCUMENTO_AMM
        and v_doc_passivo_obbligazione.cd_cds 						= mandato_riga.cd_cds_doc_amm
        AND v_doc_passivo_obbligazione.cd_unita_organizzativa = mandato_riga.cd_uo_doc_amm
        AND v_doc_passivo_obbligazione.esercizio 							=  mandato_riga.esercizio_doc_amm
        AND v_doc_passivo_obbligazione.PG_DOCUMENTO_AMM 		= mandato_riga.pg_doc_amm
        AND v_doc_passivo_obbligazione.cd_cds_obbligazione 		= mandato_riga.cd_cds
        AND v_doc_passivo_obbligazione.esercizio_obbligazione = mandato_riga.esercizio_obbligazione
        AND v_doc_passivo_obbligazione.pg_obbligazione 				=  mandato_riga.pg_obbligazione
        AND v_doc_passivo_obbligazione.pg_obbligazione_scadenzario =  mandato_riga.pg_obbligazione_scadenzario
        AND v_doc_passivo_obbligazione.esercizio_ori_obbligazione  =   mandato_riga.esercizio_ori_obbligazione

        and mandato_riga.cd_cds = mandato_siope.cd_cds (+)
        AND mandato_riga.esercizio = mandato_siope.esercizio(+)
        AND mandato_riga.pg_mandato = mandato_siope.pg_mandato(+)
        AND mandato_riga.esercizio_obbligazione = mandato_siope.esercizio_obbligazione(+)
        AND mandato_riga.esercizio_ori_obbligazione = mandato_siope.esercizio_ori_obbligazione(+)
        AND mandato_riga.pg_obbligazione = mandato_siope.pg_obbligazione(+)
        AND mandato_riga.pg_obbligazione_scadenzario =mandato_siope.pg_obbligazione_scadenzario(+)
        AND mandato_riga.cd_cds_doc_amm = mandato_siope.cd_cds_doc_amm(+)
        AND mandato_riga.cd_uo_doc_amm = mandato_siope.cd_uo_doc_amm(+)
        AND mandato_riga.esercizio_doc_amm =mandato_siope.esercizio_doc_amm(+)
        AND mandato_riga.cd_tipo_documento_amm =mandato_siope.cd_tipo_documento_amm(+)
        AND mandato_riga.pg_doc_amm = mandato_siope.pg_doc_amm (+)
        and mandato_siope.cd_cds = mandato_siope_cup.cd_cds (+)
        AND mandato_siope.esercizio = mandato_siope_cup.esercizio (+)
        AND mandato_siope.pg_mandato = mandato_siope_cup.pg_mandato(+)
        AND mandato_siope.esercizio_obbligazione = mandato_siope_cup.esercizio_obbligazione(+)
        AND mandato_siope.esercizio_ori_obbligazione = mandato_siope_cup.esercizio_ori_obbligazione(+)
        AND mandato_siope.pg_obbligazione = mandato_siope_cup.pg_obbligazione(+)
        AND mandato_siope.pg_obbligazione_scadenzario =mandato_siope_cup.pg_obbligazione_scadenzario(+)
        AND mandato_siope.cd_cds_doc_amm = mandato_siope_cup.cd_cds_doc_amm(+)
        AND mandato_siope.cd_uo_doc_amm = mandato_siope_cup.cd_uo_doc_amm(+)
        AND mandato_siope.esercizio_doc_amm =mandato_siope_cup.esercizio_doc_amm(+)
        AND mandato_siope.cd_tipo_documento_amm =mandato_siope_cup.cd_tipo_documento_amm(+)
        AND mandato_siope.pg_doc_amm = mandato_siope_cup.pg_doc_amm(+)
        AND mandato_siope.esercizio_siope =mandato_siope_cup.esercizio_siope(+)
        AND mandato_siope.ti_gestione =mandato_siope_cup.ti_gestione(+)
        AND mandato_siope.cd_siope = mandato_siope_cup.cd_siope(+)
        AND mandato_siope_cup.importo(+) !=0
        AND mandato.cd_cds = mandato_riga.cd_cds
        AND mandato.esercizio = mandato_riga.esercizio
        AND mandato.pg_mandato = mandato_riga.pg_mandato
        and mandato.stato='P'
        and mandato_riga.stato!='A'
        and not exists
   		 (select 1 from modello3_pcc,nazione n2,anagrafico a2,terzo t2
   				where
   				 a2.cd_anag = t2.cd_anag and
   				 t2.cd_terzo  = v_doc_passivo_obbligazione.cd_terzo and
   				 n2.pg_nazione =  a2.pg_nazione_fiscale and
				   modello3_pcc.azione  ='CP' and
				   modello3_pcc.ESTREMI_IMPEGNO_CP = v_doc_passivo_obbligazione.esercizio_ori_obbligazione||'/'||v_doc_passivo_obbligazione.esercizio_obbligazione||'/'||v_doc_passivo_obbligazione.cd_cds_obbligazione||'/'||v_doc_passivo_obbligazione.pg_obbligazione and
				   modello3_pcc.numero_mandato=mandato.esercizio||'/'||mandato.cd_cds||'/'||mandato.pg_mandato and
				   modello3_pcc.NUMERO_FATTURA = nr_fat AND
				   modello3_pcc.data_emissione = dt_fat AND
				   modello3_pcc.id_fiscale_IVA =substr(decode(n2.TI_NAZIONE,'E',nvl(a2.partita_iva,a2.codice_fiscale),decode(n2.cd_iso||a2.partita_iva,n2.cd_iso,a2.codice_fiscale,n2.cd_iso||a2.partita_iva)),0,16))
		group by ds_mandato,ds_elemento_voce,dt_emissione,cd_cig,mandato_siope_cup.cd_cup, decode(FL_INV_BENI_COMP,'Y','CA',decode(FL_INV_BENI_PATR,'Y','CA','CO')),mandato_riga.esercizio,mandato_riga.cd_cds,mandato_riga.pg_mandato,
	 v_doc_passivo_obbligazione.esercizio_obbligazione,v_doc_passivo_obbligazione.cd_cds_obbligazione,v_doc_passivo_obbligazione.pg_obbligazione,v_doc_passivo_obbligazione.esercizio_ori_obbligazione,v_doc_passivo_obbligazione.pg_obbligazione_scadenzario,
	 ANAGRAFICO.PARTITA_IVA,ANAGRAFICO.CODICE_FISCALE,cd_iso,ti_nazione,decode(v_doc_passivo_obbligazione.CD_TIPO_DOCUMENTO_AMM,'FATTURA_P', v_doc_passivo_obbligazione.IM_IMPONIBILE_DOC_AMM,fattura_passiva.IM_TOTALE_IMPONIBILE),v_doc_passivo_obbligazione.IM_TOTALE_DOC_AMM
		order by
	 mandato_riga.pg_mandato,v_doc_passivo_obbligazione.esercizio_obbligazione,v_doc_passivo_obbligazione.cd_cds_obbligazione,v_doc_passivo_obbligazione.pg_obbligazione,v_doc_passivo_obbligazione.esercizio_ori_obbligazione,v_doc_passivo_obbligazione.pg_obbligazione_scadenzario,
	 ANAGRAFICO.PARTITA_IVA,ANAGRAFICO.CODICE_FISCALE,cd_iso,ti_nazione,mandato_siope_cup.cd_cup;

	   cursor testata_scad is

select fattura_passiva.*,cd_iso,ti_nazione,terzo_uo.codice_univoco_ufficio_ipa
from fattura_passiva,nazione,anagrafico,terzo,terzo terzo_uo
where
	 terzo_uo.cd_unita_organizzativa = fattura_passiva.cd_unita_organizzativa and
   anagrafico.cd_anag = terzo.cd_anag and
   terzo.cd_terzo  = fattura_passiva.cd_terzo and
  (terzo_uo.cd_terzo = (select min(cd_terzo) from terzo uo where
   uo.cd_unita_organizzativa =   fattura_passiva.cd_unita_organizzativa and
   fattura_passiva.identificativo_sdi is null) or
   (fattura_passiva.identificativo_sdi is not null and
   terzo_uo.cd_unita_organizzativa =   fattura_passiva.cd_unita_organizzativa
   and exists(select 1 from documento_ele_trasmissione where
   documento_ele_trasmissione.identificativo_sdi = fattura_passiva.identificativo_sdi and
   documento_ele_trasmissione.codice_destinatario = terzo_uo.CODICE_UNIVOCO_UFFICIO_IPA))) and
   nazione.pg_nazione =  anagrafico.pg_nazione_fiscale and
   DT_FATTURA_FORNITORE    > (select dt01 from configurazione_cnr where
   cd_chiave_primaria   = 'REGISTRO_UNICO_FATPAS' and
   cd_chiave_secondaria = 'DATA_INIZIO')
   and stato_liquidazione ='LIQ'
   and dt_scadenza Tot_associato_cup and Tot_associato_cup!=0 ) then
							dbms_output.put_line('insert 1');
								insert into modello3_pcc(lotto,
					   													CODICE_FISCALE_AMM ,
																			CODICE_UFFICIO     ,
																			CODICE_FISCALE     ,
																			ID_FISCALE_IVA     ,
																			AZIONE             ,
																			PROGR_REGISTRAZIONE,
																			NUMERO_FATTURA     ,
																			DATA_EMISSIONE     ,
																			IMPORTO_TOTALE     ,
																			numero_protocollo,
																			data_protocollo,
																			note_rc,
																			data_rifiuto,
																			descrizione_rf,
																			IMPORTO_MOVIMENTO  ,
																			NATURA_SPESA_CO    ,
																			CAPITOLI_SPESA_CO  ,
																			STATO_DEBITO       ,
																			CAUSALE            ,
																			DESCRIZIONE_CO     ,
																			ESTREMI_IMPEGNO_CO ,
																			CODICE_CIG_CO      ,
																			CODICE_CUP_CO      ,
																			comunica_scadenza  ,
 																			importo_scadenza   ,
 																		  dt_scadenza  			 ,
																			IMPORTO_PAGATO     ,
																			NATURA_SPESA_CP    ,
																			CAPITOLI_SPESA_CP  ,
																			ESTREMI_IMPEGNO_CP ,
																			NUMERO_MANDATO     ,
																			DATA_MANDATO       ,
																			ID_FISCALE_IVA_CP  ,
																			CODICE_CIG_CP      ,
																			CODICE_CUP_CP      ,
																			DESCRIZIONE_CP     ,
																			CODICE_SEGNALAZIONE,
																			DESCRIZIONE_SEGNALAZIONE) values
					 (to_date(to_char(sysdate,'dd/mm/yyyy hh24:mi'),'dd/mm/yyyy hh24:mi'),'80054330586',pag.codice_univoco_ufficio_ipa,
						substr(nvl(pag.ana_codice_fiscale,pag.ana_partita_iva),0,16),
						substr(decode(pag.TI_NAZIONE,'E',nvl(pag.ana_partita_iva,pag.ana_codice_fiscale),decode(pag.cd_iso||pag.ana_partita_iva,pag.cd_iso,pag.ana_codice_fiscale,pag.cd_iso||pag.ana_partita_iva)),0,16),
						'CP',
						nvl(to_char(pag.identificativo_sdi),'NA'),
						pag.NR_FATTURA_FORNITORE,pag.dt_FATTURA_FORNITORE,
						decode(pag.FL_FATTURA_COMPENSO,'Y',cOld.imp,pag.im_totale_fattura),

						null,
						null,
						null,
						null,
						null,
						null,
						null,
						null,
						null,
						null,
						null,
						null,
						null,
						null,
						null, null,null,

						decode (pag.split,'N',(cOld.imp-Tot_associato_cup),decode(pag.TI_ISTITUZ_COMMERC,'C',(cOld.imp-Tot_associato_cup) ,round(((cOld.imp-Tot_associato_cup)*cOld.tot_imp)/(cOld.tot_doc),2))),
						cOld.natura,
						substr(cOld.ds_elemento_voce,1,100),
						cOld.esercizio_ori_obbligazione||'/'||cOld.esercizio_obbligazione||'/'||cOld.cd_cds_obbligazione||'/'||cOld.pg_obbligazione,
						cOld.esercizio||'/'||cOld.cd_cds||'/'||cOld.pg_mandato,
						cOld.dt_emissione,
						decode(pag.STATO_PAGAMENTO_FONDO_ECO,'N',substr(decode(cOld.TI_NAZIONE,'E',nvl(cOld.partita_iva,cOld.codice_fiscale),decode(cOld.cd_iso||cOld.partita_iva,cOld.cd_iso,cOld.codice_fiscale,cOld.cd_iso||cOld.partita_iva)),0,16),substr(decode(pag.TI_NAZIONE,'E',nvl(pag.ana_partita_iva,pag.ana_codice_fiscale),decode(pag.cd_iso||pag.ana_partita_iva,pag.cd_iso,pag.ana_codice_fiscale,pag.cd_iso||pag.ana_partita_iva)),0,16)),
						nvl(cOld.cd_cig,'NA'),
						'NA',
						substr(cOld.ds_mandato,1,95),
						null,null);
				end if;
				Tot_associato_cup:=0;
			end if;

					  if ( nvl(c.imp_cup ,0)!= 0 or nvl(c.imp ,0)!= 0) then
					   insert into modello3_pcc(lotto,
					   													CODICE_FISCALE_AMM ,
																			CODICE_UFFICIO     ,
																			CODICE_FISCALE     ,
																			ID_FISCALE_IVA     ,
																			AZIONE             ,
																			PROGR_REGISTRAZIONE,
																			NUMERO_FATTURA     ,
																			DATA_EMISSIONE     ,
																			IMPORTO_TOTALE     ,
																			numero_protocollo,
																			data_protocollo,
																			note_rc,
																			data_rifiuto,
																			descrizione_rf,
																			IMPORTO_MOVIMENTO  ,
																			NATURA_SPESA_CO    ,
																			CAPITOLI_SPESA_CO  ,
																			STATO_DEBITO       ,
																			CAUSALE            ,
																			DESCRIZIONE_CO     ,
																			ESTREMI_IMPEGNO_CO ,
																			CODICE_CIG_CO      ,
																			CODICE_CUP_CO      ,
																			comunica_scadenza  ,
 																			importo_scadenza   ,
 																		  dt_scadenza  			 ,
																			IMPORTO_PAGATO     ,
																			NATURA_SPESA_CP    ,
																			CAPITOLI_SPESA_CP  ,
																			ESTREMI_IMPEGNO_CP ,
																			NUMERO_MANDATO     ,
																			DATA_MANDATO       ,
																			ID_FISCALE_IVA_CP  ,
																			CODICE_CIG_CP      ,
																			CODICE_CUP_CP      ,
																			DESCRIZIONE_CP     ,
																			CODICE_SEGNALAZIONE,
																			DESCRIZIONE_SEGNALAZIONE) values
					 (to_date(to_char(sysdate,'dd/mm/yyyy hh24:mi'),'dd/mm/yyyy hh24:mi'),'80054330586',pag.codice_univoco_ufficio_ipa,
						substr(nvl(pag.ana_codice_fiscale,pag.ana_partita_iva),0,16),
						substr(decode(pag.TI_NAZIONE,'E',nvl(pag.ana_partita_iva,pag.ana_codice_fiscale),decode(pag.cd_iso||pag.ana_partita_iva,pag.cd_iso,pag.ana_codice_fiscale,pag.cd_iso||pag.ana_partita_iva)),0,16),
						'CP',
						nvl(to_char(pag.identificativo_sdi),'NA'),
						pag.NR_FATTURA_FORNITORE,pag.dt_FATTURA_FORNITORE,
						decode(pag.FL_FATTURA_COMPENSO,'Y',c.imp,pag.im_totale_fattura),

						null,
						null,
						null,
						null,
						null,
						null,
						null,
						null,
						null,
						null,
						null,
						null,
						null,
						null,
						null, null,null,
						round(decode(pag.split,'N',decode(c.imp_cup,0,c.imp,c.imp_cup),decode(pag.TI_ISTITUZ_COMMERC,'C', decode(c.imp_cup,0,c.imp,c.imp_cup),decode(c.imp_cup,0,c.imp,c.imp_cup)*c.tot_imp/c.tot_doc)),2),



						c.natura,
						substr(c.ds_elemento_voce,1,100),
						c.esercizio_ori_obbligazione||'/'||c.esercizio_obbligazione||'/'||c.cd_cds_obbligazione||'/'||c.pg_obbligazione,
						c.esercizio||'/'||c.cd_cds||'/'||c.pg_mandato,
						c.dt_emissione,
						decode(pag.STATO_PAGAMENTO_FONDO_ECO,'N',substr(decode(c.TI_NAZIONE,'E',nvl(c.partita_iva,c.codice_fiscale),decode(c.cd_iso||c.partita_iva,c.cd_iso,c.codice_fiscale,c.cd_iso||c.partita_iva)),0,16),substr(decode(pag.TI_NAZIONE,'E',nvl(pag.ana_partita_iva,pag.ana_codice_fiscale),decode(pag.cd_iso||pag.ana_partita_iva,pag.cd_iso,pag.ana_codice_fiscale,pag.cd_iso||pag.ana_partita_iva)),0,16)),
						nvl(c.cd_cig,'NA'),
						nvl(c.cd_cup,'NA'),
						substr(c.ds_mandato,1,95),
						null,null);
						cOld:=c;
						Tot_associato_cup:=Tot_associato_cup+c.imp_cup;
					end if;
end loop;
	   					if (c.imp>Tot_associato_cup and Tot_associato_cup!=0 ) then
	   					dbms_output.put_line('insert 3');
			 					insert into modello3_pcc(lotto,
					   													CODICE_FISCALE_AMM ,
																			CODICE_UFFICIO     ,
																			CODICE_FISCALE     ,
																			ID_FISCALE_IVA     ,
																			AZIONE             ,
																			PROGR_REGISTRAZIONE,
																			NUMERO_FATTURA     ,
																			DATA_EMISSIONE     ,
																			IMPORTO_TOTALE     ,
																			numero_protocollo,
																			data_protocollo,
																			note_rc,
																			data_rifiuto,
																			descrizione_rf,
																			IMPORTO_MOVIMENTO  ,
																			NATURA_SPESA_CO    ,
																			CAPITOLI_SPESA_CO  ,
																			STATO_DEBITO       ,
																			CAUSALE            ,
																			DESCRIZIONE_CO     ,
																			ESTREMI_IMPEGNO_CO ,
																			CODICE_CIG_CO      ,
																			CODICE_CUP_CO      ,
																			comunica_scadenza  ,
 																			importo_scadenza   ,
 																		  dt_scadenza  			 ,
																			IMPORTO_PAGATO     ,
																			NATURA_SPESA_CP    ,
																			CAPITOLI_SPESA_CP  ,
																			ESTREMI_IMPEGNO_CP ,
																			NUMERO_MANDATO     ,
																			DATA_MANDATO       ,
																			ID_FISCALE_IVA_CP  ,
																			CODICE_CIG_CP      ,
																			CODICE_CUP_CP      ,
																			DESCRIZIONE_CP     ,
																			CODICE_SEGNALAZIONE,
																			DESCRIZIONE_SEGNALAZIONE) values
					 (to_date(to_char(sysdate,'dd/mm/yyyy hh24:mi'),'dd/mm/yyyy hh24:mi'),'80054330586',pag.codice_univoco_ufficio_ipa,
						substr(nvl(pag.ana_codice_fiscale,pag.ana_partita_iva),0,16),
						substr(decode(pag.TI_NAZIONE,'E',nvl(pag.ana_partita_iva,pag.ana_codice_fiscale),decode(pag.cd_iso||pag.ana_partita_iva,pag.cd_iso,pag.ana_codice_fiscale,pag.cd_iso||pag.ana_partita_iva)),0,16),
						'CP',
						nvl(to_char(pag.identificativo_sdi),'NA'),
						pag.NR_FATTURA_FORNITORE,pag.dt_FATTURA_FORNITORE,
						decode(pag.FL_FATTURA_COMPENSO,'Y',c.imp,pag.im_totale_fattura),

						null,
						null,
						null,
						null,
						null,
						null,
						null,
						null,
						null,
						null,
						null,
						null,
						null,
						null,
						null, null,null,

						decode (pag.split,'N',(c.imp-Tot_associato_cup),decode(pag.TI_ISTITUZ_COMMERC,'C',(c.imp-Tot_associato_cup) ,round(((c.imp-Tot_associato_cup)*c.tot_imp)/(c.tot_doc),2))),
						c.natura,
						substr(c.ds_elemento_voce,1,100),
						c.esercizio_ori_obbligazione||'/'||c.esercizio_obbligazione||'/'||c.cd_cds_obbligazione||'/'||c.pg_obbligazione,
						c.esercizio||'/'||c.cd_cds||'/'||c.pg_mandato,
						c.dt_emissione,
						decode(pag.STATO_PAGAMENTO_FONDO_ECO,'N',substr(decode(c.TI_NAZIONE,'E',nvl(c.partita_iva,c.codice_fiscale),decode(c.cd_iso||c.partita_iva,c.cd_iso,c.codice_fiscale,c.cd_iso||c.partita_iva)),0,16),substr(decode(pag.TI_NAZIONE,'E',nvl(pag.ana_partita_iva,pag.ana_codice_fiscale),decode(pag.cd_iso||pag.ana_partita_iva,pag.cd_iso,pag.ana_codice_fiscale,pag.cd_iso||pag.ana_partita_iva)),0,16)),
						nvl(c.cd_cig,'NA'),
						'NA',
						substr(c.ds_mandato,1,95),
						null,null);
				end if;
close cig_cupMandato;

end loop;
close testata_pag;


open testata_scad;
loop
fetch testata_scad  into scad;
exit when testata_scad%notfound;
	tot_da_pagare:=0;
  select sum(nvl(IM_DIPONIBILE_NC,0)- DECODE(SCAD.FL_SPLIT_PAYMENT,'N',0,IM_IVA)) into tot_da_pagare from fattura_passiva_riga
  where stato_cofi not in('P','A') and
  esercizio = scad.esercizio  and
  cd_cds =scad.cd_cds  and
  cd_unita_organizzativa =scad.cd_unita_organizzativa  and
  pg_fattura_passiva =scad.pg_fattura_passiva;

	if (tot_da_pagare!=0 ) then
					   	insert into modello3_pcc(lotto ,
  				   													CODICE_FISCALE_AMM ,
																			CODICE_UFFICIO     ,
																			CODICE_FISCALE     ,
																			ID_FISCALE_IVA     ,
																			AZIONE             ,
																			PROGR_REGISTRAZIONE,
																			NUMERO_FATTURA     ,
																			DATA_EMISSIONE     ,
																			IMPORTO_TOTALE     ,
																			numero_protocollo,
																			data_protocollo,
																			note_rc,
																			data_rifiuto,
																			descrizione_rf,
																			IMPORTO_MOVIMENTO  ,
																			NATURA_SPESA_CO    ,
																			CAPITOLI_SPESA_CO  ,
																			STATO_DEBITO       ,
																			CAUSALE            ,
																			DESCRIZIONE_CO     ,
																			ESTREMI_IMPEGNO_CO ,
																			CODICE_CIG_CO      ,
																			CODICE_CUP_CO      ,
																			comunica_scadenza  ,
 																			importo_scadenza   ,
 																		  dt_scadenza  			 ,
																			IMPORTO_PAGATO     ,
																			NATURA_SPESA_CP    ,
																			CAPITOLI_SPESA_CP  ,
																			ESTREMI_IMPEGNO_CP ,
																			NUMERO_MANDATO     ,
																			DATA_MANDATO       ,
																			ID_FISCALE_IVA_CP  ,
																			CODICE_CIG_CP      ,
																			CODICE_CUP_CP      ,
																			DESCRIZIONE_CP     ,
																			CODICE_SEGNALAZIONE,
																			DESCRIZIONE_SEGNALAZIONE) values
					 (to_date(to_char(sysdate,'dd/mm/yyyy hh24:mi'),'dd/mm/yyyy hh24:mi'),'80054330586',scad.codice_univoco_ufficio_ipa,
						substr(nvl(scad.codice_fiscale,scad.partita_iva),0,16),
						substr(decode(scad.TI_NAZIONE,'E',nvl(scad.partita_iva,scad.codice_fiscale),decode(scad.cd_iso||scad.partita_iva,scad.cd_iso,scad.codice_fiscale,scad.cd_iso||scad.partita_iva)),0,16),
						'CS',
						nvl(to_char(scad.identificativo_sdi),'NA'),
						scad.NR_FATTURA_FORNITORE,scad.dt_FATTURA_FORNITORE,
					  DECODE(SCAD.FL_SPLIT_PAYMENT,'N',scad.im_totale_fattura,SCAD.IM_TOTALE_IMPONIBILE),

						null,
						null,
						null,
						null,
						null,
						null,
						null,
						null,
						null,
						null,
						null,
						null,
						null,
						null,
						'SI',tot_da_pagare,scad.dt_scadenza,
						null,null,
						null,
						null,
						null,
						null,
						null,
						null,
						null,
						null,
						null,null);
					end if;				
end loop;
close testata_scad;   
commit;  
end;
end;
/




© 2015 - 2024 Weber Informatics LLC | Privacy Policy