<?php
	session_start();

	include('conexion.php');	
	include 'mysql_Agregar_auditoria.php';
	require('./fpdf/fpdf.php');

	$cliente = $_SESSION['id_cliente'];
	$id_vehiculo = $_GET['id_vehiculo'];
	$fecha_inicio = $_GET['fecha_inicio'];
	$fecha_fin = $_GET['fecha_fin'];
	$fini = date_create($fecha_inicio);
	$finiMuestra =  date_format($fini, 'Ymd');	
	$ffin = date_create($fecha_fin);
	$ffinMuestra =  date_format($ffin, 'Ymd');	
	
	$sql = "SELECT ";
	$sql .= "id_cliente, ";
	$sql .= "razon_social, ";
	$sql .= "nombre_comercial, ";
	$sql .= "saldo ";
	$sql .= "FROM ";
	$sql .= "clientes ";
	$sql .= "WHERE ";
	$sql .= "id_cliente = " . $cliente;
	
	$resultado = $conexion->query($sql); 
								
	if (!$resultado) 
	{
		die("Error: no se pudo realizar la consulta cliente");
	}
		
	while ($fila = $resultado->fetch_assoc()) 
	{
		$_SESSION['id_cliente'] = $fila['id_cliente'];
		$_SESSION['razon_cliente'] = $fila['razon_social'];
		$_SESSION['nombre_cliente'] = $fila['nombre_comercial'];
		$saldo_cliente = $fila['saldo'];
	}

	$resultado->free();

	$_SESSION['saldo_muestra'] = number_format($saldo_cliente, 2, '.', ',');
	$_SESSION['fech1'] = $fecha_inicio;	
	$_SESSION['fech2'] = $fecha_fin;

	class PDF extends FPDF
	{
		function Header()
		{
			$this->SetFont('Arial', 'B', 14);
			$this->Cell(130, 10, 'Reporte Rendimiento Combustible/Unidad');
			$this->SetFont('Arial', '', 10);
			date_default_timezone_set('America/Mazatlan');
			$time = time();	
			$this->Cell(50, 10, 'Fecha: ' . date("Y/m/d  H:i:s", $time) );
			$this->Ln();
			$this->SetFont('Arial', '', 10);			
			$this->Cell(25, 5, "Cliente");
			$this->Cell(50, 5, $_SESSION["id_cliente"]);
			$this->Ln();		
			$this->Cell(25, 5, "Razon Social");
			$this->Cell(50, 5, $_SESSION['razon_cliente']);
			$this->Ln();		
			$this->Cell(25, 5, "Saldo");
			$this->Cell(50, 5, $_SESSION['saldo_muestra']);
			$this->Ln();
			$this->Cell(25, 5, "Fecha Inicio");
			$this->Cell(50, 5, $_SESSION['fech1']);
			$this->Ln();		
			$this->Cell(25, 5, "Fecha Fin");
			$this->Cell(50, 5, $_SESSION['fech2']);
			$this->Ln();			
		}
	}

	$pdf = new PDF();
	$pdf->AliasNbPages();
	$pdf->SetTitle('Reporte Combustible/Unidad');
	$pdf->AddPage();	
	
	$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 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 ($id_vehiculo != 0)
	{
		$sql .= "and t.id_vehiculo = " . $id_vehiculo . " " ;	
	}		

	$sql .= "order by t.id_cliente, t.id_vehiculo, t.fecha, t.id_transaccion ";
	
	$resultado1 = $conexion->query($sql); 

	if (!$resultado1) 
	{
		die("Error: no se pudo realizar la consulta estacion");
	}
		
	$número_filas = $resultado1->num_rows;

	$pdf->SetFont('Arial', '', 12);	

	$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)
			{
				/*Obtener odometro inicial*/
				$sql = "select ";
				$sql .= "max(id_transaccion) as id_transaccion ";
				$sql .= "from ";
				$sql .= "transacciones ";
				$sql .= "where ";
				$sql .= "id_transaccion < " . $id_transaccion . " ";
				$sql .= "and id_tipo = 1 ";
				$sql .= "and id_cliente = " . $_SESSION["id_cliente"] . " " ;
				$sql .= "and id_vehiculo = " . $vehiculo_n . " ";
			
				$result = $conexion->query($sql); 	

				if (!$result) 
				{
					die("Error: no se pudo realizar la consulta estacion");
				}
				
				$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 = $conexion->query($sql); 

						if (!$regreso) 
						{
							die("Error: no se pudo obtener odometro del vehiculo");
						}

						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 = $conexion->query($sql); 	

						if (!$res) 
						{
							die("Error: no se pudo realizar la consulta estacion");
						}

						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 = $conexion->query($sql); 

					if (!$regreso) 
					{
						die("Error: no se pudo obtener odometro del vehiculo");
					}

					while ($row = $regreso->fetch_assoc()) 
					{
						$odometro_inicio = $row['odometro'];
					}

					$regreso->free();								
				}

				$odometro_InCliente = $odometro_inicio;

				$pdf->SetFont('Arial','B', 9);				
				$pdf->Cell(30, 3, 'Modelo: ' . $modelo, 0, 0, 'L');
				$pdf->ln();		
				$pdf->Cell(100, 3, 'TAG: ' . $id_tag, 0, 0, 'L');				
				$pdf->ln();	
				$pdf->Cell(100, 3, 'No. Economico: ' . $num_ec, 0, 0, 'L');				
				$pdf->ln();	
				$pdf->ln();	
				$pdf->SetFont('Arial', 'U', 9);
				$pdf->Cell(15, 5, 'Id Tran.', 0, 0, 'L');			
				$pdf->Cell(30, 5, 'Fecha', 0, 0, 'L');			
				$pdf->Cell(15, 5, 'Venta', 0, 0, 'R');			
				$pdf->Cell(30, 5, 'F. Venta', 0, 0, 'L');			
				$pdf->Cell(25, 5, 'Volumen', 0, 0, 'R');
				$pdf->Cell(25, 5, 'Fin Km.', 0, 0, 'R');
				$pdf->Cell(25, 5, 'Rec Km.', 0, 0, 'R');
				$pdf->Cell(25, 5, 'Rendimiento', 0, 0, 'R');
				$pdf->ln();		

				$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, '.', ',');

				$pdf->ln();					
				$pdf->SetFont('Arial', 'B', 10);
				$pdf->Cell(45, 5, '', 0, 0, 'L');			
				$pdf->Cell(40, 5, 'Total Vehiculo ', 0, 0, 'L');			
				$pdf->Cell(30, 5, $vehiculo_litros_muestra, 0, 0, 'R');
				$pdf->Cell(20, 5, '', 0, 0, 'R');
				$pdf->Cell(30, 5, $vehiculo_odometro_diferenciaMuestra, 0, 0, 'R');
				$pdf->Cell(25, 5, $vehiculo_rendimientoMuestra, 0, 0, 'R');					
				$pdf->ln();			
				$pdf->ln();		
				$pdf->SetFont('Arial', 'B', 9);				
				$pdf->Cell(30, 3, 'Modelo: ' . $modelo, 0, 0, 'L');
				$pdf->ln();		
				$pdf->Cell(100, 3, 'TAG: ' . $id_tag, 0, 0, 'L');				
				$pdf->ln();
				$pdf->Cell(100, 3, 'No. Economico: ' . $num_ec, 0, 0, 'L');				
				$pdf->ln();
				$pdf->SetFont('Arial', 'U', 9);
				$pdf->Cell(15, 5, 'Id Tran.', 0, 0, 'L');			
				$pdf->Cell(30, 5, 'Fecha', 0, 0, 'L');			
				$pdf->Cell(15, 5, 'Venta', 0, 0, 'R');			
				$pdf->Cell(30, 5, 'F. Venta', 0, 0, 'L');			
				$pdf->Cell(25, 5, 'Volumen', 0, 0, 'R');
				$pdf->Cell(25, 5, 'Fin Km.', 0, 0, 'R');
				$pdf->Cell(25, 5, 'Rec Km.', 0, 0, 'R');
				$pdf->Cell(25, 5, 'Rendimiento', 0, 0, 'R');
				$pdf->ln();	

				$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 id_tipo = 1 ";
				$sql .= "and id_cliente = " . $_SESSION["id_cliente"] . " " ;
				$sql .= "and id_vehiculo = " . $vehiculo_n . " ";

				$result = $conexion->query($sql); 
								
				if (!$result) 
				{
					die("Error: no se pudo realizar la consulta estacion");	
				}			

				$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 = $conexion->query($sql); 

						if (!$regreso) 
						{
							die("Error: no se pudo obtener odometro del vehiculo");
						}

						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 = $conexion->query($sql); 	

						if (!$res) 
						{
							die("Error: no se pudo realizar la consulta estacion");
						}
							
						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 = $conexion->query($sql); 

					if (!$regreso) 
					{
						die("Error: no se pudo obtener odometro del vehiculo");
					}

					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, '.', ',');
		
			$pdf->SetFont('Arial', '', 9);			
			$pdf->Cell(15, 5, $id_transaccion, 0, 0, 'L');								
			$pdf->Cell(30, 5, $fecha_contable, 0, 0, 'L');			
			$pdf->Cell(15, 5, $fila['id_venta'], 0, 0, 'R');																	
			$pdf->Cell(30, 5, $fila['fecha_venta'], 0, 0, 'L');					
			$pdf->Cell(25, 5, $volumen_muestra, 0, 0, 'R');		
			$pdf->Cell(25, 5, $odometro_fMuestra, 0, 0, 'R');
			$pdf->Cell(25, 5, $odometro_diferenciaMuestra, 0, 0, 'R');
			$pdf->Cell(25, 5, $rendimiento_fMuestra, 0, 0, 'R');					
			$pdf->ln();			

			$odometro_inicio = $odometro;
		}

		$resultado1->free();

		$pdf->ln();	
		$pdf->SetFont('Arial', 'B', 10);
		
		$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, '.', ',');
		
		$pdf->ln();					
		$pdf->SetFont('Arial', 'B', 10);
		$pdf->Cell(45, 5, ' ', 0, 0, 'L');	
		$pdf->Cell(40, 5, 'Total Vehiculo ', 0, 0, 'L');			
		$pdf->Cell(30, 5, $vehiculo_litros_muestra, 0, 0, 'R');		
		$pdf->Cell(20, 5, '', 0, 0, 'R');
		$pdf->Cell(30, 5, $vehiculo_odometro_diferenciaMuestra, 0, 0, 'R');
		$pdf->Cell(25, 5, $vehiculo_rendimientoMuestra, 0, 0, 'R');									
		$pdf->ln();			
		$pdf->ln();					
		
		$vehiculo_litros = 0;
		$vehiculo_odometro = 0;
		$vehiculo_odometro_f = 0;
		$vehiculo_odometro_diferencia = 0;
		$vehiculo_rendimiento = 0;		
		$vehiculo = $vehiculo_n;
	}
	
	$informacion = 'Genero Reporte Rendimiento Combustible/Unidad formato PDF ';
	$datos = "Con filtros: ";
	if ($id_vehiculo != 0)
	{
		$datos=$datos." Vehiculo=".$id_vehiculo;
	}
	$datos=$datos." Fecha inicial=". $fecha_inicio . " " . " fecha final =" . $fecha_fin . " ";	
	insertAuditoria($informacion,$datos,$_SESSION['id_usuario'],$_SESSION['direccion_ip'],$_SESSION['direccion_mac']);
	
	mysqli_close($conexion);

	$pdf->Output();
?>