-- Schema: C6Mart -- Stored Procedure: RP_DM_GestioneEmailNA CREATE PROCEDURE [C6Mart].[RP_DM_GestioneEmailNA] AS BEGIN DECLARE @NUMGIORNIDALPERF SMALLINT DECLARE @NUMGIORNIDASOLLECITO SMALLINT DECLARE @MaxInvioSoll SMALLINT DECLARE @ID_ELAB INT SET @NUMGIORNIDALPERF = CAST(dbo.getParametro('NUMGIORNIDALPERF') as smallint)--7 SET @NUMGIORNIDASOLLECITO = CAST(dbo.getParametro('NUMGIORNIDASOLLECITO') AS SMALLINT) --7 SET @MaxInvioSoll = CAST(dbo.getParametro('MaxInvioSoll') AS SMALLINT)--12 SET @ID_ELAB = C6MART.GETIDELAB() INSERT INTO LOG_ESECUZIONE(Nome, Inizio, Nota) VALUES ('RP_DM_GestioneEmailNA_AND',GETDATE(),'Elaborazione giornaliera') BEGIN TRANSACTION SELECT DISTINCT ChiaveClientePB INTO #CaricamentoMassivoC6SC FROM [CONSUNI].ConsulenzaUnicaFL.dbo.CaricamentoMassivoC6SC WHERE ESITO = 0 AND CHIUSO = 'N' SELECT vc.rete, vc.cod_fiscale, VC.ChiaveClientePb, CASE WHEN ISNULL(numSolleciti,0) = 0 THEN '1_SOLL_NOASS' WHEN numSolleciti = 1 THEN '2_SOLL_NOASS' WHEN numSolleciti = 2 THEN '3_SOLL_NOASS' ELSE 'S_SOLL_NOASS' END as tipoEmail, getDate() as DataGenerazione, CASE WHEN RSES.chiaveclientepb IS NULL THEN 'N' ELSE 'S' END AS ContrRSES, @ID_ELAB AS ID_ELAB INTO #CLIENTINA FROM C6Mart.vcontrattisei VC LEFT JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF ON VC.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA AND VC.RETE = PF.RETE LEFT JOIN #CaricamentoMassivoC6SC RSES ON RSES.chiaveclientepb = VC.chiaveclientepb WHERE 1 = 1 AND VC.numSolleciti < @MaxInvioSoll -- modifica del 3/10/2018 per gestire i casi in cui VC.Data_UltimoSollecito = 0 e che manda in errore -- la sp (Error: Implicit conversion from data type datetime to smallint is not allowed. Use the CONVERT function to run this query) --AND ((ISNULL(VC.numSolleciti,0) = 0 AND DATEDIFF(DAY,VC.Data_Perf,GETDATE()) >= @NUMGIORNIDALPERF) -- OR -- (DATEDIFF(DAY,isnull(VC.Data_UltimoSollecito,GETDATE()),GETDATE()) >= @NUMGIORNIDASOLLECITO)) AND ((ISNULL(VC.numSolleciti,0) = 0 AND DATEDIFF(DAY,VC.Data_Perf,GETDATE()) >= @NUMGIORNIDALPERF) OR (DATEDIFF(DAY,isnull( case when isdate(VC.Data_UltimoSollecito) = 1 then VC.Data_UltimoSollecito else GETDATE() end ,GETDATE()),GETDATE()) >= @NUMGIORNIDASOLLECITO)) --fine modifica del 3/10/2018 -- modifica del 3/10/2018 per gestire i valori 'date' del campo e che mandano in errore di conversione la sp --AND VC.InvioBenvenuto = 'N' AND cast(VC.InvioBenvenuto as varchar) = 'N' -- fine modifica del 3/10/2018 AND VC.clienteMigrato = 'S' AND VC.risorseNA = 'S' AND VC.Data_FineAvanzato > getDate() AND PF.RETE IS NULL --AND VC.COD_FISCALE + VC.RETE IN (SELECT COD_FISCALE+RETE FROM C6MART.TestEmailAnd) INSERT INTO C6Mart.GESTIONE_EMAIL (Rete,Cod_Fiscale,Tipo,Data_Generazione,ID_ELAB) SELECT rete, cod_fiscale, tipoEmail, DataGenerazione, @ID_ELAB AS ID_ELAB FROM #CLIENTINA WHERE ContrRSES = 'S' UPDATE c6mart.CONTRATTOSEI_METADATI SET numSolleciti = isnull(numSolleciti,0) + 1, Data_UltimoSollecito = getDate() where chiaveclientepb in ( select chiaveclientepb FROM #CLIENTINA WHERE ContrRSES = 'S') INSERT INTO C6Mart.GESTIONE_EMAIL (Rete,Cod_Fiscale,Tipo,Data_Generazione,ID_ELAB) SELECT email.rete, email.cod_fiscale, 'REVOCA_NOASS' as tipoEmail, getDate() as DataGenerazione, @ID_ELAB AS ID_ELAB FROM C6Mart.vcontratti VC INNER JOIN [C6Mart].[CONTRATTOSEI_METADATI] MD ON MD.chiaveclientepb = VC.chiaveclientepb INNER JOIN c6mart.gestione_Email EMAIL ON VC.RETE = EMAIL.RETE AND VC.COD_FISCALE = EMAIL.COD_FISCALE LEFT JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF ON VC.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA AND VC.RETE = PF.RETE WHERE 1 = 1 AND EMAIL.Tipo IN ('S_SOLL_NOASS','REVOCA_NOASS') AND ( (MD.numRevoche> 0)