DROP PROCEDURE ReporteVentas_Articulo_Proc
GO
CREATE PROCEDURE ReporteVentas_Articulo_Proc
(
 @FECHAINI	CHAR(15),
 @FECHAFIN	CHAR(15),
 @MONEDA	UD_CURYID,
 @TODOS_DOC	TINYINT=1,	-- (1) TODOS LOD DOC EN @MONEDA, (0) SOLO LOS DOC EN @MONEDA
 @ALMACENES	VARCHAR(255)='',-- CADENA DE ALMACENES
 @TODOS_ALM	TINYINT=1,--TODOS LOS ALMACENES
 @CRITERIOS	VARCHAR(255)='', --solo los elementos que cumplan la condicion
 @TODOS_CON	TINYINT=1 --TODOS LOS elementos del tipo de condicion
)
AS
BEGIN
   DECLARE  @DATFECHAINI SMALLDATETIME
   DECLARE  @DATFECHAFIN SMALLDATETIME
      
      
--  SET @FECHAINI='20021201'
--  SET @FECHAFIN='20021218'

       
        SET @DATFECHAINI=CAST(RTRIM(LTRIM(@FECHAINI)) AS SMALLDATETIME)
        SET @DATFECHAFIN=CAST(RTRIM(LTRIM(@FECHAFIN)) AS SMALLDATETIME)
         
        

	DECLARE @CADENA	VARCHAR(8000)
	DECLARE @MONEDABASE UD_CURYID	
	
	SET @MONEDABASE=(SELECT CURYORIG FROM SETUP)        --OBTENGO EL CODIGO DE LA MONEDA BASE
  

	IF (@MONEDA=@MONEDABASE) 
		BEGIN
			SET @CADENA="SELECT * " +
			    	    "FROM VW_RPT_VTAS_ART_PEN " +
	        	            "WHERE DATEPROCESALES BETWEEN '" + RTRIM(LTRIM(CAST(@DATFECHAINI AS CHAR(100)))) + "' AND '" + RTRIM(LTRIM(CAST(@DATFECHAFIN AS CHAR(100)))) + "'"
		END
	ELSE
		BEGIN
			SET @CADENA="SELECT * " +
			    	    "FROM VW_RPT_VTAS_ART_USD " +
	        	            "WHERE DATEPROCESALES BETWEEN '" + RTRIM(LTRIM(CAST(@DATFECHAINI AS CHAR(100)))) + "' AND '" + RTRIM(LTRIM(CAST(@DATFECHAFIN AS CHAR(100)))) + "'"
		END


	IF (@TODOS_ALM=0)
              	SET @CADENA=@CADENA + " AND SITEID IN (" + @ALMACENES + ")" 


	IF (@TODOS_CON=0)
		SET @CADENA=@CADENA + " AND INVTIDSKU IN (" + @CRITERIOS + ")"

	--SELECT 	@CADENA		
	EXEC (@CADENA)	


END 
GO

ReporteVentas_Articulo_Proc '20030101','20030106','PEN'