--create view as
CREATE PROCEDURE [C6MartPeriodico].[RP_DM_POPOLACONTRATTI] AS
BEGIN
INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_POPOLACONTRATTI',
		GETDATE(),
		'Elaborazione giornaliera'
	)	
SELECT a.chiaveclientepb as ChiaveClientePb
  INTO #CAMBIOCONTRATTO
	FROM                               
	[CONSEVO_PERIODICO].[consulenzaBase].dbo.Contratto a
JOIN [CONSEVO_PERIODICO].[consulenzaBase].dbo.ClientePB b 
	ON b.chiaveClientePB = a.chiaveClientePB 
	and a.status in ('SEI','AVANZATOBASE','REVOCASEI')
JOIN [CONSEVO_PERIODICO].[consulenzaBase].dbo.Cliente c 
	ON b.chiaveCliente = c.chiaveCliente 
JOIN [CONSEVO_PERIODICO].[consulenzaBase].dbo.PromotoreBancario d 
	ON b.chiavePB = d.chiavePB
JOIN [CONSEVO_PERIODICO].[consulenzaBaseFL].dbo.cbs_dbcontrattosei e
	ON a.codiceContratto = e.cod_conf
JOIN [CONSEVO_PERIODICO].[consulenzaBaseFL].dbo.cbs_dbcontrattobase f
	ON a.codiceContratto = f.cod_conf
JOIN [C6MartPeriodico].[vcontratti] vc
    ON b.chiaveClientePB = vc.chiaveClientePB 
 WHERE a.codicecontratto<>vc.codicecontratto
