Guia de Configuração - JuxtaGO + JuxtaPOS V3 imprimir

  • 0

Verificações de Conectividade

1. Verificar se JuxtaPOS V3 está rodando

 
 
bash
# No Windows, abra o JuxtaPOS V3 (WPF)
# Verifique se as seguintes portas estão ativas:

2. Portas Necessárias

  • WebAPI: http://localhost:5000 ou http://IP:5000
  • MessagingServer (GraphQL): http://localhost:9001
  • MessagingServer (SSE/Events): http://localhost:9001/events

3. Testar Conectividade

Abra o console do navegador (F12) e execute:

 
 
javascript
// Teste 1: WebAPI
fetch('http://localhost:5000/api/Departments')
  .then(r => r.json())
  .then(d => console.log(' WebAPI OK:', d))
  .catch(e => console.error(' WebAPI erro:', e));

// Teste 2: MessagingServer
fetch('http://localhost:9001/graphql', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    query: '{ __typename }'
  })
})
  .then(r => r.json())
  .then(d => console.log(' MessagingServer OK:', d))
  .catch(e => console.error(' MessagingServer erro:', e));

 Configuração do config.js

Verifique se o arquivo config.js está correto:

 
 
javascript
// src/config.js
export function appconfig() {
    return {
        // URL da sua WebAPI (JuxtaPOS V3)
        ApiUrl: 'http://localhost:5000/api',
        
        // URL do serviço de autenticação
        AuthUrl: 'http://localhost:5000',
        
        // Credenciais (se necessário)
        UserName: 'admin',
        Password: 'senha',
        UserId: 1,
        
        // Departamento padrão
        departmentName: 'VENDAS'
    };
}

 Fluxo Completo de Pedido

Passo 1: Login

  1. Abra o JuxtaGO
  2. Digite o ID do terminal (exemplo: 1, 2, 1013)
  3. Sistema busca terminal no JuxtaPOS V3
  4. Conecta ao MessagingServer via SSE

Passo 2: Selecionar Mesa/Balcão

  1. Clique na aba "MESAS" ou "BALCÕES"
  2. Sistema carrega entidades via WebAPI
  3. Clique em uma mesa
  4. Sistema:
    • Verifica se existe ticket aberto para essa mesa
    • Se não existe, cria novo ticket
    • Abre tela de menu

Passo 3: Adicionar Itens

  1. Navegue pelas categorias do menu
  2. Clique em um produto
  3. Sistema adiciona ao ticket atual
  4. Ticket é atualizado via WebAPI

Passo 4: Enviar para Produção

  1. Revise os itens na coluna central
  2. Clique em "PRODUZIR / FECHAR"
  3. Sistema envia via MessagingServer GraphQL
  4. Ticket vai para as telas de produção (COZINHA, BAR, etc.)

Troubleshooting Comum

 "Terminal não definido. Faça login primeiro"

Causa: Terminal não foi registrado ou não existe no JuxtaPOS
Solução:

 
 
sql
-- Verifique no banco do JuxtaPOS V3 se o terminal existe:
SELECT * FROM Terminals WHERE Id = 1;

-- Se não existe, crie manualmente ou use a tela de cadastro do JuxtaPOS

 "Erro ao carregar Departments WebApi"

Causa: WebAPI não está respondendo
Solução:

  1. Verifique se JuxtaPOS V3 está rodando
  2. Teste a URL: http://localhost:5000/api/Departments
  3. Verifique firewall/antivírus

 "Não foi possível criar a comanda"

Causa: Endpoint /Tickets/createForTerminal não implementado
Solução: Verifique se sua WebAPI tem este endpoint:

 
 
csharp
// No seu TicketsController.cs do JuxtaPOS V3
[HttpPost("createForTerminal")]
public IActionResult CreateForTerminal([FromBody] CreateTicketRequest request)
{
    // Sua implementação aqui
}

 Mesa não mostra ticket existente

Causa: Endpoint /Tickets/byEntity/{id} não retorna dados
Solução:

 
 
javascript
// Teste no console:
fetch('http://localhost:5000/api/Tickets/byEntity/123')
  .then(r => r.json())
  .then(d => console.log(d));

 SSE/Eventos não funcionam

Causa: MessagingServer não está rodando na porta 9001
Solução:

  1. Verifique se o processo está ativo
  2. Teste: http://localhost:9001/events?terminalId=PM01&replay=1
  3. Deve abrir conexão SSE

Estrutura de Dados Esperada

Terminal

 
 
json
{
  "id": 1,
  "name": "Terminal 01",
  "deviceId": "abc123"
}

Ticket

 
 
json
{
  "id": 100,
  "number": "00100",
  "status": "Em aberto",
  "ticketType": "Mesa",
  "totalAmount": 45.50,
  "remainingAmount": 45.50,
  "entities": [
    { "id": 5, "name": "Mesa 05", "type": "Mesa" }
  ],
  "orders": [
    {
      "id": 1,
      "itemName": "Pizza Margherita",
      "quantity": 1,
      "portionName": "Grande",
      "modifiers": ["+ Borda recheada"],
      "price": 45.50
    }
  ]
}

Entity (Mesa/Balcão)

 
 
json
{
  "id": 5,
  "name": "Mesa 05",
  "type": "Mesa",
  "caption": "05",
  "state": "Disponível",
  "color": "#4CAF50"
}

 Checklist Final

  • JuxtaPOS V3 rodando
  • WebAPI respondendo em http://localhost:5000/api
  • MessagingServer rodando em http://localhost:9001
  • Terminal cadastrado no banco
  • Departamentos configurados (VENDAS, COZINHA, etc.)
  • Mesas/Balcões cadastrados
  • Menu/Produtos cadastrados
  • SSE conectando (veja logs no console F12)

 Próximos Passos

Depois de corrigir os arquivos:

  1. Teste o login: Deve salvar terminalId no localStorage
  2. Teste selecionar mesa: Deve criar/carregar ticket
  3. Teste adicionar produto: Deve aparecer na lista de orders
  4. Teste enviar para produção: Deve limpar ticket e aparecer na COZINHA

 Debug Avançado

Ative logs detalhados no console:

 
 
javascript
// Adicione no início do App.jsx (apenas para debug)
window.DEBUG_JUXTAGO = true;

// Nas funções, adicione:
if (window.DEBUG_JUXTAGO) {
  console.log('
  

Esta resposta lhe foi útil?