122 lines
3.9 KiB
Transact-SQL
122 lines
3.9 KiB
Transact-SQL
-- 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
|