Cómo seleccionar items a cobrar
Elige qué líneas o unidades pendientes de un ticket se cobran desde el pago avanzado. La pantalla abre con todo lo pendiente seleccionado, permite limpiar o restaurar la selección y usa esa selección para repartir el cobro por item.
En este artículo
En el pago avanzado del TPV, la selección de items decide qué parte del ticket entra en el próximo cobro. Antylogic calcula lo pendiente por línea a partir de los pagos efectivos y sus allocations, dejando fuera pagos reembolsados.
El flujo está pensado para sala y responsables de turno cuando una mesa quiere pagar solo algunos platos o unidades. La selección no se guarda como borrador: se reconstruye desde lo pendiente cada vez que se abre o cambia el ticket.
Antes de empezar
- Abrir el pago avanzado de un ticket de Marea Gran Via con `ticketId`, `TPV_TERMINAL_ID` y `TPV_STAFF_ID` válidos.
- El ticket debe pertenecer a la ubicación activa y tener al menos un `ticket_item` con importe pendiente.
- El usuario debe tener `tpv:use` en la ubicación para entrar en esta pantalla.
- Debe existir un `tpv_payment_method` activo compatible con el usuario o terminal.
- Para efectivo o métodos similares, el terminal necesita una `cash_register_session` abierta antes de registrar el cobro.
Instrucciones
- 1.
Abre el pago avanzado
Desde el TPV o el detalle del ticket, entra en `LocationTPVTicketPayment`. La pantalla carga el ticket, sus items, pagos, métodos activos, operaciones del ticket y el empleado TPV cuando hay contexto de organización, ubicación y permiso TPV.
- 2.
Revisa la selección pendiente
Al entrar, Antylogic selecciona todos los items con pendiente mayor que 0. Verás el resumen de unidades seleccionadas, el importe seleccionado y cada línea con cantidad, nombre, estado de producción, estado de pago, pagado y pendiente.
- 3.
Ajusta líneas o unidades
Toca una línea para añadir unidades seleccionadas hasta el máximo pendiente. Si la línea ya está seleccionada al máximo, tocarla la quita de la selección. Usa `Pendiente` para volver a seleccionar todo y `Limpiar` para dejar la selección vacía.
- 4.
Confirma el importe a cobrar
Si no introduces importe manual, se cobra el pendiente seleccionado. Si introduces menos, se reparte solo esa cantidad por las líneas seleccionadas y la última puede quedar parcial. Si introduces más, el cobro se limita al pendiente seleccionado; en efectivo la diferencia se trata como cambio y en otros métodos como propina.
- 5.
Cobra con un método compatible
Selecciona un método y pulsa `Cobrar {{amount}}`. Con métodos manuales, las allocations viajan en el pago del ticket; con métodos no manuales, quedan en `TPVPaymentOperation.request_payload.allocations` hasta completar la operación.
Validaciones y límites
- Si falta `ticketId`, organización, ubicación o permiso `tpv:use`, no se cargan las consultas principales y la pantalla muestra error o no acceso.
- Un ticket con `status === "void"` bloquea nuevos cobros.
- Los items sin pendiente quedan deshabilitados y muestran `Liquidado`.
- Con la selección vacía, el importe pasa a 0, aparece `Selecciona al menos una línea pendiente para generar el cobro.` y el botón de cobro se deshabilita.
- `amountToCharge` nunca supera el pendiente seleccionado.
- `buildPaymentAllocations` ignora items no seleccionados o sin pendiente y detiene el reparto cuando se agota el importe.
- El backend rechaza allocations sin item, con item inexistente, importe no positivo, importe superior al pendiente o suma superior al pago.
- Los métodos de efectivo o similares exigen terminal válido y caja abierta.
- La selección no se persiste como borrador; al abandonar o recargar la pantalla se reconstruye desde lo pendiente.
Resultado esperado
El cobro queda acotado a las líneas seleccionadas. El backend crea el pago o la operación, normaliza las allocations, sincroniza el estado del ticket y recalcula el estado de pago de cada item.