148 lines
5.5 KiB
Transact-SQL
148 lines
5.5 KiB
Transact-SQL
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) -- SONO NEL CASO DI REVOCA SUCCESSIVA BRAVO VALERIO
|
|
OR
|
|
(MD.numSolleciti = @MaxInvioSoll and MD.risorseNA = 'S')-- SONO NEL CASO DI PRIMA REVOCA
|
|
)
|
|
AND VC.Data_FineAvanzato > getDate()
|
|
AND (DATEDIFF(DAY,isnull(MD.Data_UltimaRevoca,MD.Data_UltimoSollecito),GETDATE()) >= @NUMGIORNIDASOLLECITO)
|
|
AND PF.RETE IS NULL
|
|
--AND VC.COD_FISCALE + VC.RETE IN (SELECT COD_FISCALE+RETE FROM C6MART.TestEmailAnd)
|
|
GROUP BY email.rete, email.cod_fiscale
|
|
UPDATE c6mart.[CONTRATTOSEI_METADATI] SET numRevoche = isnull(numRevoche,0) + 1, data_UltimaRevoca = getDate()
|
|
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) -- SONO NEL CASO DI REVOCA SUCCESSIVA BRAVO VALERIO
|
|
OR
|
|
(MD.numSolleciti = @MaxInvioSoll and MD.risorseNA = 'S')-- SONO NEL CASO DI PRIMA REVOCA
|
|
)
|
|
AND VC.Data_FineAvanzato > getDate()
|
|
AND (DATEDIFF(DAY,isnull(MD.Data_UltimaRevoca,MD.Data_UltimoSollecito),GETDATE()) >= @NUMGIORNIDASOLLECITO)
|
|
AND PF.RETE IS NULL
|
|
--AND VC.COD_FISCALE + VC.RETE IN (SELECT COD_FISCALE+RETE FROM C6MART.TestEmailAnd)
|
|
update C6Mart.GESTIONE_EMAIL
|
|
set Inviata = 'S', Data_Invio = getdate()
|
|
where Cod_Fiscale = 'CRCTMS62A05H501D'
|
|
-- Log esecuzione
|
|
UPDATE
|
|
LOG_ESECUZIONE
|
|
SET
|
|
Fine = GETDATE(),
|
|
Tipo = 'UPDATE',
|
|
Righe = @@ROWCOUNT
|
|
WHERE
|
|
Nome = 'RP_DM_GestioneEmailNA_AND' AND
|
|
Inizio = (
|
|
SELECT
|
|
MAX(Inizio)
|
|
FROM
|
|
LOG_ESECUZIONE
|
|
WHERE
|
|
Nome = 'RP_DM_GestioneEmailNA_AND'
|
|
)
|
|
COMMIT
|
|
END |