PHP - ¿Como imprimo el Codigo QR?

 
Vista:
sin imagen de perfil

¿Como imprimo el Codigo QR?

Publicado por Georgina (1 intervención) el 15/04/2022 18:55:38
Saludos a todos!!

Estoy desarrollando un sistema de facturación y digamos que llevo el 85% desarrollado, pero tengo un temita con el Codigo QR, ya que el mismo se me esta generando y guarda el PNG en el directorio y todo, pero quiero mostrarlo en la factura que se genera al momento de procesar una venta, he recolectado varias respuestas de internet y he tratado de hacerlo, pero solo me genera el QR y lo aloja en el directorio, mas no me lo muestra en el ticket de facturación (que es como debe de ser) No se si ustedes me pueden dar una mano, les adjunto el codigo con su respectiva explicación para que nos vayamos entendiendo que es lo que se quiere. Estoy desarrollando en jQuery, HTML, CSS, PHP

GenerarQR.php
<?php


//*Conexion a base de datos *//

$conexion = mysqli_connect("localhost", "root", "", "ventas");

$codigosqr = mysqli_query($conexion, "SELECT nofactura, fecha, usuario, codcliente, totalfactura, estatus FROM factura ORDER BY nofactura DESC LIMIT 1");

$response = array();

//*Generando el codigo QR *//
require 'phpqrcode/qrlib.php';

$directorio = '';

//*Si no existe la carpeta *//

$filename = $directorio.'test.png';


//*El bucle y el envio del correo *//

while ($row = mysqli_fetch_array($codigosqr))
{

$filename = $directorio. "".$row['nofactura'].'.png';

$archivo = $filename;

$contenido = "No° Factura: {$row['nofactura']}, Fecha de Emisión: {$row['fecha']}, Vendedor/a:{$row['usuario']}, Su Codigo Cliente: {$row['codcliente']}, Total: {$row['totalfactura']}, Estatus de la Factura: {$row['estatus']}";

QRCode::png($contenido, $filename);

echo '<img src ="'.$directorio.basename($filename).'"/><hr/>';

echo $archivo;

$response = array();



}

?>

Este es el codigo para la generación del QR, el cual esta funcionando perfecto, el genera y almacena los datos de la última factura que se proceso, campos como el número de la factura, la fecha de emisión, quien es el o la vendedora, codigo del cliente, entre otros campos, es lo que guarda dicho QR. Por esa parte, vamos bien, si me lo genera y almacena tal y como quiero, pero...

Factura_Plantilla.php

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Factura</title>
<link rel="stylesheet" href="css/factura.css">
</head>
<body>
<img class="anulada" src="img/anulado.png" alt="Anulada">
<div id="page_pdf">
<table id="factura_head">
<tr>
<td class="logo_factura">
<div>
<img src="img/logo.png">
</div>


<div class = "CodigoQR">

<img src="../test.png">

</div>




</td>
<td class="info_empresa">
<div>
<span class="h2">SISTEMA VENTAS XXXXXXXXX</span>
<p>XXXXXXX</p>
<p>Teléfono: XXXXXXXX</p>
<p>Email: XXXXX</p>
</div>
</td>
<td class="info_factura">
<div class="round">
<span class="h3">XXXXXX</span>
<p>No. Factura: <strong>XXXXXX</strong></p>
<p>Fecha: XXXXXX</p>
<p>Hora: XXXX</p>
<p>Vendedor: XXXXXX</p>
</div>
</td>
</tr>
</table>
<table id="factura_cliente">
<tr>
<td class="info_cliente">
<div class="round">
<span class="h3">Cliente</span>
<table class="datos_cliente">
<tr>
<td><label>Identificación:</label><p>xXXXXXXXXX</p></td>
<td><label>Teléfono:</label>xXXXXXXXXX<p></p></td>
</tr>
<tr>
<td><label>Nombre:</label> <p>xXXXXXXXXX</p></td>
<td><label>Dirección:</label> xXXXXXXXXX<p></p></td>
</tr>
</table>
</div>
</td>

</tr>
</table>

