El botón "Imprimir ticket" del POS (apps/web/src/app/pos/page.tsx:559) y del historial de ventas (apps/web/src/app/pos/historial/page.tsx:230) llama a window.print(), pero el proyecto no tiene ningún estilo de impresión: no hay @media print ni clases print: de Tailwind. La impresora recibe la página completa en lugar de un ticket.
Entorno
local
Módulos
Punto de venta (POS), Web / frontend
Severidad
Bloquea un flujo
Pasos para reproducir
Registrar una venta en el POS.
Presionar "Imprimir ticket".
Revisar la vista previa de impresión (o imprimir en una térmica de 58/80 mm).
Repetir desde Historial de ventas con una venta seleccionada.
Esperado
Se imprime solo el ticket (negocio, folio, fecha, líneas, subtotal, descuento, total, método de pago), con el ancho de la impresora térmica y sin navegación ni botones.
Actual
Se imprime toda la pantalla: barra superior, carrito, panel de cobro y menús, con el ancho de una hoja carta.
Evidencia
Encontrado en auditoría de código; no reproducido en ejecución.
$ grep -rn "@media print\|print:" apps/web/src
(sin resultados)
// pos/page.tsx:559 y pos/historial/page.tsx:230
onClick={()=> window.print()}
Arreglo sugerido: un componente Ticket compartido entre POS e historial, visible solo al imprimir (hidden print:block), con el resto de la UI en print:hidden y @page { size: 80mm auto; margin: 0 }. Confirmar con el negocio el ancho de la impresora.
¿Está también en producción?
Sí — este issue no basta; hay que abrir un Incidente / hotfix
No — solo local / staging
No sé
Antes de abrir
Busqué un issue duplicado
### Qué pasa
El botón "Imprimir ticket" del POS (`apps/web/src/app/pos/page.tsx:559`) y del historial de ventas (`apps/web/src/app/pos/historial/page.tsx:230`) llama a `window.print()`, pero el proyecto no tiene ningún estilo de impresión: no hay `@media print` ni clases `print:` de Tailwind. La impresora recibe la página completa en lugar de un ticket.
### Entorno
local
### Módulos
Punto de venta (POS), Web / frontend
### Severidad
Bloquea un flujo
### Pasos para reproducir
1. Registrar una venta en el POS.
2. Presionar "Imprimir ticket".
3. Revisar la vista previa de impresión (o imprimir en una térmica de 58/80 mm).
4. Repetir desde **Historial de ventas** con una venta seleccionada.
### Esperado
Se imprime solo el ticket (negocio, folio, fecha, líneas, subtotal, descuento, total, método de pago), con el ancho de la impresora térmica y sin navegación ni botones.
### Actual
Se imprime toda la pantalla: barra superior, carrito, panel de cobro y menús, con el ancho de una hoja carta.
### Evidencia
```shell
Encontrado en auditoría de código; no reproducido en ejecución.
$ grep -rn "@media print\|print:" apps/web/src
(sin resultados)
// pos/page.tsx:559 y pos/historial/page.tsx:230
onClick={() => window.print()}
```
Arreglo sugerido: un componente `Ticket` compartido entre POS e historial, visible solo al imprimir (`hidden print:block`), con el resto de la UI en `print:hidden` y `@page { size: 80mm auto; margin: 0 }`. Confirmar con el negocio el ancho de la impresora.
### ¿Está también en producción?
- [ ] Sí — este issue no basta; hay que abrir un Incidente / hotfix
- [ ] No — solo local / staging
- [x] No sé
### Antes de abrir
- [x] Busqué un issue duplicado
Emmanuel
was assigned by Carlos2026-10-02 20:03:39 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Qué pasa
El botón "Imprimir ticket" del POS (
apps/web/src/app/pos/page.tsx:559) y del historial de ventas (apps/web/src/app/pos/historial/page.tsx:230) llama awindow.print(), pero el proyecto no tiene ningún estilo de impresión: no hay@media printni clasesprint:de Tailwind. La impresora recibe la página completa en lugar de un ticket.Entorno
local
Módulos
Punto de venta (POS), Web / frontend
Severidad
Bloquea un flujo
Pasos para reproducir
Esperado
Se imprime solo el ticket (negocio, folio, fecha, líneas, subtotal, descuento, total, método de pago), con el ancho de la impresora térmica y sin navegación ni botones.
Actual
Se imprime toda la pantalla: barra superior, carrito, panel de cobro y menús, con el ancho de una hoja carta.
Evidencia
Arreglo sugerido: un componente
Ticketcompartido entre POS e historial, visible solo al imprimir (hidden print:block), con el resto de la UI enprint:hiddeny@page { size: 80mm auto; margin: 0 }. Confirmar con el negocio el ancho de la impresora.¿Está también en producción?
Antes de abrir