Terminal Filial
Visão Geral
Interface principal do terminal de filial para atendimento. O terminal adapta seu comportamento de acordo com o serviceMode da filial (mesa, balcao, auto_atendimento).
Localização
frontend-react/src/views/pdv/PdvTerminalView.tsx
Sub-componentes de Modo
| Componente | Modo | Localização |
|---|---|---|
MesaModePanel | mesa | frontend-react/src/views/pdv/modes/MesaModePanel.tsx |
BalcaoModePanel | balcao / auto_atendimento | frontend-react/src/views/pdv/modes/BalcaoModePanel.tsx |
Modo Mesa (MesaModePanel)
Voltado para atendimento no local com abertura de comanda por mesa.
Fluxo de nova comanda
- Atendente seleciona a mesa no grid
- O sistema verifica automaticamente se há pedido aberto (
GET /orders/open-tab/:tableId) - Se há comanda aberta: exibe banner com número do pedido e total atual
- Botão "Adicionar à Comanda" →
handleAddToTab()— enviaPATCH /orders/:id/add-items - Botão "Novo Pedido" →
handleCreateMesaOrder()— cria pedido separado
- Botão "Adicionar à Comanda" →
- Se não há comanda: cria novo pedido associado à mesa
Add-to-Tab
Quando o cliente pede mais itens:
- O painel detecta a comanda aberta automaticamente
- Os itens do carrinho atual são mesclados na comanda existente (incrementa quantidade se o item já existe, adiciona se é novo)
- O total é recalculado
- O WebSocket emite atualização para a cozinha
Fechar Mesa
Para fechar a conta e registrar o pagamento, use a tela Fechar Mesa. Consulte Fechar Mesa.
Modo Balcão (BalcaoModePanel)
Voltado para atendimento rápido sem associação de mesa.
Fluxo
- Atendente (opcionalmente) informa nome e telefone do cliente
- Pode opcionalmente associar a uma mesa
- Adiciona itens ao carrinho
- Finaliza — o pedido é criado e vai para a cozinha
As informações de cliente são opcionais no modo balcão.
Layout
┌─────────────────┬─────────────────┐
│ │ │
│ Cardápio │ Carrinho │
│ (Grid de │ - Itens │
│ itens) │ - Quantidade │
│ │ - Total │
│ │ - Finalizar │
└─────────────────┴─────────────────┘Modo Offline
O terminal suporta operação sem internet. Consulte Modo Offline (PWA) para detalhes completos.
Indicadores visuais
| Estado | Banner exibido |
|---|---|
| Offline | ⚠ Modo offline — X pedidos pendentes |
| Reconectando / sincronizando | ↑ Sincronizando X pedido(s)... |
| Online (normal) | Nenhum banner |
Comportamento
- Cardápio, categorias e configurações do tenant são servidos do cache (disponíveis offline)
- Pedidos feitos offline entram na fila IndexedDB (
offlineQueue) - Ao reconectar, a fila é processada automaticamente via
useNetworkStatus
PIX QR Code
Quando o método de pagamento selecionado for PIX e o tenant tiver pixKey configurada, o terminal exibe o QR code após confirmar o pagamento. Consulte Modal de Pagamento.
Componentes Relacionados
Store Relacionado
Usa pdvStore para gerenciar estado.