IF EXISTS ( SELECT * 
            FROM   sysobjects 
            WHERE  id = object_id(N'dbo.[CP_Stk_Valorizado]') 
                   and OBJECTPROPERTY(id, N'IsProcedure') = 1 )
BEGIN
    DROP PROCEDURE dbo.[CP_Stk_Valorizado]
END
GO

CREATE PROCEDURE [dbo].[CP_Stk_Valorizado] @Id_Fam INT, @Con_Stock TINYINT, @id_Prov INT, @Descrip CHAR(100), @pId_Producto  CHAR(14) = ' '

AS
SET NOCOUNT ON

/*Declaracion Variables Locales*/



DECLARE @Mensaje			VARCHAR(100)
		,@UltError			INT
		,@Id_Trans			INT
		,@ID_PRODUCTO		VARCHAR(14)
		,@Importe			DECIMAL(16,2)
		,@Email_Cob			VARCHAR(256)
		,@Id_Trans_Rec		INT
		,@CursorOpen        INT
		,@Flag_Cbte_Tipo	SMALLINT
		,@Periodo           DATE 
		,@Id_sucursal	    SMALLINT
		,@Existe      	    SMALLINT
		,@DepFisico         CHAR(3)
		,@DepLogico         CHAR(3)
		,@Cantidad			DECIMAL(16,0)
		,@STK_10            INT
		,@Fecha             DATETIME


  SELECT ID_PRODUCTO INTO #STOCK FROM PRODUCTOS WHERE 1=0
		
  ALTER Table #STOCK  ADD
				DESCRIPCION	   	VARCHAR(150),
				MONEDA          CHAR(3),
				COSTO   	   	DECIMAL(16,2),
				COSTO_PESIF   	DECIMAL(16,2),
				TOTAL    	   	INT,
				FECHA_COSTO     DATETIME,
				STK_VALORIZADO  DECIMAL(16,2)

-------OJO!!!! Siempre que se agrega o elimina una columna aca, hay que modificar la estructura de la tabla "Producteca_Stock" que usa el Stored: SPJ_Producteca_Generar_Arch_Stock								 						
BEGIN 



   SELECT ID_PROVEEDOR INTO #PROVE FROM PROVEEDORES WHERE Activo = 1
   SELECT ID_FAMILIA INTO #FAMILIAS FROM Prod_Familias 

   IF @Id_Fam <> 0
      DELETE #FAMILIAS WHERE ID_FAMILIA <> @Id_Fam

   IF @id_Prov <> 0
      DELETE #PROVE WHERE ID_PROVEEDOR <> @id_Prov


   IF RTRIM(LTRIM(isnull(@descrip,''))) = '' 
	   BEGIN
		set @descrip = '%%'
	   END
	ELSE
	   BEGIN
		set @descrip = '%'+ltrim(rtrim(@Descrip))+'%' 
	   END   
 
 
    INSERT INTO #STOCK
    SELECT P.ID_PRODUCTO AS ID_PRODUCTO ,P.DESCRIPCION_DETALLADA AS DESCRIPCION ,
	        P.ID_MONEDA_C AS MONEDA,
			P.COSTO AS COSTO,
			P.COSTO * M.COTIZACION AS COSTO_PESIF ,
			0 AS	TOTAL, 
			P.Fecha_Costo AS   FECHA_ULT_COSO,
			0 AS STK_VALORIZADO  
			FROM Productos P, #FAMILIAS F,Valores_Monedas M,#PROVE K
	   WHERE P.Activo = 1
	   AND P.Vendible = 1
	   AND P.Maneja_Stock = 1
	   AND P.ID_FAMILIA = F.ID_FAMILIA
	   AND P.Id_Proveedor = K.Id_Proveedor
	   AND ISNULL(P.Id_Moneda_C,'PES')= M.Id_Moneda
	   AND P.Descripcion_Detallada like rtrim(Ltrim(@descrip))





   SELECT  I.ID_PRODUCTO,sum(i.Cantidad*t.compromete_Stock) AS CANTIDAD
           INTO #Inventario
		   from cbtes c, cbtes_tipos t, cbtes_items i, PRODUCTOS S
		   where c.id_tipo_cbte  = t.id_tipo_cbte
		   and I.Id_Trans = c.Id_Trans
		   And c.id_Estado_Cbte <> 3
		   and I.id_Producto = S.Id_Producto 
		   And t.compromete_Stock in (1,-1)
		   AND I.FLAG_QA = 'A'
		   group by I.ID_PRODUCTO


	
         UPDATE #STOCK SET TOTAL = V.Cantidad, STK_VALORIZADO = V.Cantidad * S.COSTO_PESIF	
         FROM #STOCK S, #Inventario V
         WHERE s.ID_PRODUCTO =  v.ID_PRODUCTO 
  


 

--		/*FIN */

END 

IF @pId_Producto <> '_'
   BEGIN
		SELECT * FROM #STOCK WHERE ID_PRODUCTO = @pId_producto  
   END
 ELSE
   BEGIN
		IF ISNULL(@Con_Stock,0) = 0   
			SELECT * FROM #STOCK  ORDER BY DESCRIPCION
		ELSE
			SELECT * FROM #STOCK WHERE TOTAL > 0   ORDER BY DESCRIPCION
   END 
   
 DROP TABLE #STOCK


 /* 

 exec CP_Stk_valorizado 0,0,0,'','_'


 FIN */
