Cómo imprimir un ticket
Envía el ticket TPV seleccionado a la cola de salida como `ticket_receipt` para las impresoras de ticket activas de la ubicación. La acción confirma el envío a cola; la impresión física depende del runtime de salida.
En este artículo
Imprimir un ticket en Antylogic no lanza una impresión directa desde la pantalla. La app crea uno o varios `tpv_output_job` pendientes para que el sistema de salida los procese con las impresoras configuradas.
Este flujo está pensado para personal de sala y responsables de TPV que necesitan entregar un comprobante del ticket abierto y revisar después el estado del trabajo en Cola de impresión y KDS.
Antes de empezar
- Trabajar con una sesión autenticada en Marea Gran Via y con un terminal TPV seleccionado.
- Tener abierto o seleccionado un ticket TPV existente de la misma ubicación, como `TPV_TICKET_ID` en el runtime ES.
- Tener permisos que habiliten el botón en la interfaz: `tpv:print` o `tpv:manage`.
- Tener configurada al menos una impresora de tickets activa: `default_ticket_output_device_id` o un `tpv_output_device` activo de tipo `receipt_printer`.
- Para capturas ES, usar el runtime `es-es-es-restaurant-full-v1-es` con Marta Ruiz, `TPV_TERMINAL_ID`, `TPV_STAFF_ID` y `TPV_OUTPUT_DEVICE_ID`.
Instrucciones
- 1.
Abre el detalle del ticket
Entra en el TPV de Marea Gran Via y abre el ticket que quieres imprimir. El flujo documental usa el detalle con `TPV_TICKET_ID`, `TPV_TERMINAL_ID`, `TPV_STAFF_ID` y `sourceTab=floor`.
- 2.
Comprueba que el botón está disponible
La pantalla debe mostrar `Imprimir ticket`. Si falta o está bloqueado, revisa permisos TPV, que haya un ticket seleccionado y que el usuario tenga acceso al servicio del ticket.
- 3.
Envía el ticket a la cola
Pulsa `Imprimir ticket`. La app llama a `POST /api/app/{orgId}/{locationId}/tickets/{ticketId}/print` con `job_kind: "ticket_receipt"`; si el cuerpo o el valor llegan vacíos, el backend usa ese tipo por defecto.
- 4.
Lee la confirmación
En el detalle, una petición correcta muestra `Trabajo de impresión enviado a la cola.`. Ese mensaje confirma el encolado, no una impresión física inmediata.
- 5.
Revisa Cola de impresión y KDS
Desde Más acciones del TPV abre `Cola de impresión y KDS`. Ahí se revisan los `tpv_output_job` pendientes, completados o fallidos vinculados al ticket, servicio, terminal y dispositivo.
Validaciones y límites
- El endpoint solo acepta `POST`; otros métodos devuelven `metodo no permitido`.
- El ticket debe existir y pertenecer a `locationId`; si falta contexto o no coincide, el backend responde como no encontrado.
- `job_kind` se normaliza con trim y lowercase; valores fuera de `tpvOutputJobKinds` fallan como `job_kind` inválido.
- Para `ticket_receipt`, el backend selecciona `default_ticket_output_device_id` y, si no hay selección, impresoras activas `receipt_printer`.
- Si no hay dispositivos seleccionables, la respuesta puede ser correcta con `TPVOutputJob[]` vacío.
- Cada solicitud crea un job `pending` por dispositivo seleccionado; no hay deduplicación observada por ticket o dispositivo.
- La UI observada exige `tpv:print` o `tpv:manage`, aunque el backend también contempla `tpv:use` con acceso restringido.
- La UI actual no envía `requested_by_staff_id`; si falta, la cola puede mostrar el solicitante como `Sistema`.
Resultado esperado
El ticket queda enviado a la cola de salida como `ticket_receipt`, listo para que el runtime o bridge de impresión lo procese según los dispositivos activos de la ubicación.