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

CREATE PROCEDURE dbo.CP_Ventas_por_Prod_Cli_Detalle
	@pFecha_Desde			DATETIME,
	@pFecha_Hasta			DATETIME,
	@pid_producto           VARCHAR(14),
	@id_Sucursal            INT,
	@pid_familia            int,
	@Venta_Total            DECIMAL(12,2)
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 
		,@Existe      	    SMALLINT


					
BEGIN 
    IF @Venta_Total = 0
	   BEGIN
		IF @id_Sucursal = 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_producto = @pid_producto
				   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_producto = @pid_producto
				   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 = @id_Sucursal
				   AND C.ID_TIPO_CBTE NOT IN ('CFIN','DFIN'))
			END
	    END



		IF @id_Sucursal = 0
		   BEGIN

					select C.Id_Cliente as Id_Cliente,C.Destinatario as Razon_Social ,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
						 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 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_producto = @pid_producto
						   AND C.ID_TIPO_CBTE NOT IN ('CFIN','DFIN')
						   group by C.Id_Cliente,C.Destinatario  having sum(isnull(I.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0))  <> 0
						   order by Porcentaje Desc
			END
		  ELSE
			BEGIN
 					select C.Id_Cliente as Id_Cliente,C.Destinatario as Razon_Social,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
						 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 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_producto = @pid_producto
						   AND T.ID_SUCURSAL = @id_Sucursal
						   AND C.ID_TIPO_CBTE NOT IN ('CFIN','DFIN')
						   group by C.Id_Cliente,C.Destinatario  having sum(isnull(I.Imp_Gravado,0)*(1-C.Porc_Bonificacion/100)*isnull(t.compromete_factura,0))  <> 0
						   order by Porcentaje Desc
            END
 
END	


 /* 

 EXEC SP_Ventas_por_Producto_cli '20201001','20201007','192',0,93,0


 SP_Ventas_por_Producto_cli '20200901','20200927',0,0,0,0

SELECT * from Vendedores order by  Descripcion 

	@pFecha_Desde			DATETIME,
	@pFecha_Hasta			DATETIME,
	@pid_vendedor           char(10),
	@id_Sucursal            INT,
	@pid_familia            int,
	@Venta_Total            DECIMAL(12,2)

 FIN */