PDC_REPORT_CreazioneDB/sql/Produzione/procedure/C6MartPeriodico_PL_S80Alternativa_OLD.sql
2025-06-10 15:29:00 +02:00

255 lines
10 KiB
Transact-SQL

-- Stored procedure
-- Stored procedure
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
--[C6MartPeriodico].[PL_S80Alternativa]'S','LLAMGH27A43M058H'
--DROP PROCEDURE [C6MartPeriodico].[PL_S80BisEvoluzioneRischio]
CREATE procedure [C6MartPeriodico].[PL_S80Alternativa_OLD]
-- Add the parameters for the stored procedure here
@Rete char(1),
@CodiceFiscale varchar(16)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Recupero data congelamento SEI
DECLARE @DataCongelamento DATETIME
DECLARE @MONIT_ATTIV INT
DECLARE @MONIT_INIT INT
DECLARE @DettMovPrec money
DECLARE @DettMovCorr money
DECLARE @AppoDettMovPrec varchar(50)
DECLARE @AppoDettMovCorr varchar(50)
DECLARE @NumAsterischiPrec int
DECLARE @NumAsterischiCorr int
DECLARE @DATA_FOTO datetime
DECLARE @UltimoInvio int
SET @NumAsterischiPrec = 0
SET @NumAsterischiCorr = 0
SET @DataCongelamento = C6MartPeriodico.getDataCongelamento()
SET @MONIT_ATTIV=0
SET @MONIT_INIT = 0
-- INSERIMENTO BLOCCO PER MONITORAGGIO CHIUSO O NON ESISTENTE
SELECT @MONIT_ATTIV=COUNT(*)
FROM
C6MARTPERIODICO.MONITORAGGIO_ATTUALE
WHERE
RETE = @Rete AND
COD_FISCALE = @CodiceFiscale
SELECT @MONIT_INIT = COUNT(*)
FROM
C6MARTPERIODICO.MONITORAGGIO_INIZIALE
WHERE
RETE = @Rete AND
COD_FISCALE = @CodiceFiscale
-- Inserimento Dati Scirocco
--SELECT @DettMovPrec = (sum(APPORTI) - sum(PRELIEVI))
--FROM [C6StampeCentralizzate].[C6StagingPeriodico].[W6APTR]
--WHERE DTTRIM < '20111231'
/* SELECT @DettMovPrec = DETT_MOV_PREC, @DettMovCorr = DETT_MOV_CORR
FROM C6MartPeriodico.DettaglioMovimenti
WHERE
RETE = @Rete
AND
COD_FIS = @CodiceFiscale
*/
SELECT @DettMovCorr = DETT_MOV
FROM C6MartPeriodico.DettaglioMovimenti_old
WHERE
RETE = @Rete
AND
COD_FIS = @CodiceFiscale
AND
FLAG_TRIM = 1
SELECT @DettMovPrec = DETT_MOV
FROM C6MartPeriodico.DettaglioMovimenti_old
WHERE
RETE = @Rete
AND
COD_FIS = @CodiceFiscale
AND
FLAG_TRIM = 0
--SELECT @DettMovCorr = (sum(APPORTI) - sum(PRELIEVI))
--FROM [C6StampeCentralizzate].[C6StagingPeriodico].[W6APTR]
--WHERE DTTRIM = '20111231'
IF @DettMovPrec is null
SET @AppoDettMovPrec = 'n.d.'
ELSE
SET @AppoDettMovPrec = REPLACE(CAST(@DettMovPrec as varchar(50)), '.', ',')
IF @DettMovCorr is null
SET @AppoDettMovCorr = 'n.d.'
ELSE
SET @AppoDettMovCorr = REPLACE(CAST(@DettMovCorr as varchar(50)), '.', ',')
--query per asterischi situazione precedente
IF EXISTS(SELECT * FROM [C6StampeCentralizzate].[C6StagingPeriodico].[WSEICS]
WHERE CODPROD IN ('37', 'GP') AND DTTRIM = '20111231'
AND RETE = @Rete AND CODFIS = @CodiceFiscale)
SET @NumAsterischiPrec = 1
IF EXISTS(SELECT * FROM C6StagingPeriodico.ST_MON
WHERE RETE = @Rete AND CODFIS = @CodiceFiscale)
SET @NumAsterischiPrec = 1
-----------------------------------------
--query per asterischi situazione corrente
IF EXISTS(SELECT * FROM C6MartPeriodico.PATRIMONIO_BF
WHERE COD_INTERNO IN ('37', 'GP')
AND RETE = @Rete AND COD_FISCALE = @CodiceFiscale)
SET @NumAsterischiCorr = 1
-----------------------------------------
SELECT @DATA_FOTO = DATA_FOTO FROM C6MartPeriodico.MONITORAGGIO_INIZIALE a
WHERE a.Rete = @Rete
AND a.COD_FISCALE = @CodiceFiscale
SELECT @UltimoInvio = Count(*) FROM C6MartPeriodico.MONITORAGGIO_REPORT a
WHERE a.Rete = @Rete
AND a.COD_FISCALE = @CodiceFiscale
IF (@MONIT_ATTIV > 0 AND @MONIT_INIT > 0)
BEGIN
-- Attivazione monitoraggio
--versione nuova da testare
SELECT
1 AS Fase,
INI.DATA_FOTO AS DataFase,
ISNULL(INI.PARTITA_VIAGGIANTE,0) AS Partita_viaggiante,
INI.CTV_EXT,
INI.CTV_INV,
INI.CTV_PRE,
INI.CTV_RIS,
INI.CTV_LIQ,
INI.CTV_EXT + INI.CTV_INV + INI.CTV_PRE + INI.CTV_RIS + INI.CTV_LIQ AS RisorseAllocate,
INI.CTV_NA AS RisorseNonAllocate,
INI.CTV_EXT + INI.CTV_INV + INI.CTV_PRE + INI.CTV_RIS + INI.CTV_LIQ + INI.CTV_NA AS RisorseFinanziarie,
INI.CTV_CC AS Contocorrente,
--Contocorrente = CASE WHEN CAST(INI.CTV_CC AS NUMERIC(20,4)) < 0 THEN INI.CTV_CC ELSE 0 END,
INI.CTV_EXT + INI.CTV_INV + INI.CTV_PRE + INI.CTV_RIS + INI.CTV_LIQ + INI.CTV_NA + INI.CTV_CC + ISNULL(INI.PARTITA_VIAGGIANTE,0) AS TotalePatrimonio
--INI.CTV_EXT + INI.CTV_INV + INI.CTV_PRE + INI.CTV_RIS + INI.CTV_LIQ + INI.CTV_NA + (CASE WHEN CAST(INI.CTV_CC AS NUMERIC(20,4)) < 0 THEN INI.CTV_CC ELSE 0 END) AS TotalePatrimonio
--INI.CTV_TOTALE AS ControvaloreComplessivo
,null as DettMov
,0 as NumeroAsterischiNota
FROM
C6MartPeriodico.MONITORAGGIO_INIZIALE INI
left outer join
C6MartPeriodico.MONITORAGGIO_REPORT rep
on
REP.RETE=INI.RETE
AND
REP.COD_FISCALE=INI.COD_FISCALE
WHERE
INI.RETE = @Rete AND
INI.COD_FISCALE = @CodiceFiscale
--AND INI.DATA_FOTO < ISNULL(REP.DATA_INVIO,'2999-12-31')
UNION ALL
-- Precedente invio report
SELECT
2 AS Fase,
rep.DATA_INVIO AS DataFase,
ISNULL(rep.PARTITA_VIAGGIANTE,0) AS Partita_viaggiante,
rep.CTV_EXT,
rep.CTV_INV,
rep.CTV_PRE,
rep.CTV_RIS,
rep.CTV_LIQ,
rep.CTV_EXT + rep.CTV_INV + rep.CTV_PRE + rep.CTV_RIS + rep.CTV_LIQ AS RisorseAllocate,
rep.CTV_NA AS RisorseNonAllocate,
rep.CTV_EXT + rep.CTV_INV + rep.CTV_PRE + rep.CTV_RIS + rep.CTV_LIQ + rep.CTV_NA AS RisorseFinanziarie,
rep.CTV_CC AS Contocorrente,
--Contocorrente = CASE WHEN CAST(CTV_CC AS NUMERIC(20,4)) < 0 THEN CTV_CC ELSE 0 END,
rep.CTV_EXT + rep.CTV_INV + rep.CTV_PRE + rep.CTV_RIS + rep.CTV_LIQ + rep.CTV_NA + rep.CTV_CC + ISNULL(rep.PARTITA_VIAGGIANTE,0) AS TotalePatrimonio
--CTV_EXT + CTV_INV + CTV_PRE + CTV_RIS + CTV_LIQ + CTV_NA + (CASE WHEN CAST(CTV_CC AS NUMERIC(20,4)) < 0 THEN CTV_CC ELSE 0 END) AS TotalePatrimonio
--CTV_TOTALE AS ControvaloreComplessivo
,(CASE WHEN @DATA_FOTO < '20111001' THEN 'n.d.' ELSE @AppoDettMovPrec END) as DettMov
,(CASE WHEN @DATA_FOTO < '20111001' THEN 0 ELSE @NumAsterischiPrec END) as NumeroAsterischiNota
FROM
C6MartPeriodico.MONITORAGGIO_INIZIALE INI
left outer join
C6MartPeriodico.MONITORAGGIO_REPORT rep
on
REP.RETE=INI.RETE
AND
REP.COD_FISCALE=INI.COD_FISCALE
WHERE
rep.RETE = @Rete AND
rep.COD_FISCALE = @CodiceFiscale
AND INI.DATA_FOTO < ISNULL(REP.DATA_INVIO,cast('29991231' as datetime))
and ISNULL(DATA_INVIO,cast('29991231' as datetime))<@datacongelamento
UNION ALL
-- Situazione corrente
--All values will be read from DB and passed to code, no value will be calculated on code
SELECT
3 AS Fase,
CASE
WHEN @DataCongelamento IS NULL THEN GETDATE()
ELSE @DataCongelamento
END AS DataFase,
--Get the sum Operazioni in corso
--sum((isnull(IMPORTO,0))) as Partita_viaggiante,
0 as Partita_viaggiante,
sum(case Upper(id_area) when 'EXT' then ctv else 0 end ) as CTV_EXT,
sum(case Upper(id_area) when 'INV' then ctv else 0 end ) as CTV_INV,
sum(case when Upper(id_area) like 'PRE%' then ctv else 0 end ) as CTV_PRE,
--sum(case Upper(id_area) when 'PRE' then ctv else 0 end ) as CTV_PRE,
sum(case Upper(id_area) when 'RIS' then ctv else 0 end ) as CTV_RIS,
sum(case Upper(id_area) when 'LIQ' then ctv else 0 end ) as CTV_LIQ,
sum(case Upper(id_area) when 'EXT' then ctv else 0 end )+
sum(case Upper(id_area) when 'INV' then ctv else 0 end )+
sum(case when Upper(id_area) like 'PRE%' then ctv else 0 end ) +
sum(case Upper(id_area) when 'RIS' then ctv else 0 end )+
sum(case Upper(id_area) when 'LIQ' then ctv else 0 end ) AS CTV_RA,
sum(case Upper(id_area) when 'NA' then ctv else 0 end ) as CTV_NA,
sum(case Upper(id_area) when 'EXT' then ctv else 0 end )+
sum(case Upper(id_area) when 'INV' then ctv else 0 end )+
--sum(case Upper(id_area) when 'PRE' then ctv else 0 end )+
sum(case when Upper(id_area) like 'PRE%' then ctv else 0 end ) +
sum(case Upper(id_area) when 'RIS' then ctv else 0 end )+
sum(case Upper(id_area) when 'LIQ' then ctv else 0 end )+
sum(case Upper(id_area) when 'NA' then ctv else 0 end ) AS CTV_RF,
--CTV_CC = (Case WHEN sum(case Upper(id_area) when 'CC' then ctv else 0 end ) < 0 THEN sum(case Upper(id_area) when 'CC' then ctv else 0 end) ELSE 0 END),
--sum(Case When (Upper(id_area) = 'CC' and cast(ctv As Numeric)<0) Then ctv else 0 end) AS CTV_CC,
sum(Case Upper(id_area) when 'CC' then ctv else 0 end) AS CTV_CC,
sum(case Upper(id_area) when 'EXT' then ctv else 0 end )+
sum(case Upper(id_area) when 'INV' then ctv else 0 end )+
--sum(case Upper(id_area) when 'PRE' then ctv else 0 end )+
sum(case when Upper(id_area) like 'PRE%' then ctv else 0 end )+
sum(case Upper(id_area) when 'RIS' then ctv else 0 end )+
sum(case Upper(id_area) when 'LIQ' then ctv else 0 end )+
sum(case Upper(id_area) when 'NA' then ctv else 0 end ) +
sum(Case Upper(id_area) when 'CC' then ctv else 0 end) AS TotalePatrimonio
--sum((isnull(IMPORTO,0))) AS TotalePatrimonio
--sum(Case When (Upper(id_area) = 'CC' and cast(ctv As Numeric)<0) Then ctv else 0 end) AS TotalePatrimonio
--SUM(CTV) as ControvaloreComplessivo
,(CASE WHEN @UltimoInvio = 0 AND @DATA_FOTO < '20111001' THEN 'n.d.' ELSE @AppoDettMovCorr END) as DettMov
,(CASE WHEN @UltimoInvio = 0 AND @DATA_FOTO < '20111001' THEN 0 ELSE @NumAsterischiCorr END) as NumeroAsterischiNota
FROM
C6MartPeriodico.PATRIMONIO_BF
-- AS BF Left Join C6MartPeriodico.partite_viaggianti AS PV
-- ON BF.RETE = PV.RETE
-- AND BF.COD_FISCALE = PV.COD_FISCALE
WHERE
RETE = @Rete AND
COD_FISCALE = @CodiceFiscale
END
ELSE
BEGIN
SELECT
1 AS Fase,
DATA_FOTO AS DataFase,
ISNULL(PARTITA_VIAGGIANTE,0) AS Partita_viaggiante,
CTV_EXT,
CTV_INV,
CTV_PRE,
CTV_RIS,
CTV_LIQ,
CTV_EXT + CTV_INV + CTV_PRE + CTV_RIS + CTV_LIQ AS RisorseAllocate,
CTV_NA AS RisorseNonAllocate,
CTV_EXT + CTV_INV + CTV_PRE + CTV_RIS + CTV_LIQ + CTV_NA AS RisorseFinanziarie,
CTV_CC AS Contocorrente,
CTV_EXT + CTV_INV + CTV_PRE + CTV_RIS + CTV_LIQ + CTV_NA + CTV_CC AS TotalePatrimonio
--CTV_TOTALE AS ControvaloreComplessivo
FROM
MONITORAGGIO_INIZIALE
WHERE
1=2
END
END