Skip to content

Waiter POS Charge

technical-documenter edited this page Aug 26, 2026 · 1 revision

Waiter POS Charge (nó waiterPosCharge)

Documentação técnica do nó waiterPosCharge do flowchart admin #1 e do smoke E2E associado (app-community#606).

Visão e escopo

Item Valor
Issue app-community#606
Pai app-community#601 (flowchart 1 E2E)
Módulo principal ui-orders
Superfície de cobrança POS (APP_TYPE=POS)
Superfície proibida ON CHECKOUT (app dedicado / checkout.controleonline.com)
fluxo (catálogo smoke) financeiro-cobranca
flowchartIds [1]
Telas / rotas /linked-order-settlement-page/checkout (mesmo app POS)

O que faz

Após o pedido/mesa atingir o status Ready, o garçom (visão POS):

  1. Abre o settlement da mesa (LinkedOrderSettlement / linked-order-settlement-page).
  2. Aciona Charge balance (cobrar saldo).
  3. É levado ao Checkout do próprio app POS (não ao app ON CHECKOUT).
  4. Registra o pagamento (ex.: dinheiro).
  5. Fecha a mesa (Close settlement → closed). A mesa não permanece aberta após o pagamento.

O fluxo reutiliza settlement + checkout existentes; o delta de #606 é somente smoke (browser + unit + contrato + mock).

O que não faz

  • Não implementa fechamento multi-comanda no app CHECKOUT (fora de escopo de #606).
  • Não altera regras de backend de invoice/order; apenas consome APIs já existentes.
  • Não usa a superfície ON CHECKOUT para a cobrança do nó waiterPosCharge.

Nós do flowchart 1 (trecho relevante)

Ready → waiterHandoff → cliente de saída? → precisa cobrar? → waiterPosCharge (POS garçom cobra)
  → Checkout → handoffClosed → closed

Alternativa no mesmo decision point: cobrança em ON CHECKOUT / MANAGER (exitCharge), ou handoff sem cobrança pendente.

Contrato de smoke (WAITER_POS_CHARGE_SMOKE)

Definido em ui-orders src/tests/react/pages/checkout/waiterPosChargeSmoke.js:

Campo Valor
fluxo financeiro-cobranca
flowchartIds [1]
chargeSurface POS
forbiddenChargeSurface CHECKOUT
prints ready, close-table-action, pos-charge-screen, payment, closed

Helpers de contrato (mesma unidade):

  • isPosChargeSurface(appType, href) — exige app-type=POS e rejeita URL de checkout dedicado.
  • isTableStillOpen(orders, tableId) — mesa não pode permanecer com realStatus=open após o fechamento.
  • Builders de árvore Ready / payment / close para o mock.

Browser smoke: src/tests/browser/pos/waiter-pos-charge.spec.js (+ api-mock). Prints por etapa no diretório de screenshots do smoke.

Encaixe por visão (APP_TYPE)

Visão Papel neste nó
POS Dono da cobrança do nó waiterPosCharge. Settlement + Checkout no mesmo app.
CHECKOUT Superfície proibida para este nó (há caminho alternativo exitCharge no flowchart).
MANAGER Pode configurar devices/políticas; não é a superfície de cobrança do smoke #606.

Referência de fronteiras: MODOS_OPERACAO.md (seção POS).

Critérios de aceite (referência)

  • Cobrança acontece no POS, não no ON CHECKOUT.
  • Mesa não fica aberta após o pagamento (realStatus deixa de ser open).
  • Smoke declara flowchartIds: [1] e fluxo: financeiro-cobranca e produz os prints listados no contrato.

Links relacionados

Destino URL
Issue https://github.com/ControleOnline/app-community/issues/606
Smoke Test Flows (app-community) https://github.com/ControleOnline/app-community/wiki/Smoke-Test-Flows
Skill canônica de fluxos https://github.com/ControleOnline/agents-mcp/blob/master/agents/skills/shared/quality/smoke-test-flows.md
LinkedOrderSettlement — Mesa com comandas LinkedOrderSettlement-Mesa-Comandas
Order History — Criar fatura OrderHistory-Criar-Fatura
App-Home https://github.com/ControleOnline/app-community/wiki
API-Home https://github.com/ControleOnline/api-community/wiki

Fora de escopo desta página

  • Implementação de produto do settlement/checkout (pré-existente).
  • Smokes de multi-comanda no ON CHECKOUT.
  • Alteração do catálogo canônico de fluxos em agents-mcp.

Clone this wiki locally