52 Ticket de Venta Térmico en Laravel Formato 80mm, Número a Letras y CódigoQR🧾🖨️Sistema de Farmacia

Duración: 10 min
Módulo: Módulo Ventas Lección 8 de 11

¡Contenido Exclusivo!

Adquiere este curso para tener acceso inmediato a esta y a **todas las lecciones Premium**.

Inscribirse Ahora por $10.00 Acceso instantáneo de por vida y código fuente incluido.

Descripción

🚀 Lección 52: Ticket de Venta Térmico en Laravel: Formato 80mm, Número a Letras y Código QR

En este capítulo expandimos las capacidades de facturación del Sistema para Farmacia adaptando el flujo de salida de comprobantes a los estándares del comercio masivo. Desarrollamos la impresión en formato Ticket de 80mm optimizado para ticketeadoras térmicas continuas, e implementamos un formateador dinámico para convertir montos numéricos a texto literal.

🎯 El Objetivo Central

Crear la ruta y el método imprimirTicket en el backend para renderizar una plantilla HTML/CSS compacta con dompdf, inyectando dimensiones personalizadas en milímetros, conversión monetaria a letras y persistencia de código QR.

🛣️ Lógica del Controlador y Dimensionamiento del Ticket (80mm)

  • La Ruta Operativa: Definimos el endpoint que recibe la ID de la venta y gatilla la función imprimirTicket.
  • Configuración del Lienzo Térmico: A diferencia del formato carta convencional (leather), en el controlador parametrizamos las dimensiones explícitas basadas en puntos/milímetros para impresoras de punto de venta (POS). Establecemos un ancho fijo de 80mm y configuramos el largo de página de forma dinámica.
  • Flujo de Corte Continuo: La plantilla está maquetada para expandirse verticalmente según el volumen de medicamentos comprados. Al enviarse a la impresora térmica, el hardware omitirá los saltos de página rígidos y ejecutará la guillotina automática (autocut) exactamente al llegar al pie de página (footer), evitando el desperdicio de papel.

🔤 Formateador de Moneda: Conversión de Números a Letras

Elevamos la formalidad fiscal del comprobante incorporando un helper de conversión literal:

  • El sistema captura el total neto en formato decimal (ej: 119.85) y genera automáticamente la cadena de texto correspondiente para la impresión: "CIENTO DIECINUEVE 85/100 BOLIVIANOS" (o la divisa configurada de manera global en el módulo de ajustes).

🧾 Diseño de la Plantilla POS Completa

La vista compacta de 80mm concentra la información esencial de auditoría de forma estilizada:

  • Encabezado: Datos de la farmacia, NIT y sucursal obtenidos de las variables globales.
  • Metadata de Atención: Identificación clara del cliente, caja de origen y nombre del cajero/empleado que despachó.
  • Tabla de Renglones: Cantidad, nombre comercial/genérico abreviado y subtotal por ítem.
  • Bloque de Cierre: Código QR dinámico de la transacción, hora exacta de impresión y mensaje de cortesía corporativo.

Al concluir este capítulo, los estudiantes sabrán cómo diseñar interfaces para hardware POS y controlar flujos de impresión continua en Laravel. ¡Con esto cerramos de forma impecable el bloque de facturación física!