Gerenciamento de turnos
Este guia explica como gerenciar turnos em um POS Integrado com a operação Shift. Você configura o número de turnos, muda para o próximo turno ou recupera a contagem atual de turnos. O gerenciamento de turnos funciona de forma idêntica nas conexões USB e Network.
O que é um turno
Um turno representa um período operacional no terminal POS. As transações executadas durante um turno são agrupadas para relatórios e conciliação. A função Shift permite que o sistema de automação defina o número de turnos disponíveis, mude para o próximo turno ou recupere a contagem atual de turnos. Os turnos são gerenciados programaticamente pelo Connector; o POS pode solicitar dados ao operador quando falta uma informação obrigatória.
Antes de começar
Antes de gerenciar turnos:
- Um Connector deve ser criado e validado com
Polling - O modo POS Integrado deve estar ativo
Passo 1: Execute uma operação de turno
Para executar uma ação relacionada a turnos, chame a operação Shift e use o enum ShiftOperation para definir a tarefa desejada. Se faltar um valor obrigatório — como o número de turnos —, o POS solicita a digitação manual ao operador.
A tabela a seguir lista os parâmetros da operação Shift:
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
ShiftOperation | Enum | Sim | Configuration: define a quantidade de turnos disponíveis. Change: avança para o próximo turno. GetShifts: recupera a contagem atual. |
NumberOfShifts | Int | Condicional | Obrigatório somente em Configuration, para definir a nova quantidade de turnos (máx. 2 dígitos). Quando omitido, o POS exibe a tela de digitação correspondente. |
SkipConfirmation | Boolean | Não | Se true, ignora a tela de confirmação no POS. |
PrintOnPos | Boolean | Não | Se true, o POS imprime o relatório do turno. Se false, o relatório é retornado em ReportDetails (somente na operação Change). |
O exemplo a seguir mostra como iniciar uma troca de turno pelo Connector:
var shiftRequest = new ShiftRequest
{
ShiftOperation = ShiftOperation.Change,
SkipConfirmation = false,
PrintOnPos = false
};
var shiftResult = await connector.ShiftAsync(shiftRequest);Depois que a requisição é iniciada, o POS trata a lógica interna e atualiza o período operacional.
Passo 2: Trate a resposta
Ao concluir, o POS retorna uma resposta estruturada com o status da operação e a contagem atual de turnos. Veja a seguir um exemplo de objeto de resposta bem-sucedida:
{
"Code": 0,
"Message": "APPROVED",
"TotalOfShifts": 3,
"ReportDetails": "GETNET\nSHIFT CHANGE\n...\n"
}O retorno contém somente Code, Message, TotalOfShifts e ReportDetails. ReportDetails é uma String preenchida somente na operação Change quando PrintOnPos for false; é null em Configuration e GetShifts, ou quando PrintOnPos for true.
Sempre verifique o Code e a Message antes de processar a contagem atual de turnos.
Restrições relacionadas a turnos
As restrições a seguir se aplicam ao gerenciamento de turnos:
- Somente um turno pode estar ativo por vez.
- Alguns relatórios exigem um turno fechado ou dependem do estado do turno.
- A troca de turno pode disparar a impressão automática quando
PrintOnPosfortrue; o tratamento de falta de papel está descrito no Shift Change Flow do manual.
Próximos passos
- Relatórios: Totais, Detalhes e Turnos — GetReports e o tipo de relatório Shift.