CREATE procedure [C6StagingPeriodico].[RP_UPDATE_APPO_CONTRATTI]
AS
begin
-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_APPO_CONTRATTI',
		GETDATE(),
		'Elaborazione trimestrale'
	)
TRUNCATE TABLE C6StagingPERIODICO.APPO_CONTRATTI_BACKUP
INSERT INTO C6StagingPERIODICO.APPO_CONTRATTI_BACKUP
SELECT *  FROM C6StagingPERIODICO.APPO_CONTRATTI
----TRUNCATE TABLE C6StagingPERIODICO.APPO_CONTRATTI
--UPDATE C6StagingPERIODICO.APPO_CONTRATTI
--SET codiceContratto = v.codiceContratto,
--TIP_CONTRATTO = 2
--FROM
--    C6StagingPERIODICO.APPO_CONTRATTI c
--    INNER JOIN 
--    [C6Mart].[vContratti] v
---- dbo.vcontrattiCong011013 v
--    ON c.chiaveclientepb = v.chiaveclientepb
--WHERE 
--    c.codiceContratto <> v.codiceContratto
--AND c.TIP_CONTRATTO <> v.TIP_CONTRATTO
--AND v.TIP_CONTRATTO = 2
declare @firstDayMonthPreTrimestrale datetime
declare @lastDayMonthPreTrimestralePiuUno datetime
set @firstDayMonthPreTrimestrale = c6martperiodico.getTrimestre(getDate(), 1)
set @lastDayMonthPreTrimestralePiuUno = dateadd(day,1,c6martperiodico.getTrimestre(getDate(), 0))
--set @firstDayMonthPreTrimestrale = '20131201'
--set @lastDayMonthPreTrimestralePiuUno = '20140101'
UPDATE  C6StagingPERIODICO.APPO_CONTRATTI  
SET codiceContratto = CNTPRI.C,
    TIP_CONTRATTO = 2
   ,freq_diagnosi = null
   ,data_iniziobase = CNTPRI.data_iniziobase
   ,data_finebase = CNTPRI.data_finebase	
   ,data_perf = CNTPRI.data_perf
   ,data_perf_base = CNTPRI.data_perf_base
   ,DATA_INZIOAVANZATO = CNTPRI.DATA_INZIOAVANZATO
   ,data_fineavanzato = CNTPRI.data_fineavanzato
FROM  
  (SELECT TT.CF,TT.R,TT.C, VC.TIP_CONTRATTO
   ,vc.data_iniziobase
   ,vc.data_finebase
   ,vc.data_perf
   ,vc.data_perf_base
   ,VC.DATA_INZIOAVANZATO
   ,vc.data_fineavanzato
   FROM C6MART.VCONTRATTI VC INNER JOIN 
  (SELECT   
    PDF1.CODICEFISCALE AS CF,
    PDF1.RETE AS R,
    SUBSTRING(PDF1.NOMEFILE,0,12) AS C,
    PDF1.DATAGENERAZIONE AS D
    FROM c6mart.gestione_PDF_ftp PDF1 INNER JOIN   
   (SELECT 
    CODICEFISCALE,
    RETE,
    MAX(DATAGENERAZIONE) AS DATAGENERAZIONE 
     FROM c6mart.gestione_PDF_ftp  
     WHERE  1=1 AND DATAGENERAZIONE >= @firstDayMonthPreTrimestrale  and  DATAGENERAZIONE < @lastDayMonthPreTrimestralePiuUno
     GROUP BY CODICEFISCALE,RETE) PDF2
   ON PDF1.CODICEFISCALE=PDF2.CODICEFISCALE 
   AND PDF1.RETE=PDF2.RETE 
   AND PDF1.DATAGENERAZIONE=PDF2.DATAGENERAZIONE    
   WHERE 1=1     
      ) TT 
   ON TT.CF = VC.COD_FISCALE AND TT.R = VC.RETE
   WHERE TIP_CONTRATTO = 2  
  ) CNTPRI 
  inner join C6StagingPERIODICO.APPO_CONTRATTI t
   on t.cod_fiscale = CNTPRI.CF AND t.Rete = CNTPRI.R
  where t.tip_contratto <> CNTPRI.tip_contratto and CNTPRI.tip_contratto = 2
UPDATE C6StagingPERIODICO.APPO_CONTRATTI
set  
	 indirizzo	       = a.indirizzo
	,cap		       = a.cap	
	,citta		       = a.citta
	,provincia	       = a.Provincia
	,nazione	       = a.Nazione
	,presso		       = a.Presso
	,Cod_Agente        = a.Cod_Agente
	,Freq_Diagnosi	   = a.Freq_Diagnosi
    ,FREQ_MONITORAGGIO = a.FREQ_MONITORAGGIO
    ,data_fineavanzato = a.data_fineavanzato
from c6mart.vcontratti a
inner join C6StagingPERIODICO.APPO_CONTRATTI b
on a.codicecontratto = b.codicecontratto
--aggiornamento 28/11/2022
update C6StagingPeriodico.APPO_CONTRATTI
set COD_MANDATO=''
where COD_MANDATO is null
update C6StagingPeriodico.APPO_CONTRATTI
set PIVA_FIDUCIARIA=''
where PIVA_FIDUCIARIA is null
--fine aggiornamento 28/11/2022
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_APPO_CONTRATTI' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_APPO_CONTRATTI'
		)
end