IF  EXISTS (SELECT * FROM sys.objects 
				WHERE object_id = OBJECT_ID(N'[dbo].[P_EST_PROD_CPL_MEDIAF_REMOVE_FACEAMENTO]') 
						AND type in (N'P', N'PC'))
	DROP PROCEDURE [dbo].[P_EST_PROD_CPL_MEDIAF_REMOVE_FACEAMENTO]
GO
--Exec P_EST_PROD_CPL_MEDIAF_REMOVE_FACEAMENTO
CREATE PROCEDURE [dbo].[P_EST_PROD_CPL_MEDIAF_REMOVE_FACEAMENTO] ( @DT_REMOVER DATE =NULL) 
AS
DECLARE @CD_EMP INT
DECLARE @CD_FILIAL INT
DECLARE @CD_PROD INT
DECLARE @TP_PROD INT

IF @DT_REMOVER  IS NULL
	SET @DT_REMOVER =DATEADD(DAY, -1, GETDATE());

Print 'Removendo faceamento e limitador anteriores a ' + convert(varchar, @DT_REMOVER ,112);

/**************************************************************************************************/
;DECLARE CorrigirEstprod 
CURSOR FAST_FORWARD FOR 
	SELECT
		CD_EMP,
		CD_FILIAL,
		CD_PROD,
		0 AS TP_PROD
	FROM
		EST_PROD_CPL_MEDIAF
	WHERE   
		CD_EMP=1  
		AND QTDE_FACEAMENTO > 0 
		AND VALID_QTDE_FACEAMENTO <=@DT_REMOVER
	UNION ALL
	SELECT
		CD_EMP,
		CD_FILIAL,
		CD_PROD,
		1 AS TP_PROD
	FROM
		EST_PROD_CPL_MEDIAF
	WHERE   
		CD_EMP=1  
		AND QTDE_LIMITADOR > 0 
		AND VALID_QTDE_LIMITADOR <=@DT_REMOVER;

	OPEN CorrigirEstprod
	FETCH NEXT FROM CorrigirEstprod INTO @CD_EMP,@CD_FILIAL,@CD_PROD,@TP_PROD
	
WHILE @@FETCH_STATUS = 0 
BEGIN	
	
	PRINT 'PRODUTO.: ' + CONVERT(VARCHAR(20),@CD_PROD) 		
	----------------------------------------------------------------------------------------------------
	IF @TP_PROD=0
	BEGIN
		UPDATE
			EST_PROD_CPL_MEDIAF
		SET
			EST_PROD_CPL_MEDIAF.QTDE_FACEAMENTO=0, 
			EST_PROD_CPL_MEDIAF.VALID_QTDE_FACEAMENTO=NULL
		WHERE     
			EST_PROD_CPL_MEDIAF.CD_EMP =@CD_EMP
			AND EST_PROD_CPL_MEDIAF.CD_FILIAL=@CD_FILIAL
			AND EST_PROD_CPL_MEDIAF.CD_PROD=@CD_PROD	

		UPDATE
			EST_PROD_CPL
		SET
			EST_PROD_CPL.QTDE_FACEAMENTO=0
		WHERE     
			EST_PROD_CPL.CD_EMP =@CD_EMP
			AND EST_PROD_CPL.CD_FILIAL=@CD_FILIAL
			AND EST_PROD_CPL.CD_PROD=@CD_PROD	
	END 
	----------------------------------------------------------------------------------------------------
	IF @TP_PROD=1
	BEGIN
		UPDATE
			EST_PROD_CPL_MEDIAF
		SET
			EST_PROD_CPL_MEDIAF.QTDE_LIMITADOR=0, 
			EST_PROD_CPL_MEDIAF.VALID_QTDE_LIMITADOR=NULL
		WHERE     
			EST_PROD_CPL_MEDIAF.CD_EMP =@CD_EMP
			AND EST_PROD_CPL_MEDIAF.CD_FILIAL=@CD_FILIAL
			AND EST_PROD_CPL_MEDIAF.CD_PROD=@CD_PROD	
								
		UPDATE
			EST_PROD_CPL
		SET
			EST_PROD_CPL.QTDE_LIMITADOR=0
		WHERE     
			EST_PROD_CPL.CD_EMP =@CD_EMP
			AND EST_PROD_CPL.CD_FILIAL=@CD_FILIAL
			AND EST_PROD_CPL.CD_PROD=@CD_PROD
	END
	----------------------------------------------------------------------------------------------------

	FETCH NEXT FROM CorrigirEstprod INTO  @CD_EMP,@CD_FILIAL,@CD_PROD,@TP_PROD
END

CLOSE CorrigirEstprod
DEALLOCATE CorrigirEstprod

	