Pular para o conteúdo principal

Abre o caixa do PDV

POST 

/store-front/cashier/:idbankaccount/open

Abre uma nova sessão de caixa (StoreFrontCashier) ou retoma a sessão atual quando o caixa já está aberto pelo mesmo usuário.

Pré-condições

  1. Lock Redis (storeFrontCashierOpenPost:<IDBankAccount>, TTL 10s) — evita abertura concorrente do mesmo caixa.
  2. Conta precisa ser caixinha do PDVBankAccount.BankNumber = '000'. Se não for, retorna Banco informado não é do tipo Caixinha.
  3. Tipo de pedido padrãoBankAccount.IDTypeOrder precisa estar preenchido (configurado no cadastro da conta).
  4. Caixa não pode estar aberto por outro usuário — se está, retorna Caixa já esta aberto e precisa fechar antes de abrir novamente. Se for o mesmo usuário, a chamada é idempotente — retoma a sessão existente sem criar nova.
  5. Usuário não pode ter outro caixa aberto — se tem, retorna Usuário já possui outro caixa aberto.
  6. Senha — validada com bcrypt.compare contra User.Password. Senha errada → Senha incorreta. Usuário sem senha → Usuário não tem senha cadastrada.

Validações condicionais (parâmetro CompanyParameter)

Quando CompanyParameterIDWorks.CheckConfigCashierOpen = 1, o handler valida configurações fiscais antes de abrir:

  • Company.NfceUltima, NfceSerie, NfceCSC, NfceCSCid preenchidos (campos para emissão de NFCe).
  • Existe pelo menos uma TypeTax com IssueNFCe=1 para a empresa.
  • Essa TypeTax tem pelo menos uma configuração StockKeepingUnitIcmsTaxInterstate (ICMS para consumidor final).
  • Existe pelo menos um TypePayment ativo com EnableFrenteCaixa=1.

Falha em qualquer um → mensagem específica (Precisa preencher o número da última NFCe..., Não existe nenhuma regra fiscal para emissão de NFCe..., etc.).

Side-effects

  • Cria registro em StoreFrontCashier (ou reutiliza o existente em retomada).
  • Se InitialBalance difere do Balance atual em mais de R$ 0,01, gera lançamento AccountsPayableReceivableBankStatement com descrição "Ajuste abertura de caixa" (crédito se positivo, débito se negativo) — registra a divergência declarada pelo operador ("o caixa tinha mais/menos do que o sistema dizia").
  • Grava CommentsOpen quando preenchido.

Resposta

Retorna o caixa aberto com o contexto operacional (IDStoreFrontCashier, RecordTimestampOpen, Login, tipo de pedido, política comercial, armazém, faturador, flag IssueNFCe) — tudo que o front precisa para inicializar a tela do PDV.

Request

Responses

Caixa aberto (ou retomado). Resposta inclui o contexto operacional para inicializar o PDV.