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

CREATE  PROCEDURE [dbo].[CP_Ventas_por_Familia]
	@pFecha_Desde			DATETIME,
	@pFecha_Hasta			DATETIME,
	@pFamilia               Int,
	@pSucursal              Int,
	@pProveedor             Int,
	@pVendedor              Varchar(20)
AS
SET NOCOUNT ON

/*Declaracion Variables Locales*/

DECLARE @Mensaje			VARCHAR(100)
		,@UltError			INT
		,@Id_Trans			INT
		,@Id_Cliente		INT
		,@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
		,@Venta_Total       DECIMAL(16,2)

					
BEGIN 

IF @pVendedor = '_'
   BEGIN  
     IF @pProveedor = 0
        BEGIN
			IF @pSucursal = 0
			   BEGIN
				   set @Venta_Total = 	(select sum((isnull(c.imp_Gravado,0)+isnull(c.imp_Gravado2,0)+isnull(c.imp_Gravado3,0)+isnull(c.imp_NoGravado,0)+isnull(c.imp_Exento,0))*isnull(t.compromete_factura,0))
					   from cbtes c, cbtes_tipos t 
					   where c.id_tipo_cbte  = t.id_tipo_cbte
					   And c.Id_Estado_Cbte <> 3
   					   And T.Compromete_Factura in (1,-1)
					   AND C.FECHA >= @pFecha_Desde 
					   AND C.FECHA < dateadd(dd,1,@pFecha_Hasta)
					   AND C.ID_TIPO_CBTE NOT IN ('CFIN','DFIN'))
				END
			  ELSE
				BEGIN
				   set @Venta_Total = 	(select sum((isnull(c.imp_Gravado,0)+isnull(c.imp_Gravado2,0)+isnull(c.imp_Gravado3,0)+isnull(c.imp_NoGravado,0)+isnull(c.imp_Exento,0))*isnull(t.compromete_factura,0))
					   from cbtes c, cbtes_tipos t 
					   where c.id_tipo_cbte  = t.id_tipo_cbte
					   And c.Id_Estado_Cbte <> 3
   					   And T.Compromete_Factura in (1,-1)
					   AND C.FECHA >= @pFecha_Desde 
					   AND C.FECHA < dateadd(dd,1,@pFecha_Hasta)
					   AND T.ID_SUCURSAL = @pSucursal
					   AND C.ID_TIPO_CBTE NOT IN ('CFIN','DFIN'))
				END
	      end
		ELSE
		  BEGIN
		  IF @pSucursal = 0
			   BEGIN
				   set @Venta_Total = 	(select sum(isnull(i.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0))
					   from cbtes c, cbtes_tipos t, cbtes_items i, productos p
					   where c.id_tipo_cbte  = t.id_tipo_cbte
					   and i.id_trans = c.id_trans
					   and i.id_producto = p.id_producto
					   and p.id_proveedor = @pProveedor
					   And c.Id_Estado_Cbte <> 3
   					   And T.Compromete_Factura in (1,-1)
					   AND C.FECHA >= @pFecha_Desde 
					   AND C.FECHA < dateadd(dd,1,@pFecha_Hasta)
					   AND C.ID_TIPO_CBTE NOT IN ('CFIN','DFIN'))
				END
			  ELSE
				BEGIN
				   set @Venta_Total = 	(select sum(isnull(i.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0))
					   from cbtes c, cbtes_tipos t, cbtes_items i, productos p
					   where c.id_tipo_cbte  = t.id_tipo_cbte
					   and i.id_trans = c.id_trans
					   and i.id_producto = p.id_producto
					   and p.id_proveedor = @pProveedor
					   And c.Id_Estado_Cbte <> 3
   					   And T.Compromete_Factura in (1,-1)
					   AND C.FECHA >= @pFecha_Desde 
					   AND C.FECHA < dateadd(dd,1,@pFecha_Hasta)
					   AND T.ID_SUCURSAL = @pSucursal
					   AND C.ID_TIPO_CBTE NOT IN ('CFIN','DFIN'))
				END
	     end
	  END
	ELSE
	  BEGIN
	   IF @pProveedor = 0
		  BEGIN
			IF @pSucursal = 0
			   BEGIN
				   set @Venta_Total = (select sum((isnull(c.imp_Gravado,0)+isnull(c.imp_Gravado2,0)+isnull(c.imp_Gravado3,0)+isnull(c.imp_NoGravado,0)+isnull(c.imp_Exento,0))*isnull(t.compromete_factura,0))
					   from cbtes c, cbtes_tipos t 
					   where c.id_tipo_cbte  = t.id_tipo_cbte
					   And c.Id_Estado_Cbte <> 3
   					   And T.Compromete_Factura in (1,-1)
					   AND C.ID_VENDEDOR = @pVendedor
					   AND C.FECHA >= @pFecha_Desde 
					   AND C.FECHA < dateadd(dd,1,@pFecha_Hasta)
					   AND C.ID_TIPO_CBTE NOT IN ('CFIN','DFIN'))
				END
			  ELSE
				BEGIN
				   set @Venta_Total = 	(select sum((isnull(c.imp_Gravado,0)+isnull(c.imp_Gravado2,0)+isnull(c.imp_Gravado3,0)+isnull(c.imp_NoGravado,0)+isnull(c.imp_Exento,0))*isnull(t.compromete_factura,0))
					   from cbtes c, cbtes_tipos t 
					   where c.id_tipo_cbte  = t.id_tipo_cbte
					   And c.Id_Estado_Cbte <> 3
   					   And T.Compromete_Factura in (1,-1)
					   AND C.ID_VENDEDOR = @pVendedor
					   AND C.FECHA >= @pFecha_Desde 
					   AND C.FECHA < dateadd(dd,1,@pFecha_Hasta)
					   AND T.ID_SUCURSAL = @pSucursal
					   AND C.ID_TIPO_CBTE NOT IN ('CFIN','DFIN'))
				END
		  END
		ELSE
		  BEGIN
			IF @pSucursal = 0
			   BEGIN
				   set @Venta_Total = 	(select sum(isnull(i.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0))
					   from cbtes c, cbtes_tipos t, cbtes_items i, productos p
					   where c.id_tipo_cbte  = t.id_tipo_cbte
					   and i.id_trans = c.id_trans
					   and i.id_producto = p.id_producto
					   and p.id_proveedor = @pProveedor
					   AND C.ID_VENDEDOR = @pVendedor
					   And c.Id_Estado_Cbte <> 3
   					   And T.Compromete_Factura in (1,-1)
					   AND C.FECHA >= @pFecha_Desde 
					   AND C.FECHA < dateadd(dd,1,@pFecha_Hasta)
					   AND C.ID_TIPO_CBTE NOT IN ('CFIN','DFIN'))
				END
			  ELSE
				BEGIN
				   set @Venta_Total = 	(select sum(isnull(i.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0))
					   from cbtes c, cbtes_tipos t, cbtes_items i, productos p
					   where c.id_tipo_cbte  = t.id_tipo_cbte
					   and i.id_trans = c.id_trans
					   and i.id_producto = p.id_producto
					   and p.id_proveedor = @pProveedor
					   AND C.ID_VENDEDOR = @pVendedor
					   And c.Id_Estado_Cbte <> 3
   					   And T.Compromete_Factura in (1,-1)
					   AND C.FECHA >= @pFecha_Desde 
					   AND C.FECHA < dateadd(dd,1,@pFecha_Hasta)
					   AND T.ID_SUCURSAL = @pSucursal
					   AND C.ID_TIPO_CBTE NOT IN ('CFIN','DFIN'))
				END
		  END	

  END

		--------------
  IF @pVendedor = '_'
		BEGIN
		  IF @pProveedor = 0
			 BEGIN
					IF @pSucursal = 0
					   BEGIN
						   IF @pFamilia = 0
							  BEGIN
								select P.Id_Familia as Familia,F.Descripcion as Descripcion ,cast(Sum(I.Cantidad*T.Compromete_Factura) as Int) As Cantidad
									,sum(isnull(i.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0)) as Importe
									,(sum(isnull(i.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0)) / @Venta_Total) * 100 as Porcentaje
									,sum(I.Costo * V.Cotizacion * I.cantidad * isnull(t.compromete_factura,0)) as Costo
						         	,sum(isnull(i.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0)) - sum(I.Costo* V.Cotizacion* I.cantidad * isnull(t.compromete_factura,0)) as Renta
									,sum(isnull(i.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0)) / isnull(sum(CASE ISNULL(I.Costo* V.Cotizacion,0) when 0 THEN 1 ELSE  I.Costo* V.Cotizacion END * I.cantidad * isnull(t.compromete_factura,0)),1) as Markup
									 from cbtes c, cbtes_tipos t, Cbtes_Items I, Productos P, Prod_Familias F,Valores_Monedas V
									   where c.id_tipo_cbte  = t.id_tipo_cbte
									   and P.Id_Moneda_C = V.Id_Moneda
									   and P.id_familia = F.Id_Familia
									   and I.id_Trans = C.Id_Trans
									   And c.Id_Estado_Cbte <> 3
									   AND P.Id_Producto = I.Id_Producto
   									   And T.Compromete_Factura in (1,-1)
									   AND C.FECHA >= @pFecha_Desde 
									   AND C.FECHA < dateadd(dd,1,@pFecha_Hasta)
									   AND C.ID_TIPO_CBTE NOT IN ('CFIN','DFIN')
									   group by P.Id_Familia,F.Descripcion having Sum(I.Cantidad*T.Compromete_Factura) <> 0
									   order by Porcentaje Desc
							   END
							ELSE 
							   BEGIN
								select P.Id_Familia as Familia,F.Descripcion as Descripcion ,cast(Sum(I.Cantidad*T.Compromete_Factura) AS INT) As Cantidad
									,sum(isnull(i.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0)) as Importe
									,(sum(isnull(i.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0)) / @Venta_Total) * 100 as Porcentaje
									,sum(I.Costo* V.Cotizacion * I.cantidad * isnull(t.compromete_factura,0)) as Costo
						         	,sum(isnull(i.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0)) - sum(I.Costo* V.Cotizacion * I.cantidad * isnull(t.compromete_factura,0)) as Renta
									,sum(isnull(i.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0)) / isnull(sum(CASE ISNULL(I.Costo* V.Cotizacion,0) when 0 THEN 1 ELSE  I.Costo* V.Cotizacion END * I.cantidad * isnull(t.compromete_factura,0)),1) as Markup
									 from cbtes c, cbtes_tipos t, Cbtes_Items I, Productos P, Prod_Familias F,Valores_Monedas V
									   where c.id_tipo_cbte  = t.id_tipo_cbte
									   and I.id_Trans = C.Id_Trans
		   							   And P.id_familia = F.Id_Familia
									   And P.Id_Moneda_C = V.Id_Moneda
									   And c.Id_Estado_Cbte <> 3
									   AND P.Id_Producto = I.Id_Producto
   									   And T.Compromete_Factura in (1,-1)
									   AND C.FECHA >= @pFecha_Desde 
									   AND C.FECHA < dateadd(dd,1,@pFecha_Hasta)
									   AND P.ID_FAMILIA = @pFamilia
									   AND C.ID_TIPO_CBTE NOT IN ('CFIN','DFIN')
									   group by P.Id_Familia,F.Descripcion having Sum(I.Cantidad*T.Compromete_Factura) <> 0
									   order by Porcentaje Desc
							   END
							END
						ELSE
						   IF @pFamilia = 0
							  BEGIN
								select P.Id_Familia as Familia,F.Descripcion as Descripcion ,CAST(Sum(I.Cantidad*T.Compromete_Factura) AS INT) As Cantidad
									,sum(isnull(i.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0)) as Importe
									,(sum(isnull(i.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0)) / @Venta_Total) * 100 as Porcentaje
									,sum(I.Costo* V.Cotizacion * I.cantidad * isnull(t.compromete_factura,0)) as Costo
						         	,sum(isnull(i.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0)) - sum(I.Costo* V.Cotizacion * I.cantidad * isnull(t.compromete_factura,0)) as Renta
									,sum(isnull(i.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0)) / isnull(sum(CASE ISNULL(I.Costo* V.Cotizacion,0) when 0 THEN 1 ELSE  I.Costo* V.Cotizacion END * I.cantidad * isnull(t.compromete_factura,0)),1) as Markup
									 from cbtes c, cbtes_tipos t, Cbtes_Items I, Productos P, Prod_Familias F,Valores_Monedas V
									   where c.id_tipo_cbte  = t.id_tipo_cbte
									   and I.id_Trans = C.Id_Trans
									   and P.id_familia = F.Id_Familia
									   And P.Id_Moneda_C = V.Id_Moneda
									   And c.Id_Estado_Cbte <> 3
									   AND P.Id_Producto = I.Id_Producto
									   AND T.ID_SUCURSAL = @pSucursal
   									   And T.Compromete_Factura in (1,-1)
									   AND C.FECHA >= @pFecha_Desde 
									   AND C.FECHA < dateadd(dd,1,@pFecha_Hasta)
									   AND C.ID_TIPO_CBTE NOT IN ('CFIN','DFIN')
									   group by P.Id_Familia,F.Descripcion having Sum(I.Cantidad*T.Compromete_Factura) <> 0
									   order by Porcentaje Desc
							   END
							ELSE 
							   BEGIN
								select P.Id_Familia as Familia,F.Descripcion as Descripcion ,Sum(I.Cantidad*T.Compromete_Factura) As Cantidad
									,sum(isnull(i.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0)) as Importe
									,(sum(isnull(i.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0)) / @Venta_Total) * 100 as Porcentaje
									,sum(I.Costo* V.Cotizacion * I.cantidad * isnull(t.compromete_factura,0)) as Costo
						         	,sum(isnull(i.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0)) - sum(I.Costo* V.Cotizacion * I.cantidad * isnull(t.compromete_factura,0)) as Renta
									,sum(isnull(i.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0)) / isnull(sum(CASE ISNULL(I.Costo* V.Cotizacion,0) when 0 THEN 1 ELSE  I.Costo* V.Cotizacion END * I.cantidad * isnull(t.compromete_factura,0)),1) as Markup
									 from cbtes c, cbtes_tipos t, Cbtes_Items I, Productos P, Prod_Familias F,Valores_Monedas V
									   where c.id_tipo_cbte  = t.id_tipo_cbte
									   and P.id_familia = F.Id_Familia
									   and I.id_Trans = C.Id_Trans
									   And c.Id_Estado_Cbte <> 3
									   AND P.Id_Producto = I.Id_Producto
									   And P.Id_Moneda_C = V.Id_Moneda
   									   And T.Compromete_Factura in (1,-1)
									   AND C.FECHA >= @pFecha_Desde 
									   AND C.FECHA < dateadd(dd,1,@pFecha_Hasta)
									   AND T.ID_SUCURSAL = @pSucursal
									   AND P.ID_FAMILIA = @pFamilia
									   AND C.ID_TIPO_CBTE NOT IN ('CFIN','DFIN')
									   group by P.Id_Familia,F.Descripcion having Sum(I.Cantidad*T.Compromete_Factura) <> 0
									   order by Porcentaje Desc
							   END
				   END
				ELSE
				   BEGIN
					IF @pSucursal = 0
					   BEGIN
						   IF @pFamilia = 0
							  BEGIN
								select P.Id_Familia as Familia,F.Descripcion as Descripcion ,cast(Sum(I.Cantidad*T.Compromete_Factura) as Int) As Cantidad
									,sum(isnull(i.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0)) as Importe
									,(sum(isnull(i.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0)) / @Venta_Total) * 100 as Porcentaje
									,sum(I.Costo* V.Cotizacion * I.cantidad * isnull(t.compromete_factura,0)) as Costo
						         	,sum(isnull(i.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0)) - sum(I.Costo* V.Cotizacion * I.cantidad * isnull(t.compromete_factura,0)) as Renta
									,sum(isnull(i.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0)) / isnull(sum(CASE ISNULL(I.Costo* V.Cotizacion,0) when 0 THEN 1 ELSE  I.Costo* V.Cotizacion END * I.cantidad * isnull(t.compromete_factura,0)),1) as Markup
									 from cbtes c, cbtes_tipos t, Cbtes_Items I, Productos P, Prod_Familias F,Valores_Monedas V
									   where c.id_tipo_cbte  = t.id_tipo_cbte
									   and P.id_familia = F.Id_Familia
									   and p.id_proveedor = @pProveedor
									   and I.id_Trans = C.Id_Trans
									   And c.Id_Estado_Cbte <> 3
									   AND P.Id_Producto = I.Id_Producto
									   And P.Id_Moneda_C = V.Id_Moneda
   									   And T.Compromete_Factura in (1,-1)
									   AND C.FECHA >= @pFecha_Desde 
									   AND C.FECHA < dateadd(dd,1,@pFecha_Hasta)
									   AND C.ID_TIPO_CBTE NOT IN ('CFIN','DFIN')
									   group by P.Id_Familia,F.Descripcion having Sum(I.Cantidad*T.Compromete_Factura) <> 0
									   order by Porcentaje Desc
							   END
							ELSE 
							   BEGIN
								select P.Id_Familia as Familia,F.Descripcion as Descripcion ,cast(Sum(I.Cantidad*T.Compromete_Factura) AS INT) As Cantidad
									,sum(isnull(i.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0)) as Importe
									,(sum(isnull(i.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0)) / @Venta_Total) * 100 as Porcentaje
									,sum(I.Costo* V.Cotizacion * I.cantidad * isnull(t.compromete_factura,0)) as Costo
						         	,sum(isnull(i.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0)) - sum(I.Costo* V.Cotizacion * I.cantidad * isnull(t.compromete_factura,0)) as Renta
									,sum(isnull(i.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0)) / isnull(sum(CASE ISNULL(I.Costo* V.Cotizacion,0) when 0 THEN 1 ELSE  I.Costo* V.Cotizacion END * I.cantidad * isnull(t.compromete_factura,0)),1) as Markup
									 from cbtes c, cbtes_tipos t, Cbtes_Items I, Productos P, Prod_Familias F,Valores_Monedas V
									   where c.id_tipo_cbte  = t.id_tipo_cbte
									   and I.id_Trans = C.Id_Trans
		   							   And P.id_familia = F.Id_Familia
									   And P.Id_Moneda_C = V.Id_Moneda
									   And c.Id_Estado_Cbte <> 3
									   AND P.Id_Producto = I.Id_Producto
   									   And T.Compromete_Factura in (1,-1)
									   AND C.FECHA >= @pFecha_Desde 
									   AND C.FECHA < dateadd(dd,1,@pFecha_Hasta)
									   AND P.ID_FAMILIA = @pFamilia
									   and p.id_proveedor = @pProveedor
									   AND C.ID_TIPO_CBTE NOT IN ('CFIN','DFIN')
									   group by P.Id_Familia,F.Descripcion having Sum(I.Cantidad*T.Compromete_Factura) <> 0
									   order by Porcentaje Desc
							   END
							END
						ELSE
						   IF @pFamilia = 0
							  BEGIN
								select P.Id_Familia as Familia,F.Descripcion as Descripcion ,CAST(Sum(I.Cantidad*T.Compromete_Factura) AS INT) As Cantidad
									,sum(isnull(i.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0)) as Importe
									,(sum(isnull(i.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0)) / @Venta_Total) * 100 as Porcentaje
									,sum(I.Costo* V.Cotizacion * I.cantidad * isnull(t.compromete_factura,0)) as Costo
						         	,sum(isnull(i.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0)) - sum(I.Costo* V.Cotizacion * I.cantidad * isnull(t.compromete_factura,0)) as Renta
									,sum(isnull(i.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0)) / isnull(sum(CASE ISNULL(I.Costo* V.Cotizacion,0) when 0 THEN 1 ELSE  I.Costo* V.Cotizacion END * I.cantidad * isnull(t.compromete_factura,0)),1) as Markup
									 from cbtes c, cbtes_tipos t, Cbtes_Items I, Productos P, Prod_Familias F,Valores_Monedas V
									   where c.id_tipo_cbte  = t.id_tipo_cbte
									   and I.id_Trans = C.Id_Trans
									   and P.id_familia = F.Id_Familia
									   And P.Id_Moneda_C = V.Id_Moneda
									   And c.Id_Estado_Cbte <> 3
									   AND P.Id_Producto = I.Id_Producto
									   AND T.ID_SUCURSAL = @pSucursal
									   and p.id_proveedor = @pProveedor
   									   And T.Compromete_Factura in (1,-1)
									   AND C.FECHA >= @pFecha_Desde 
									   AND C.FECHA < dateadd(dd,1,@pFecha_Hasta)
									   AND C.ID_TIPO_CBTE NOT IN ('CFIN','DFIN')
									   group by P.Id_Familia,F.Descripcion having Sum(I.Cantidad*T.Compromete_Factura) <> 0
									   order by Porcentaje Desc
							   END
							ELSE 
							   BEGIN
								select P.Id_Familia as Familia,F.Descripcion as Descripcion ,Sum(I.Cantidad*T.Compromete_Factura) As Cantidad
									,sum(isnull(i.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0)) as Importe
									,(sum(isnull(i.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0)) / @Venta_Total) * 100 as Porcentaje
									,sum(I.Costo* V.Cotizacion * I.cantidad * isnull(t.compromete_factura,0)) as Costo
						         	,sum(isnull(i.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0)) - sum(I.Costo* V.Cotizacion * I.cantidad * isnull(t.compromete_factura,0)) as Renta
									,sum(isnull(i.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0)) / isnull(sum(CASE ISNULL(I.Costo* V.Cotizacion,0) when 0 THEN 1 ELSE  I.Costo* V.Cotizacion END * I.cantidad * isnull(t.compromete_factura,0)),1) as Markup
									 from cbtes c, cbtes_tipos t, Cbtes_Items I, Productos P, Prod_Familias F,Valores_Monedas V
									   where c.id_tipo_cbte  = t.id_tipo_cbte
									   and P.id_familia = F.Id_Familia
									   And P.Id_Moneda_C = V.Id_Moneda
									   and I.id_Trans = C.Id_Trans
									   And c.Id_Estado_Cbte <> 3
									   AND P.Id_Producto = I.Id_Producto
   									   And T.Compromete_Factura in (1,-1)
									   AND C.FECHA >= @pFecha_Desde 
									   AND C.FECHA < dateadd(dd,1,@pFecha_Hasta)
									   AND T.ID_SUCURSAL = @pSucursal
									   and p.id_proveedor = @pProveedor
									   AND P.ID_FAMILIA = @pFamilia
									   AND C.ID_TIPO_CBTE NOT IN ('CFIN','DFIN')
									   group by P.Id_Familia,F.Descripcion having Sum(I.Cantidad*T.Compromete_Factura) <> 0
									   order by Porcentaje Desc
							   END

		  		   END
          END
        ELSE ------IF @pVendedor <> '-'
		  BEGIN
		  IF @pProveedor = 0
			 BEGIN
					IF @pSucursal = 0
					   BEGIN
						   IF @pFamilia = 0
							  BEGIN
								select P.Id_Familia as Familia,F.Descripcion as Descripcion ,cast(Sum(I.Cantidad*T.Compromete_Factura) as Int) As Cantidad
									,sum(isnull(i.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0)) as Importe
									,(sum(isnull(i.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0)) / @Venta_Total) * 100 as Porcentaje
									,sum(I.Costo* V.Cotizacion * I.cantidad * isnull(t.compromete_factura,0)) as Costo
						         	,sum(isnull(i.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0)) - sum(I.Costo* V.Cotizacion * I.cantidad * isnull(t.compromete_factura,0)) as Renta
									,sum(isnull(i.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0)) / isnull(sum(CASE ISNULL(I.Costo* V.Cotizacion,0) when 0 THEN 1 ELSE  I.Costo* V.Cotizacion END * I.cantidad * isnull(t.compromete_factura,0)),1) as Markup
									 from cbtes c, cbtes_tipos t, Cbtes_Items I, Productos P, Prod_Familias F,Valores_Monedas V
									   where c.id_tipo_cbte  = t.id_tipo_cbte
									   and P.id_familia = F.Id_Familia
									   And P.Id_Moneda_C = V.Id_Moneda
									   and I.id_Trans = C.Id_Trans
									   AND C.ID_VENDEDOR = @pVendedor
									   And c.Id_Estado_Cbte <> 3
									   AND P.Id_Producto = I.Id_Producto
   									   And T.Compromete_Factura in (1,-1)
									   AND C.FECHA >= @pFecha_Desde 
									   AND C.FECHA < dateadd(dd,1,@pFecha_Hasta)
									   AND C.ID_TIPO_CBTE NOT IN ('CFIN','DFIN')
									   group by P.Id_Familia,F.Descripcion having Sum(I.Cantidad*T.Compromete_Factura) <> 0
									   order by Porcentaje Desc
							   END
							ELSE 
							   BEGIN
								select P.Id_Familia as Familia,F.Descripcion as Descripcion ,cast(Sum(I.Cantidad*T.Compromete_Factura) AS INT) As Cantidad
									,sum(isnull(i.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0)) as Importe
									,(sum(isnull(i.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0)) / @Venta_Total) * 100 as Porcentaje
									,sum(I.Costo* V.Cotizacion * I.cantidad * isnull(t.compromete_factura,0)) as Costo
						         	,sum(isnull(i.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0)) - sum(I.Costo* V.Cotizacion * I.cantidad * isnull(t.compromete_factura,0)) as Renta
									,sum(isnull(i.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0)) / isnull(sum(CASE ISNULL(I.Costo* V.Cotizacion,0) when 0 THEN 1 ELSE  I.Costo* V.Cotizacion END * I.cantidad * isnull(t.compromete_factura,0)),1) as Markup
									 from cbtes c, cbtes_tipos t, Cbtes_Items I, Productos P, Prod_Familias F,Valores_Monedas V
									   where c.id_tipo_cbte  = t.id_tipo_cbte
									   and I.id_Trans = C.Id_Trans
		   							   And P.id_familia = F.Id_Familia
									   And P.Id_Moneda_C = V.Id_Moneda
									   AND C.ID_VENDEDOR = @pVendedor
									   And c.Id_Estado_Cbte <> 3
									   AND P.Id_Producto = I.Id_Producto
   									   And T.Compromete_Factura in (1,-1)
									   AND C.FECHA >= @pFecha_Desde 
									   AND C.FECHA < dateadd(dd,1,@pFecha_Hasta)
									   AND P.ID_FAMILIA = @pFamilia
									   AND C.ID_TIPO_CBTE NOT IN ('CFIN','DFIN')
									   group by P.Id_Familia,F.Descripcion having Sum(I.Cantidad*T.Compromete_Factura) <> 0
									   order by Porcentaje Desc
							   END
							END
						ELSE
						   IF @pFamilia = 0
							  BEGIN
								select P.Id_Familia as Familia,F.Descripcion as Descripcion ,CAST(Sum(I.Cantidad*T.Compromete_Factura) AS INT) As Cantidad
									,sum(isnull(i.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0)) as Importe
									,(sum(isnull(i.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0)) / @Venta_Total) * 100 as Porcentaje
									,sum(I.Costo* V.Cotizacion * I.cantidad * isnull(t.compromete_factura,0)) as Costo
						         	,sum(isnull(i.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0)) - sum(I.Costo* V.Cotizacion * I.cantidad * isnull(t.compromete_factura,0)) as Renta
									,sum(isnull(i.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0)) / isnull(sum(CASE ISNULL(I.Costo* V.Cotizacion,0) when 0 THEN 1 ELSE  I.Costo* V.Cotizacion END * I.cantidad * isnull(t.compromete_factura,0)),1) as Markup
									 from cbtes c, cbtes_tipos t, Cbtes_Items I, Productos P, Prod_Familias F,Valores_Monedas V
									   where c.id_tipo_cbte  = t.id_tipo_cbte
									   and I.id_Trans = C.Id_Trans
									   and P.id_familia = F.Id_Familia
									   And P.Id_Moneda_C = V.Id_Moneda
									   AND C.ID_VENDEDOR = @pVendedor
									   And c.Id_Estado_Cbte <> 3
									   AND P.Id_Producto = I.Id_Producto
									   AND T.ID_SUCURSAL = @pSucursal
   									   And T.Compromete_Factura in (1,-1)
									   AND C.FECHA >= @pFecha_Desde 
									   AND C.FECHA < dateadd(dd,1,@pFecha_Hasta)
									   AND C.ID_TIPO_CBTE NOT IN ('CFIN','DFIN')
									   group by P.Id_Familia,F.Descripcion having Sum(I.Cantidad*T.Compromete_Factura) <> 0
									   order by Porcentaje Desc
							   END
							ELSE 
							   BEGIN
								select P.Id_Familia as Familia,F.Descripcion as Descripcion ,Sum(I.Cantidad*T.Compromete_Factura) As Cantidad
									,sum(isnull(i.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0)) as Importe
									,(sum(isnull(i.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0)) / @Venta_Total) * 100 as Porcentaje
									,sum(I.Costo* V.Cotizacion * I.cantidad * isnull(t.compromete_factura,0)) as Costo
						         	,sum(isnull(i.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0)) - sum(I.Costo* V.Cotizacion * I.cantidad * isnull(t.compromete_factura,0)) as Renta
									,sum(isnull(i.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0)) / isnull(sum(CASE ISNULL(I.Costo* V.Cotizacion,0) when 0 THEN 1 ELSE  I.Costo* V.Cotizacion END * I.cantidad * isnull(t.compromete_factura,0)),1) as Markup
									 from cbtes c, cbtes_tipos t, Cbtes_Items I, Productos P, Prod_Familias F,Valores_Monedas V
									   where c.id_tipo_cbte  = t.id_tipo_cbte
									   and P.id_familia = F.Id_Familia
									   And P.Id_Moneda_C = V.Id_Moneda
									   and I.id_Trans = C.Id_Trans
									   And c.Id_Estado_Cbte <> 3
									   AND C.ID_VENDEDOR = @pVendedor
									   AND P.Id_Producto = I.Id_Producto
   									   And T.Compromete_Factura in (1,-1)
									   AND C.FECHA >= @pFecha_Desde 
									   AND C.FECHA < dateadd(dd,1,@pFecha_Hasta)
									   AND T.ID_SUCURSAL = @pSucursal
									   AND P.ID_FAMILIA = @pFamilia
									   AND C.ID_TIPO_CBTE NOT IN ('CFIN','DFIN')
									   group by P.Id_Familia,F.Descripcion having Sum(I.Cantidad*T.Compromete_Factura) <> 0
									   order by Porcentaje Desc
							   END
				   END
				ELSE
				   BEGIN
					IF @pSucursal = 0
					   BEGIN
						   IF @pFamilia = 0
							  BEGIN
								select P.Id_Familia as Familia,F.Descripcion as Descripcion ,cast(Sum(I.Cantidad*T.Compromete_Factura) as Int) As Cantidad
									,sum(isnull(i.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0)) as Importe
									,(sum(isnull(i.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0)) / @Venta_Total) * 100 as Porcentaje
									,sum(I.Costo* V.Cotizacion * I.cantidad * isnull(t.compromete_factura,0)) as Costo
						         	,sum(isnull(i.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0)) - sum(I.Costo* V.Cotizacion * I.cantidad * isnull(t.compromete_factura,0)) as Renta
									,sum(isnull(i.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0)) / isnull(sum(CASE ISNULL(I.Costo* V.Cotizacion,0) when 0 THEN 1 ELSE  I.Costo* V.Cotizacion END * I.cantidad * isnull(t.compromete_factura,0)),1) as Markup
									 from cbtes c, cbtes_tipos t, Cbtes_Items I, Productos P, Prod_Familias F,Valores_Monedas V
									   where c.id_tipo_cbte  = t.id_tipo_cbte
									   and P.id_familia = F.Id_Familia
									   And P.Id_Moneda_C = V.Id_Moneda
									   and p.id_proveedor = @pProveedor
									   AND C.ID_VENDEDOR = @pVendedor
									   and I.id_Trans = C.Id_Trans
									   And c.Id_Estado_Cbte <> 3
									   AND P.Id_Producto = I.Id_Producto
   									   And T.Compromete_Factura in (1,-1)
									   AND C.FECHA >= @pFecha_Desde 
									   AND C.FECHA < dateadd(dd,1,@pFecha_Hasta)
									   AND C.ID_TIPO_CBTE NOT IN ('CFIN','DFIN')
									   group by P.Id_Familia,F.Descripcion having Sum(I.Cantidad*T.Compromete_Factura) <> 0
									   order by Porcentaje Desc
							   END
							ELSE 
							   BEGIN
								select P.Id_Familia as Familia,F.Descripcion as Descripcion ,cast(Sum(I.Cantidad*T.Compromete_Factura) AS INT) As Cantidad
									,sum(isnull(i.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0)) as Importe
									,(sum(isnull(i.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0)) / @Venta_Total) * 100 as Porcentaje
									,sum(I.Costo* V.Cotizacion * I.cantidad * isnull(t.compromete_factura,0)) as Costo
						         	,sum(isnull(i.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0)) - sum(I.Costo* V.Cotizacion * I.cantidad * isnull(t.compromete_factura,0)) as Renta
									,sum(isnull(i.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0)) / isnull(sum(CASE ISNULL(I.Costo* V.Cotizacion,0) when 0 THEN 1 ELSE  I.Costo* V.Cotizacion END * I.cantidad * isnull(t.compromete_factura,0)),1) as Markup
									 from cbtes c, cbtes_tipos t, Cbtes_Items I, Productos P, Prod_Familias F,Valores_Monedas V
									   where c.id_tipo_cbte  = t.id_tipo_cbte
									   and I.id_Trans = C.Id_Trans
		   							   And P.id_familia = F.Id_Familia
									   And P.Id_Moneda_C = V.Id_Moneda
									   AND C.ID_VENDEDOR = @pVendedor
									   And c.Id_Estado_Cbte <> 3
									   AND P.Id_Producto = I.Id_Producto
   									   And T.Compromete_Factura in (1,-1)
									   AND C.FECHA >= @pFecha_Desde 
									   AND C.FECHA < dateadd(dd,1,@pFecha_Hasta)
									   AND P.ID_FAMILIA = @pFamilia
									   and p.id_proveedor = @pProveedor
									   AND C.ID_TIPO_CBTE NOT IN ('CFIN','DFIN')
									   group by P.Id_Familia,F.Descripcion having Sum(I.Cantidad*T.Compromete_Factura) <> 0
									   order by Porcentaje Desc
							   END
							END
						ELSE
						   IF @pFamilia = 0
							  BEGIN
								select P.Id_Familia as Familia,F.Descripcion as Descripcion ,CAST(Sum(I.Cantidad*T.Compromete_Factura) AS INT) As Cantidad
									,sum(isnull(i.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0)) as Importe
									,(sum(isnull(i.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0)) / @Venta_Total) * 100 as Porcentaje
									,sum(I.Costo* V.Cotizacion * I.cantidad * isnull(t.compromete_factura,0)) as Costo
						         	,sum(isnull(i.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0)) - sum(I.Costo* V.Cotizacion * I.cantidad * isnull(t.compromete_factura,0)) as Renta
									,sum(isnull(i.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0)) / isnull(sum(CASE ISNULL(I.Costo* V.Cotizacion,0) when 0 THEN 1 ELSE  I.Costo* V.Cotizacion END * I.cantidad * isnull(t.compromete_factura,0)),1) as Markup
									 from cbtes c, cbtes_tipos t, Cbtes_Items I, Productos P, Prod_Familias F,Valores_Monedas V
									   where c.id_tipo_cbte  = t.id_tipo_cbte
									   and I.id_Trans = C.Id_Trans
									   and P.id_familia = F.Id_Familia
									   And P.Id_Moneda_C = V.Id_Moneda
									   And c.Id_Estado_Cbte <> 3
									   AND P.Id_Producto = I.Id_Producto
									   AND C.ID_VENDEDOR = @pVendedor
									   AND T.ID_SUCURSAL = @pSucursal
									   and p.id_proveedor = @pProveedor
   									   And T.Compromete_Factura in (1,-1)
									   AND C.FECHA >= @pFecha_Desde 
									   AND C.FECHA < dateadd(dd,1,@pFecha_Hasta)
									   AND C.ID_TIPO_CBTE NOT IN ('CFIN','DFIN')
									   group by P.Id_Familia,F.Descripcion having Sum(I.Cantidad*T.Compromete_Factura) <> 0
									   order by Porcentaje Desc
							   END
							ELSE 
							   BEGIN
								select P.Id_Familia as Familia,F.Descripcion as Descripcion ,Sum(I.Cantidad*T.Compromete_Factura) As Cantidad
									,sum(isnull(i.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0)) as Importe
									,(sum(isnull(i.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0)) / @Venta_Total) * 100 as Porcentaje
									,sum(I.Costo* V.Cotizacion * I.cantidad * isnull(t.compromete_factura,0)) as Costo
						         	,sum(isnull(i.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0)) - sum(I.Costo* V.Cotizacion * I.cantidad * isnull(t.compromete_factura,0)) as Renta
									,sum(isnull(i.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0)) / isnull(sum(CASE ISNULL(I.Costo* V.Cotizacion,0) when 0 THEN 1 ELSE  I.Costo* V.Cotizacion END * I.cantidad * isnull(t.compromete_factura,0)),1) as Markup
									 from cbtes c, cbtes_tipos t, Cbtes_Items I, Productos P, Prod_Familias F,Valores_Monedas V
									   where c.id_tipo_cbte  = t.id_tipo_cbte
									   and P.id_familia = F.Id_Familia
									   and I.id_Trans = C.Id_Trans
									   And P.Id_Moneda_C = V.Id_Moneda
									   And c.Id_Estado_Cbte <> 3
									   AND P.Id_Producto = I.Id_Producto
									   AND C.ID_VENDEDOR = @pVendedor
   									   And T.Compromete_Factura in (1,-1)
									   AND C.FECHA >= @pFecha_Desde 
									   AND C.FECHA < dateadd(dd,1,@pFecha_Hasta)
									   AND T.ID_SUCURSAL = @pSucursal
									   and p.id_proveedor = @pProveedor
									   AND P.ID_FAMILIA = @pFamilia
									   AND C.ID_TIPO_CBTE NOT IN ('CFIN','DFIN')
									   group by P.Id_Familia,F.Descripcion having Sum(I.Cantidad*T.Compromete_Factura) <> 0
									   order by Porcentaje Desc
							   END

				   END
       END
END


 /* 

 SP_Ventas_por_Familia '20200801','20200831',0,0,'-'
 SP_Ventas_por_Familia '20210101','20210131',0,0,141,'-'
  SP_Ventas_por_Familia '20210101','20210831',0,0,141,'41'



 FIN */
