-- Stored procedure  
-- Stored procedure  
-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
-- [C6MartPeriodico].[Popola_S80_S129_EvoluzioneCTVPatrimonio]'F','GSTGPL59P03B586G'  
CREATE     procedure [C6MartPeriodico].[Popola_S80_S129_EvoluzioneCTVPatrimonio_percentuale]  
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 @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()  
--select * from #riga_nuova
   -- INSERIMENTO BLOCCO PER MONITORAGGIO CHIUSO O NON ESISTENTE  
 --   -- Inserimento Dati Scirocco  
 --   SELECT @DettMovPrec = DETT_MOV_PREC, @DettMovCorr = DETT_MOV_CORR  
 --FROM C6MartPeriodico.DettaglioMovimenti  
 --WHERE  
 -- RETE = @Rete  
 --AND  
 -- COD_FIS = @CodiceFiscale  
 --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 [C6StagingPeriodico].[WSEICS]  
 -- WHERE CODPROD IN ('37', 'GP') AND DTTRIM = c6martperiodico.getprevioustrimestre(getdate(),0)  
 -- 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  
truncate table C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio_perc  
 -- Attivazione monitoraggio  
 insert into C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio_perc  
 SELECT  
  INI.RETE,  
  INI.Cod_Fiscale,  
  1 AS Fase,  
  isnull(INI.DATA_FOTO,0) AS DataFase,  
  ISNULL(INI.PARTITA_VIAGGIANTE,0) AS Partita_viaggiante,  
  isnull(INI.CTV_EXT,0) as CTV_EXT,  
  isnull(INI.CTV_INV,0) as CTV_INV,  
  isnull(INI.CTV_PRE,0) as CTV_PRE,  
  isnull(INI.CTV_RIS,0) as CTV_RIS,  
  isnull(INI.CTV_LIQ,0) as CTV_LIQ,  
  -- aggiunta del 19-10-2020 per il calcolo delle percentuali delle varie aree della piramide
  --isnull([C6MartPeriodico].[GetPercentualePiramideMod](INI.Cod_Fiscale,INI.RETE,'Ext'),0.00) as PERC_EXT,
  --isnull([C6MartPeriodico].[GetPercentualePiramideMod](INI.Cod_Fiscale,INI.RETE,'Inv'),0.00) as PERC_INV,
  --isnull([C6MartPeriodico].[GetPercentualePiramideMod](INI.Cod_Fiscale,INI.RETE,'Pre'),0.00) as PERC_PRE,
  --isnull([C6MartPeriodico].[GetPercentualePiramideMod](INI.Cod_Fiscale,INI.RETE,'Ris'),0.00) as PERC_RIS,
  --isnull([C6MartPeriodico].[GetPercentualePiramideMod](INI.Cod_Fiscale,INI.RETE,'Liq'),0.00) as PERC_LIQ,
  isnull(mode.PERC_EXT,0.00) as PERC_EXT,
  isnull(mode.PERC_INV,0.00) as PERC_INV,
  isnull(mode.PERC_PRE,0.00) as PERC_PRE,
  isnull(mode.PERC_RIS,0.00) as PERC_RIS,
  isnull(mode.PERC_LIQ,0.00) as PERC_LIQ,
  -- fine aggiunta del 19-10-2020 
  isnull(INI.CTV_EXT,0) + isnull(INI.CTV_INV,0) + isnull(INI.CTV_PRE,0) + isnull(INI.CTV_RIS,0) + isnull(INI.CTV_LIQ,0) AS RisorseAllocate,  
  isnull(INI.CTV_NA,0) AS RisorseNonAllocate,  
  isnull(INI.CTV_EXT,0) + isnull(INI.CTV_INV,0) + isnull(INI.CTV_PRE,0) + isnull(INI.CTV_RIS,0) + isnull(INI.CTV_LIQ,0) + isnull(INI.CTV_NA,0) AS RisorseFinanziarie,  
  isnull(INI.CTV_CC,0) AS Contocorrente,  
