Getnet DocsGetnet Docs

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âmetroTipoObrigatórioDescrição
ShiftOperationEnumSimConfiguration: define a quantidade de turnos disponíveis. Change: avança para o próximo turno. GetShifts: recupera a contagem atual.
NumberOfShiftsIntCondicionalObrigató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.
SkipConfirmationBooleanNãoSe true, ignora a tela de confirmação no POS.
PrintOnPosBooleanNãoSe 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 PrintOnPos for true; o tratamento de falta de papel está descrito no Shift Change Flow do manual.

Próximos passos