Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature - Inscripciones - Añadir QR en cada inscripción #462

Open
wants to merge 5 commits into
base: develop
Choose a base branch
from

Conversation

ManuSinergiaCRM
Copy link
Collaborator

@ManuSinergiaCRM ManuSinergiaCRM commented Oct 24, 2024


Primera propuesta

Commits

Esta propuesta fue implementada en los dos primeros commits del PR. En el tercero se deshicieron los cambios

Descripción

Este PR crea un campo en el módulo de inscripciones donde se almacenará la ruta a un QR creado a través de la librería TCPDF2DBarcode incluida en SuiteCRM.

A falta de confirmar: La URL indicada en el QR es la de la vista de detalle de la propia inscripción, de manera que un empleado de la entidad podrá verificar el estado de la inscripción al leer el QR.

Además, se implementa que en el email que envía el formulario de inscripciones se envíe el QR de manera que la persona inscrita pueda mostrarlo al asistir al evento.

Pruebas

  1. Crear un evento y una inscripción
  2. Comprobar que en la vista de detalle se muestra un campo con el código QR
  3. Crear un formulario de eventos, rellenarlo y enviarlo.
  4. Comprobar que en el email enviado al usuario se muestra el QR

Segunda propuesta

Crear un entrypoint que devuelva un QR de forma dinámica según parámetros recibidos y que se pueda incrustar en una plantilla de correo electrónico o una plantilla de PDF al indicar la ruta del entrypont en el parámetro src de la imagen que incrustemos en la plantila.

Se implementa una solución que consigue el objetivo anterior con las plantillas de correo pero no con las plantillas PDF. Además, al ser redactado si carga el QR pero tras enviarlo por correo electrónico, la imagen del QR se pierde y no llega al receptor.

A tener en cuenta, esta solución no almacena el QR en un fichero de imagen.

Código a sustituir en el entrypoint para que genere el fichero con la imagen y devuelva el path a la imagen

Posibles siguientes pasos

Opción 1. Seguir investigando la solución actual.

  • Imagen a indicar en las plantillas
    <img src="http://localhost:8000/sinergiacrm/index.php?entryPoint=sticGenerateQR&entrypointAction=eventRegistration&id=d5df072c-6b4f-29cd-22a1-670fcf86f233" />;

Opción 2. Almacenando la imagen en un fichero y que el entrypoint devuelva la ruta a la imagen creada

  • Código a indicar en el entrypoint para que devuelva el path

    if (!empty($url)) 
    {
        // Create a folder to save QR codes if it doesn't exist
        $qrFolder = 'custom/uploads/qrcodes/';
        if (!file_exists($qrFolder)) {
            mkdir($qrFolder, 0755, true);
        }
    
        // Path where the QR image will be saved
        $qrImagePath = $qrFolder . $_REQUEST["id"] . '_qrcode.png';
    
        // Create the QR and the image file if it does not exist
        if (!file_exists($qrImagePath)) {
            // Generate the QR code using the internal library
            $qrCode = new TCPDF2DBarcode($url, 'QRCODE,H');
    
            // Save the QR Code image as a PNG file
            $qrImage = $qrCode->getBarcodePngData(6, 6, array(0, 0, 0));
    
            // Create the image file
            file_put_contents($qrImagePath, $qrImage);
        }
    
        // Return path
        $src = $sugar_config['site_url'] . '/' . $qrImagePath;
        // header('Content-Type: image/png');
        echo $src;
    }
    
    
  • Código de imagen a indicar en las plantillas:

    El código de la opción anterior no resuelve la URL indicada en src y no muestra la imagen

    <img src="http://localhost:8000/sinergiacrm/index.php?entryPoint=sticGenerateQR&entrypointAction=eventRegistration&id=d5df072c-6b4f-29cd-22a1-670fcf86f233" />;

    Indicando la URL que devuelve el entrypoint sí se mostraría en la plantilla de correo y llegaría al receptor

Copy link

github-actions bot commented Oct 24, 2024

Actions executed at: 2024-10-24 14:11:41.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Nueva funcionalidad - Inscripciones - Añadir QR para cada inscripción
1 participant