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

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

There is a newer version: 6.6.11
Show newest version
CREATE OR REPLACE PROCEDURE SPG_CERTIFICAZIONE_770
--
-- Date: 13/07/2004
-- Version: 1.0
--
-- Creazione file per 770 Lavoro Autonomo
--
--
-- History:
--
-- Date: 13/07/2004
-- Version: 1.0
-- Creazione
--
-- Date: 20/09/2006
-- Version: 1.1
-- Adeguamento per il 770/2006 - Aggiunta la quota esente INPS
--
-- Date: 11/07/2011
-- Version: 1.2
-- Gestiti i due modelli, semplificato e ordinario, ed i quadri relativi
--
--
-- Body:
--
(tc in out IBMPRT000.t_cursore,
 aEs number,
 aTiModello varchar2,
 aQuadro  varchar2, -- valorizzato a '%' per stampa di tutti i quadri del Modello (per il momento non gestito)
 aCdAnag varchar2, -- valorizzato a '%' per stampa di tutte le anagrafiche
 aNota varchar2) is
aId number;
i number := 0;
aTmpCdAnag number;
aTmpCdAnagPignorato number;
aTmpQuadro varchar2(4) := null;
aTmpDsQuadro varchar2(300);
aTmpTiCompenso varchar2(5) := null;
aTmpDsTiCompenso varchar2(300);
aTmpTiRitenuta varchar2(1) := null;
aTmpPkCompenso varchar2(100);
aTmpAliquota number(10,6);
aImponibileFi number(15,2) :=0 ;
aImponibilePr number(15,2) :=0 ;
aImLordo number(15,2) :=0 ;
aImNonSoggRit number(15,2) :=0 ;
aImNonSoggCori number(15,2) := 0;
aImNonSoggInps number(15,2) := 0;
aImRit number(15,2) :=0 ;
aImCori number(15,2) :=0 ;
aImCoriEnte number(15,2) :=0 ;
aImNetto number(15,2) := 0;
aTmpCdTrattamento varchar2(10) := null;
begin
	select IBMSEQ00_CR_PACKAGE.nextval into aId from dual;

	for aDett in (select * from
			 (select  v.cd_anag
 		 		 ,v.cd_cds
 				 ,v.cd_unita_organizzativa
 				 ,v.esercizio
 				 ,v.pg_compenso
				 ,v.CD_QUADRO
				 ,v.DS_QUADRO
				 ,v.TI_MODELLO
				 ,v.ti_ritenuta
				 ,v.cd_ti_compenso
				 ,v.ds_ti_compenso
				 ,v.im_lordo_percipiente
				 ,v.im_no_fiscale
				 ,v.quota_esente
				 ,v.im_netto_percipiente
				 ,v.quota_esente_inps
				 ,tcr.cd_classificazione_cori
				 ,cr.ti_ente_percipiente
				 ,cr.imponibile
				 ,cr.aliquota
				 ,cr.ammontare
				 ,v.cd_trattamento
				 ,v.cd_anag_pignorato
			  from   v_compenso_770 v
				,contributo_ritenuta cr
				,tipo_contributo_ritenuta tcr
			  where   to_char(v.cd_anag) Like aCdAnag
				  and v.TI_MODELLO = aTiModello
				  and ((aQuadro ='SCSY'
  		    and v.CD_QUADRO  in('SC','SY'))
  		     or v.CD_QUADRO     like  aQuadro)
				  and v.esercizio_mandato = aEs
				  and cr.cd_cds 	  = v.cd_cds
				  and cr.cd_unita_organizzativa   = v.cd_unita_organizzativa
				  and cr.esercizio 	  = v.esercizio
				  and cr.pg_compenso 	  = v.pg_compenso
				  --and cr.ti_ente_percipiente = 'P'
				  and tcr.cd_contributo_ritenuta  = cr.cd_contributo_ritenuta
				  and tcr.dt_ini_validita = cr.dt_ini_validita
				  and tcr.cd_classificazione_cori in ('FI','PR')
			  union all
			  select   v.cd_anag
 		 		 ,v.cd_cds cd_cds
 				 ,v.cd_unita_organizzativa cd_unita_organizzativa
 				 ,v.esercizio esercizio
 				 ,v.pg_compenso pg_compenso
				 ,v.CD_QUADRO
				 ,v.DS_QUADRO
				 ,v.TI_MODELLO
				 ,v.ti_ritenuta
				 ,v.cd_ti_compenso
				 ,v.ds_ti_compenso
				 ,v.im_lordo_percipiente
				 ,v.im_no_fiscale
				 ,v.quota_esente
				 ,v.im_netto_percipiente
				 ,v.quota_esente_inps
				 ,null cd_classificazione_cori
				 ,Null ti_ente_percipiente
				 ,0 imponibile
				 ,0 aliquota
				 ,0 ammontare
				 ,v.cd_trattamento
				 ,v.cd_anag_pignorato
			  from   v_compenso_770 v
			  where   to_char(v.cd_anag)  Like aCdAnag
			  and v.TI_MODELLO = aTiModello
			  and ((aQuadro ='SCSY'
  		  and v.CD_QUADRO  in('SC','SY'))
  		  or v.CD_QUADRO     like  aQuadro)
  		  and v.esercizio_mandato     = aEs
			  and not exists (select 1
			  		  from contributo_ritenuta cr
			   	  	      ,tipo_contributo_ritenuta tcr
					  where cr.cd_cds = v.cd_cds
					  And cr.cd_unita_organizzativa = v.cd_unita_organizzativa
					  And cr.esercizio	= v.esercizio
					  And cr.pg_compenso 	= v.pg_compenso
					  --And cr.ti_ente_percipiente 	  = 'P'
					  And tcr.cd_contributo_ritenuta= cr.cd_contributo_ritenuta
					  And tcr.dt_ini_validita       = cr.dt_ini_validita
					  And tcr.cd_classificazione_cori in ('FI','PR'))
			  )
			  order by cd_anag
			    ,CD_QUADRO
				  ,cd_ti_compenso
				  ,cd_anag_pignorato
			  	  ,cd_cds
				  ,cd_unita_organizzativa
				  ,pg_compenso
				  ,cd_classificazione_cori
				  --,aliquota
				  ,imponibile desc
				  )
	loop

		if aTmpCdAnag is null then -- primo anagrafico in processo
		   aTmpCdTrattamento  := aDett.cd_trattamento;
		   aTmpCdAnag 	 	    := aDett.cd_anag;
		   aTmpCdAnagPignorato:= aDett.cd_anag_pignorato;
		   aTmpQuadro 	      := aDett.cd_quadro;
		   aTmpDsQuadro       := aDett.ds_quadro;
		   aTmpTiCompenso 	  := aDett.cd_ti_compenso;
		   aTmpDsTiCompenso   := aDett.ds_ti_compenso;
		   aTmpTiRitenuta     := aDett.ti_ritenuta;

		   aTmpPkCompenso	    := aDett.cd_cds||aDett.cd_unita_organizzativa||aDett.esercizio||aDett.pg_compenso;

		   aImLordo 		    := aDett.im_lordo_percipiente;
		   aImNonSoggRit	  := aDett.im_no_fiscale + aDett.quota_esente;
		   aImNonSoggCori	  := aDett.quota_esente;
		   aImNonSoggInps   := aDett.quota_esente_inps;
		   aImNetto 		    := aDett.im_netto_percipiente;

		   if aDett.cd_classificazione_cori = 'FI' then
		   	  aImponibileFi	  := aDett.imponibile;
			    aImponibilePr	  := 0;
			    aTmpAliquota 	  := aDett.aliquota;  -- valorizzo l'ultima aliquota
		   elsif aDett.cd_classificazione_cori = 'PR' then
		   	  aImponibilePr   := aDett.imponibile;
			    aImponibileFi	  := 0;
		   else
		   	  aImponibilePr   := 0;
			    aImponibileFi	  := 0;
		   end if;

		   i := i + 1;
		           insert into VPG_CERTIFICAZIONE_770  (ID,
							                              CHIAVE,
							                              TIPO,
							                              SEQUENZA,
							                              ESERCIZIO,
							                              TI_MODELLO,
							                              CD_ANAG,
							                              NOTA,
							                              CD_QUADRO,
							                              DS_QUADRO,
							                              TI_RITENUTA,
							                              NOME,
							                              COGNOME,
							                              RAGIONE_SOCIALE,
							                              VIA_NUM_FISCALE,
							                              CAP_COMUNE_FISCALE,
							                              FRAZIONE_FISCALE,
							                              DS_COMUNE_FISCALE,
							                              DS_PROVINCIA_FISCALE,
							                              CD_PROVINCIA_FISCALE,
							                              DS_NAZIONE_FISCALE,
							                              DT_NASCITA,
							                              DS_COMUNE_NASCITA,
							                              DS_PROVINCIA_NASCITA,
							                              CD_PROVINCIA_NASCITA,
							                              DS_NAZIONE_NASCITA,
							                              CODICE_FISCALE,
							                              PARTITA_IVA,
							                              TI_ENTITA,
                                            TI_SESSO,
                                            ID_FISCALE_ESTERO,
                                            CD_NAZIONE_770,
                                            CF_PI_PIGNORATO)
		   		             (Select distinct
		   		               aId
		   		              ,to_char(aDett.cd_anag)
				               	,'A'
				               	,i
				               	,aEs
				               	,aTiModello
				               	,aDett.cd_anag
				               	,aNota
				               	,aDett.cd_quadro
				               	,aDett.ds_quadro
				               	,aDett.ti_ritenuta
				               	,vat.nome
				               	,vat.cognome
				               	,vat.ragione_sociale
				               	,vat.via_fiscale||' '||vat.num_civico_fiscale
				               	,vat.cap_comune_fiscale
				               	,vat.frazione_fiscale
				               	,vat.ds_comune_fiscale
				               	,vat.ds_provincia_fiscale
				               	,vat.cd_provincia_fiscale
				               	,naz.ds_nazione
				               	,vat.dt_nascita
				               	,vat.ds_comune_nascita
				               	,vat.ds_provincia_nascita
				               	,vat.cd_provincia_nascita
				               	,naz2.ds_nazione
				               	,vat.codice_fiscale
				               	,vat.partita_iva
				               	,vat.ti_entita
				               	,vat.ti_sesso
				               	,vat.id_fiscale_estero
                        ,naz.cd_nazione_770
                        ,NULL
		   		             from v_anagrafico_terzo vat
		   	                	 ,nazione naz
			   	                 ,comune com
			                 	   ,nazione naz2
		   		             where vat.cd_anag	= aDett.cd_anag
		     	             	and naz.pg_nazione	= vat.pg_nazione_fiscale
			 	                and com.pg_comune (+) 	= vat.pg_comune_nascita
			 	                and naz2.pg_nazione (+) = com.pg_nazione);
		end if; -- fine inserimento primo anagrafico

		if aDett.cd_anag <> aTmpCdAnag OR
		    (aTmpTiCompenso != null and aDett.cd_ti_compenso != null and  aTmpTiCompenso != aDett.cd_ti_compenso) then -- il primo anag non passa di qui
	   	   i := i + 1;
		     -- scarico i dettagli dell'anagrafico precedente
	   	   insert into VPG_CERTIFICAZIONE_770  (ID,
							                                CHIAVE,
							                                TIPO,
							                                SEQUENZA,
							                                ESERCIZIO,
							                                TI_MODELLO,
							                                CD_ANAG,
							                                NOTA,
							                                CD_QUADRO,
							                                DS_QUADRO,
							                                TI_RITENUTA,
							                                CD_TI_COMPENSO,
							                                DS_TI_COMPENSO,
							                                IM_LORDO,
							                                IM_NON_SOGG_RIT,
							                                IMPONIBILE_FI,
							                                IMPONIBILE_PR,
							                                ALIQUOTA,
							                                IM_RITENUTE,
							                                IM_NON_SOGG_CORI,
							                                IM_CONTRIBUTI,
							                                IM_CONTRIBUTI_ENTE,
							                                IM_NETTO,
							                                IM_NON_SOGG_INPS,
							                                CD_TRATTAMENTO,
							                                CF_PI_PIGNORATO)
		   	                  values (aId
		   	                         ,to_char(aTmpCdAnag)
				                         ,'B'
				                         ,i
				                         ,aEs
				                         ,aTiModello
				                         ,aTmpCdAnag
				                         ,aNota
				                         ,aTmpQuadro
				                         ,aTmpDsQuadro
				                         ,aTmpTiRitenuta
				                         ,aTmpTiCompenso
				                         ,aTmpDsTiCompenso
				                         ,aImLordo
				                         ,aImNonSoggRit
				                         ,aImponibileFi
				                         ,aImponibilePr
				                         ,aTmpAliquota
				                         ,aImRit
				                         ,aImNonSoggCori
				                         ,aImCori
				                         ,aImCoriEnte
				                         ,aImNetto
				                         ,aImNonSoggInps
				                         ,aTmpCdTrattamento
				                         ,(select nvl(vatp.codice_fiscale,vatp.partita_iva)
		   	                   From v_anagrafico_terzo vatp
		   	                   Where 
		                       	  vatp.cd_anag (+)	=aTmpCdAnagPignorato));

		    -- reset delle variabili
        aTmpCdTrattamento :=aDett.cd_trattamento;
		    aTmpCdAnag        := aDett.cd_anag;
		    aTmpCdAnagPignorato:= aDett.cd_anag_pignorato;
		    aTmpQuadro 	      := aDett.cd_quadro;
		    aTmpDsQuadro      := aDett.ds_quadro;
		    aTmpTiCompenso 	  := aDett.cd_ti_compenso;
		    aTmpDsTiCompenso := aDett.ds_ti_compenso;
		    aTmpTiRitenuta    := aDett.ti_ritenuta;
		    --aTmpAliquota 	:= aDett.aliquota;

		    aTmpPKCompenso	:= aDett.cd_cds||aDett.cd_unita_organizzativa||aDett.esercizio||aDett.pg_compenso;
		    aImLordo 		:= aDett.im_lordo_percipiente; --:= 0;
		    aImNonSoggRit	:= aDett.im_no_fiscale + aDett.quota_esente; --:= 0;
		    aImNonSoggCori	:= aDett.quota_esente; --:= 0;
		    aImNonSoggInps       := aDett.quota_esente_inps;
		    aImRit		:= 0;
		    aImCori		:= 0;
		    aImCoriEnte		:= 0;
		    aImNetto 		:= aDett.im_netto_percipiente; --:= 0;
		    if aDett.cd_classificazione_cori = 'FI' then
		    	  aImponibileFi	  := aDett.imponibile;
			      aImponibilePr	  := 0;
			      aTmpAliquota 	  := aDett.aliquota;  -- valorizzo l'ultima aliquota
		    elsif aDett.cd_classificazione_cori = 'PR' then
		    	  aImponibilePr   := aDett.imponibile;
			      aImponibileFi	  := 0;
		    else
		    	  aImponibilePr   := 0;
			      aImponibileFi	  := 0;
		    end if;

		    -- inserimento nuova anagrafica
		    i := i + 1;
		        insert into VPG_CERTIFICAZIONE_770  (ID,
							                               CHIAVE,
							                               TIPO,
							                               SEQUENZA,
							                               ESERCIZIO,
							                               TI_MODELLO,
							                               CD_ANAG,
							                               NOTA,
							                               CD_QUADRO,
							                               DS_QUADRO,
							                               TI_RITENUTA,
							                               NOME,
							                               COGNOME,
							                               RAGIONE_SOCIALE,
							                               VIA_NUM_FISCALE,
							                               CAP_COMUNE_FISCALE,
							                               FRAZIONE_FISCALE,
							                               DS_COMUNE_FISCALE,
							                               DS_PROVINCIA_FISCALE,
							                               CD_PROVINCIA_FISCALE,
							                               DS_NAZIONE_FISCALE,
							                               DT_NASCITA,
							                               DS_COMUNE_NASCITA,
							                               DS_PROVINCIA_NASCITA,
							                               CD_PROVINCIA_NASCITA,
							                               DS_NAZIONE_NASCITA,
							                               CODICE_FISCALE,
							                               PARTITA_IVA,
							                               TI_ENTITA,
                                             TI_SESSO,
                                             ID_FISCALE_ESTERO,
                                             CD_NAZIONE_770,
                                             CF_PI_PIGNORATO)
		   	                  (Select distinct
		   	                  	 aId
		   	                  	,to_char(aDett.cd_anag)
				                    ,'A'
				                    ,i
				                    ,aEs
				                    ,aTiModello
				                    ,aDett.cd_anag
				                    ,aNota
				                    ,aDett.cd_quadro
				               	    ,aDett.ds_quadro
				               	    ,aDett.ti_ritenuta
				                    ,vat.nome
				                    ,vat.cognome
				                    ,vat.ragione_sociale
				                    ,vat.via_fiscale||' '||vat.num_civico_fiscale
				                    ,vat.cap_comune_fiscale
				                    ,vat.frazione_fiscale
				                    ,vat.ds_comune_fiscale
				                    ,vat.ds_provincia_fiscale
				                    ,vat.cd_provincia_fiscale
				                    ,naz.ds_nazione
				                    ,vat.dt_nascita
				                    ,vat.ds_comune_nascita
				                    ,vat.ds_provincia_nascita
				                    ,vat.cd_provincia_nascita
				                    ,naz2.ds_nazione
				                    ,vat.codice_fiscale
				                    ,vat.partita_iva
				                    ,vat.ti_entita
				                    ,vat.ti_sesso
				                    ,vat.id_fiscale_estero
                            ,naz.cd_nazione_770
                            ,NULL
		   	                   From v_anagrafico_terzo vat
		   	                       ,nazione naz
			                         ,comune com
			                         ,nazione naz2
		   	                   Where vat.cd_anag 	= aDett.cd_anag
		                       	 And naz.pg_nazione 	= vat.pg_nazione_fiscale
			                       And com.pg_comune (+) 	= vat.pg_comune_nascita
			                       And naz2.pg_nazione (+)= com.pg_nazione);
		end if; -- fine inserimento testata nuova anagrafica

    if aDett.cd_quadro = aTmpQuadro and aDett.cd_ti_compenso = aTmpTiCompenso  -- lo stesso quadro e lo stesso tipo compenso (mod.pag)  >>> aggiorno
       and (aDett.cd_anag_pignorato is null or (aDett.cd_anag_pignorato is not null and aDett.cd_anag_pignorato = aTmpCdAnagPignorato)) then -- anche se cambia il terzo pignorato devo inserire una nuova riga
		      If aTmpPkCompenso <> aDett.cd_cds||aDett.cd_unita_organizzativa||aDett.esercizio||aDett.pg_compenso Then
		      	    aImLordo 	    := aImLordo + aDett.im_lordo_percipiente;
		      	    aImNonSoggRit := aImNonSoggRit + aDett.im_no_fiscale + aDett.quota_esente;
		      	    aImNonSoggCori:= aImNonSoggCori + aDett.quota_esente;
		      	    aImNonSoggInps:= aImNonSoggInps + aDett.quota_esente_inps;
		      	    aImNetto	    := aImNetto + aDett.im_netto_percipiente;
		      End If;
		      if aDett.cd_classificazione_cori = 'FI' then
		      	    aTmpAliquota 	  := aDett.aliquota;  -- valorizzo l'ultima aliquota
		      	    aImRit := aImRit + aDett.ammontare;
		          if aTmpPkCompenso <> aDett.cd_cds||aDett.cd_unita_organizzativa||aDett.esercizio||aDett.pg_compenso then
		      	      aImponibileFi := aImponibileFi + aDett.imponibile;
		             aTmpPkCompenso := aDett.cd_cds||aDett.cd_unita_organizzativa||aDett.esercizio||aDett.pg_compenso;
		          end if;
		      elsif aDett.cd_classificazione_cori = 'PR' Then
		           If aDett.ti_ente_percipiente = 'P' Then
		      	        aImCori  := aImCori + aDett.ammontare;
		      	    Elsif aDett.ti_ente_percipiente = 'E' Then
		      	        aImCoriEnte  := aImCoriEnte + aDett.ammontare;
		      	    End If;
		          --aTmpAliquota := aDett.aliquota;
		          if aTmpPkCompenso <> aDett.cd_cds||aDett.cd_unita_organizzativa||aDett.esercizio||aDett.pg_compenso then
		      	      aImponibilePr := aImponibilePr + aDett.imponibile;
		             aTmpPkCompenso := aDett.cd_cds||aDett.cd_unita_organizzativa||aDett.esercizio||aDett.pg_compenso;
		          end if;
		      else -- no PR, no FI
		         	 --aTmpAliquota := aDett.aliquota;
		           aImRit := 0;
		           aImCori := 0;
		           aImCoriEnte := 0;
		           aImponibileFi := 0;
		           aImponibilePr := 0;
		           aTmpPkCompenso := aDett.cd_cds||aDett.cd_unita_organizzativa||aDett.esercizio||aDett.pg_compenso;
		      end if;
		else -- cambiato il quadro o il tipo compenso o il terzo pigorato (solo quadro SY)>>> inserisco
	        i := i + 1;
	        insert into VPG_CERTIFICAZIONE_770  (ID,
		      	                                CHIAVE,
		      	                                TIPO,
		      	                                SEQUENZA,
		      	                                ESERCIZIO,
		      	                                TI_MODELLO,
		      	                                CD_ANAG,
		      	                                NOTA,
		      	                                CD_QUADRO,
					                                  DS_QUADRO,
					                                  TI_RITENUTA,
		      	                                CD_TI_COMPENSO,
		      	                                DS_TI_COMPENSO,
		      	                                IM_LORDO,
		      	                                IM_NON_SOGG_RIT,
		      	                                IMPONIBILE_FI,
		      	                                IMPONIBILE_PR,
		      	                                ALIQUOTA,
		      	                                IM_RITENUTE,
		      	                                IM_NON_SOGG_CORI,
		      	                                IM_CONTRIBUTI,
		      	                                IM_CONTRIBUTI_ENTE,
		      	                                IM_NETTO,
		      	                                IM_NON_SOGG_INPS,
		      	                                CD_TRATTAMENTO,
																						CF_PI_PIGNORATO)
		                    values ( aId
		                         ,to_char(aDett.cd_anag)
		                         ,'B'
		                         ,i
		                         ,aEs
		                         ,aTiModello
		                         ,aDett.cd_anag
		                         ,aNota
		                         ,aTmpQuadro
				                     ,aTmpDsQuadro
				                     ,aTmpTiRitenuta
		                         ,aTmpTiCompenso
		                         ,aTmpDsTiCompenso
		                         ,aImLordo
		                         ,aImNonSoggRit
		                         ,aImponibileFi
		                         ,aImponibilePr
		                         ,aTmpAliquota
		                         ,aImRit
		                         ,aImNonSoggCori
		                         ,aImCori
		                         ,aImCoriEnte
		                         ,aImNetto
		                         ,aImNonSoggInps
		                         ,aTmpCdTrattamento
		                         ,(select nvl(vatp.codice_fiscale,vatp.partita_iva)
		   	                   From v_anagrafico_terzo vatp
		   	                   Where 
		                       	  vatp.cd_anag (+)	=aTmpCdAnagPignorato));
		      -- reset variabili
		      aTmpCdTrattamento := aDett.cd_trattamento;
		      aTmpCdAnag 		   := aDett.cd_anag;
		      aTmpCdAnagPignorato:= aDett.cd_anag_pignorato;
		      aTmpQuadro 	     := aDett.cd_quadro;
		      aTmpDsQuadro      := aDett.ds_quadro;
		      aTmpTiCompenso 	 := aDett.cd_ti_compenso;
		      aTmpDsTiCompenso  := aDett.ds_ti_compenso;
		      aTmpTiRitenuta    := aDett.ti_ritenuta;
		      aTmpPkCompenso	:= aDett.cd_cds||aDett.cd_unita_organizzativa||aDett.esercizio||aDett.pg_compenso;
		      aImLordo 		:= aDett.im_lordo_percipiente;
		      aImNonSoggRit	:= aDett.im_no_fiscale + aDett.quota_esente;
		      aImNonSoggCori	:= aDett.quota_esente;
		      aImNonSoggInps	:= aDett.quota_esente_inps;
		      aImNetto 		:= aDett.im_netto_percipiente;
		      if aDett.cd_classificazione_cori = 'FI' then
		      	  aImponibileFi	 := aDett.imponibile;
		          aImRit	       := aDett.ammontare;
		          aTmpAliquota 	  := aDett.aliquota;   -- valorizzo l'ultima aliquota
		          aImCori	       := 0;
		          aImCoriEnte	   := 0;
		          aImponibilePr	 := 0;
		      elsif aDett.cd_classificazione_cori = 'PR' then
		      	  aImponibileFi	  := 0;
		          aImRit	  := 0;
		          --aTmpAliquota 	  := aDett.aliquota;
		          If aDett.ti_ente_percipiente = 'P' Then
		              aImCori	  := aDett.ammontare;
		          Elsif aDett.ti_ente_percipiente = 'E' Then
		              aImCoriEnte  := aDett.ammontare;
		          End If;
		          aImponibilePr	  := aDett.imponibile;
		      else
		      	  aImponibileFi	:= 0;
		          aImRit	      := 0;
		          --aTmpAliquota 	  := 0;
		          aImCori	      := 0;
		          aImCoriEnte	  := 0;
		          aImponibilePr	:= 0;
		      end if;
     end if;     -- FINE DI if aDett.cd_quadro = aTmpQuadro and aDett.cd_ti_compenso = aTmpTiCompenso
	end loop;

	if i <> 0 then -- ? stato inserita la testata dell'anagrafica
	 	i := i + 1;
	    -- scarico gli ultimi dettagli dell'ultimo anagrafico
	 	insert into VPG_CERTIFICAZIONE_770  (ID,
						     CHIAVE,
						     TIPO,
						     SEQUENZA,
						     ESERCIZIO,
						     TI_MODELLO,
						     CD_ANAG,
						     NOTA,
						     CD_QUADRO,
					       DS_QUADRO,
					       TI_RITENUTA,
						     CD_TI_COMPENSO,
						     DS_TI_COMPENSO,
						     IM_LORDO,
						     IM_NON_SOGG_RIT,
						     IMPONIBILE_FI,
						     IMPONIBILE_PR,
						     ALIQUOTA,
						     IM_RITENUTE,
						     IM_NON_SOGG_CORI,
						     IM_CONTRIBUTI,
						     IM_CONTRIBUTI_ENTE,
						     IM_NETTO,
						     IM_NON_SOGG_INPS,
						     CD_TRATTAMENTO,
						     CF_PI_PIGNORATO)
	    		values   (aId
		  		 ,to_char(aTmpCdAnag)
				   ,'B'
				   ,i
				   ,aEs
				   ,aTiModello
				   ,aTmpCdAnag
				   ,aNota
				   ,aTmpQuadro
				   ,aTmpDsQuadro
				   ,aTmpTiRitenuta
				   ,aTmpTiCompenso
				   ,aTmpDsTiCompenso
				   ,aImLordo
				   ,aImNonSoggRit
				   ,aImponibileFi
				   ,aImponibilePr
				   ,aTmpAliquota
				   ,aImRit
				   ,aImNonSoggCori
				   ,aImCori
				   ,aImCoriEnte
				   ,aImNetto
				   ,aImNonSoggInps
				   ,aTmpCdTrattamento
				   ,(select nvl(vatp.codice_fiscale,vatp.partita_iva)
		   	                   From v_anagrafico_terzo vatp
		   	                   Where 
		                       	  vatp.cd_anag (+)	= aTmpCdAnagPignorato));
	end if;

	open tc for
    select * from VPG_CERTIFICAZIONE_770 where id = aId;
    Close tc; -- Remmarlo se lanciato da Crystal Report

end;
/






© 2015 - 2024 Weber Informatics LLC | Privacy Policy