-- Schema: C6Mart
-- Stored Procedure: DM_PopolaContratti_old240213


-- =============================================
-- Author:		Luca
-- Create date: 13/11/2008
-- Description:	Aggiornamento tabella contratti
-- =============================================
CREATE procedure [C6Mart].[DM_PopolaContratti_old240213] 
AS
BEGIN

	DECLARE @ULTIMOPROGRINVIO int--SMALLINT
	DECLARE @ORDINEELAB int--SMALLINT
	DECLARE @inizio DATETIME
	DECLARE @fine DATETIME
	DECLARE @righeUpdate INT
	DECLARE @righeInsert INT

	SET @inizio = GETDATE()
	SET @righeUpdate = 0
	SET @righeInsert = 0

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_PopolaContratti',
		@inizio,
		'Elaborazione giornaliera'
	)

	--AGGIORNAMENTO CONTRATTI

	--I RECORD PRESENTI NELLA VARIAZIONE_CONTRSEI POTREBBERO ESSERE 
	--POPOLATI IN ELABORAZIONI DIFFERENTI. VANNO ESEGUITI IN ORDINE
	--DICHIARAZIONE CURSORE PER ESTRARRE LE ELABORAZIONI

	DECLARE ELABORAZIONI CURSOR LOCAL FORWARD_ONLY 
	FOR
	SELECT ULTIMO_PROGRESSIVO_INVIO, ORDINE_DI_ELABORAZIONE_RIGA
	FROM C6STAGING.VARIAZIONE_CONTRSEI
	--where ORDINE_DI_ELABORAZIONE_RIGA < 10000 and ULTIMO_PROGRESSIVO_INVIO > 1000
	ORDER BY ULTIMO_PROGRESSIVO_INVIO, ORDINE_DI_ELABORAZIONE_RIGA
	
	--APERTURA CURSORE
	OPEN ELABORAZIONI
	FETCH NEXT FROM ELABORAZIONI INTO @ULTIMOPROGRINVIO, @ORDINEELAB
	WHILE @@FETCH_STATUS = 0
	BEGIN

		--AGGIORNAMENTO CONTRATTI ESISTENTI
		UPDATE C6Mart.CONTRATTOSEI
		SET
			--Rete = VARC6.RETE_PB
			Cod_Fiscale = VARC6.CODICE_FISCALE
			,Data_Sott = VARC6.DATA_SOTTOSCRIZIONE_C6
			--,CodiceContratto = <CodiceContratto, varchar(11),>
			,Cod_Agente = VARC6.PB
			,Data_Perf_Base = VARC6.DATA_PERFEZIONAMENTO_BASE
			,Data_Perf = VARC6.DATA_PERFEZIONAMENTO_C6
			,Fascia_CPP = VARC6.CPP
			,Email = VARC6.EMAIL
			,Indirizzo = VARC6.INDIRIZZO
			,CAP =  VARC6.CAP
			,Citta = VARC6.CITTA
			,Prov = VARC6.PROVINCIA
			,Nazione = VARC6.NAZIONE
			,Presso = VARC6.PRESSO
			--,Data_Inizio = <Data_Inizio, datetime,>
			,Freq_Diagnosi = VARC6.FREQUENZA_DIAGNOSI
			,Freq_Monitor = ISNULL(VARC6.FREQUENZA_MONITORAGGIO,'T')
			--,Freq_DiagnosiPrec = <Freq_DiagnosiPrec, varchar(1),>
			--,Freq_MonitorPrec = <Freq_MonitorPrec, varchar(1),>
			--,Data_InizioConsInv = <Data_InizioConsInv, datetime,>
			,Data_InizioBase = VARC6.DATA_SOTTOSCRIZIONE_BASE
			,Data_FineBase = VARC6.DATA_CHIUSURA_BASE
			--,Data_InizioAvanzato = <Data_InizioAvanzato, datetime,>
			,Data_FineAvanzato = VARC6.DATA_CHIUSURA_C6
			,ProgressivoInvio = VARC6.ULTIMO_PROGRESSIVO_INVIO
			,GenerazioneReport = VARC6.FLAG_STAMPA_REPORT
			--,InvioBenvenuto = <InvioBenvenuto, varchar(1),>
			--,DataUltimoInvio = <DataUltimoInvio, datetime,>
			--,ClienteMigrato = ISNULL(LEFT(MIGR.FLAG_CLIENTE_MIGRATO,1),'N')
			--,RisorseNA = <RisorseNA, varchar(1),>
			,NumSolleciti =	CASE 
								WHEN (C6.Rete <> VARC6.Rete_PB OR C6.Cod_Agente <> VARC6.PB) THEN 0
								--WHEN (LEFT(MIGR.FLAG_CLIENTE_MIGRATO,1)='S' AND ISNULL(C6.RisorseNA,'N')='N') THEN 0
								ELSE NumSolleciti
							END 
			--,Data_UltimoSollecito = <Data_UltimoSollecito, datetime,>
			--,Note = <Note, varchar(1024),>
			 ,Rol = isnull(VARC6.Flag_Rol,'N')
			,tip_Contratto = CASE
							WHEN VARC6.tip_Contratto = 'A' THEN 1
							WHEN VARC6.tip_Contratto = 'P' THEN 2
							ELSE 0			                   	
						 END 
		FROM C6MART.CONTRATTOSEI C6
		INNER JOIN C6STAGING.VARIAZIONE_CONTRSEI VARC6
		ON -- no join sul codice fiscale poiché, in caso di sua variazione, verrebbe trattato come nuovo contratto
			C6.RETE = VARC6.RETE_PB
			--AND C6.COD_FISCALE = VARC6.CODICE_FISCALE
			AND C6.CODICECONTRATTO = VARC6.CODICE_CONTRATTO
			AND VARC6.ULTIMO_PROGRESSIVO_INVIO = @ULTIMOPROGRINVIO				
			AND VARC6.ORDINE_DI_ELABORAZIONE_RIGA = @ORDINEELAB
		
		SET @righeUpdate = @righeUpdate + @@ROWCOUNT

		--INSERIMENTO NUOVI CONTRATTI
		INSERT INTO C6Mart.CONTRATTOSEI
		   (Rete
		   ,Cod_Fiscale
		   ,Piva_Fiduciaria
		   ,Data_Sott
		   ,
