declare @Identificador as Integer
declare @FechaIni as DateTime
declare @FechaFin as DateTime
declare @TipoFecha as Integer
declare @ClienteIni as Integer
declare @ClienteFin as Integer
declare @Grupo as varchar(50)
declare @EstacionIni as Integer
declare @EstacionFin as Integer
declare @FacturaIni as Integer
declare @FacturaFin as Integer
declare @FechaCorte as DateTime
declare @Venc0 as Integer
declare @Venc1 as Integer
declare @Venc2 as Integer
declare @Venc3 as Integer
declare @Venc4 as Integer
declare @Seleccion as Integer
declare @Orden as Integer
declare @Status as Integer
declare @ImporteLitros as Integer
declare @TarjetaIni as Integer
declare @TarjetaFin as Integer
declare @TipoMov as varchar(500)
declare @FormaCompraID as Integer
declare @DiaFacturarID as Integer
declare @AgenteIni as Integer
declare @AgenteFin as Integer
declare @Ejercicio as Integer
declare @PeriodoIni as Integer
declare @PeriodoFin as Integer
declare @Movimientos as Varchar(10)
declare @ProcesaTabla as Integer
declare @Serie as Varchar(5)
declare @TurnoIni as Integer
declare @TurnoFin as Integer

select @ProcesaTabla = :ProcesaTabla
Select @Identificador = :Identificador
Select @FechaIni = :FechaIni
Select @FechaFin = :FechaFin
Select @TipoFecha = :TipoFecha
Select @ClienteIni = :ClienteIni
Select @ClienteFin = :ClienteFin
Select @Grupo = :Grupo
Select @EstacionIni = :EstacionIni
Select @EstacionFin = :EstacionFin
Select @FacturaIni = :FacturaIni
Select @FacturaFin = :FacturaFin
Select @FechaCorte = :FechaCorte
Select @Venc0 = :Venc0
Select @Venc1 = :Venc1
Select @Venc2 = :Venc2
Select @Venc3 = :Venc3
Select @Venc4 = :Venc4
Select @Seleccion = :Seleccion
Select @Orden = :Orden
Select @Status = :Status
Select @ImporteLitros = :ImporteLitros
Select @TarjetaIni = :TarjetaIni
Select @TarjetaFin = :TarjetaFin
Select @TipoMov = :TipoMov
Select @FormaCompraID = :FormaCompraID
Select @DiaFacturarID = :DiaFacturarID
Select @AgenteIni = :AgenteIni
Select @AgenteFin = :AgenteFin
Select @Ejercicio = :Ejercicio
Select @PeriodoIni = :PeriodoIni
Select @PeriodoFin = :PeriodoFin
Select @Movimientos = :Movimientos
select @Serie = :Serie
Select @TurnoIni = :TurnoIni
Select @TurnoIni = :TurnoFin


IF (@ProcesaTabla = 1)
BEGIN

        DECLARE @SENTENCIA AS NVARCHAR(4000)

        Create Table #CONSUMOS (CLIENTE VARCHAR(8),
                                FECHACARGA DATETIME,
                                FECHACONTABLE DATETIME,
                                ESTACION VARCHAR(6),
                                NOMBRECLIENTE VARCHAR(70),
		RAZONSOCIAL VARCHAR(70),
                                PRECIO FLOAT,
                                IMPORTE FLOAT,
                                LITROS FLOAT,
                                DOMICILIO VARCHAR(80),
                                TELEFONO VARCHAR(80),
                                COLONIA VARCHAR(45),
                                CODIGOPOSTAL VARCHAR(10),
                                CIUDAD VARCHAR(45),
                                KMS FLOAT,
                                TARJETA VARCHAR(20),
                                TURNO INT,
                                BOMBA INT,
                                GASOLINERO VARCHAR(100),
                                IDENTIFICADORID INT,
                                EJERCICIO INT,
                                PERIODO INT,
                                DIA INT,
                                PRODUCTOID INT,
                                PRODUCTO VARCHAR(80),
                                VEHICULO VARCHAR(8),
                                NOMBREUSUARIO VARCHAR(80),
                                DEPARTAMENTO VARCHAR(80),
                                IVA MONEY,
                                SUBTOTAL MONEY,
                                GRUPO VARCHAR(50),
                                CENTRODECOSTOS VARCHAR(100),
                                NOECONOMICO VARCHAR(80),
                                CUENTATARJETA VARCHAR(85),
                                CUENTACLIENTE VARCHAR(85),
                                RFC VARCHAR(85),
                                SECUENCIA INT,
                                FACTURA INT,
		FORMACOMPRA INT)

	SELECT @SENTENCIA = 'INSERT INTO #CONSUMOS (CLIENTE, FECHACARGA, FECHACONTABLE, ESTACION, NOMBRECLIENTE, RAZONSOCIAL, 
PRECIO, IMPORTE, LITROS, DOMICILIO, TELEFONO,
		       COLONIA, CODIGOPOSTAL, CIUDAD, KMS, TARJETA, TURNO, BOMBA, GASOLINERO, IDENTIFICADORID, PRODUCTOID, 
PRODUCTO, VEHICULO,
		       NOMBREUSUARIO, DEPARTAMENTO, IVA, SUBTOTAL, GRUPO, CENTRODECOSTOS, NOECONOMICO, EJERCICIO, PERIODO, DIA,
		       CUENTATARJETA, CUENTACLIENTE, RFC, SECUENCIA, FACTURA,FORMACOMPRA)