--INIZIO INTERVENTI OMNIA
  isnull(INI.CTVSELF,0) AS ctvself,
  -- 20181206 MIOFOGLIO
  --isnull(INI.CTV_EXT,0) + isnull(INI.CTV_INV,0) + isnull(INI.CTV_PRE,0) + isnull(INI.CTV_RIS,0) + isnull(INI.CTV_LIQ,0) + isnull(INI.CTV_NA,0) + isnull(INI.CTV_CC,0) + isnull(INI.CTVSELF,0) + ISNULL(INI.PARTITA_VIAGGIANTE,0) AS TotalePatrimonio
  isnull(INI.CTV_EXT,0) + isnull(INI.CTV_INV,0) + isnull(INI.CTV_PRE,0) + isnull(INI.CTV_RIS,0) + isnull(INI.CTV_LIQ,0) + isnull(INI.CTV_NA,0) + isnull(INI.CTV_CC,0) + isnull(INI.CTVSELF,0) + isnull(INI.CTVSELFFOGLIO,0) + ISNULL(INI.PARTITA_VIAGGIANTE,0) AS TotalePatrimonio
  -- fine 20181206 MIOFOGLIO
--FINE INTERVENTI OMNIA  
  ,null as DettMovS80  
  ,null as DettMovS129  
  ,0 as NumeroAsterischiNota  
  ,0 as sommaproventi
  -- 20181206 MIOFOGLIO
  ,isnull(INI.CTVSELFFOGLIO,0) AS CTVSelfFoglio
  -- fine 20181206 MIOFOGLIO
 FROM  
  --C6MartPeriodico.MONITORAGGIO_INIZIALE INI  
   [C6MartPeriodico].[MONITORAGGIO_INIZIALE] INI
        left outer join  
        C6MartPeriodico.MONITORAGGIO_REPORT rep  
        on   
        REP.RETE=INI.RETE  
        AND   
        REP.COD_FISCALE=INI.COD_FISCALE  
		left join C6StagingPeriodico.Popola_PiramideModello mode
		on rtrim(ltrim(ini.rete)) = rtrim(ltrim(mode.rete)) and
		rtrim(ltrim(ini.cod_fiscale)) = rtrim(ltrim(mode.cod_fiscale)) and
		rtrim(ltrim(ini.DATA_FOTO)) = rtrim(ltrim(mode.data_foto)) 
		--rtrim(ltrim(convert(varchar,ini.DATA_FOTO,105))) = rtrim(ltrim(convert(varchar,mode.data_foto,105))) 
 WHERE  
     -- modifica per segnalazione qc (Diacci) su cf ‘BRBRRT58P21I633Q/S’ in simulazione Dicembre 2017
			 -- modifica del 24/7/2017 per gestire le situazioni limite dell'avvio monitoraggio a cavallo tra 2 trim (vedi segnalazione
			 --   del qc su cf F/TRRLDA52D04G190A)
						----INI.DATA_FOTO < ISNULL(REP.DATA_INVIO,'2999-12-31')  
			  --CONVERT(varchar,ini.data_foto,112) <= convert(varchar,ISNULL(rep.DATA_INVIO,'2999-12-31'),112)
			 -- fine modifica del 24/7/2017
         ISNULL(ini.data_foto,cast('29991231' as datetime)) < @datacongelamento  
     -- fine modifica per segnalazione qc (Diacci) su cf ‘BRBRRT58P21I633Q/S’ in simulazione Dicembre 2017
 -- INI.RETE = @Rete AND  
 -- INI.COD_FISCALE = @CodiceFiscale  
    UNION ALL  
 -- Precedente invio report  
  SELECT  
  INI.RETE,  
  INI.Cod_Fiscale,  
  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,  
    -- aggiunta del 19-10-2020 per il calcolo delle percentuali delle varie aree della piramide
  --case (rep.CTV_EXT + rep.CTV_INV + rep.CTV_PRE + rep.CTV_RIS + rep.CTV_LIQ) when 0 then 0 else cast((rep.ctv_ext / (rep.CTV_EXT + rep.CTV_INV + rep.CTV_PRE + rep.CTV_RIS + rep.CTV_LIQ) * 100) as decimal(18,2))
  --end as PERC_EXT,
  --case (rep.CTV_EXT + rep.CTV_INV + rep.CTV_PRE + rep.CTV_RIS + rep.CTV_LIQ) when 0 then 0 else cast((rep.CTV_INV / (rep.CTV_EXT + rep.CTV_INV + rep.CTV_PRE + rep.CTV_RIS + rep.CTV_LIQ) * 100) as decimal(18,2))
  --end as PERC_INV,
  --case (rep.CTV_EXT + rep.CTV_INV + rep.CTV_PRE + rep.CTV_RIS + rep.CTV_LIQ) when 0 then 0 else cast((rep.CTV_PRE / (rep.CTV_EXT + rep.CTV_INV + rep.CTV_PRE + rep.CTV_RIS + rep.CTV_LIQ) * 100) as decimal(18,2))
  --end as PERC_PRE,
  --case (rep.CTV_EXT + rep.CTV_INV + rep.CTV_PRE + rep.CTV_RIS + rep.CTV_LIQ) when 0 then 0 else cast((rep.CTV_RIS / (rep.CTV_EXT + rep.CTV_INV + rep.CTV_PRE + rep.CTV_RIS + rep.CTV_LIQ) * 100) as decimal(18,2))
  --end as PERC_RIS,
  --case (rep.CTV_EXT + rep.CTV_INV + rep.CTV_PRE + rep.CTV_RIS + rep.CTV_LIQ) when 0 then 0 else cast((rep.CTV_LIQ / (rep.CTV_EXT + rep.CTV_INV + rep.CTV_PRE + rep.CTV_RIS + rep.CTV_LIQ) * 100) as decimal(18,2))
  --end as PERC_LIQ,
  isnull(mode.PERC_EXT,0.00) as PERC_EXT,
  isnull(mode.PERC_INV,0.00) as PERC_INV,
  isnull(mode.PERC_PRE,0.00) as PERC_PRE,
  isnull(mode.PERC_RIS,0.00) as PERC_RIS,
  isnull(mode.PERC_LIQ,0.00) as PERC_LIQ,
  -- fine aggiunta del 19-10-2020
  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,  
--INIZIO INTERVENTI OMNIA  
  isnull(rep.CTV_SELF,0) AS CTV_SELF,
  -- 20181206 MIOFOGLIO
  --rep.CTV_EXT + rep.CTV_INV + rep.CTV_PRE + rep.CTV_RIS + rep.CTV_LIQ + rep.CTV_NA + rep.CTV_CC + ISNULL(rep.CTV_SELF,0) + ISNULL(rep.PARTITA_VIAGGIANTE,0) AS TotalePatrimonio
  rep.CTV_EXT + rep.CTV_INV + rep.CTV_PRE + rep.CTV_RIS + rep.CTV_LIQ + rep.CTV_NA + rep.CTV_CC + ISNULL(rep.CTV_SELF,0) + ISNULL(rep.CTV_SELF_FOGLIO,0) + ISNULL(rep.PARTITA_VIAGGIANTE,0) AS TotalePatrimonio
  -- fine 20181206 MIOFOGLIO  
--FINE INTERVENTI OMNIA  
--ToDo Fc    
--  ,(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  
  ,null as DettMovS80  
  ,null as DettMovS129  
  ,0 as NumeroAsterischiNota  
      ,0 as sommaproventi
	-- 20181206 MIOFOGLIO
  ,isnull(rep.CTV_SELF_FOGLIO,0) AS CTV_SELF_FOGLIO
	-- fine 20181206 MIOFOGLIO
 FROM  
  --C6MartPeriodico.MONITORAGGIO_INIZIALE INI  
  [C6MartPeriodico].[MONITORAGGIO_INIZIALE] INI
        left outer join  
        C6MartPeriodico.MONITORAGGIO_REPORT rep  
        on   
        REP.RETE=INI.RETE  
        AND   
        REP.COD_FISCALE=INI.COD_FISCALE  
	left join C6StagingPeriodico.Popola_PiramideModello mode
	on rtrim(ltrim(ini.rete)) = rtrim(ltrim(mode.rete)) and
	rtrim(ltrim(ini.cod_fiscale)) = rtrim(ltrim(mode.cod_fiscale)) and
	rtrim(ltrim(rep.DATA_INVIO)) = rtrim(ltrim(mode.data_foto)) 
	--rtrim(ltrim(convert(varchar,rep.DATA_INVIO,105))) = rtrim(ltrim(convert(varchar,mode.data_foto,105))) 
 WHERE
     -- modifica del 24/7/2017 per gestire le situazioni limite dell'avvio monitoraggio a cavallo tra 2 trim (vedi segnalazione
	 --   del qc su cf F/TRRLDA52D04G190A)  
        --INI.DATA_FOTO < ISNULL(REP.DATA_INVIO,cast('29991231' as datetime))  
		 CONVERT(varchar,ini.data_foto,112) <= convert(varchar,ISNULL(rep.DATA_INVIO,'2999-12-31'),112)
	 -- fine modifica del 24/7/2017
  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 t.rete,t.cod_fiscale,t.Fase,t.DataFase,t.Partita_viaggiante,t.CTV_EXT,t.CTV_INV,
 t.CTV_PRE,t.CTV_RIS,t.CTV_LIQ,
 t.PERC_EXT,t.PERC_INV,t.PERC_PRE,t.PERC_RIS,t.PERC_LIQ,t.CTV_RA,t.CTV_NA,
 t.CTV_RF,t.CTV_CC,t.CTV_SELF,t.TotalePatrimonio,t.DettMovS80,t.DettMovS129,t.NumeroAsterischiNota,t.sommaproventi,t.CTV_SELF_FOGLIO
 from c6martperiodico.TB_Popola_S80_S129_EvoluzioneCTVPatrimonio_percentuale_Fase3 t
