-- Stored procedure -- Stored procedure -- ============================================= -- Author: -- Create date: -- 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