﻿CREATE procedure [C6MartPeriodico].[DM_PROVENTI]  
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.WSEIPR  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_PROVENTI',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
 TRUNCATE TABLE [C6MartPeriodico].[PROVENTI]  
--select * from [C6MartPeriodico].[PROVENTI]  
 INSERT INTO [C6MartPeriodico].[PROVENTI] (   
  WSEIPR.RETE,   
  DTTRIM,   
  COD_FISCALE,  
        COD_INTERNO ,   
  COD_SOTTOPRODOTTO ,  
  DESPROD  ,  
  DTRIFE,  
  TIPMOV,  
  IMPORTO    
 )  
 SELECT  
  WSEIPR.RETE,   
  convert(datetime,convert(varchar,WSEIPR.[DTTRIM]),100) as [DT_TRIM],   
  WSEIPR.CODFIS,  
        COD_INTERNO = CASE  
  -- WHEN WSEIPR.FAMPROD <> 'DT' THEN WSEIPR.CODPROD           
  -- ELSE WSEIPR.CODABI                          
   WHEN LTRIM(RTRIM(isnull(WSEIPR.CODABI,''))) = '' THEN WSEIPR.CODPROD           
   ELSE LTRIM(RTRIM(WSEIPR.CODABI))                        
        END,   
  COD_SOTTOPRODOTTO = CASE     
   WHEN LTRIM(RTRIM(isnull(WSEIPR.SUBPROD,''))) = '' THEN ''          
   ELSE LTRIM(RTRIM(WSEIPR.SUBPROD))  
  END,  
  --[C6MartPeriodico].[getDESPRODCAT](CODPROD,SUBPROD) as DESPROD  ,  
  [C6MartPeriodico].[getDESPRODCAT]  
  (CASE  
   WHEN LTRIM(RTRIM(isnull(WSEIPR.CODABI,''))) = '' THEN WSEIPR.CODPROD           
   ELSE LTRIM(RTRIM(WSEIPR.CODABI))                         
        END,  
        CASE     
   WHEN LTRIM(RTRIM(isnull(WSEIPR.SUBPROD,''))) = '' THEN NULL        
   ELSE LTRIM(RTRIM(WSEIPR.SUBPROD))  
  END) as DESPROD  ,  
  convert(datetime,convert(varchar,WSEIPR.[DTRIFE]),100) as DTRIFE,    
  WSEIPR.TIPMOV,  
  WSEIPR.IMPORTO     
 FROM  c6StagingPeriodico.WSEIPR  WSEIPR  
 WHERE   
   WSEIPR.[DTTRIM] = @DTMAX   
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_PROVENTI' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'DM_PROVENTI'  
  )  
-- FC 22/01/2014  
-- Verifica e scarto prodotti   
    INSERT INTO C6MARTPERIODICO.TEST_QUALITY  
       SELECT a.RETE, a.COD_FISCALE, 'PROVENTI.DESPROD IS NULL'   
   FROM [C6MartPeriodico].[PROVENTI] a --WHERE ISNULL(DesProd,'') =''  
    INNER JOIN c6stagingperiodico.appo_contratti_v b  
    on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale and b.tip_contratto=2   
    WHERE ISNULL(DesProd,'') =''  
END