DROP PROC valorinventariofisico_proc
GO

create proc valorinventariofisico_proc
@tipomoneda  	UD_CURYID,		--codigo de moneda a mostrar
@SITE 		varCHAR(8000),		--almacenes que se desean mostrar
@TCONDICION 	CHAR(3),		--tipo de condicion, CAT categoria SCA subcategoria, TIp tipo, ART articulo
@todas 		integer,		--si de desean ver todos los elementos del tipo de condicion 
@condicion 	varchar(8000)='', 	--condicion si solo se desean ver algunos item
@costo		char(3)			--(pro)medio o (rep)osicion
as
DECLARE @CONSULTA	VARCHAR(8000)	--CONSULTA QUE SE VA A EJECUTAR
DECLARE @MONEDAORIG	UD_CURYID	--MONEDA ORIGINAL

SET @MONEDAORIG=(SELECT CURYORIG FROM SETUP)

if @COSTO='PRO'				--COSTO PROMEDIO
	IF @MONEDAORIG=@TIPOMONEDA	-- COSTO PROMEDIO MONEDA NACIONAL
		SET @CONSULTA =	'SELECT VI.*, avgcostpen as costo,ROUND(avgcostpen*stockphisical,2) as stotal' + 
				' FROM vw_valorinventariofisico VI  where siteid in ('+@site +') '
	ELSE		-- COSTO PROMEDIO MONEDA ENTRANJERA
		SET @CONSULTA =	'SELECT VI.*, avgcostUSD as costo,ROUND(avgcostUSD*stockphisical,2) as stotal' + 
				' FROM vw_valorinventariofisico VI  where siteid in ('+@site +') '

ELSE					-- COSTO REPOSICION
	IF @MONEDAORIG=@TIPOMONEDA	-- COSTO REPOSICION MONEDA NACIONAL
		SET @CONSULTA =	'SELECT VI.*, STDcostpen as costo,ROUND(STDcostpen*stockphisical,2) as stotal' + 
				' FROM vw_valorinventariofisico VI where siteid in ('+@site +') '
	ELSE		-- COSTO REPOSICION MONEDA EXTRANEJRA
		SET @CONSULTA =	'SELECT VI.*, STDcostUSD as costo,ROUND(STDcostUSD*stockphisical,2) as stotal' + 
				' FROM vw_valorinventariofisico VI where siteid in ('+@site +') '	

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

	if @TCONDICION="SCA"	--POR SUB CATEGORIA
		IF @TODAS=1
		BEGIN
			SET @CONSULTA =@CONSULTA +' order by siteid,classid,classubid,narticulo'				
		END	
	ELSE
		BEGIN
			SET @CONSULTA =@CONSULTA +' AND CLASSUBID IN (' +@CONDICION+')'+
						  ' order by siteid,classid,classubid,narticulo'				
		END	
EXEC (@CONSULTA)		
go

EXEC valorinventariofisico_proc 'PEN',"'CENTR'",'CAT',1,'','PRO'