<table id="factura_detalle">
<thead>
<tr>
<th width="50px">Cant.</th>
<th class="textleft">Descripción</th>
<th class="textright" width="150px">Precio Unitario.</th>
<th class="textright" width="150px"> Precio Total</th>
</tr>
</thead>
<tbody id="detalle_productos">
<tr>
<td class="textcenter">1</td>
<td>Plancha</td>
<td class="textright">516.67</td>
<td class="textright">516.67</td>
</tr>
<tr>
<td class="textcenter">1</td>
<td>Plancha</td>
<td class="textright">516.67</td>
<td class="textright">516.67</td>
</tr>
<tr>
<td class="textcenter">1</td>
<td>Plancha</td>
<td class="textright">516.67</td>
<td class="textright">516.67</td>
</tr>
<tr>
<td class="textcenter">1</td>
<td>Plancha</td>
<td class="textright">516.67</td>
<td class="textright">516.67</td>
</tr>
<tr>
<td class="textcenter">1</td>
<td>Plancha</td>
<td class="textright">516.67</td>
<td class="textright">516.67</td>
</tr>
<tr>
<td class="textcenter">1</td>
<td>Plancha</td>
<td class="textright">516.67</td>
<td class="textright">516.67</td>
</tr>
</tbody>
<tfoot id="detalle_totales">
<tr>
<td colspan="3" class="textright"><span>SUBTOTAL Q.</span></td>
<td class="textright"><span>516.67</span></td>
</tr>
<tr>
<td colspan="3" class="textright"><span>IVA (12%)</span></td>
<td class="textright"><span>516.67</span></td>
</tr>
<tr>
<td colspan="3" class="textright"><span>TOTAL Q.</span></td>
<td class="textright"><span>516.67</span></td>
</tr>
</tfoot>
</table>
<div>
<p class="nota">Si usted tiene preguntas sobre esta factura, <br>pongase en contacto con nombre, teléfono y Email</p>
<h4 class="label_gracias">¡Gracias por su compra!</h4>
</div>

</div>

</body>
</html>

Esta es la plantilla para mi factura, al comenzar el codigo como pueden ver, estoy declarando un DIV con la clase CodigoQR para que lo muestre en la factura según el correlactivo de la venta.

<div class = "CodigoQR">

<img src="../test.png">

</div>

Me muestra el PNG que tengo de prueba, más no el QR generado segun el correlativo de la factura al momento de darle en el boton procesar venta, cuando genero la venta y le doy mostrar factura, no aparece ningun QR.

function.js

function GenerarQR(nofactura)
{

$("#btn_facturar_venta").submit(function(){
$.ajax({
url:'GenerarQR.php',
type:'POST',
data: {formData:$("#content").val(), ecc:$("#ecc").val(), size:$("#size").val()},
success: function(response) {
$(".CodigoQR").html(response);
},
});
});


}


Este es el codigo que declare en JavaScript el cual llamo en la clase de procesar factura para que se genere tanto el PDF como el QR


//PROCESAR LA FACTURA
$('#btn_facturar_venta').click(function(e)
{

e.preventDefault();

var rows = $('#detalle_venta tr').length;
if(rows > 0)
{


var action = 'procesarVenta';
var codcliente = $('#idcliente').val();

$.ajax({

url: 'ajax.php',
type: "POST",
async: true,
data: {action: action, codcliente: codcliente},

success: function(response)
{

if(response != 'error')
{
var info = JSON.parse(response);
console.log(info);
GenerarQR();
generarPDF(info.codcliente, info.nofactura);
location.reload();


}


Espero que puedan ayudarme y cualquier ayuda o consejo que me den, estare muy agradecida!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Ivan

¿Como imprimo el Codigo QR?

Publicado por Ivan (118 intervenciones) el 19/04/2022 18:56:25
Hola,

la verdad que no me he estudiado todo el código al detalle porque es muy largo pero intuyo por donde pueden ir los tiros:

- Tu generador GenerarQR.php por lo que veo guarda el QR en disco y te muestra un echo de los datos
- Luego llamas a GenerarQR.php esperando diversos resultados como una ruta de la imagen QR o una respuesta JSON

Creo que la solución puede ser llamar a tu archivo GenerarQR.php con parámetros y que genere una salida u otra en función de los datos que necesites en cada llamada.

Un saludo!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar