-- Schema: C6MartPeriodico
-- Stored Procedure: Popola_S80BisEvoluzioneRischio




  
  
-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
--[C6MartPeriodico].[PL_S80BisEvoluzioneRischio]'F','02392500605S'  
  
  
CREATE procedure [C6MartPeriodico].[Popola_S80BisEvoluzioneRischio]  
AS  
BEGIN  
 -- SET NOCOUNT ON added to prevent extra result sets from  
 -- interfering with SELECT statements.  
 SET NOCOUNT ON;  
  
 DECLARE @DataCongelamento DATETIME  
  
 SET @DataCongelamento = C6MartPeriodico.getDataCongelamento()  
 select @DataCongelamento 
  
   
truncate table c6martperiodico.tb_S80BisEvoluzioneRischio  
insert into c6martperiodico.tb_S80BisEvoluzioneRischio    
 SELECT  
 ini.rete,  
 ini.COD_FISCALE,  
  1 AS Fase,  
  INI.DATA_FOTO AS DataFase,  
  INI.VAR_MAX_PROFILO AS VarMassimoProfiloFinanziario,  
  --V  
  CASE  
   WHEN INI.VAR_COMPLESSIVO IS NULL THEN INI.VAR_COMPLESSIVO  
   ELSE ROUND(INI.VAR_COMPLESSIVO,2)  
  END AS VarComplessivo,  
  INI.VAR_COPERTURA AS Copertura,  
        INI.RISKCLASS,  
        INI.RISKCLASSMAX,  
  case   
   when INI.RISKCLASS is null  then 'n.d.'  
   when INI.RISKCLASS = 0 then 'n.a.'   
   else null  
  end as RiskClassString,  
    
  case   
   when INI.RISKCLASSMAX is null then 'n.d.'  
   when INI.RISKCLASSMAX = 0 then 'n.a.'  
   else null  
  end as RiskClassMaxString  
    
   
    
 FROM  
  C6MartPeriodico.MONITORAGGIO_INIZIALE INI  
        LEFT OUTER  join  
        C6MartPeriodico.MONITORAGGIO_REPORT rep  
        on   
        REP.RETE=INI.RETE  
        AND   
        REP.COD_FISCALE=INI.COD_FISCALE  

	
  
 UNION ALL  
  
 -- Precedente invio report  
  
 SELECT  
 rep.RETE ,  
  rep.COD_FISCALE ,  
  2 AS Fase,  
  rep.DATA_INVIO AS DataFase,  
  rep.VAR_MAX_PROFILO AS VarMassimoProfiloFinanziario,  
  --V  
  CASE  
   WHEN rep.VAR_COMPLESSIVO IS NULL THEN rep.VAR_COMPLESSIVO  
   ELSE ROUND(rep.VAR_COMPLESSIVO,2)  
  END AS VarComplessivo,  
  rep.VAR_COPERTURA AS Copertura,  
         rep.RISKCLASS,  
         rep.RISKCLASSMAX,  
  case when rep.RISKCLASS is null then 'n.a.'  
    else null  
  end as RiskClassString,  
  case when rep.RISKCLASSMAX is null then 'n.a.'  
    else null  
  end as RiskClassMaxString  
    
 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    
      -- 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,cast('29991231' as datetime)),112)
	 -- fine modifica del 24/7/2017

  and ISNULL(DATA_INVIO,cast('29991231' as datetime))<@datacongelamento  
  
  
 UNION ALL  
  
 -- Situazione corrente  
  
 SELECT  
 BF.RETE ,  
  BF.COD_FISCALE,  
  3 fase,  
  CASE  
   WHEN @DataCongelamento IS NULL THEN GETDATE()  
   ELSE @DataCongelamento  
  END AS DataFase,  
  CR.MAX_VAR AS VarMassimoProfiloFinanziario,  
  --V  
  CASE WHEN RA.VAR_PERC_PTF IS NULL THEN 0.00  
    ELSE ROUND(RA.VAR_PERC_PTF,2)  
  END  AS VarComplessivo,  
  --CASE  
  -- WHEN (@contaPOS - @contaCC = 0 ) THEN 100  
  -- ELSE isnull(RA.COPERTURA,0)   
  --END AS Copertura,  
  isnull(RA.COPERTURA,0) as copertura,  
-- TRINGALI MODIFICARE  
       ra.creditrisk as RISKCLASS,  
        mifid.riskclass as RISKCLASSMAX,  
  case when ra.creditrisk is null then 'n.a.'  
        else null end   as RiskClassString,  
  case when  mifid.riskclass is null then 'n.a.'  
              else null end as RiskClassMaxString  
 F