Fechar Mesa
Visão Geral
Tela para fechamento de conta de mesas no terminal PDV. Exibe mesas ocupadas com conta aberta, permite revisar o pedido e escolher a forma de pagamento.
Localização
frontend-react/src/views/pdv/FecharMesaScreen.tsx
Fluxo de Duas Etapas
Etapa 1 — Grade de Mesas
Ao abrir, a tela carrega todas as mesas com status occupied e busca o pedido aberto de cada uma (GET /orders/open-tab/:tableId). Exibe apenas as mesas que possuem conta aberta.
Cada card de mesa mostra:
- Número da mesa
- Localização (se preenchida)
- Total da conta
Etapa 2 — Pagamento
Ao selecionar uma mesa, a tela muda para a visão de pagamento:
- Resumo do pedido: número do pedido, horário, lista de itens (qty × nome × subtotal) e total
- Forma de pagamento: seleção entre os métodos disponíveis
- Troco (apenas dinheiro): campo para valor recebido + cálculo automático do troco
- Botão "Fechar Conta": confirma o fechamento
Formas de Pagamento
| Método | Chave | Ícone |
|---|---|---|
| Dinheiro | cash | 💵 |
| Crédito | credit_card | 💳 |
| Débito | debit_card | 💳 |
| PIX | pix | ⚡ |
| Vale Refeição | voucher | 🎫 |
APIs Utilizadas
| Endpoint | Método | Descrição |
|---|---|---|
GET /t/:slug/tables | GET | Lista todas as mesas |
GET /t/:slug/orders/open-tab/:tableId | GET | Busca conta aberta da mesa |
POST /t/:slug/orders/:id/close-tab | POST | Fecha o pedido (status → delivered) |
PUT /t/:slug/tables/:id | PUT | Atualiza mesa para available |
Comportamento pós-fechamento
Após confirmar:
- Pedido marcado como
delivered - Mesa marcada como
available - Banner de sucesso exibido
- Grade de mesas recarregada automaticamente
Componentes Relacionados
- PaymentModal — modal de pagamento completo (PDV Terminal)
- OrdersView — visão admin de pedidos
- Terminal — terminal PDV principal
Relacionados
- API Orders — endpoints de pedidos
- MesaModePanel — painel de modo mesa no terminal