<?php
	session_start();
	include('conexion.php');
	date_default_timezone_set('America/Mexico_City');
	$time = time();
	$tarjeta = $_GET['tarjeta'];
	$fecha_inicio = $_GET['fecha_inicio'];
	$fecha_fin = $_GET['fecha_fin'];
	$_SESSION['tipo'] = 4;
	$total_general = 0;
	$path = "./REPORTE RENDIMIENTO DE VEHICULOS KMLITROS.txt";
	

	$fini = date_create($fecha_inicio);
	$finiMuestra =  date_format($fini, 'Ymd');	
	$ffin = date_create($fecha_fin);
	$ffinMuestra =  date_format($ffin, 'Ymd');	


	$sql = "SELECT saldo from transacciones where id_cliente =".$_SESSION["id_cliente"]." and id_turno>= '".$finiMuestra."00"."' and id_turno<='" .$ffinMuestra."06"."' order by id_transaccion desc limit 1";
	$resultado = $iden->query($sql); 
								
	if(!$resultado) 
		die("Error: no se pudo realizar la consulta saldo");
	$_SESSION['saldo_muestra'] = 0;
	while($fila = $resultado->fetch_assoc()) 
	{
		
		$_SESSION['saldo_muestra'] = $fila['saldo'];
	}
	$resultado->free();
	$_SESSION['saldo_muestra'] = number_format($_SESSION['saldo_muestra'], 2, '.', ',');

	$file = fopen($path, "w+");
	fwrite($file, "REPORTE RENDIMIENTO DE VEHICULOS KM/LITROS" ."\t\t\t\t".'Fecha:' ."\t". date("Y/m/d  H:i:s", $time) . PHP_EOL);
	fwrite($file, "". PHP_EOL);
	fwrite($file, "Cliente "."\t".$_SESSION["id_cliente"]. PHP_EOL);	
	fwrite($file, "Razon Social "."\t".$_SESSION['razon_social']. PHP_EOL);	
	fwrite($file, "Saldo "."\t".$_SESSION['saldo_muestra']. PHP_EOL);	
	fwrite($file, "Fecha Inicio "."\t".$fecha_inicio. PHP_EOL);	
	fwrite($file, "Fecha Fin "."\t".$fecha_fin. PHP_EOL);
	fwrite($file, "". PHP_EOL);
	
	$vehiculo = 0;
	$cliente_v = 0;
	$cont = 0;	
	$sql = "SELECT ";
	$sql .= "t.id_transaccion, ";		
	$sql .= "v.modelo, ";
	$sql .= "v.id_tag, ";
	$sql .= "v.numero_economico, ";
	$sql .= "t.fecha, ";
	$sql .= "t.id_vehiculo, ";
	$sql .= "td.volumen, ";
	$sql .= "t.odometro, ";
	$sql .= "t.odometro_diferencia, ";
	$sql .= "ve.id_venta, ";		
	$sql .= "ve.fecha_venta ";		
	$sql .= "FROM ";
	$sql .= "transacciones t ";
	$sql .= "left join transacciones_detalle td ";
	$sql .= "on(t.id_transaccion = td.id_transaccion) ";
	$sql .= "left join gaslight.ventas ve ";
	$sql .= "on(td.id_venta = ve.id_venta) ";
	$sql .= "left join vehiculos v ";
	$sql .= "on(t.id_vehiculo = v.id_vehiculo) ";
	$sql .= "where ";		
	$sql .= "t.fecha between '" . $fecha_inicio ."' and '" . $fecha_fin . "' ";
	$sql .= "and t.id_tipo = 1 ";
	$sql .= "and t.estatus = 1 ";
	$sql .= "and t.id_cliente = " . $_SESSION["id_cliente"] . " " ;		
	if($tarjeta != 0)
	{
		$sql .= "and t.id_vehiculo = " .$tarjeta . " " ;	
	}	
	$sql .= "order by t.id_cliente,t.id_vehiculo,t.fecha,t.id_transaccion ";
	
	$resultado1 = $iden->query($sql); 
								
	if(!$resultado1) 
		die("Error: no se pudo realizar la consulta estacion" .$sql);
		
	$número_filas = $resultado1->num_rows;		
	$vehiculo_litros = 0;
	$vehiculo_odometro = 0;
	$odometro_inicio = 0;
	$vehiculo_odometro_f = 0;
	$odometro_InCliente = 0;
	$vehiculo_odometro_diferencia = 0;
	$vehiculo_rendimiento = 0;
	$inicio = 0;
	if($número_filas > 0)
	{
		while($fila = $resultado1->fetch_assoc()) 
		{		
			$modelo = $fila['modelo'];
			$id_tag = $fila['id_tag'];
			$num_ec = $fila['numero_economico'];			
			$id_transaccion = $fila['id_transaccion'];
			$date = date_create($fila['fecha']);
			$fecha_contable =  date_format($date, 'Y/m/d H:i:s');			
			$vehiculo_n = $fila['id_vehiculo'];
			$volumen = $fila['volumen'];
			$odometro = $fila['odometro'];
			$odometro_diferencia = $fila['odometro_diferencia'];
						
			if($inicio == 0)
			{				
				$sql = "select ";
				$sql .= "max(id_transaccion) as id_transaccion ";
				$sql .= "from ";
				$sql .= "transacciones ";
				$sql .= "where ";
				$sql .= "id_transaccion < " . $id_transaccion . " ";
				$sql .= "and ";
				$sql .= "id_tipo=1 ";
				$sql .= "and ";
				$sql .= "id_cliente= ". $_SESSION["id_cliente"] . " " ;
				$sql .= "and id_vehiculo=" . $vehiculo_n . " ";
				$result = $iden->query($sql); 
								
				if(!$result) 
					die("Error: no se pudo realizar la consulta estacion" .$sql);
				
				$num = $result->num_rows;
				
				if($num > 0)
				{					
					while($row = $result->fetch_assoc()) 
					{
						$id = $row['id_transaccion'];
					}
					$result->free();
					if(is_null($id))
					{
						$id = 0;
						$sql = "select odometro from vehiculos where id_vehiculo = " . $vehiculo_n;
						$regreso = $iden->query($sql); 
						if(!$regreso) 
							die("Error: no se pudo obtener odometro del vehiculo" .$sql);
						while($row = $regreso->fetch_assoc()) 
						{
							$odometro_inicio = $row['odometro'];
						}
						$regreso->free();								
					}
					else
					{
						$sql = "select ";
						$sql .= "odometro ";
						$sql .= "from ";
						$sql .= "transacciones ";
						$sql .= "where ";
						$sql .= "id_transaccion = " . $id . " ";
						
						$res = $iden->query($sql); 
										
						if(!$res) 
							die("Error: no se pudo realizar la consulta estacion" .$sql);
						while($row = $res->fetch_assoc()) 
						{
							$odometro_inicio = $row['odometro'];
						}
						$res->free();
					}
				}
				else
				{
					$odometro_inicio = 0;
					$sql = "select odometro from vehiculos where id_vehiculo = " . $vehiculo_n;
					$regreso = $iden->query($sql); 
					if(!$regreso) 
						die("Error: no se pudo obtener odometro del vehiculo" .$sql);
					while($row = $regreso->fetch_assoc()) 
					{
						$odometro_inicio = $row['odometro'];
					}
					$regreso->free();								
				}
				$odometro_InCliente = $odometro_inicio;
				fwrite($file, 'MODELO: ' ."\t". $modelo. PHP_EOL);
				fwrite($file, 'TAG: ' ."\t". $id_tag. PHP_EOL);
				fwrite($file, 'N: ' ."\t". $num_ec. PHP_EOL);
				fwrite($file, "". PHP_EOL);
				fwrite($file, 'TRANS.'."\t".'FECHA'."\t".'ID VENTA'."\t".'FECHA_VENTA' ."\t". 'LITROS'."\t".'FIN KM'."\t".'REC KM'."\t".'RENDIMIENTO'. PHP_EOL);
				fwrite($file, "". PHP_EOL);				
				$inicio = 1;	
				$vehiculo = $vehiculo_n;				
			}			
			if($vehiculo_n != $vehiculo)
			{				
				$vehiculo_litros_muestra = number_format($vehiculo_litros, 3, '.', ',');
				$vehiculo_odometro_muestra = number_format($vehiculo_odometro, 2, '.', ',');
				$vehiculo_odometro_fMuestra = number_format($vehiculo_odometro_f, 2, '.', ',');
				$vehiculo_odometro_diferenciaMuestra = number_format($vehiculo_odometro_diferencia, 2, '.', ',');			
				$vehiculo_rendimiento = $vehiculo_odometro_diferencia/$vehiculo_litros;
				$vehiculo_rendimientoMuestra = number_format($vehiculo_rendimiento, 2, '.', ',');
				fwrite($file, "". PHP_EOL);
				fwrite($file, "\t\t\t".'TOTAL VEHICULO '."\t".$vehiculo_litros_muestra."\t\t" .$vehiculo_odometro_diferenciaMuestra."\t".$vehiculo_rendimientoMuestra. PHP_EOL);
				fwrite($file, "". PHP_EOL);
				fwrite($file, 'MODELO: ' ."\t". $modelo. PHP_EOL);
				fwrite($file, 'TAG: ' ."\t". $id_tag. PHP_EOL);
				fwrite($file, 'N: ' ."\t". $num_ec. PHP_EOL);
				fwrite($file, "". PHP_EOL);
				fwrite($file, 'TRANS.'."\t".'FECHA'."\t".'ID VENTA'."\t".'FECHA_VENTA' ."\t". 'LITROS'."\t".'FIN KM'."\t".'REC KM'."\t".'RENDIMIENTO'. PHP_EOL);
				fwrite($file, "". PHP_EOL);				
				$vehiculo = $vehiculo_n;
				$vehiculo_litros = 0;
				$vehiculo_odometro = 0;
				$vehiculo_odometro_f = 0;				
				$vehiculo_odometro_diferencia = 0;
				$vehiculo_rendimiento = 0;
				$inicio_clienV = 0;
			}			
			if($inicio_clienV == 0)
			{
				$sql = "select ";
				$sql .= "max(id_transaccion) as id_transaccion ";
				$sql .= "from ";
				$sql .= "transacciones ";
				$sql .= "where ";
				$sql .= "id_transaccion < " . $id_transaccion . " ";
				$sql .= "and ";
				$sql .= "id_tipo=1 ";
				$sql .= "and ";
				$sql .= "id_cliente= ". $_SESSION["id_cliente"] . " " ;
				$sql .= "and id_vehiculo=" . $vehiculo_n . " ";
				$result = $iden->query($sql); 
								
				if(!$result) 
					die("Error: no se pudo realizar la consulta estacion" .$sql);
				
				$num = $result->num_rows;
				
				if($num > 0)
				{
					while($row = $result->fetch_assoc()) 
					{
						$id = $row['id_transaccion'];
					}
					$result->free();
					if(is_null($id))
					{
						$id = 0;
						$sql = "select odometro from vehiculos where id_vehiculo = " . $vehiculo_n;
						$regreso = $iden->query($sql); 
						if(!$regreso) 
							die("Error: no se pudo obtener odometro del vehiculo" .$sql);
						while($row = $regreso->fetch_assoc()) 
						{
							$odometro_inicio = $row['odometro'];
						}
						$regreso->free();								
					}
					else
					{
						$sql = "select ";
						$sql .= "odometro ";
						$sql .= "from ";
						$sql .= "transacciones ";
						$sql .= "where ";
						$sql .= "id_transaccion = " . $id . " ";
						
						$res = $iden->query($sql); 
										
						if(!$res) 
							die("Error: no se pudo realizar la consulta estacion" .$sql);
						while($row = $res->fetch_assoc()) 
						{
							$odometro_inicio = $row['odometro'];
						}
						$res->free();
					}
				}
				else
				{
					$odometro_inicio = 0;
					$sql = "select odometro from vehiculos where id_vehiculo = " . $vehiculo_n;
					$regreso = $iden->query($sql); 
					if(!$regreso) 
						die("Error: no se pudo obtener odometro del vehiculo" .$sql);
					while($row = $regreso->fetch_assoc()) 
					{
						$odometro_inicio = $row['odometro'];
					}
					$regreso->free();								
				}
				$odometro_InCliente = $odometro_inicio;				
				$inicio_clienV = 1;
			}			
			$odometro_diferencia = $odometro - $odometro_inicio;
			$rendimiento = $odometro_diferencia / $volumen;
			
			$vehiculo_litros = $vehiculo_litros + $volumen;
			$vehiculo_odometro =  $odometro_InCliente;
			$vehiculo_odometro_f = $odometro;
			$vehiculo_odometro_diferencia = $vehiculo_odometro_diferencia + $odometro_diferencia;
			$vehiculo_rendimiento = $vehiculo_rendimiento + $rendimiento;			
			
			$volumen_muestra = number_format($volumen, 3, '.', ',');
			$odometro_muestra = number_format($odometro_inicio, 2, '.', ',');
			$odometro_diferenciaMuestra = number_format($odometro_diferencia, 2, '.', ',');
			$odometro_fMuestra = number_format($odometro, 2, '.', ',');			
			$rendimiento_fMuestra = number_format($rendimiento, 2, '.', ',');
			fwrite($file, $id_transaccion."\t".$fecha_contable."\t".$fila['id_venta']."\t".$fila['fecha_venta']."\t".$volumen_muestra."\t".$odometro_fMuestra."\t".$odometro_diferenciaMuestra."\t".$rendimiento_fMuestra. PHP_EOL);
			$odometro_inicio = $odometro;
		}
		$resultado1->free();						
		$vehiculo_litros_muestra = number_format($vehiculo_litros, 3, '.', ',');
		$vehiculo_odometro_muestra = number_format($vehiculo_odometro, 2, '.', ',');
		$vehiculo_odometro_fMuestra = number_format($vehiculo_odometro_f, 2, '.', ',');
		$vehiculo_odometro_diferenciaMuestra = number_format($vehiculo_odometro_diferencia, 2, '.', ',');			
		$vehiculo_rendimiento = $vehiculo_odometro_diferencia/$vehiculo_litros;
		$vehiculo_rendimientoMuestra = number_format($vehiculo_rendimiento, 2, '.', ',');
		fwrite($file, "". PHP_EOL);	
		fwrite($file, "\t\t\t".'TOTAL VEHICULO '."\t".$vehiculo_litros_muestra."\t\t" .$vehiculo_odometro_diferenciaMuestra."\t".$vehiculo_rendimientoMuestra. PHP_EOL);
		fwrite($file, "". PHP_EOL);					
		$vehiculo_litros = 0;
		$vehiculo_odometro = 0;
		$vehiculo_odometro_f = 0;
		$vehiculo_odometro_diferencia = 0;
		$vehiculo_rendimiento = 0;		
		$vehiculo = $vehiculo_n;
	}		
	mysqli_close($iden);	
	fclose($file);
	if (file_exists($path)) 
	{
		header('Content-Description: File Transfer');
		header('Content-Type: application/octet-stream');
		header('Content-Disposition: attachment; filename="'.basename($path).'"');
		header('Expires: 0');
		header('Cache-Control: must-revalidate');
		header('Pragma: public');
		header('Content-Length: ' . filesize($path));
		ob_clean();
		flush();
		readfile($path);
		exit;
	}
?>