-- select count(*) from C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio_perc  
 --fix data 17/12/2020
 --sezione che storicizza le percentuali dell'ultima elaborazione se non sono già presenti nella tabella.
 --commentare in fase di simulazione
 --insert into C6StagingPeriodico.Popola_PiramideModello
	--select Rete,
	--	   Cod_fiscale,
	--	   DataFase as Data_foto,
	--	   PERC_EXT,
	--	   PERC_INV,
 --          PERC_PRE,
 --          PERC_RIS,
 --          PERC_LIQ
	--	   from C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio_perc where fase = 3
	--	   and rtrim(ltrim(rete))+rtrim(ltrim(cod_fiscale))+rtrim(ltrim(convert(varchar,dataFase,105))) not in 
	--	   (select distinct(rtrim(ltrim(rete))+rtrim(ltrim(cod_fiscale))+rtrim(ltrim(convert(varchar,data_foto,105)))) 
	--	   from C6StagingPeriodico.Popola_PiramideModello)
 --fine fix 17/12/2020
update s80  
set DettMovS80 = case when dettmov.DETT_MOV_PREC is null   
  then 'n.d.'  
   else REPLACE(CAST(dettmov.DETT_MOV_PREC as varchar(50)), '.', ',')   
end ,  
DettMovS129 = case when dettmov.DETT_MOV_PREC is null   
  then 'n.d.'  
   else REPLACE(CAST(dettmov.DETT_MOV_PREC as varchar(50)), '.', ',')   
