<?php  
	include "conexion.php";
	include "insertar_log.php";
	$id_aplicacion = "0";
	$id_bomba = $_GET['id_bomba'];
	if(isset($_GET['getnet'])) {
	    $getnet_ticket = $_GET['getnet'];
	} else {
	    $getnet_ticket = false;
	}
	//$id_bomba = "3";
	$id_venta=0;
	$id_transaccion =0;
	$formato_ticket_gn = 0;
	
	if ($getnet_ticket) {
		$formato_ticket_gn = 4;
	} else {
		$formato_ticket_gn = 1;
	}


	$datos = " Ingresa a obtener_ticket_transaccion de la bomba= ".$id_bomba;	
	insertarLog($datos,$id_aplicacion);

	$control =0;
	$array_fp= array();

	$sql = "select ";
	$sql .= "max(id_venta) id_venta ";
	$sql .= "from ";
	$sql .= "ventas ";
	$sql .= "where ";
	$sql .= "id_bomba=".$id_bomba;

	$resultado = $conexion->query($sql);

    if(!$resultado) 
    {
    	$datos = " Error al consultar venta id_bomba= ".$id_bomba;	
		insertarLog($datos,$id_aplicacion);
        echo response(1,"Error al consultar venta","");
        return;
    }
	
    while ($row=$resultado->fetch_assoc())
    {
    	$id_venta = $row['id_venta'];
        
    }

    $resultado->free();

    if($id_venta==0)
    {
    	$datos = " No existe venta.";	
		insertarLog($datos,$id_aplicacion);
    	response(1,"No existe venta","");
    	return;
    }

    $sql = "select ";
	$sql .= "t.id_transaccion ";
	$sql .= "from ";
	$sql .= "transacciones t ";
	$sql .= "left join transacciones_detalle td on (t.id_transaccion=td.id_transaccion) ";
	$sql .= "where ";
	$sql .= "t.estatus=1 ";
	$sql .= "and id_venta=".$id_venta;

	$resultado = $conexion->query($sql);

    if(!$resultado) 
    {
    	$datos = " Error al consultar venta id_venta= ".$id_venta;	
		insertarLog($datos,$id_aplicacion);
        echo response(1,"Error al consultar venta","");
        return;
    }
	
    while ($row=$resultado->fetch_assoc())
    {
    	$id_transaccion = $row['id_transaccion'];
        
    }

    $resultado->free();

    if($id_transaccion==0)
    {
    	$datos = " No existe transaccion ";	
		insertarLog($datos,$id_aplicacion);
    	response(1,"No existe transaccion","");
    	return;
    }

    $datos = " Se obtuvo id_transaccion= ".$id_transaccion;	
		insertarLog($datos,$id_aplicacion);

	$array =   array();

	$sql = "select ";
	$sql .= "e.id_estacion, ";
	$sql .= "e.nombre_comercial, ";
	$sql .= "cat.descripcion as tipo,";
	$sql .= "e.rfc,";
	$sql .= "e.numeroCRE ";
	$sql .= "from ";
	$sql .= "estacion e ";
	$sql .= "left join cat_tipo_estacion cat on e.tipo=cat.tipo ";

	$sentencia = $conexion->prepare($sql);

	$sentencia->execute();

	$resultado = $sentencia->get_result();

	if($fila = $resultado->fetch_assoc())
	{
		$estacion= $fila;
	}

	$venta_ticket["estacion"]=$estacion;

	$sentencia->close();

	$sql = "select ";
	$sql .= "t.id_transaccion, ";
	$sql .= "t.id_cliente, ";
	$sql .= "c.razon_social, ";
	$sql .= "if(c.tipo=1,'DÉBITO',if(c.tipo=2,'CRÉDITO',if(c.tipo=100,'CONSIGNACIÓN','CONTADO'))) tipo_cliente, ";
	$sql .= "ifnull(t.impreso,0) impreso,";
	$sql .= "ifnull(t.forma_pago,'Por definir') forma_pago, ";
	$sql .= "abs(t.monto) monto, ";
	$sql .= "t.id_vehiculo,";
	$sql .= "ifnull(v.placa,'') placa,";
	$sql .= "ifnull(v.modelo,'') modelo,";
	$sql .= "ifnull(v.numero_economico,'') numero_economico,";
	$sql .= "ifnull(v.conductor,'') conductor,";
	$sql .= "ifnull(v.id_tag,'') id_tag,";
	$sql .= "t.aux_1 referencia, ";
	$sql .= "t.odometro, ";
	$sql .= "t.odometro_diferencia, ";
	$sql .= "ifnull(t.forma_pago,'99') forma_pago, ";
	$sql .= "t.banco, ";
	$sql .= "t.cuenta, ";
	$sql .= "ifnull(t.id_transaccion_emp_rem,0) id_transaccion_emp_rem, ";
	$sql .= "ifnull(t.id_transaccion_emp_rem2,0) id_transaccion_emp_rem2, ";
	$sql .= "c.muestra_saldo_ticket, ";
	$sql .= "c.saldo, ";
	$sql .= "t.id_chofer, ";
	$sql .= "vc.nombre ";
	$sql .= "from ";
	$sql .= "transacciones t ";
	$sql .= "left join clientes c on (c.id_cliente = t.id_cliente) ";
	$sql .= "left join vehiculos v on (v.id_vehiculo=t.id_vehiculo) ";
	$sql .= "left join choferes vc on (vc.id_chofer=t.id_chofer) ";
	$sql .= "where ";
	$sql .= "t.id_transaccion = ".$id_transaccion;


	$sentencia = $conexion->prepare($sql);

	$sentencia->execute();

	$resultado = $sentencia->get_result();

	if($fila = $resultado->fetch_assoc())
	{
		$transaccion= $fila;
	}

	$venta_ticket["transaccion"]=$transaccion;

	$sentencia->close();

	$forma_pago = $venta_ticket["transaccion"]["forma_pago"];

	$sql = "select ";
	$sql .= "descripcion ";
	$sql .= "from ";
	$sql .= "cat_formapago ";
	$sql .= "where ";
	$sql .= "id='".$forma_pago."' ";
	

	$sentencia = $conexion->prepare($sql);

	$sentencia->execute();

	$resultado = $sentencia->get_result();

	if($fila = $resultado->fetch_assoc())
	{
		$forma_pago = $fila["descripcion"];
	}

	$venta_ticket["transaccion"]["forma_pago"] = $forma_pago;



	$sentencia->close();

	if($venta_ticket["transaccion"]["id_transaccion_emp_rem"]!="0")
	{
		$nombre_er="";

		$sql = "select ";
		$sql .= "er.nombre ";
		$sql .= "from ";
		$sql .= "transacciones_emp_rem t ";
		$sql .= "left join empresas_reembolso er on (t.id_empresa_reembolso=er.id_empresa_reembolso) ";
		$sql .= "where ";
		$sql .= "t.id_transaccion=".$venta_ticket["transaccion"]["id_transaccion_emp_rem"];


		$sentencia = $conexion->prepare($sql);

		$sentencia->execute();

		$resultado = $sentencia->get_result();

		if($fila = $resultado->fetch_assoc())
		{
			$nombre_er = $fila["nombre"];
		}

		$venta_ticket["transaccion"]["nombre_empresa_reembolso"] = $nombre_er;
		

	}
	else
	{
		$venta_ticket["transaccion"]["nombre_empresa_reembolso"] = "";
	}

	$id_pg=0;
	$sql = "select ";
	$sql .= "id_cliente ";
	$sql .= "from ";
	$sql .= "clientes ";
	$sql .= "where ";
	$sql .= "publico_general=1";

	$sentencia = $conexion->prepare($sql);

	$sentencia->execute();

	$resultado = $sentencia->get_result();

	if($fila = $resultado->fetch_assoc())
	{
		$id_pg = $fila["id_cliente"];
	}

	$venta_ticket["transaccion"]["id_pg"] = $id_pg;


	$sql = "select ";
	$sql .= "date_format(fecha_venta,'%Y/%m/%d %H:%i:%s') fecha_venta, ";
	$sql .= "date_format(now(),'%Y/%m/%d %H:%i:%s') fecha_actual, ";
	$sql .= "id_turno,";
	$sql .= "id_isla, ";
	$sql .= "id_bomba, ";
	$sql .= "id_posicion, ";
	$sql .= "monto, ";
	$sql .= "id_venta ";
	$sql .= "from ";
	$sql .= "ventas ";
	$sql .= "where ";
	$sql .= "id_venta = ".$id_venta;

	$sentencia = $conexion->prepare($sql);

	$sentencia->execute();

	$resultado = $sentencia->get_result();

	$hoy = date("Y/m/d H:i:s");

	$venta['fecha_venta']=$hoy;
	$venta['fecha_actual']="";
	$venta['id_turno']=0;
	$venta['id_isla']=0;
	$venta['id_bomba']=0;
	$venta['id_posicion']=0;
	$venta['id_venta']=0;
	if($fila = $resultado->fetch_assoc())
	{
		$venta= $fila;
	}

	$venta_ticket["venta"]=$venta;

	$sentencia->close();


	/////FORMAS DE PAGO

	$sql = "select ";
	$sql .= "forma_pago, ";
	$sql .= "monto, ";
	$sql .= "ifnull(banco,'') banco, ";
	$sql .= "ifnull(cuenta,'') cuenta, ";
	$sql .= "id_transaccion_emp_rem, ";
	$sql .= "aid, ";
	$sql .= "autorizacion, ";
	$sql .= "card_brand, ";
	$sql .= "referencia, ";
	$sql .= "arq ";
	$sql .= "from ";
	$sql .= "transacciones_forma_pago_detalle ";
	$sql .= "where ";
	$sql .= "id_transaccion = ".$id_transaccion;
	$sql .= " and estado = 0 ";
	$sql .= " order by monto desc ";

	$sentencia = $conexion->prepare($sql);

	$sentencia->execute();

	$resultado = $sentencia->get_result();
	$cont=0;

	while($fila = $resultado->fetch_assoc())
	{
		$lista_fp['forma_pago'] = $fila['forma_pago'];
		$lista_fp['monto'] = $fila['monto'];
		$lista_fp['banco'] = $fila['banco'];
		$lista_fp['cuenta'] = $fila['cuenta'];
		
		$lista_fp['aid'] = $fila['aid'];
		$lista_fp['autorizacion'] = $fila['autorizacion'];
		$lista_fp['card_brand'] = $fila['card_brand'];
		$lista_fp['arq'] = $fila['arq'];
		$lista_fp['referencia'] = $fila['referencia'];

		if($fila['id_transaccion_emp_rem']!=0)
		{
			$sql2 = "select ";
			$sql2 .= "er.nombre ";
			$sql2 .= "from ";
			$sql2 .= "transacciones_emp_rem ter ";
			$sql2 .= "left join empresas_reembolso er on er.id_empresa_reembolso=ter.id_empresa_reembolso ";
			$sql2 .= "where ";
			$sql2 .= "ter.id_transaccion= ".$fila['id_transaccion_emp_rem'];

			$sentencia2 = $conexion->prepare($sql2);

			$sentencia2->execute();

			$resultado2 = $sentencia2->get_result();			

			while($fila2 = $resultado2->fetch_assoc())
			{
				$lista_fp['emp_rem'] = $fila2['nombre'];
			}
			$sentencia2->close();
		}else{
			$lista_fp['emp_rem'] ="";
		}

		
		$array_fp[$cont] = $lista_fp;
		$cont++;
	}

	$venta_ticket["formas_pago_list"]=$array_fp;

	$sentencia->close();