SELECT     A.ClienteID, A.FechaCarga, A.FechaMovimiento, A.EstacionID, A.Nombre, A.RazonSocial, A.Precio, A.Importe, A.Cantidad, 
A.Domicilio, A.Telefono, A.Colonia, 
                      A.CodigoPostal, A.Ciudad, A.Kilometraje, A.Tarjeta, A.Turno, A.PosicionCarga, A.Gasolinero, A.GasolineroID, 
A.ProductoID, A.Descripcion, A.VehiculoID, 
                      ISNULL(Vehiculo.Nombre, ''CUPON'') AS NombreUsuario, Vehiculo.Departamento, A.IVA, A.Subtotal, A.Grupo, 
Vehiculo.CentroCostos, 
                      Vehiculo.NumeroEconomico, A.Ejercicio, A.Periodo, A.Dia, Vehiculo.CuentaContable, A.CuentaCliente, A.RFC, 
A.SecuenciaVenta, A.FacturaID, 
                      A.FormaCompraID
FROM         (SELECT     Consumo.ClienteID, Consumo.FechaCarga, Consumo.FechaMovimiento, Consumo.EstacionID, Cliente.Nombre, 
Consumo.Precio, 
                                              Consumo.Importe, Consumo.Cantidad, Cliente.Domicilio, Cliente.Telefono, 
Cliente.Colonia, Cliente.CodigoPostal, Cliente.Ciudad, 
                                              Consumo.Kilometraje, Consumo.Tarjeta, Consumo.Turno, Consumo.PosicionCarga, 
Gasolinero.Nombre AS Gasolinero, 
                                              Gasolinero.GasolineroID, Producto.ProductoID, Producto.Descripcion, 
Consumo.VehiculoID, 
                                              CAST(Consumo.Importe - Consumo.Importe / (1 + Estacion.IVA / 100) AS money) AS 
IVA, 
                                              CAST(Consumo.Importe - CAST(Consumo.Importe - Consumo.Importe / (1 + Estacion.IVA 
/ 100) AS money) AS money) AS Subtotal, 
                                              Cliente.Grupo, Consumo.Ejercicio, Consumo.Periodo, Consumo.Dia, 
Cliente.CuentaContable AS CuentaCliente, Cliente.RFC, Cliente.RazonSocial,  
                                              Consumo.SecuenciaVenta, Consumo.FacturaID, Cliente.FormaCompraID
                       FROM          Consumo inner JOIN
                                              Cliente ON Consumo.ClienteID = Cliente.ClienteID AND Consumo.GasolineroID = 
Cliente.GasolineroID inner JOIN
                                              Gasolinero ON Consumo.GasolineroID = Gasolinero.GasolineroID inner JOIN
                                              Producto ON Consumo.ProductoID = Producto.ProductoID inner JOIN Estacion on consumo.estacionid = estacion.estacionid) AS A LEFT OUTER JOIN
                      Vehiculo ON A.VehiculoID = Vehiculo.VehiculoID AND A.GasolineroID = Vehiculo.GasolineroID AND A.ClienteID = 
Vehiculo.ClienteID
	 
	 WHERE        (A.ClienteID BETWEEN @ClienteIni AND @ClienteFin) AND (A.VehiculoID 
BETWEEN @TarjetaIni AND @TarjetaFin) AND
                      (A.EstacionID BETWEEN @EstacionIni AND @EstacionFin) '



        IF (@FacturaIni = 0) And (@FacturaFin = 0)
        BEGIN
                IF (@TIPOFECHA = 0)
                        SELECT @SENTENCIA = @SENTENCIA + ' AND (A.FechaCarga BETWEEN @FechaIni AND @FechaFin)'
                ELSE
                        SELECT @SENTENCIA = @SENTENCIA + ' AND (A.FechaMovimiento BETWEEN @FechaIni AND @FechaFin)'
        END

        IF (@GRUPO <> '')
                SELECT @SENTENCIA = @SENTENCIA + ' AND (A.GRUPO = @GRUPO) '
        IF (@FORMACOMPRAID > 0)
                SELECT @SENTENCIA = @SENTENCIA + ' AND (A.FORMACOMPRAID = @FORMACOMPRAID) '
        IF (@DIAFACTURARID > 0)
                SELECT @SENTENCIA = @SENTENCIA + ' AND (A.GRUPOFACTURARID = @DIAFACTURARID) '

	EXECUTE SP_EXECUTESQL @SENTENCIA, N'@IDENTIFICADOR as INTEGER, @CLIENTEINI INT, @CLIENTEFIN INT, @TARJETAINI INT, 
@TARJETAFIN  INT,@ESTACIONINI INT,
					    @ESTACIONFIN INT, @FECHAINI DATETIME, @FECHAFIN DATETIME, @GRUPO VARCHAR(20), 
@FORMACOMPRAID INT, @DIAFACTURAR INT, @FACTURAINI INT, @FACTURAFIN INT',
					    @IDENTIFICADOR, @CLIENTEINI, @CLIENTEFIN, @TARJETAINI, @TARJETAFIN,
					    @ESTACIONINI, @ESTACIONFIN, @FECHAINI, @FECHAFIN, @GRUPO, @FORMACOMPRAID, 
@DIAFACTURARID, @FACtURAINI, @FACTURAFIN
END
