-- Schema: C6Mart -- Stored Procedure: DM_PopolaContratti_20161026 -- ============================================= -- Author: Luca -- Create date: 13/11/2008 -- Description: Aggiornamento tabella contratti -- ============================================= CREATE procedure [C6Mart].[DM_PopolaContratti_20161026] AS BEGIN DECLARE @ULTIMOPROGRINVIO int--SMALLINT DECLARE @ORDINEELAB int--SMALLINT DECLARE @RIATTIVAZIONE 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, RIATTIVAZIONE FROM C6STAGING.VARIAZIONE_CONTRSEI ORDER BY ULTIMO_PROGRESSIVO_INVIO, ORDINE_DI_ELABORAZIONE_RIGA --APERTURA CURSORE OPEN ELABORAZIONI FETCH NEXT FROM ELABORAZIONI INTO @ULTIMOPROGRINVIO, @ORDINEELAB, @RIATTIVAZIONE WHILE @@FETCH_STATUS = 0 BEGIN --AGGIORNAMENTO CONTRATTI ESISTENTI UPDATE C6Mart.CONTRATTOSEI SET Cod_Fiscale = VARC6.CODICE_FISCALE ,Data_Sott = VARC6.DATA_SOTTOSCRIZIONE_C6 ,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 ,Freq_Diagnosi = VARC6.FREQUENZA_DIAGNOSI ,Freq_Monitor = isnull(VARC6.FREQUENZA_MONITORAGGIO,'T') ,Data_InizioBase = VARC6.DATA_SOTTOSCRIZIONE_BASE ,Data_FineBase = VARC6.DATA_CHIUSURA_BASE ,Data_FineAvanzato = VARC6.DATA_CHIUSURA_C6 ,ProgressivoInvio = VARC6.ULTIMO_PROGRESSIVO_INVIO ,GenerazioneReport = VARC6.FLAG_STAMPA_REPORT ,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 ,tip_Riattivazione = @RIATTIVAZIONE ,numRevoche = CASE WHEN @RIATTIVAZIONE = 0 THEN numRevoche ELSE 0 END ,data_UltimaRevoca = CASE WHEN @RIATTIVAZIONE = 0 THEN data_UltimaRevoca ELSE NULL END ,invioBenvenuto = CASE WHEN @RIATTIVAZIONE = 0 THEN invioBenvenuto ELSE 'N' END ,numSolleciti = CASE WHEN (C6.Rete <> VARC6.Rete_PB OR C6.Cod_Agente <> VARC6.PB) THEN 0 WHEN @RIATTIVAZIONE = 0 THEN numSolleciti ELSE 0 END ,data_UltimoSollecito = CASE WHEN @RIATTIVAZIONE = 0 THEN data_UltimoSollecito ELSE NULL END ,data_Invio_Monitoraggio_Trimestrale = CASE WHEN @RIATTIVAZIONE = 0 THEN data_Invio_Monitoraggio_Trimestrale ELSE NULL END ,data_Invio_Diagnosi_Trimestrale = CASE WHEN @RIATTIVAZIONE = 0 THEN data_Invio_Diagnosi_Trimestrale ELSE NULL END FROM C6MART.CONTRATTOSEI C6 INNER JOIN C6STAGING.VARIAZIONE_CONTRSEI VARC6 ON C6.RETE = VARC6.RETE_PB AND C6.CODICECONTRATTO = VARC6.CODICE_CONTRATTO AND VARC6.ULTIMO_PROGRESSIVO_INVIO = @ULTIMOPROGRINVIO AND VARC6.ORDINE_DI_ELABORAZIONE_RIGA = @ORDINEELAB SET @righeUpdate = @righeUpdate + @@ROWCOUNT IF @@ROWCOUNT > 0 IF @RIATTIVAZIONE = 1 BEGIN UPDATE C6MART.Gestione_EMAIL SET TIPO = 'OLD' FROM C6MART.Gestione_EMAIL