<?php
    session_start();

	include('conexion.php');	
	include 'mysql_Agregar_auditoria.php';

	ini_set('max_execution_time', '300');
	set_time_limit(300);

	if (PHP_SAPI == 'cli')
	{
        die('This report should only be run from a Web Browser');
    }

	require('./PHPExcel/Classes/PHPExcel.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();

	/////////////////////////////////////////////////////////////////////////////////////

	$total_general = 0;

	$objPHPExcel = new PHPExcel();

	$cel = 9;

	$objPHPExcel->getProperties()
				->setCreator("Gaslight System")
				->setLastModifiedBy("Gaslight System")
				->setTitle("Reporte Consumo por vehiculo ")
				->setSubject("Reporte Consumo por vehiculo ")
				->setDescription("Reporte Consumo por vehiculo")
				->setKeywords("Excel Office 2007 openxml php")
				->setCategory("Consumo por Vehiculo");

	$objPHPExcel->setActiveSheetIndex(0)->mergeCells('A1:C1');
	$objPHPExcel->setActiveSheetIndex(0)->mergeCells('A2:F2');
	$objPHPExcel->setActiveSheetIndex(0)->mergeCells('N1:P1');
	$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(20);
	$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(18);
	$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(18);
	$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(18);
	$objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(18);
	$objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(18);
	$objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth(18);
	$objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth(15);
	$objPHPExcel->getActiveSheet()->getColumnDimension('I')->setWidth(18);
	$objPHPExcel->getActiveSheet()->getColumnDimension('J')->setWidth(18);
	$objPHPExcel->getActiveSheet()->getColumnDimension('L')->setWidth(18);
	$objPHPExcel->getActiveSheet()->getColumnDimension('M')->setWidth(18);
	$objPHPExcel->getActiveSheet()->getColumnDimension('N')->setWidth(18);
	$objPHPExcel->getActiveSheet()->getColumnDimension('O')->setWidth(18);
	$objPHPExcel->getActiveSheet()->getColumnDimension('P')->setWidth(15);

	date_default_timezone_set('America/Mazatlan');
	$time = time();	

	$boldArray = array('font' => array('bold' => true,),'alignment' => array('horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER));

	$objPHPExcel->getActiveSheet()->getStyle('A1:P1')->applyFromArray($boldArray);
	$objPHPExcel->getActiveSheet()->getStyle('A8:P8')->applyFromArray($boldArray);
		
	$objPHPExcel->setActiveSheetIndex(0)
				->setCellValue('A1', 'Reporte Control Vehículos')
				->setCellValue('G1', 'Fecha: ' . date("Y/m/d  H:i:s", $time))
				->setCellValue('A3', 'Cliente')
				->setCellValue('B3', $_SESSION['id_cliente'], 0, 0, 'L')
				->setCellValue('A4', 'Razón Social')
				->setCellValue('B4', $_SESSION['razon_cliente'])
				->setCellValue('A5', 'Saldo')
				->setCellValue('B5', $_SESSION['saldo_muestra'])
				->setCellValue('A6', 'Fecha inicio')
				->setCellValue('B6', $fecha_inicio)
				->setCellValue('A7', 'Fecha fin')
				->setCellValue('B7', $fecha_fin);

	/////////////////////////////////////////////////////////////////////////////////////

	$sql = "SELECT ";
	$sql .= "t.id_transaccion, ";
	$sql .= "v.placa, ";
	$sql .= "v.numero_economico, ";
	$sql .= "v.id_tag, ";
	$sql .= "t.fecha, ";
	$sql .= "v.conductor, ";
	$sql .= "p.nombre, ";
	$sql .= "td.volumen, ";
	$sql .= "td.precio, ";
	$sql .= "td.monto, ";
	$sql .= "t.id_vehiculo, ";				
	$sql .= "ve.id_venta, ";		
	$sql .= "ve.fecha_venta ";	
	$sql .= "FROM ";
	$sql .= "productos p, ";
	$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 .= "p.id_producto = td.id_producto ";		
	$sql .= "and t.id_tipo = 1 ";
	$sql .= "and t.estatus = 1 ";
	$sql .= "and t.id_cliente = " . $_SESSION['id_cliente'] . " " ;
	$sql .=" and t.id_turno >= '" . $finiMuestra . "00" . "' and t.id_turno <= '" . $ffinMuestra . "06" . "' ";

	if ($id_vehiculo != 0)
	{
		$sql .= "and t.id_vehiculo = " . $id_vehiculo . " " ;
	}
		
	$sql .= "order by id_vehiculo, fecha ";
	
	$resultado1 = $conexion->query($sql); 			

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

	$numero_filas = $resultado1->num_rows;
	$vehiculo_litros = 0;
	$vehiculo_monto = 0;			
	$inicio = 0;

	$cel = 9;

	if ($numero_filas > 0)
	{
		while ($fila = $resultado1->fetch_assoc())
		{
			$placa = $fila['placa'];
			$num_economico = $fila['numero_economico'];
			$id_tag = $fila['id_tag'];				
			$fecha_contable = $fila['fecha'];		
			$date = date_create($fecha_contable);
			$fechaMuestra =  date_format($date, 'Y-m-d');
			$vehiculo_n = $fila['id_vehiculo'];
			$volumen = $fila['volumen'];			
			$monto = $fila['monto'];

			if ($inicio == 0)
			{
				$a = "A" . $cel;
				$cel = $cel + 1;

				$a2 = "A" . $cel;
				$cel = $cel + 1;

				$a3 = "A" . $cel;
				$cel = $cel + 1;

				$objPHPExcel->setActiveSheetIndex(0)
							->setCellValue($a, 'Placa:' . $placa)
							->setCellValue($a2, 'No. Económico: ' . $num_economico)
							->setCellValue($a3, 'TAG: ' . $id_tags);
				
				$cel = $cel + 1;

				$a = "A" . $cel;
				$b = "B" . $cel;
				$c = "C" . $cel;
				$d = "D" . $cel;
				$e = "E" . $cel;
				$f = "F" . $cel;
				$g = "G" . $cel;
				$h = "H" . $cel;
				$i = "I" . $cel;

				$bold2Array = array('font' => array('bold' => true,),'alignment' => array('horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_LEFT));

				$objPHPExcel->getActiveSheet()->getStyle('A' . $cel . ':I' . $cel .'')->applyFromArray($bold2Array);

				$objPHPExcel->setActiveSheetIndex(0)
							->setCellValue($a, 'Transacción')
							->setCellValue($b, 'Fecha')
							->setCellValue($c, 'Venta')
							->setCellValue($d, 'Fecha Venta')
							->setCellValue($e, 'Conductor')
							->setCellValue($f, 'Producto')
							->setCellValue($g, 'Volumen')
							->setCellValue($h, 'Precio')
							->setCellValue($i, 'Monto');

				$cel = $cel + 1;	

				$vehiculo = $vehiculo_n;
				$inicio = 1;	
			}

			if ($vehiculo_n != $vehiculo)
			{
				$vehiculo_litrosMuestra = number_format($vehiculo_litros, 3, '.', '');
				$vehiculo_montoMuestra = number_format($vehiculo_monto, 2, '.', '');

				$boldArray = array('font' => array('bold' => true,),'alignment' => array('horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER));

				$objPHPExcel->getActiveSheet()->getStyle('F' . $cel . ':I' . $cel .'')->applyFromArray($boldArray);

				$objPHPExcel->setActiveSheetIndex(0)					
							->setCellValue("F" . $cel, 'Total Vehículo')
							->setCellValue("G" . $cel,  $vehiculo_litros)
							->setCellValue("I" . $cel, $vehiculo_monto);
				
				$cel += 2;

				$a = "A" . $cel;
				$cel = $cel + 1;

				$a2 = "A" . $cel;
				$cel = $cel + 1;

				$a3 = "A" . $cel;

				$objPHPExcel->setActiveSheetIndex(0)
							->setCellValue($a, 'Placa: ' . $placa)
							->setCellValue($a2, 'No. Económico: ' . $num_economico)
							->setCellValue($a3, 'TAG: ' . $id_tag);

				$cel = $cel + 1;

				$a = "A" . $cel;
				$b = "B" . $cel;
				$c = "C" . $cel;
				$d = "D" . $cel;
				$e = "E" . $cel;
				$f = "F" . $cel;
				$g = "G" . $cel;
				$h = "H" . $cel;
				$i = "I" . $cel;

				$bold2Array = array('font' => array('bold' => true,),'alignment' => array('horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_LEFT));

				$objPHPExcel->getActiveSheet()->getStyle('A' . $cel . ':I' . $cel .'')->applyFromArray($bold2Array);

				$objPHPExcel->setActiveSheetIndex(0)
							->setCellValue($a, 'Transacción')
							->setCellValue($b, 'Fecha')
							->setCellValue($c, 'Venta')
							->setCellValue($d, 'Fecha Venta')
							->setCellValue($e, 'Conductor')
							->setCellValue($f, 'Producto')
							->setCellValue($g, 'Volumen')
							->setCellValue($h, 'Precio')
							->setCellValue($i, 'Monto');

				$cel = $cel + 1;	

				$vehiculo = $vehiculo_n;
				$vehiculo_litros = 0;
				$vehiculo_monto = 0;

				$cel += 1;
			}

			$vehiculo_litros = $vehiculo_litros + $volumen;
			$vehiculo_monto = $vehiculo_monto + $monto;

			$volumenMuestra = number_format($fila['volumen'], 3, '.', '');
			$montoMuestra = number_format($fila['monto'], 2, '.', '');

			$objPHPExcel->setActiveSheetIndex(0)
						->setCellValue("A" . $cel, $fila['id_transaccion'])
						->setCellValue("B" . $cel, $fechaMuestra)
						->setCellValue("C" . $cel, $fila['id_venta'])
						->setCellValue("D" . $cel, $fila['fecha_venta'])
						->setCellValue("E" . $cel, $fila['conductor'])
						->setCellValue("F" . $cel, $fila['nombre'])
						->setCellValue("G" . $cel, $volumenMuestra)
						->setCellValue("H" . $cel, $fila['precio'])
						->setCellValue("I" . $cel, $montoMuestra);
			
			$cel += 1;
		}

		$resultado1->free();

		$vehiculo_litrosMuestra = number_format($vehiculo_litros, 3, '.', '');
		$vehiculo_montoMuestra = number_format($vehiculo_monto, 2, '.', '');

		$boldArray = array('font' => array('bold' => true,),'alignment' => array('horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER));

		$objPHPExcel->getActiveSheet()->getStyle('F' . $cel . ':I' . ($cel) . '')->applyFromArray($boldArray);
		$objPHPExcel->setActiveSheetIndex(0)					
					->setCellValue("F" . $cel, 'Total Vehículo')
					->setCellValue("G" . $cel, $vehiculo_litrosMuestra)
					->setCellValue("I" . $cel, $vehiculo_montoMuestra);

		$cel += 2;

		$vehiculo_litros = 0;
		$vehiculo_monto = 0;		
		$vehiculo = $vehiculo_n;
	}

	$sql = "SELECT ";
	$sql .= "p.nombre, ";
	$sql .= "sum(td.volumen) as volumen, ";
	$sql .= "sum(td.monto) as monto ";
	$sql .= "FROM  ";
	$sql .= "productos p, ";
	$sql .= "transacciones t ";
	$sql .= "left join transacciones_detalle td ";
	$sql .= "on(t.id_transaccion = td.id_transaccion) ";
	$sql .= "left join vehiculos v ";
	$sql .= "on (t.id_vehiculo = v.id_vehiculo) ";
	$sql .= "where ";
	$sql .= "p.id_producto = td.id_producto ";
	$sql .= "and t.id_tipo = 1 ";
	$sql .= "and t.estatus = 1 ";
	$sql .= "and t.id_cliente = " . $_SESSION["id_cliente"] . " ";	
	$sql .=" and t.id_turno >= '" . $finiMuestra . "00" . "' and t.id_turno <= '" . $ffinMuestra . "06" . "' ";

	if ($id_vehiculo != 0)
	{
		$sql .= "and t.id_vehiculo = " . $id_vehiculo . " " ;
	}

	$sql .= "group by td.id_producto ";
	$sql .= "order by td.id_producto ";

	$resultado1 = $conexion->query($sql); 	

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

	$numero_filas = $resultado1->num_rows;

	if ($numero_filas > 0)
	{
		$tot_est = 0;
		$tot_v_est = 0;
		$tot_est_g = 0;
		$tot_v_est_g = 0;
		$inicio = 0;

		while ($fila = $resultado1->fetch_assoc()) 
		{
			$volumen  = $fila['volumen'];
			$monto = $fila['monto'];						
				
			$tot_est_g = $tot_est_g + $tot_est;
			$tot_v_est_g = $tot_v_est_g + $tot_v_est;
			$tot_v_estMuestra = number_format($tot_v_est, 2, '.', ',');
			$tot_estMuestra = number_format($tot_est, 2, '.', ',');
				
			$tot_est = 0;
			$tot_v_est = 0;
			$est = $est_n;					
			$tot_est = $tot_est + $monto;
			$tot_v_est = $tot_v_est + $volumen;
			$volMuestra = number_format($fila['volumen'], 2, '.', ',');
			$monMuestra = number_format($fila['monto'], 2, '.', ',');	

			$cel += 1;

			$objPHPExcel->setActiveSheetIndex(0)
						->setCellValue("D".($cel), $fila['nombre'])
						->setCellValue("E".($cel), $volMuestra)
						->setCellValue("F".($cel), $monMuestra);
		}

		$resultado1->free();
		
		$tot_est_g = $tot_est_g + $tot_est;
		$tot_v_est_g = $tot_v_est_g + $tot_v_est;
		$tot_v_est_gMuestra = number_format($tot_v_est_g, 2, '.', ',');
		$tot_est_gMuestra = number_format($tot_est_g, 2, '.', ',');
		$tot_v_estMuestra = number_format($tot_v_est, 2, '.', ',');
		$tot_estMuestra = number_format($tot_est, 2, '.', ',');
		
		$tot_est = 0;
		$tot_v_est = 0;
		$est = $est_n;

		$cel += 1;

		$boldArray = array('font' => array('bold' => true,), 'alignment' => array('horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER));

		$objPHPExcel->getActiveSheet()->getStyle('C' . $cel . ':I' . $cel . '')->applyFromArray($boldArray);

		$objPHPExcel->setActiveSheetIndex(0)
					->setCellValue("C" . $cel, 'Gran Total:')
					->setCellValue("E" . $cel, $tot_v_est_gMuestra)
					->setCellValue("F" . $cel, $tot_est_gMuestra);	
	}

	$informacion = 'Genero Reporte Control Vehiculos formato EXCEL ';
	$datos = "Con filtros: ";
	if ($id_vehiculo != 0)
	{
		$datos=$datos." Vehiculo=".$id_vehiculo;
	}
	$datos=$datos." Del id_turno=". $finiMuestra . "00" . " al id_turno =" . $ffinMuestra . "06";	
	insertAuditoria($informacion,$datos,$_SESSION['id_usuario'],$_SESSION['direccion_ip'],$_SESSION['direccion_mac']);

	mysqli_close($conexion);

	$objPHPExcel->getActiveSheet()->setTitle('REPORTE CONTROL DE VEHICULOS');

	$objPHPExcel->setActiveSheetIndex(0);

	header('Cache-Control: max-age=0');

	$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');

	ob_end_clean();

	header('Content-type: application/vnd.ms-excel');

	$nombre_archivo = "Reporte_Control_Vehiculos" . date("Y_m_d_H_i_s", $time);
	$nombre_archivo = strtoupper($nombre_archivo);

	header('Content-Disposition: attachment; filename="' . $nombre_archivo . '.xlsx"');

	$objWriter->save('php://output');

	exit;
?>