<?php
    session_start();

	include('conexion.php');
	include 'mysql_Agregar_auditoria.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'];
	$pagado = $_GET['Pagado'];
	$Npagado = $_GET['NoPagado'];
	$Ppagado = $_GET['ParcialmentePagado'];
	$cancelado = $_GET['Cancelado'];

    $cadena = "";

	if ($pagado == 1)
	{
		$cadena .= "1,"; 	
	}

	if ($Npagado == 1)
	{
		$cadena .= "0,"; 		
	}

	if ($Ppagado == 1)
	{
		$cadena .= "2,"; 		
	}

	if ($cancelado == 1)
	{
		$cadena .= "3,"; 		
	}

	if ($cadena != "")
	{
		$cadena = substr($cadena, 0, strlen($cadena)-1);
	}

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

    $sql = "SELECT ";
	$sql .= "id_cliente, ";
	$sql .= "razon_social, ";
	$sql .= "nombre_comercial ";
	$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'];
	}

	$resultado->free();

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

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

	// Creación de objeto Excel
	$objPHPExcel = new PHPExcel();

	$cel = 5;

    $objPHPExcel->getProperties()
	->setCreator("Gaslight")
	->setLastModifiedBy("Gaslight System")
	->setTitle("Reporte Adeudos de Cobro ")
	->setSubject("Reporte Adeudos de Cobro ")
	->setDescription("Reporte Adeudos de Cobro")
	->setKeywords("Excel Office 2007 openxml php")
	->setCategory("Adeudos");
                
    $objPHPExcel->setActiveSheetIndex(0)->mergeCells('A1:D1');
    $objPHPExcel->setActiveSheetIndex(0)->mergeCells('H1:I1');

    $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(12);
	$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(12);
	$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(12);
	$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(14);
	$objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(12);
	$objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(12);
	$objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth(12);
	$objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth(13);
	$objPHPExcel->getActiveSheet()->getColumnDimension('I')->setWidth(12);

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

    $objPHPExcel->getActiveSheet()->getStyle('A1:G1')->applyFromArray($boldArray);
	$objPHPExcel->getActiveSheet()->getStyle('A4:I4')->applyFromArray($bold2Array);

    $objPHPExcel->setActiveSheetIndex(0)
				->setCellValue('A1', 'REPORTE ADEUDOS DE COBRO')
				->setCellValue('H1', 'Fecha: ' . date("Y/m/d  H:i:s", $time))
				->setCellValue('A2', $_SESSION['razon_cliente'])
				->setCellValue('A4', 'ID')
				->setCellValue('B4', 'Serie')
				->setCellValue('C4', 'Folio')
				->setCellValue('D4', 'F. Creación')
				->setCellValue('E4', 'Cargo')
				->setCellValue('F4', 'Abono')
				->setCellValue('G4', 'Saldo')
				->setCellValue('H4', 'Vencimiento')
				->setCellValue('I4', 'Estado');

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

    $total_Cargo = 0;
	$total_Abono = 0;
	$total_Saldo = 0;

    $sql = "select ";
	$sql .= "id_adeudo, ";
	$sql .= "serie, ";
	$sql .= "folio, ";
	$sql .= "fecha_creacion, ";
	$sql .= "cargo, ";
	$sql .= "abono, ";
	$sql .= "saldo, ";
	$sql .= "vencimiento, ";
	$sql .= "estatus, ";
	$sql .= "id_entidad, ";
	$sql .= "tipo_entidad ";
	$sql .= "from ";
	$sql .= "adeudos_cobro ";
	$sql .= "where ";
	$sql .= "id_entidad = " . $_SESSION['id_cliente'] . " ";

	if ($cadena != "")
	{
		$sql .= "and estatus in (" . $cadena . ") ";
	}

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

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

    $numero_filas = $resultado->num_rows;

    $cargoTotal = 0;
    $abonoTotal = 0;
    $saldoTotal = 0;

    if ($numero_filas > 0)
    {
        $cargoTotal = 0;

		$abonoTotal = 0;
    	$saldoTotal = 0;	

		while ($row = $resultado->fetch_assoc())
		{
			$estado = "";
			$cargoMuestra = number_format($row['cargo'], 2, '.', '');
			$abonoMuestra = number_format($row['abono'], 2, '.', '');
			$saldoMuestra = number_format($row['saldo'], 2, '.', '');	
			$date = date_create($row['fecha_creacion']);
			$fechaMuestra = date_format($date, 'Y-m-d');
			$date = date_create($row['vencimiento']);
			$fechaVMuestra =  date_format($date, 'Y-m-d');
			
			if (($saldoMuestra *-1) == 0)
			{
				$estado = "Pagado";
			}
			else
			{
				$estado = "No pagado";
			}
								
			if ($row['estatus'] == 3)
			{
				$estado = "Cancelado";
			}

			$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;

			$objPHPExcel->setActiveSheetIndex(0)
						->setCellValue($a, $row['id_adeudo'])
						->setCellValue($b, $row['serie'])
						->setCellValue($c, $row['folio'])
						->setCellValue($d, $fechaMuestra)
						->setCellValue($e, $cargoMuestra)
						->setCellValue($f, $abonoMuestra)
						->setCellValue($g, $saldoMuestra)
						->setCellValue($h, $fechaMuestra)
						->setCellValue($i, $estado);

			$cargoTotal = $cargoTotal + $row['cargo'];
			$abonoTotal = $abonoTotal + $row['abono'];
			$saldoTotal = $saldoTotal + $row['saldo'];	

			$cel += 1;
		}

		$resultado->free();	

		$cargoTotal_Muestra = number_format($cargoTotal, 2, '.', '');
		$abonoTotal_Muestra = number_format($abonoTotal, 2, '.', '');
		$saldoTotal_Muestra = number_format($saldoTotal, 2, '.', '');

		$cel += 1;

		$d = "D" . $cel;
		$e = "E" . $cel;
		$f = "F" . $cel;
		$g = "G" . $cel;

		$objPHPExcel->setActiveSheetIndex(0)		
					->setCellValue($d, 'Totales')
					->setCellValue($e, '$'. $cargoTotal_Muestra)
					->setCellValue($f, '$'. $abonoTotal_Muestra)
					->setCellValue($g, '$'. $saldoTotal_Muestra)
					->getStyle($e.':'.$g)->getFont()->setUnderline(true);	
		$cel += 1;

		$total_Cargo = $total_Cargo + $cargoTotal;
		$total_Abono = $total_Abono + $abonoTotal;
		$total_Saldo = $total_Saldo + $saldoTotal;
    }

	$cel += 1;

	$a = "A" . ($cel + 4);
	$d = "D" . $cel;
	$e = "E" . $cel;
	$f = "F" . $cel;
	$g = "G" . $cel;

	$total_Cargo_Muestra = number_format($total_Cargo, 2, '.', '');
	$total_Abono_Muestra = number_format($total_Abono, 2, '.', '');
	$total_Saldo_Muestra = number_format($total_Saldo, 2, '.', '');

	$objPHPExcel->getActiveSheet()->getStyle($d)->applyFromArray($boldArray);

	$objPHPExcel->setActiveSheetIndex(0)
				->setCellValue($d,'Total General: ')		
				->setCellValue($e, $total_Cargo)
				->setCellValue($f, $total_Abono)	
				->setCellValue($g, $total_Saldo)
				->setCellValue($a, 'Gaslight System Flotillas Locales');

	$informacion = 'Genero Reporte Adeudos de Cobro formato EXCEL ';
	$datos = "Con filtros: ";
	if ($pagado == 1)
	{
		$datos=$datos." Pagados=".$pagado;	
	}

	if ($Npagado == 1)
	{
		$datos=$datos." No pagados=".$Npagado;			
	}

	if ($Ppagado == 1)
	{
		$datos=$datos." Parcialmente pagados=".$Ppagado;		
	}

	if ($cancelado == 1)
	{
		$datos=$datos." Cancelados=".$cancelado;		
	}	
	insertAuditoria($informacion,$datos,$_SESSION['id_usuario'],$_SESSION['direccion_ip'],$_SESSION['direccion_mac']);	
	
    mysqli_close($conexion);

	$objPHPExcel->getActiveSheet()->setTitle('Reporte Adeudos');
	$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_Adeudos_Cobro_".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;
?>