-
-
Notifications
You must be signed in to change notification settings - Fork 0
Waiter POS Charge
technical-documenter edited this page Aug 26, 2026
·
1 revision
Documentação técnica do nó waiterPosCharge do flowchart admin #1 e do smoke E2E associado (app-community#606).
| 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) |
Após o pedido/mesa atingir o status Ready, o garçom (visão POS):
- Abre o settlement da mesa (
LinkedOrderSettlement/ linked-order-settlement-page). - Aciona Charge balance (cobrar saldo).
- É levado ao Checkout do próprio app POS (não ao app ON CHECKOUT).
- Registra o pagamento (ex.: dinheiro).
- 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).
- 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.
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.
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)— exigeapp-type=POSe rejeita URL de checkout dedicado. -
isTableStillOpen(orders, tableId)— mesa não pode permanecer comrealStatus=openapó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.
| 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).
- Cobrança acontece no POS, não no ON CHECKOUT.
- Mesa não fica aberta após o pagamento (
realStatusdeixa de seropen). - Smoke declara
flowchartIds: [1]efluxo: financeiro-cobrancae produz os prints listados no contrato.
| 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 |
- 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.