////////////////

	$sql = "select ";
	$sql .= "p.id_producto, ";
	$sql .= "p.nombre, ";
	$sql .= "td.volumen,";
	$sql .= "td.precio, ";
	$sql .= "td.monto, ";
	$sql .= "p.clave_unidad ";
	$sql .= "from ";
	$sql .= "transacciones_detalle td ";
	$sql .= "left join productos p on p.id_producto=td.id_producto ";
	$sql .= "where ";
	$sql .= "td.id_transaccion = ".$id_transaccion;

	$sentencia = $conexion->prepare($sql);

	$sentencia->execute();

	$resultado = $sentencia->get_result();
	$cont=0;

	while($fila = $resultado->fetch_assoc())
	{
		$detalle['id_producto'] = $fila['id_producto'];
		$detalle['nombre'] = $fila['nombre'];
		$detalle['volumen'] = $fila['volumen'];
		$detalle['precio'] = $fila['precio'];
		$detalle['monto'] = $fila['monto'];
		$detalle['clave_unidad'] = $fila['clave_unidad'];
		$array[$cont] = $detalle;
		$cont++;
	}

	$venta_ticket["detalles"]=$array;

	$sentencia->close();

	$subtotal=0;
	$iva=0;
	$tot =0;


	for($i=0;$i<sizeof($array);$i++)
	{
		$sel_prod_id_producto = $array[$i]["id_producto"];
		$sel_prod_cantidad = $array[$i]["volumen"];
		$sel_prod_total = $array[$i]["monto"];
		$sel_prod_precio_con_iva = $array[$i]["precio"];
		$tot = $tot + $array[$i]["monto"];


		$sql = "select ";
        $sql .= "ieps, ";
        $sql .= "clase, ";
        $sql .= "iva ";
        $sql .= "from ";
        $sql .= "productos ";
        $sql .= "where ";
        $sql .= "id_producto=" . $sel_prod_id_producto;

        $sentencia = $conexion->prepare($sql);

		$sentencia->execute();

		$resultado = $sentencia->get_result();

		$sel_prod_clase = 0;
        $sel_prod_factor_iva = 0;

        $sel_prod_precio_sin_ieps = 0;
        $sel_prod_precio_sin_iva = 0;
        $sel_prod_subtotal = 0;
        $sel_prod_iva = 0;
        $sel_prod_ieps = 0;


		while($fila = $resultado->fetch_assoc())
		{
			$sel_prod_factor_ieps = $fila["ieps"];
            $sel_prod_clase = $fila["clase"];
            $sel_prod_factor_iva = $fila["iva"];
        }

        if ($sel_prod_clase != 1) $sel_prod_factor_ieps = 0;

        $sel_prod_cantidad = $sel_prod_total / $sel_prod_precio_con_iva;

        $sel_prod_precio_sin_ieps = ($sel_prod_precio_con_iva - $sel_prod_factor_ieps) / (1.0 + $sel_prod_factor_iva);
        $sel_prod_precio_sin_iva = $sel_prod_precio_sin_ieps + $sel_prod_factor_ieps;


        $sel_prod_subtotal = $sel_prod_cantidad * $sel_prod_precio_sin_iva;
        $sel_prod_iva = $sel_prod_cantidad * $sel_prod_precio_sin_ieps * $sel_prod_factor_iva;
        $sel_prod_ieps = $sel_prod_clase == 1 && $sel_prod_factor_iva > 0 ? $sel_prod_cantidad * $sel_prod_factor_ieps : 0;

        $subtotal += $sel_prod_subtotal;
        $iva += $sel_prod_iva;
		

		$sentencia->close();
	}

	$totales["iva"]= round($iva,2);
	$totales["subtotal"] =round($subtotal,2); 
	$totales["total"] = $tot;

	$venta_ticket["totales"]=$totales;

	$array=array();

	$sql = "select ";
	$sql .= "id_linea,";
	$sql .= "linea ";
	$sql .= "from ";
	$sql .= "ticket_formato ";
	$sql .= "where ";
	$sql .= "id_tipo=1 ";
	$sql .= "and id_formato=".$formato_ticket_gn." ";
	$sql .= "and ";
	$sql .= "convert(id_linea,SIGNED)<9 ";
	$sql .= "and habilitado=1 ";
	$sql .= "order by convert(id_linea,SIGNED) ";

	$sentencia = $conexion->prepare($sql);

	$sentencia->execute();

	$resultado = $sentencia->get_result();
	$cont=0;

	while($fila = $resultado->fetch_assoc())
	{
		$linea['id_linea'] = $fila['id_linea'];
		$linea['linea'] = $fila['linea'];
		$array[$cont] = $linea;
		$cont++;
	}

	$venta_ticket["encabezado"]=$array;

	$sentencia->close();

	$array=array();

	$sql = "select ";
	$sql .= "id_linea,";
	$sql .= "linea ";
	$sql .= "from ";
	$sql .= "ticket_formato ";
	$sql .= "where ";
	$sql .= "id_tipo=1 ";
	$sql .= "and id_formato=".$formato_ticket_gn." "; 
	$sql .= "and ";
	$sql .= "convert(id_linea,SIGNED)>8 ";
	$sql .= "and habilitado=1 ";
	$sql .= "order by convert(id_linea,SIGNED) ";

	$sentencia = $conexion->prepare($sql);

	$sentencia->execute();

	$resultado = $sentencia->get_result();
	$cont=0;

	while($fila = $resultado->fetch_assoc())
	{
		$linea['id_linea'] = $fila['id_linea'];
		$linea['linea'] = $fila['linea'];
		$array[$cont] = $linea;
		$cont++;
	}

	$venta_ticket["pie"]=$array;

	$sentencia->close();

	$datos = " Termina proceso obtener_ticket_transaccion";	
		insertarLog($datos,$id_aplicacion);	
	echo response(0,"",json_encode($venta_ticket));


	function response($estatus,$estatus_mensaje,$respuesta){
		header("HTTP/1.1".$estatus);

		$response["estatus"]=$estatus;
		$response["estatus_mensaje"]=$estatus_mensaje;
		$response["respuesta"]=$respuesta;
		
		$json_response = json_encode($response, JSON_UNESCAPED_UNICODE);

		echo $json_response;

	}
?>