<?php
	session_start();

	include "conexion.php";
	include 'mysql_Agregar_auditoria.php';
	//include "mysql_Valida_permiso.php";

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

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

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

	$id_cliente = $_SESSION['id_cliente'];

	$activa = $_GET['activa'];
	$cancelada = $_GET['cancelada'];
	$pendiente = $_GET['pendiente'];

	$fecha_contable = $_GET['fecha_contable'];

	$fecha_contable_inicial = $_GET['fecha_contable_inicial'];
	$fecha_contable_final = $_GET['fecha_contable_final'];

	$fecha_registro = $_GET['fecha_registro'];

	$fecha_registro_inicial = $_GET['fecha_registro_inicial'];
	$fecha_registro_final = $_GET['fecha_registro_final'];

	$serie = $_GET['serie'];
	$serie_valor = $_GET['serie_valor'];

	$folio = $_GET['folio'];
	$folio_valor = $_GET['folio_valor'];

	$limit = $_GET['limit'];

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

	$sql = "SELECT ";
	$sql .= "id_cliente, ";
	$sql .= "razon_social, ";
	$sql .= "nombre_comercial ";
	$sql .= "FROM ";
	$sql .= "clientes ";
	$sql .= "WHERE ";
	$sql .= "id_cliente = " . $id_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();

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

	if ($fecha_contable != 0)
	{
		$fecha_contable_inicio = str_replace( "-", '', $fecha_contable_inicial);
		$turno_inicio = $fecha_contable_inicio . "00";

		$fecha_contable_fin = str_replace( "-", '', $fecha_contable_final);
		$turno_fin = $fecha_contable_fin . "06";		
	}
	if ($fecha_registro != 0)
	{
		$fecha_registro_inicio = str_replace( "-", '', $fecha_registro_inicial);
		$turno_inicio = $fecha_registro_inicio . "00";

		$fecha_registro_fin = str_replace( "-", '', $fecha_registro_final);
		$turno_fin = $fecha_registro_fin . "06";		
	}

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

	class PDF extends FPDF
	{
		function Header()
		{			
			$this->SetFont('Arial','B',14);
			$this->Cell(210, 10, 'Reporte Facturas');
			$this->SetFont('Arial', '', 10);
			date_default_timezone_set('America/Mazatlan');
			$time = time();	
			$this->Cell(130, 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'] . '-' . $serie);
			$this->Ln();	
			$this->Ln();
			$this->SetFont('Arial', 'B', 10);
			$this->Cell(10, 5, 'Serie', 0, 0, 'L');
			$this->Cell(15, 5, 'Folio', 0, 0, 'L');
			$this->Cell(15, 5, 'Tipo', 0, 0, 'L');
			$this->Cell(45, 5, 'Descripcion', 0, 0, 'L');			
			$this->Cell(35, 5, 'Razon Social', 0, 0, 'L');
			$this->Cell(25, 5, 'RFC', 0, 0, 'L');
			$this->Cell(20, 5, 'Estado', 0, 0, 'L');	
			$this->Cell(20, 5, 'Subtotal', 0, 0, 'R');			
			$this->Cell(20, 5, 'IVA', 0, 0, 'R');			
			$this->Cell(25, 5, 'Total', 0, 0, 'R');			
			$this->Cell(30, 5, 'Fecha', 0, 0, 'L');						
		}
	}
	
	$pdf = new PDF('Landscape','mm','Letter');
	$pdf->AliasNbPages();
	$pdf->SetTitle('Reporte Estado de Cuenta');
	$pdf->AddPage();		

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

	$sql = "select distinct ";
	$sql .= "f.id_factura, ";
	$sql .= "f.id_receptor, ";
	$sql .= "f.serie, ";
	$sql .= "f.folio, ";
	$sql .= "f.fecha_expedicion, ";
	$sql .= "f.e_razon_social, ";
	$sql .= "f.e_rfc, ";
	$sql .= "f.sub_total, ";
	$sql .= "f.total, ";
	$sql .= "f.estado, ";
	$sql .= "f.iva, ";
	$sql .= "f.fecha_timbrado, ";
	$sql .= "f.estatus_proceso, ";
	$sql .= "f.descripcion_estatus, ";
	$sql .= "f.factura_terminada, ";
	$sql .= "f.id_emisor, ";
	$sql .= "f2.version, ";
	$sql .= "f.comprobante_tipo, ";
	$sql .= "e.id_estacion ";
	$sql .= "from ";
	$sql .= "facturas f ";
	$sql .= "left join facturas2 f2 on (f2.id_factura = f.id_factura) ";
	$sql .= "left join estacion e on (e.id_estacion = f.id_emisor) ";
	$sql .= "where ";
	$sql .= "f.id_factura <> 0 ";
	$sql .= "and f.id_receptor = " . $id_cliente . " ";

	$opc_estado = $activa . '-' . $cancelada . '-' . $pendiente;

	switch ($opc_estado) 
	{
		case "0-0-0":
			$sql .= " ";
			break;
		case "0-0-1":
			$sql .= " and f.factura_terminada = 0 ";
			break;
		case "0-1-0":
			$sql .= " and f.estado = 0 ";
			break;
		case "0-1-1":
			$sql .= " and (f.estado = 0 or f.factura_terminada = 0 ) ";
			break;
		case "1-0-0":
			$sql .= " and f.estado = 1 ";
			break;
		case "1-0-1":
			$sql .= " and (f.estado = 1 or f.factura_terminada = 0 ) ";
			break;
		case "1-1-0":
			$sql .= " and (f.estado = 1 or f.estado = 0 ) ";
			break;
		case "1-1-1":
			$sql .= " and (f.estado = 1 or f.estado = 0 or f.factura_terminada = 0 ) ";
			break;		    
	}

	if ($fecha_registro != 0)
	{
		$sql .= "and f.fecha_expedicion >= '" . $fecha_inicial . " 00:00:00' and f.fecha_expedicion <= '" . $fecha_final . " 23:59:59' ";
	}

	if ($fecha_contable != 0)
	{
		$sql .= "and f.id_turno >= " . $turno_inicio . " and f.id_turno <= " . $turno_fin . " ";
	}

	if ($serie != 0)
	{
		$sql .= "and f.serie = '" . $serie_valor . "' ";
	}

	if ($folio != 0)
	{
		$sql .= "and f.folio = " . $folio_valor . " ";
	}

	$sql .= "order by f.id_factura desc ";

	if ($limit != 0)
	{
		$sql .= "limit 500 ";
	}

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

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

	$sub_total_f = 0;
	$iva_f = 0;
	$total_f = 0;
	$t_activas = 0;
	$t_canceladas = 0;
	$t_pendientas = 0;

	while ($fila = $resultado->fetch_assoc())
	{
		if ($fila['estado'] == 0)
		{
			$estado = 'Cancelada';
		}
		
		if ($fila['estado'] == 1)
		{
			$estado = 'Activa';
		}

		$date = date_create($fila['fecha_expedicion']);
		$fechaMuestra =  date_format($date, 'Y-m-d H:i:s');
		$subtotal_Muestra = number_format($fila['sub_total'], 2, '.', '');
		$total_Muestra = number_format($fila['total'], 2, '.', '');
		$iva_Muestra = number_format($fila['iva'], 2, '.', '');
		$cadena_tipo = "";

		if ($fila['comprobante_tipo'] == "I" || $fila['comprobante_tipo'] == "ingreso")
		{
			$cadena_tipo = "Ingreso";
		}
				
		if ($fila['comprobante_tipo'] == "E" || $fila['comprobante_tipo'] == "egreso")
		{
			$cadena_tipo = "Egreso";
		}
			
		if ($fila['comprobante_tipo'] == "P" || $fila['comprobante_tipo'] == "pago")
		{
			$cadena_tipo = "Pago";
		}

		$length = 30;    		

		$stringDescripcion = substr(($fila['descripcion_estatus']), 0, $length);

		if (strlen(($fila['descripcion_estatus'])) > $length)
		{
			$stringDescripcion .= ' ...';
		}

		$length = 15;  

		$stringRS = substr(($fila['e_razon_social']), 0, $length);

		if (strlen(($fila['e_razon_social'])) > $length)
		{
			$stringRS .= ' ...';
		}

		$length = 14;    

		$stringRFC = substr(($fila['e_rfc']), 0, $length);

		if (strlen(($fila['e_rfc'])) > $length)
		{
			$stringRFC .= ' ...';
		}

		$pdf->SetFont('Arial', '', 8);
		$pdf->ln();
		$pdf->Cell(10, 5, $fila['serie'],0,0,'L');
		$pdf->Cell(15, 5, $fila['folio'],0,0,'L');
		$pdf->Cell(15, 5, $cadena_tipo, 0, 0, 'L');
		$pdf->Cell(45, 5, $stringDescripcion, 0, 0, 'L');
		$pdf->Cell(35, 5, $stringRS, 0, 0, 'L');
		$pdf->Cell(25, 5, $stringRFC, 0, 0, 'L');
		$pdf->Cell(20, 5, $estado, 0, 0, 'L');
		$pdf->SetFont('Arial', '', 7.5);

		$fsubtotal_Muestra = number_format($subtotal_Muestra, 2, '.', ',');
		$fiva_Muestra = number_format($iva_Muestra, 2, '.', ',');
		$ftotal_Muestra = number_format($total_Muestra, 2, '.', ',');

		$pdf->Cell(20, 5, $fsubtotal_Muestra, 0, 0, 'R');
		$pdf->Cell(20, 5, $fiva_Muestra, 0, 0, 'R');
		$pdf->Cell(25, 5, $ftotal_Muestra, 0, 0, 'R');
		$pdf->SetFont('Arial', '', 8);
		$pdf->Cell(30, 5, $fechaMuestra, 0, 0, 'L');
		
		$sub_total_f += $fila['sub_total'];
		$iva_f += $fila['iva'];
		$total_f += $fila['total'];

		if ($estado == "Activa") 
		{
			$t_activas += 1;
		}

		if ($estado == "Cancelada") 
		{
			$t_canceladas += 1;
		}
	}

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

	$fsub_total_f = number_format($sub_total_f, 2, '.', ',');
	$fiva_f = number_format($iva_f, 2, '.', ',');
	$ftotal_f = number_format($total_f, 2, '.', ',');

	$pdf->SetFont('Arial', 'B', 8.5);
	$pdf->ln();
	$pdf->ln();
	$pdf->ln();
	$pdf->Cell(30, 5, 'Total Activas:', 0, 0, 'L');
	$pdf->Cell(15, 5, $t_activas, 0, 0, 'L');
	$pdf->Cell(35, 5, 'Total Canceladas:', 0, 0, 'L');
	$pdf->Cell(72, 5, $t_canceladas, 0, 0, 'L');
	$pdf->Cell(20, 5, 'Totales:', 0, 0, 'L');
	$pdf->ln();
	
	$pdf->Cell(205, 5, 'Subtotal: ' . $fsub_total_f, 0, 0, 'R');
	$pdf->ln();
	$pdf->Cell(205, 5, 'IVA: ' . $fiva_f, 0, 0, 'R');
	$pdf->ln();
	$pdf->Cell(205, 5, 'Total: ' . $ftotal_f, 0, 0, 'R');

	$resultado->free();

	$informacion = 'Genero Reporte Facturas formato PDF ';
	$datos = "Con filtros: ";
	if($fecha1==1){ $datos=$datos." Fecha_contable=".$fecha_inicio1." hasta ".$fecha_fin1;}
	if($fecha1==1){ $datos=$datos." Fecha_Registro=".$fecha_inicio2." hasta ".$fecha_fin2;}
	if($serie==1){  $datos=$datos." Serie=".$id_serie;}
	if($folio==1){  $datos=$datos." Folio=".$id_folio;}
	$datos=$datos." Activa=".$activa." Cancelada=".$cancelada." Reproceso=".$reproceso." limit=".$limit;
	insertAuditoria($informacion,$datos,$_SESSION['id_usuario'],$_SESSION['direccion_ip'],$_SESSION['direccion_mac']);	

	mysqli_close($conexion);

	$pdf->Output();	
?>