INSERT INTO  [C6MartPeriodico].[CONTRATTOSEI_METADATI_ST]   
	SELECT * FROM [C6MartPeriodico].[CONTRATTOSEI_METADATI] 
				WHERE  ChiaveClientePb in(SELECT ChiaveClientePb FROM  #CAMBIOCONTRATTO)
INSERT INTO  [C6MartPeriodico].[VCONTRATTI_ST]   
	SELECT * FROM [C6MartPeriodico].[VCONTRATTI] 
				WHERE  ChiaveClientePb in(SELECT ChiaveClientePb FROM  #CAMBIOCONTRATTO)
DELETE [C6MartPeriodico].[CONTRATTOSEI_METADATI] 
 				WHERE  ChiaveClientePb in(SELECT ChiaveClientePb FROM  #CAMBIOCONTRATTO)
--DROP  TABLE #CAMBIOCONTRATTO 
TRUNCATE TABLE C6MartPeriodico.VCONTRATTI
INSERT INTO C6MartPeriodico.VCONTRATTI
SELECT DISTINCT
	b.chiaveClientePB, 
	--FFCODICEFISCALE(codfis,codman,c.piva) as Cod_fiscale
	--c.codMan AS COD_MANDATO,
	--FFPIVA(codman,c.piva) as PIVA_FIDUCIARIA
	case
		when(isnull(ltrim(rtrim(codman)),'') <> '') 
			then 'FF@'+codman
		when (isnull(codfis,'') <> '')
			then codfis
		else
			c.piva
	end as Cod_fiscale,
	c.codMan AS COD_MANDATO,
	case 
		when(isnull(ltrim(rtrim(codman)),'') <> '') 
			then c.piva
		else
			''
	END AS PIVA_FIDUCIARIA, 
	f.pb AS COD_AGENTE, 
	d.rete, 
    a.codiceContratto, 
    a.flagRol, 
    a.address AS INDIRIZZO, 
    a.cap, 
    a.city AS CITTA, 
    a.province AS PROVINCIA, 
    a.nation AS NAZIONE, 
    a.presso, 
    a.email, 
    a.freqRepDia AS FREQ_DIAGNOSI, 
    a.freqRepMon AS FREQ_MONITORAGGIO, 
    a.genReport AS GENERAZIONEREPORT, 
    a.dtFirmaBase AS DATA_INIZIOBASE, 
    a.dtEndBase AS DATA_FINEBASE, 
    a.dtProcBase as DATA_PERF_BASE, 
	a.dtProcAv as DATA_PERF,
    a.dtFirmaSei AS DATA_INZIOAVANZATO, 
    a.dtEndSei AS DATA_FINEAVANZATO,   
	CASE e.tipcontratto
		WHEN 'A' THEN 1
		WHEN 'P' THEN 2
	    ELSE 0
	END AS TIP_CONTRATTO,
	 CASE
		WHEN e.riattivazione is null THEN 0 
		ELSE 1
	END AS RIATTIVAZIONE
FROM                               
	[CONSEVO_PERIODICO].[consulenzaBase].dbo.Contratto a
JOIN 
	[CONSEVO_PERIODICO].[consulenzaBase].dbo.ClientePB b 
	ON b.chiaveClientePB = a.chiaveClientePB 
	and a.status in ('SEI','AVANZATOBASE','REVOCASEI')
JOIN [CONSEVO_PERIODICO].[consulenzaBase].dbo.Cliente c 
	ON b.chiaveCliente = c.chiaveCliente 
JOIN [CONSEVO_PERIODICO].[consulenzaBase].dbo.PromotoreBancario d 
	ON b.chiavePB = d.chiavePB
JOIN [CONSEVO_PERIODICO].[consulenzaBaseFL].dbo.cbs_dbcontrattosei e
	ON a.codiceContratto = e.cod_conf
JOIN [CONSEVO_PERIODICO].[consulenzaBaseFL].dbo.cbs_dbcontrattobase f
	ON a.codiceContratto = f.cod_conf
INSERT INTO [C6MartPeriodico].[CONTRATTOSEI_METADATI]
           ([CHIAVECLIENTEPB]
           ,[ClienteMIGRATO]
           ,[RISORSENA]
           ,[PROFILOATTIVO]
           ,[NumSolleciti]
           ,[NumRevoche]
           ,[Data_ultimoSollecito]
           ,[Data_ultimaRevoca]
           ,[InvioBenvenuto]
           ,[Tip_riattivazione]
           ,[Tip_contratto])           
     SELECT    
			A.CHIAVECLIENTEPB,
			NULL,
			NULL,
			NULL,
			0,
			0,
			NULL,
			NULL,
			'N',
			A.Riattivazione,
			A.Tip_Contratto
	 FROM
		C6MartPeriodico.VCONTRATTI A
	 LEFT JOIN
		[C6MartPeriodico].[CONTRATTOSEI_METADATI] B
	 ON
		A.chiaveClientePB = B.CHIAVECLIENTEPB
	 WHERE
		B.CHIAVECLIENTEPB IS NULL                       
UPDATE [C6MartPeriodico].[CONTRATTOSEI_METADATI]  SET tip_riattivazione=0 		
--SELECT *
FROM C6MartPeriodico.VCONTRATTI VC
JOIN [C6MartPeriodico].[CONTRATTOSEI_METADATI]  MC
ON VC.chiaveClientePB = MC.CHIAVECLIENTEPB
AND   VC.riattivazione = 1 AND VC.DATA_FINEAVANZATO <> '9999-12-31 00:00:00.000' AND MC.Tip_riattivazione = 1
UPDATE [C6MartPeriodico].[CONTRATTOSEI_METADATI] 
SET tip_riattivazione=1 
,numRevoche = 0, data_UltimaRevoca = NULL, invioBenvenuto = 'N',numSolleciti = 0, data_UltimoSollecito = NULL
--SELECT * 
FROM C6MartPeriodico.VCONTRATTI VC
JOIN [C6MartPeriodico].[CONTRATTOSEI_METADATI]  MC
ON VC.chiaveClientePB = MC.CHIAVECLIENTEPB
AND    VC.riattivazione = 1 AND VC.DATA_FINEAVANZATO = '9999-12-31 00:00:00.000' AND MC.Tip_riattivazione = 0
UPDATE [C6MartPeriodico].[CONTRATTOSEI_METADATI] 
SET tip_riattivazione=2, tip_Contratto = 2
,numRevoche = 0, data_UltimaRevoca = NULL, invioBenvenuto = 'N', numSolleciti = 0, data_UltimoSollecito = NULL
--SELECT * 
FROM C6MartPeriodico.VCONTRATTI VC
JOIN [C6MartPeriodico].[CONTRATTOSEI_METADATI]  MC
ON VC.chiaveClientePB = MC.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO = '9999-12-31 00:00:00.000' AND MC.tip_Contratto = 1         
-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_POPOLACONTRATTI' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_POPOLACONTRATTI'
		)
END