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