end   
from C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio_perc  s80  
inner join C6MartPeriodico.DettaglioMovimenti DettMov  
on  s80.rete = dettmov.rete  and dettmov.COD_FIS = s80.COD_FIScale  
where s80.fase=2  
update s80  
set DettMovS80 = case when dettmov.DETT_MOV_CORR is null   
  then 'n.d.'  
   else REPLACE(CAST(dettmov.DETT_MOV_CORR as varchar(50)), '.', ',')   
end ,  
DettMovS129 = case when dettmov.DETT_MOV_TRIMESTRE_PREC is null   
  then 'n.d.'  
   else REPLACE(CAST(dettmov.DETT_MOV_TRIMESTRE_PREC as varchar(50)), '.', ',')   
end   
from C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio_perc s80  
inner join C6MartPeriodico.DettaglioMovimenti DettMov  
on  s80.rete = dettmov.rete  and dettmov.COD_FIS = s80.COD_FIScale  
where s80.fase=3  
--forzatura 
--update  C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio_perc 
--set dettmovS80='189050.93'
--where Cod_Fiscale='BNBLPL51M05F965Y'
--and fase=2
--update  C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio_perc
--set dettmovS80='-15081.46'
--where Cod_Fiscale='BNBLPL51M05F965Y'
--and fase=3
--fine forzatura
--update S129  
--set DettMovS129 = case when dettmov.DETT_MOV_TRIMESTRE_PREC is null   
--  then 'n.d.'  
--   else REPLACE(CAST(dettmov.DETT_MOV_TRIMESTRE_PREC as varchar(50)), '.', ',')   
--end   
--from C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio S129  
--inner join C6MartPeriodico.DettaglioMovimenti DettMov  
--on  S129.rete = dettmov.rete  and dettmov.COD_FIS = S129.COD_FIScale  
--where S129.fase=3  
declare @TimecPRec  varchar(8)  
set @TimecPRec =  c6martperiodico.getprevioustrimestre(getdate(),0)  
update s80x  
set NumeroAsterischiNota =  
case   
when ws.CODFIS is null  
  then   0  
else 1   
end   
FROM C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio_perc s80x  
left join [C6StagingPeriodico].[WSEICS] ws  
on s80x.rete = ws.rete  and ws.CODFIS = s80x.COD_FIScale  
WHERE CODPROD IN ('37', 'GP') AND DTTRIM = @TimecPRec AND s80x.fase = 2  
update s80x  
set NumeroAsterischiNota =  
case   
when ws.COD_FISCALE is null  
  then   0  
else 1   
end   
FROM C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio_perc s80x  
left join C6MartPeriodico.PATRIMONIO_BF ws  
on s80x.rete = ws.rete  and ws.COD_FISCALE = s80x.COD_FIScale  
WHERE  COD_INTERNO IN ('37', 'GP') AND s80x.fase = 3  
SELECT top 1 * FROM C6MartPeriodico.PATRIMONIO_BF  
 -- WHERE COD_INTERNO IN ('37', 'GP')  
 -- AND RETE = @Rete AND COD_FISCALE = @CodiceFiscale  
SELECT rete,Cod_Fiscale,sum(IMPORTO) sommaProventi  
into #SommaProventi  
FROM [C6MartPeriodico].proventi   
--where rete='F' and Cod_Fiscale='DLLLCU62T60G408A'  
group by  rete,Cod_Fiscale   
update s80x  
set s80x.sommaproventi = sp.sommaproventi  
FROM C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio_perc s80x  
left join  #SommaProventi sp  
on s80x.rete = sp.rete  and sp.Cod_Fiscale = s80x.COD_FIScale  
--pezzotto 20240702
insert into [C6MartPeriodico].[TB_S80_S129_EvoluzioneCTVPatrimonio_perc] 
  select  *
  FROM [C6MartPeriodico].[TB_S80_S129_EvoluzioneCTVPatrimonio_perc_pez] 
END