DROP PROC listastock_ALL_proc
GO

create proc listastock_ALL_proc
@SITE 		varCHAR(8000),		--almacenes que se desean mostrar
@TCONDICION 	CHAR(3),		--tipo de condicion, CAT categoria SCA subcategoria, ART articulo
@todas 		integer=1,		--si de desean ver todos los elementos del tipo de condicion 
@condicion 	varchar(8000)='', 	--condicion si solo se desean ver algunos item
@solostock	tinyint=1			--solo si desean productos con  stock
	as
SET @CONDICION=LTRIM(@CONDICION)
DECLARE @CONSULTA	VARCHAR(8000)	--CONSULTA QUE SE VA A EJECUTAR

IF @solostock=1
	SET @CONSULTA =	"SELECT * FROM VW_LISTASTOCK WHERE QTYAVAIL<>0 and SITEID IN (" +@SITE+ ") "
ELSE
	SET @CONSULTA =	"SELECT * FROM VW_LISTASTOCK WHERE SITEID IN (" +@SITE+ ") "

if @TCONDICION="CAT"	--POR CATEGORIA
	IF @TODAS=1	--SIN CONDICION
		BEGIN
			SET @CONSULTA =@CONSULTA +' order by siteid,classid,descr'				
			EXEC (@CONSULTA)		
		END	
	ELSE
		BEGIN	
			SET @CONSULTA =@CONSULTA +' and classid IN ('+@condicion+') '+
						  ' order by siteid,classid,descr'
			EXEC (@CONSULTA)
		END

if @TCONDICION="SCA"	--POR SUB CATEGORIA
	IF @TODAS=1
	BEGIN
		SET @CONSULTA =@CONSULTA +' order by siteid,classid,classubid,descr'				
		EXEC (@CONSULTA)		
	END	
ELSE
	BEGIN
		SET @CONSULTA =@CONSULTA +' AND CLASSUBID IN (' +@CONDICION+')'+
					  ' order by siteid,classid,classubid,descr'				
	EXEC (@CONSULTA)		
	END	
if @TCONDICION="ART"	--POR ARTICULO
	IF @TODAS=1
	BEGIN
		SET @CONSULTA =@CONSULTA +' order by siteid,descr'
		EXEC (@CONSULTA)		
	END	
ELSE
	BEGIN
		SET @CONSULTA =@CONSULTA +' AND invtidsku in ('+@condicion+')' +
					  ' order by siteid,descr '
		EXEC (@CONSULTA)		
	END	
GO
EXEC LISTASTOCK_ALL_PROC "'00057'",'CAT',1,0,1