-- Schema: C6MartPeriodico
-- Stored Procedure: DM_SCADENZE



CREATE procedure [C6MartPeriodico].[DM_SCADENZE]  
AS  
BEGIN  
    
 SET NOCOUNT ON;  
  
  DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
    DECLARE @DTMAX INT      
     
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
 SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()  
   
 SELECT  @DTMAX = ISNULL(MAX(DTTRIM),0) FROM c6StagingPeriodico.WSEISC  
   
   
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_SCADENZE',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
     
 TRUNCATE TABLE [C6MartPeriodico].[SCADENZE]  
--select * from [C6MartPeriodico].[[SCADENZE]]  
 INSERT INTO [C6MartPeriodico].[SCADENZE] (   
  WSEIPR.RETE,   
  DTTRIM,   
  COD_FISCALE,  
        COD_INTERNO ,   
  COD_SOTTOPRODOTTO,  
  DESPROD,  
  DTSCAD,  
  TIPMOV    
 )  
 SELECT  
  WSEISC.RETE,   
  convert(datetime,convert(varchar,WSEISC.[DTTRIM]),100) as [DT_TRIM],   
  WSEISC.CODFIS,  
        COD_INTERNO = CASE  
  -- WHEN WSEISC.FAMPROD <> 'DT' THEN WSEISC.CODPROD           
  -- ELSE WSEISC.CODABI                          
   WHEN LTRIM(RTRIM(isnull(WSEISC.CODABI,''))) = '' THEN WSEISC.CODPROD           
   ELSE LTRIM(RTRIM(WSEISC.CODABI))                         
        END,   
  COD_SOTTOPRODOTTO = CASE     
   WHEN LTRIM(RTRIM(isnull(WSEISC.SUBPROD,''))) = '' THEN ''          
   ELSE LTRIM(RTRIM(WSEISC.SUBPROD))  
  END,  
  -- [C6MartPeriodico].[getDESPRODCAT](CODPROD,SUBPROD) as DESPROD  ,  
  [C6MartPeriodico].[getDESPRODCAT]  
  (CASE  
   WHEN LTRIM(RTRIM(isnull(WSEISC.CODABI,''))) = '' THEN WSEISC.CODPROD           
   ELSE LTRIM(RTRIM(WSEISC.CODABI))                          
        END,  
        CASE     
   WHEN LTRIM(RTRIM(isnull(WSEISC.SUBPROD,''))) = '' THEN NULL          
   ELSE LTRIM(RTRIM(WSEISC.SUBPROD))  
  END) as DESPROD  ,     
  convert(datetime,convert(varchar,WSEISC.DTSCAD),100) as DTSCAD,          
       WSEISC.TIPMOV        
 FROM  c6StagingPeriodico.WSEISC  WSEISC  
  -- modifica del 28/4/2017 per s&m selective 
		 inner join c6StagingPeriodico.appo_contratti_v appo
		on wseisc.rete = appo.rete and
		   wseisc.codfis = appo.cod_fiscale
 --fine modifica del 28/4/2017 per s&m selective 
 WHERE   
   WSEISC.[DTTRIM] = @DTMAX  
   
   
   
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_SCADENZE' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'DM_SCADENZE'  
  )  
  
-- FC 22/01/2014  
-- Verifica e scarto prodotti   
    INSERT INTO C6MARTPERIODICO.TEST_QUALITY  
       SELECT RETE, COD_FISCALE, 'SCADENZE.DESPROD IS NULL'   
   FROM [C6MartPeriodico].[SCADENZE] WHERE ISNULL(DesProd,'') =''   
  
  
END