Gestión de turnos
Esta guía explica cómo gestionar turnos en un TPV Integrado con la operación Shift: configurar la cantidad de turnos, cambiar al turno siguiente o recuperar el recuento actual. La gestión de turnos funciona de forma idéntica en conexiones USB y de red (Network).
¿Qué es un turno?
Un turno representa un período operativo en el terminal TPV. Las transacciones ejecutadas durante un turno se agrupan para informes y conciliación. La función Shift permite al sistema de automatización configurar la cantidad de turnos disponibles, cambiar al turno siguiente o recuperar el recuento actual. Los turnos se gestionan de forma programática a través del Connector. El TPV puede pedirle los datos al operador cuando falta información obligatoria.
Antes de comenzar
Antes de gestionar turnos:
- Debes crear y validar un Connector con
Polling - El Modo TPV Integrado debe estar activo
Paso 1: Ejecutar una operación de turno
Para realizar una acción relacionada con los turnos, llama a la operación Shift y usa el enum ShiftOperation para definir la tarea deseada. Si falta un valor obligatorio, como la cantidad de turnos, el TPV le pide al operador que lo ingrese manualmente.
La siguiente tabla enumera los parámetros de la operación Shift:
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
ShiftOperation | Enum | Sí | Configuration: establece la cantidad de turnos disponibles. Change: avanza al turno siguiente. GetShifts: recupera el recuento actual. |
NumberOfShifts | Int | Condicional | Obligatorio solo para Configuration, para definir la nueva cantidad de turnos (máx. 2 dígitos). Cuando se omite, el TPV muestra la pantalla de entrada correspondiente. |
SkipConfirmation | Boolean | No | Si es true, omite la pantalla de confirmación en el TPV. |
PrintOnPos | Boolean | No | Si es true, el TPV imprime el informe de turno. Si es false, el informe se devuelve en ReportDetails (solo para la operación Change). |
El siguiente ejemplo muestra cómo iniciar un cambio de turno a través del Connector:
var shiftRequest = new ShiftRequest
{
ShiftOperation = ShiftOperation.Change,
SkipConfirmation = false,
PrintOnPos = false
};
var shiftResult = await connector.ShiftAsync(shiftRequest);Una vez iniciada la solicitud, el TPV maneja la lógica interna y actualiza el período operativo.
Paso 2: Manejar la respuesta
Al finalizar, el TPV devuelve una respuesta estructurada con el estado de la operación y el recuento de turnos actual. A continuación se muestra un ejemplo de objeto de respuesta exitosa:
{
"Code": 0,
"Message": "APPROVED",
"TotalOfShifts": 3,
"ReportDetails": "GETNET\nSHIFT CHANGE\n...\n"
}La respuesta contiene solo Code, Message, TotalOfShifts y ReportDetails. ReportDetails es un String que se completa solo para la operación Change cuando PrintOnPos es false. Es null para Configuration y GetShifts, o cuando PrintOnPos es true.
Verifica siempre el Code y el Message antes de procesar el recuento de turnos actual.
Restricciones relacionadas con los turnos
Se aplican las siguientes restricciones a la gestión de turnos:
- Solo puede haber un turno activo a la vez.
- Algunos informes requieren un turno cerrado o dependen del estado del turno.
- El cambio de turno puede desencadenar la impresión automática cuando
PrintOnPosestrue. El manual describe el manejo de la falta de papel en el flujo de cambio de turno (Shift Change Flow).
Siguientes pasos
- Informes: totales, detalles y turnos — GetReports y el tipo de informe Shift.