Manual do HorecaPOS
Este manual tem três partes: primeiro para o pessoal (empregados de mesa), depois para o gerente e por fim para o administrador. Cada parte baseia-se na anterior: um gerente pode fazer tudo o que os empregados fazem, e o administrador pode fazer tudo.
O que a sua função pode fazer exatamente é definido pelo administrador em Definições → Permissões. Se não vê um botão, a sua função (ainda) não tem permissão para isso.
Este manual também está na caixa: toque no botão © no canto inferior direito de qualquer ecrã e escolha Manual, ou abra http://<kassa-pc>:3000/handleiding. Veja também a introdução e a documentação da API.
Parte 1 · Pessoal
Primeiros passos
Iniciar sessão. Abra a caixa no computador da caixa, no tablet ou no telemóvel e introduza o seu PIN (4 a 8 dígitos). Em seguida vê a planta das salas.
Abrir uma mesa. Toque numa mesa. Uma mesa livre recebe um novo pedido; numa mesa ocupada continua com o pedido que já lá está. Em cima alterna entre as zonas (por exemplo Sala e Esplanada). Para o balcão use Venda rápida, para pedidos para levar Take-away.
Registar o pedido. Escolha uma categoria e toque nos produtos. Aparecem no talão à esquerda. Se quiser, escolha primeiro o prato (1 = de imediato, 2 e 3 esperam até os chamar). Toque em Enviar pedido: os talões seguem para a cozinha e o bar. Enquanto não tocar em Enviar pedido, pode simplesmente retirar linhas.
Cobrar. Toque em Cobrar, escolha Cartão / Bancontact, Dinheiro ou Vale-oferta, eventualmente uma gorjeta, e confirme. Com cartão, o pagamento arranca sozinho no terminal de pagamento. O talão é impresso; também o pode enviar por e-mail.
Terminar sessão. Termine a sessão quando acabar, para que ninguém trabalhe em seu nome. Após 8 horas a sessão termina automaticamente.
Sem internet? A caixa continua a funcionar. Se aparecer em cima Sem internet · cartão manual, introduza o valor no próprio terminal de pagamento e escolha no ecrã de cobrança Já pago no terminal.
Vários grupos na mesma mesa
Na mesma mesa podem estar vários grupos, cada um com a sua conta e o seu talão.
- Toque numa mesa: livre = novo pedido; um grupo = abre logo esse grupo; vários grupos = escolha primeiro, ou + Novo grupo (o nome pode ficar vazio).
- No ecrã de pedidos, em cima, está a barra de grupos: alternar entre grupos, + Grupo, Nome do grupo (p. ex. "Silva") e Dividir / mover.
- Dividir / mover: escolha por linha quantos vão (com 3× Cerveja, p. ex. 1) e para que grupo, ou crie um grupo novo. Assim move algo que está na conta errada, ou divide depois "cada um paga a sua parte". Se um grupo ficar vazio, desaparece.
- Várias partes de uma vez: com + Mais uma parte deixa uma parte preparada e escolhe a seguinte (p. ex. o peixe e um Dry Martini para a mesa 2, o resto para a mesa 35). Uma parte também pode ir para + Outra mesa (aí como novo grupo). Com Mover passa tudo de uma vez. ½ divide uma linha ao meio, até meia garrafa (0,667 passa a 2 × 0,3335).
- Juntar: tudo de uma ou mais outras mesas (ou de grupos desta mesa) nesta conta, de uma vez.
- Bélgica: dividir ou juntar de uma vez é uma única mudança de mesa na caixa negra, tal como o SPF Finanças exige (UC242, UC251, UC252, UC4119bis). Se depois do pedido se anular algo ou houver desconto numa linha já pedida, isso segue com a mensagem seguinte dessa mesa (pedido, conta provisória, mudança de mesa) e, caso contrário, com a venda: a linha antiga em negativo e a nova em positivo (UC226, UC4102, UC4104, UC4107, UC4110).
- No ecrã das mesas, uma bolinha laranja mostra quantos grupos há; o valor é o total de todos os grupos.
- O talão de venda e o talão de cozinha mostram "Mesa 5 - grupo 2" ou "Mesa 5 - Silva".
Dividir a conta ao cobrar
Cobrar funciona como sempre: Tudo de uma vez. No ecrã de cobrança a conta agora também pode ser dividida, com os botões por baixo de Voltar e Cobrar (assim ficam sempre à vista, sem deslizar):
- Dividir igualmente: escolha com − e + por quantas pessoas (por predefinição o número de clientes, ou 2 se a caixa não registar pessoas). O ecrã mostra o valor por pessoa; cada um paga a sua parte com cartão, numerário ou cartão-oferta (com gorjeta, se quiser). Após cada parte, faz a contagem decrescente ("faltam 3 pessoas"); o último paga exatamente o resto.
- Valor personalizado: alguém paga um valor fixo (p. ex. € 20); o resto fica em aberto.
- Por produto…: abre Dividir / mover para passar produtos para uma conta separada e cobrá-la à parte (como acima).
Um pagamento parcial regista apenas o pagamento; a conta fica aberta e o ecrã de pedidos mostra "já pago … · em aberto …". O talão (com todos os pagamentos) sai no último pagamento, tal como numa cobrança normal. O pagamento com cartão via integração é feito exatamente pelo valor parcial. Se já houver uma parte paga, deixa de ser possível mover linhas para outro grupo ou acrescentar descontos; retirar só é possível se houver valor suficiente em aberto. Cada pagamento parcial fica no registo.
Venda rápida e take-away (sem mesa)
No canto superior direito do ecrã das mesas estão Venda rápida e Take-away. Ambos abrem logo um pedido sem mesa. Venda rápida é a venda ao balcão (IVA para consumo no local); Take-away usa a taxa de IVA para levar de cada produto. Com "Nome do cliente" acrescenta um nome; este aparece no talão ("Take-away – Silva") e no topo do talão de cozinha. Os pedidos em aberto sem mesa aparecem por baixo dos botões das zonas ("Sem mesa: Take-away #12 – Silva"), para os voltar a encontrar. Se voltar atrás sem vender nada, o pedido vazio desaparece sozinho.
Os dois botões podem ser ligados ou desligados por estabelecimento em Definições → Estabelecimento, logo abaixo do tema claro/escuro (ligado por predefinição). Desligado = botão escondido; os pedidos sem mesa que já estejam abertos continuam visíveis.
Entrega e faixas horárias
Pedidos que regista na própria caixa, por exemplo por telefone ou ao balcão, com as mesmas regras da loja online: zonas de entrega e um número máximo de pedidos por faixa horária. Ativa-se em Definições → Estabelecimento → Entrega e faixas horárias, logo abaixo dos botões Venda rápida e Take-away (desligado por predefinição).
- Botão Entrega no ecrã das mesas (ao lado de Take-away): introduza nome, telefone e morada (com Introdução rápida de morada ligada: procurar por código postal e número da porta). A caixa procura a zona de entrega e mostra a taxa de entrega, o mínimo e "grátis a partir de". Se a morada estiver fora das zonas, não é possível.
- Zonas de entrega: por código postal (intervalos e códigos individuais, p. ex.
5000-5049, 5051, 5052 AB), dentro de um raio em km do estabelecimento (em linha reta) ou uma área no mapa desenhada por si. Raio e área só funcionam com moradas nos Países Baixos (localização via PDOK). Por zona: taxa de entrega, mínimo, grátis a partir de e minutos extra; aplica-se a primeira zona correspondente a contar de cima, por isso os tipos podem ser combinados (p. ex. primeiro alguns códigos postais, depois uma área, depois um raio para o resto). Sem zonas definidas = entregar em todo o lado, sem custos nem mínimo. As zonas da loja online definem-se à parte (gestão da loja). - Área no mapa: numa zona de entrega, escolha o tipo Área no mapa e depois Desenhar no mapa. Clique no mapa para colocar pontos (pelo menos 3); arraste um ponto para o mover, clique num ponto para o remover e arraste o círculo a meio de um lado para um ponto intermédio. O mapa mostra também as zonas por raio e o estabelecimento. Os mosaicos do mapa vêm do OpenStreetMap, por isso o mapa precisa de internet; a entrega em si não (exceto a procura da morada). Se não for possível procurar a morada, a caixa indica isso em vez de "fora das zonas de entrega".
- A taxa de entrega aparece como linha "Taxa de entrega" no pedido e é recalculada após cada alteração (grátis a partir de, sem produtos = sem custos), enquanto nada tiver sido pago. Abaixo do mínimo não é possível cobrar; o ecrã do pedido mostra quanto falta, com o botão Take-away afinal (taxa de entrega e mínimo deixam de se aplicar).
- Hora: O mais rápido possível (agora + tempo de entrega, mais os minutos extra da zona) ou uma faixa horária de hoje. Se houver horários de funcionamento definidos para a Thuisbezorgd, também se aplicam aqui.
- Máximo por faixa horária (0 = sem máximo; faixa de 5 a 60 minutos): para Take-away e Entrega em conjunto; os pedidos da loja online na caixa também contam. Se houver um máximo, também Take-away pede uma hora e as faixas cheias não podem ser escolhidas. Duas caixas ao mesmo tempo pelo último lugar: só uma o consegue.
- No talão de cozinha aparecem morada, nome, telefone e hora; em "Sem mesa" e no topo do talão de cozinha, p. ex. "Entrega – 18:30 Silva".
Extensões (tudo desligado por predefinição; sem estas definições funciona exatamente como acima):
- Horário próprio para take-away e entrega (por dia da semana, p. ex.
16:00-21:00ou11:30-14:00, 17:00-22:00; depois da meia-noite é permitido:17:00-01:00; vazio = encerrado nesse dia). Desligado = como antes (os horários do Thuisbezorgd, se existirem, caso contrário o dia todo). - Dias encerrados (p. ex.
25-12-2026, 26-12-2026): nesses dias não há take-away nem entrega. - Pedir com antecedência: 0 (só hoje, como antes) a 14 dias. Na janela Entrega/Take-away escolhe-se primeiro o dia; um dia posterior aparece no talão de cozinha antes da hora.
- Ocupado: tantos minutos extra em "o mais rápido possível" (caixa e loja online). Também se define rapidamente com o botão Loja online na barra superior.
- Moradas belgas (código postal de 4 dígitos): com um raio ou uma zona no mapa, a caixa procura a localização através do OpenStreetMap (Nominatim; são necessárias a rua e a localidade).
- A loja online segue a caixa: a caixa manda. A loja online usa então as zonas de entrega, o tempo de entrega e de take-away, a faixa horária, o máximo por faixa horária, o horário (se estiver definido aqui), os dias encerrados e os dias de antecedência da caixa, e conta na faixa horária os pedidos registados na caixa. Desligado = a loja online tem as suas próprias definições (gestão da loja online), como antes. Ligar ou desligar take-away/entrega continua a ser feito na loja online.
Código: lib/bezorgen.ts, routes/bezorgen.ts, BezorgDialoog.tsx, BezorgInstellingen.tsx, BezorgKaart.tsx e lib/kaart.ts (o mapa, sem pacote extra; o mesmo código está na loja online como public/kaart.js).
Telefonia: reconhecer o cliente numa encomenda por telefone
Definições → Telefonia (desligado por predefinição; desligar guarda tudo). Dois interruptores separados:
- Procurar cliente pelo número de telefone na entrega e no take-away: ao introduzir o número no ecrã de entrega, a caixa mostra o cliente com a morada e as encomendas anteriores; Usar os dados preenche nome, e-mail e morada. Funciona também sem central telefónica.
- Identificação de chamadas: quando um cliente liga, a central telefónica (ou o telefone, a FRITZ!Box, o modem ou o telemóvel Android) comunica o número. Nos ecrãs aparece um aviso com quem está a ligar: nome, morada, as últimas encomendas (com os pratos e o valor, também da loja online, Thuisbezorgd e das plataformas de entrega), o total e uma reserva. Com Registar entrega ou Registar take-away abre o ecrã de entrega com tudo já preenchido (com Entrega e intervalos horários ativos); a encomenda fica associada à chamada e o aviso desaparece de todos os ecrãs. Botão 📞 na barra superior: as chamadas das últimas 24 horas. Pode ser desligado por ecrã (Mostrar avisos neste ecrã).
A pesquisa é feita no cartão de cliente, nas encomendas de entrega e take-away da caixa, na loja online, no Thuisbezorgd, nas plataformas de entrega e nas reservas. Os números são normalizados (+31 6 1234 5678, 0031612345678 e 06-12345678 são o mesmo; também números belgas).
Como chega o número (é possível usar vários ao mesmo tempo; a mesma chamada conta uma vez):
| Fonte | Para | Configurar |
|---|---|---|
| Webhook / action URL | 3CX (integração CRM), Aircall, Voys / VoIPGRID, Yeastar série P, telefones com action URL numa chamada recebida (Fanvil, Grandstream, Mitel 6800/6900, Snom, Yealink: funciona com qualquer central e operador), serviços de integração (Zapier, Make, n8n, Power Automate) | o endereço em Definições → Telefonia (/api/telefonie/oproep?sleutel=...&nummer=...), GET ou POST, JSON, formulário ou query; também através do portal: https://<portaal>/telefonie/<kassa-id>/oproep?sleutel=... |
| Asterisk (AMI) | Asterisk, FreePBX, Issabel, VitalPBX, Grandstream UCM | endereço, porta (5038; Grandstream UCM 7777), utilizador AMI e palavra-passe (permissões call) |
| FRITZ!Box | FRITZ!Box com telefonia | endereço (fritz.box) e porta 1012; ligar o callmonitor uma vez com #96*5* |
| Modem USB de identificação de chamadas | linha fixa analógica com identificação de chamadas | porta série (COM3, /dev/ttyACM0), baud e comando de inicialização (por predefinição AT+VCID=1) |
| Telemóvel Android | o telefone integrado de um telemóvel Android do estabelecimento | app HorecaPOS nesse telemóvel, Definições → Telefonia → Emparelhar este telefone (Android 10+: escolher a app como app de identificação de chamadas) |
A resposta contém quem liga, também como contact (firstname, lastname, phone, email, address) para um modelo CRM do 3CX. Chamadas efetuadas e internas não são mostradas; Apenas estas linhas limita a determinadas linhas ou telefones. As chamadas são apagadas após o prazo de conservação (por predefinição 30 dias, RGPD). Chamada de teste simula a chamada de um número.
Código: apps/pos-server/src/lib/telefonie.ts, routes/telefonie.ts, packages/shared/src/telefonie.ts; ecrãs Telefonie.tsx, BezorgDialoog.tsx; Android android-app/native/java/Beller*.java. Registo: Telefonia.
Estafetas próprios: rondas, acerto de caixa e seguimento
Para estabelecimentos com estafetas próprios. Ative em Definições → Estabelecimento → Entrega → Estafetas próprios (desativado por predefinição). O estafeta não precisa de app: usa uma página no browser do próprio telemóvel (quem quiser usa a app Optimum Bezorger: veja App de estafeta abaixo).
Criar uma ronda. Na caixa está o botão Rondas (com o número de entregas que ainda têm de sair mais as rondas que estão a caminho).
- Em Pronto para entregar, marque os pedidos que vão na ronda. São os pedidos de entrega da caixa, da loja online e da Thuisbezorgd (só entrega própria; não os que têm um estafeta da Thuisbezorgd).
- Escolha o estafeta (um funcionário) e o troco que leva (por predefinição o valor da definição), e toque em Criar ronda.
- Aparece um código QR. O estafeta lê-o com o próprio telemóvel e vê, por morada, o nome, a morada com um botão Percurso (navegação), Ligar, a observação, a hora pretendida e o que há a cobrar. Há uma calculadora de troco (o cliente dá 50 € → troco 31,50 €). Não é preciso iniciar sessão. Partilhe o link só com o estafeta: quem o tiver vê as moradas desta ronda. Com Código QR para o estafeta cria um link novo; o antigo deixa de funcionar.
- Toque em Sair quando o estafeta sair. O troco sai da gaveta (saída de dinheiro, com o motivo). O cliente recebe aviso de que o pedido está a caminho:
- num pedido da caixa por SMS e/ou e-mail, se Mensagens ao cliente estiver ativo (ver Entrega e faixas horárias);
- na loja online conforme configurado na loja (e-mail, SMS ou notificação push);
- na Thuisbezorgd através da Thuisbezorgd.
Se a ronda ainda não saiu, ainda pode ser anulada.
- Pelo caminho, o estafeta toca por morada em Entregue, dinheiro, Entregue, cartão (um terminal de pagamento próprio) ou Entregue (já pago). A caixa vê isso de imediato. Se o estafeta não conseguir registar, também se pode fazer na caixa. De volta ao estabelecimento, o estafeta toca em Estou de volta ao estabelecimento.
Acerto de caixa. Depois da ronda, toque em Cobrar (permissão Gerir gaveta):
- Por pedido, escolha dinheiro, cartão à porta, já pago ou não entregue (voltou). O que o estafeta registou já está preenchido.
- A caixa cobra cada pedido com valor em aberto, sem novo talão (o cliente já tem o talão; pode reimprimir em Talões). Um pedido não entregue sai da ronda e fica em aberto, para poder ir numa ronda seguinte.
- Vê o que é esperado: o troco mais o dinheiro recebido. Introduza o que o estafeta entrega, ou conte por nota e moeda (Contar por nota e moeda). A caixa mostra se está certo, ou quanto há a mais ou a menos.
- O troco volta para a gaveta (entrada de dinheiro). A diferença fica registada na ronda e no registo, e aparece também como diferença de caixa no relatório Z.
Seguimento (ativado à parte na definição). Em a caminho, o cliente recebe um link para uma página de seguimento no portal. Esse link está no SMS ou e-mail, e na loja online na página de estado (Segue o teu estafeta). Na página de seguimento aparece:
- se o pedido está a ser preparado, a caminho ou entregue;
- a hora prevista: a partir da localização do estafeta passando pelas moradas anteriores, caso contrário a hora pretendida;
- quantas moradas ainda vêm antes (sem mostrar outras moradas);
- com O estafeta em direto no mapa, também o estafeta, o estabelecimento e a própria morada num mapa (OpenStreetMap). O próprio estafeta ativa a partilha da localização no telemóvel (Partilhar a minha localização). A localização só é enviada enquanto a página estiver aberta; a página mantém o ecrã ligado.
As páginas aparecem no idioma do telemóvel (todos os idiomas do portal). Na caixa vê em cada ronda quando a localização foi enviada pela última vez (com um link para o mapa).
Privacidade. O portal guarda os dados de uma ronda (nomes, moradas, números de telefone, a localização) só enquanto a ronda decorre. No acerto tudo é apagado, ou então após 24 horas. O cliente só vê o próprio pedido. A localização do estafeta só é visível durante a ronda, e deixa de o ser assim que o estafeta volta.
Planeamento de rondas (opcional)
Ative-o em Definições → Estabelecimento → Entrega → Planeamento de rondas (desligado por predefinição; funciona com estafetas próprios). Na janela Rondas aparece então o botão Sugerir rondas. A caixa agrupa em rondas os pedidos que ainda têm de sair:
- os pedidos próximos uns dos outros cujas horas pretendidas caem dentro da janela horária (por predefinição 30 minutos) vão juntos;
- até ao número máximo de moradas por ronda (por predefinição 4), desde que a ronda (ida, todas as moradas e regresso ao estabelecimento) não demore mais do que o máximo (por predefinição 45 minutos);
- para cada ronda, a melhor ordem, a distância (km), o tempo de viagem de ida e volta e, por morada, a chegada prevista com partida agora. Se for posterior à hora pretendida, aparece mais tarde do que o pedido.
Com Usar esta ronda marca esses pedidos, por essa ordem; escolha o estafeta e toque em Criar ronda. Numa ronda que ainda não partiu, Melhor ordem coloca as moradas na ordem mais rápida (também no telemóvel do estafeta). Cada ronda mostra a distância e o tempo de viagem.
Definições: moradas por ronda, duração máxima de uma ronda, a janela horária, a velocidade do estafeta (bicicleta ~15, scooter ~25, carro ~35 km/h na cidade) e os minutos por morada (estacionar, tocar à campainha, cobrar; por defeito 2). Estes valores também podem ser definidos pelo gerente: na janela Rondas com o botão Configurar planeamento de rondas (permissão Configurar planeamento de rondas, ligada por defeito para o gerente; ajustável em Definições → Permissões). Ligar ou desligar o planeamento de rondas e o serviço de rotas (endereço, chave API) ficam com o administrador.
Distância e tempo de viagem, à escolha do administrador:
- Estimativa (predefinição): distância em linha reta vezes 1,35 (fator de desvio) à velocidade do estafeta. Funciona sem internet e sem conta.
- OSRM: rotas por estrada através de um servidor OSRM. Introduza o endereço (
https://, ouhttp://na rede local). O servidor de demonstração público (https://router.project-osrm.org) é apenas para uso ocasional; para uso diário, instale um servidor OSRM próprio ou recorra a um fornecedor. - OpenRouteService: rotas por estrada com uma chave API própria (gratuita em openrouteservice.org, com um limite diário). O endereço é por predefinição
https://api.openrouteservice.orge pode apontar para um servidor próprio. A chave fica na caixa; os ecrãs mostram apenas que está preenchida.
Com Testar experimenta o serviço. Se o serviço falhar, o planeamento recorre à estimativa e indica-o. Uma morada cuja localização é desconhecida (sem código postal e número de porta válidos) aparece na sugestão em sem localização conhecida e não é planeada. A exportação da configuração inclui as definições, mas não a chave.
Código: lib/ritplanning.ts.
App de estafeta (opcional)
Ative em Definições → Estabelecimento → Entrega → App de estafeta (desativada por predefinição; funciona com estafetas próprios e o portal de gestão). Cada estafeta emparelha então o próprio telemóvel uma única vez, em vez de ler um código QR em cada ronda:
- Em Telemóveis emparelhados, escolha o estafeta (um funcionário), se quiser o nome do telemóvel, e toque em Emparelhar telemóvel.
- Aparece um código QR. O estafeta lê-o na app Optimum Bezorger (botão Emparelhar) ou com a câmara do telemóvel: a página abre-se no browser. Também funciona sem a app e pode ser adicionada ao ecrã principal.
- O emparelhamento mantém-se válido até o revogar; o telemóvel deixa então de ver tudo de imediato. Um novo emparelhamento para o mesmo funcionário substitui o anterior (por exemplo, com um telemóvel novo).
Na app ou na página aparecem todas as rondas próprias (cada ronda que a caixa cria para este estafeta), com os mesmos botões de uma ronda: Percurso, Ligar, valor a cobrar com calculadora de troco, Entregue e Estou de volta ao estabelecimento. Ativável à parte:
- Recolher encomendas sozinho: o estafeta vê as entregas que ainda precisam de ronda, marca o que leva e toca em Levar. A caixa cria a ronda (ou junta-as se esse estafeta já tiver uma ronda que ainda não saiu); o troco padrão vai junto. O que outro já levou deixa de estar disponível.
- Partir sozinho: Partir na app faz o mesmo que na caixa (troco da gaveta, os clientes são avisados).
- Mapa em direto: em Rondas está o botão Mapa com o estabelecimento, todos os estafetas que estão em serviço e os endereços que ainda faltam entregar. O estafeta liga e desliga Em serviço ele próprio. A app envia a localização também com o ecrã desligado (Android: uma notificação na barra enquanto a partilha estiver ligada); a página web só enquanto estiver aberta. Sem esta definição, a localização só é partilhada durante uma ronda com seguimento.
A app para Android está no Google Play e na página de transferências do portal (/download/). Uma versão para iPhone está pronta, mas só sai quando houver uma conta de programador Apple; até lá, os iPhones usam a página web. Numa ronda que o estafeta recolheu ele próprio aparece recolhida pelo estafeta na app.
Código: lib/bezorgersapp.ts, no portal src/volgen.mjs e a app no repositório horecapos-bezorger.
No registo fica quem criou uma ronda, a fez sair, a marcou como entregue e a acertou, com os valores. Desativar: sem botão Rondas; as rondas e as definições ficam guardadas.
No portal: /bezorger/<sleutel> e /volg/<code>. Código: lib/bezorgers.ts, routes/bezorgers.ts, Bezorgers.tsx e no portal src/volgen.mjs.
Alerta de tempo de preparação excessivo
Uma encomenda de take-away ou entrega que fica pronta mais tarde do que o prometido: a caixa deteta-o, avisa e pode enviar de imediato um pedido de desculpa ao cliente, opcionalmente com um vale de desconto. Ative em Definições → Estabelecimento → Entrega → Alerta de tempo de preparação excessivo (desligado por predefinição).
- Que encomendas: take-away e entrega com hora prometida, da caixa (entrega e intervalos horários), da loja online e da Thuisbezorgd.nl / Takeaway.com.
- Atrasado: ainda não pronta ou a caminho tantos minutos (por predefinição 10) após a hora prometida. Pronta ou a caminho significa: tudo pronto no ecrã de cozinha, o estado pronta ou a caminho na loja online ou na Thuisbezorgd, a mensagem ✉ Pronto / ✉ A caminho ao cliente, ou paga. A caixa verifica a cada minuto.
- Alerta: botão Atrasado na barra superior com o número (com som quando há uma nova), com a hora prometida de cada encomenda e quantos minutos de atraso. Uma encomenda desaparece automaticamente quando está pronta ou a caminho, ou com Resolvido; por baixo aparecem as das últimas 24 horas, com a hora em que ficaram prontas. Tudo fica no registo.
- Loja online: a página de estado do cliente mostra que está a demorar mais, com a nova hora prevista.
- Com a Thuisbezorgd não é possível (o cliente pertence à Thuisbezorgd): aí apenas o alerta. É possível usar um texto próprio;
{naam},{zaak},{code},{korting}e{geldig}são preenchidos automaticamente. - Vale de desconto (apenas com Códigos de desconto ligados): com o pedido de desculpa, um código de desconto pessoal para a próxima encomenda (p. ex.
SORRY-7K4Q2M), um valor ou percentagem, de utilização única, válido durante um número de dias, na caixa e na loja online. Os códigos não aparecem na lista de Códigos de desconto. Se o envio falhar, o código caduca. Com o botão na caixa, apenas com a permissão Aplicar desconto. - Desligado: os alertas e os códigos emitidos ficam guardados (também na cópia de segurança); a definição é incluída na exportação da configuração.
Código: lib/telaat.ts, routes/telaat.ts, TeLaat.tsx e packages/shared/src/telaat.ts.
O botão Enviar pedido: o que faz e quando precisa dele
Tocar num produto e tocar em Enviar pedido são dois passos diferentes:
- Tocar num produto coloca-o logo na conta (na lista à esquerda), como novo. Só você o vê: a cozinha e o bar ainda não sabem de nada. Uma linha nova é um rascunho: ainda pode removê-la ou alterar a quantidade ou as opções à vontade, sem anulação.
- Enviar pedido envia todas as linhas novas de uma só vez: as senhas seguem para as impressoras da cozinha e do bar (e para o ecrã da cozinha), e as linhas passam a enviado. A partir daí só se podem remover com uma Anulação (permissão anulação). O botão mostra quantas linhas novas estão prontas, p. ex. Enviar pedido (3); se não houver linhas novas, o botão fica cinzento.
Porquê dois passos? À mesa regista o pedido completo (bebidas, entrada, prato principal), ajusta ainda alguma coisa se o cliente mudar de ideias e depois envia tudo de uma vez para a cozinha, com uma senha por posto em vez de uma por produto. Assim a cozinha pode começar muito antes de se pagar.
O que mais acontece com Enviar pedido:
- Tempos: o tempo 1 vai logo para a cozinha; os tempos 2, 3 e 4 seguem como ESPERA e a cozinha só começa quando chamar esse tempo (ver Tempos).
- Rondas: cada Enviar pedido é uma ronda; é nisso que se baseia ↻ Mais uma ronda.
- O stock é descontado e uma torneira doseada é libertada.
- All-you-can-eat: se for demasiado, demasiado cedo ou demasiado tarde para o menu, a caixa pergunta primeiro se é permitido mesmo assim.
- Bélgica (GKS 2.0): as linhas vão primeiro como pro forma para a caixa negra; se isso falhar, nada vai para a cozinha e continuam como novas.
- Sem ligação: o pedido é guardado e vai para a cozinha assim que a ligação voltar. Impressora desligada: o pedido segue na mesma e a senha entra na fila de impressão (ver Impressora da cozinha desligada ou sem ecrã de cozinha).
Também pode cobrar diretamente. Se tocar em Cobrar enquanto ainda houver linhas novas na conta, a caixa envia-as primeiro automaticamente, para que a cozinha e o bar recebam sempre a sua senha. No bar ou em take-away não precisa, portanto, de tocar primeiro em Enviar pedido: registe os produtos e toque logo em Cobrar. Se esse envio automático falhar (sem ligação, linha de all-you-can-eat, caixa negra), o ecrã de pagamento não abre e vê o motivo.
Prefere que o bar não receba talão quando cobra diretamente? Ative a opção Cobrança direta sem talão de pedido em Definições → Estabelecimento → Pedidos e cobrança. Assim, só o que envia com Enviar pedido vai para a cozinha e o bar; o que cobra diretamente não gera talão de pedido.
Botão Cobrar grande ou pequeno
Com a caixa Botão "Cobrar" grande marcada, o ecrã de pedido mostra um botão Cobrar grande logo abaixo dos produtos pedidos: largo, alto e com o valor, para carregar depressa. Se parte da conta já foi paga, o botão mostra o valor ainda em aberto. O botão pequeno em baixo ao lado de Enviar pedido deixa de aparecer.
Com o botão grande, os botões do ecrã de cobrança também são grandes: Cobrar (em Cartão, Vale-oferta e nas outras formas de pagamento) e, em Dinheiro, Dinheiro certo e Cobrar são largos e altos, fáceis de carregar, mesmo com os dedos sujos (por exemplo, num talho). As formas de pagamento ficam um pouco maiores e os botões de gorjeta um pouco mais pequenos, para que tudo fique visível no ecrã.
Numa instalação nova a caixa está desmarcada: fica então o botão pequeno em baixo ao lado de Enviar pedido e um ecrã de cobrança com botões normais. Prefere grande? Em Definições → Estabelecimento, logo abaixo do tema claro/escuro, marque a caixa Botão "Cobrar" grande. Uma caixa registadora que já estava em uso mantém o que tinha. A escolha aplica-se a todas as caixas e tablets do estabelecimento.
Marcar produto como "esgotado"
No ecrã de pedidos, qualquer pessoa pode manter premido um produto (ou clicar com o botão direito do rato) e escolher Esgotado. O produto fica cinzento e deixa de poder ser pedido em todas as caixas. Da mesma forma volta a ativá-lo com Novamente disponível. Cada alteração fica no registo. O administrador continua a poder fazê-lo em Definições → Produtos. O servidor da caixa também recusa um produto marcado como "esgotado" ("Cola" está esgotado), mesmo vindo de um tablet que ainda não tinha a alteração ou de pedidos guardados offline; esse tablet mostra então "Não foi possível enviar".
Ecrã de cozinha (KDS)
Para além das impressoras de talões de cozinha (não em vez delas), a cozinha ou o bar podem usar um ecrã. Num tablet/PC na cozinha abra http://<kassaserver>:3000/keuken, inicie sessão com um PIN e escolha o posto: têm os mesmos nomes que as impressoras (cozinha, bar, ...), por isso o ecrã mostra exatamente o que sairia nesse talão. "Tudo" mostra todos os postos.
- Um talão por pedido, o mais antigo primeiro, com mesa/take-away, número e há quanto tempo está à espera (laranja após 10, vermelho após 20 minutos).
- Os pratos aparecem separados; um prato que ainda não foi chamado aparece a cinzento como "EM ESPERA de chamada". As anulações aparecem riscadas.
- Toque numa linha para a marcar como pronta, ou em Pronto para o talão inteiro. Os empregados recebem então na barra superior "Cozinha: Mesa 5 está pronta". Com Definições → Estabelecimento → Ecrã de cozinha → Som para os empregados (desligado por predefinição), a caixa emite também um sinal ("ding-dong", sem ficheiro de som). O browser só permite som depois do primeiro toque no ecrã; ligue o volume do tablet.
- Recuperar mostra o que foi indicado como pronto na última hora; o que foi tocado por engano pode voltar assim.
O ecrã atualiza-se sozinho de imediato. Os talões de cozinha continuam a ser impressos; quem não usa o ecrã não nota diferença nenhuma.
Ecrã de cozinha: passar, ordem e prato
Definições → Impressoras → Ecrã de cozinha. Cada parte liga-se separadamente, desligada por predefinição; ao desligar, tudo é guardado.
- Passar entre postos, por exemplo frio → quente → passe. Para cada posto define um posto seguinte fixo; o talão mostra então um botão → quente (e sempre Passar para… para escolher outro posto). Só passam as linhas abertas desse posto. Um posto não precisa de impressora: indique postos como passe em Postos sem impressora. Pronto (e o aviso ao empregado de mesa) só surge no último posto. Em "Tudo", uma linha passada mostra onde está agora. Cada passo fica na linha e no registo.
- Reordenar: arraste os talões (rato) ou mova-os com ◀ ▶ (ecrã tátil). A ordem vale por posto e para todos os ecrãs desse posto; os talões novos ficam no fim.
- Prato seguinte a partir do ecrã de cozinha: num talão com um prato em espera aparece Pedir prato 2. O empregado de mesa recebe então "A cozinha pede o prato 2 para a Mesa 5" (com som) e chama como sempre; o ecrã de cozinha mostra "Prato 2 pedido · n min" até o prato ser chamado. Ou escolha Chamar: o ecrã de cozinha chama então o prato sozinho, com o talão de trabalho "CHAMAR PRATO 2", tal como o botão na caixa.
Impressora de cozinha desligada ou sem ecrã de cozinha
A caixa continua sempre a funcionar, mesmo quando a impressora da cozinha ou do bar está desligada (ou sem papel, ou com o cabo solto) e também sem ecrã de cozinha:
- Enviar pedidos funciona sempre. As linhas ficam logo como pedidas, a conta está certa e pode cobrar normalmente. As impressoras são contactadas em simultâneo e cada uma tem no máximo cerca de 4 segundos: uma impressora desligada não faz esperar muito as outras (nem os empregados).
- Fila de impressão. Um talão de cozinha que não pôde ser impresso vai para a fila de impressão. O servidor da caixa tenta de novo a cada 30 segundos, durante um quarto de hora; assim que a impressora voltar a funcionar, sai com IMPRESSO MAIS TARDE no topo. Se o talão seguinte nessa impressora sair bem, os talões em espera seguem logo atrás.
- Após um quarto de hora as novas tentativas param sozinhas; Reimprimir agora continua possível.
- Ecrã de cozinha. Se o pedido estiver no ecrã de cozinha, a cozinha vê-o lá mesmo com a impressora desligada. Quem não usa ecrã de cozinha não perde nada: a caixa nunca fica à espera do "Pronto" da cozinha.
- A fila existe apenas na memória do servidor da caixa (após um reinício fica vazia).
- O mesmo vale para o talão de venda: se falhar, a cobrança fica feita na mesma (a caixa indica "a impressão falhou") e pode imprimir uma cópia mais tarde em Talões.
Pratos (entrada, prato principal ...)
Os botões de prato só aparecem quando são necessários: assim que houver um menu (produto composto) no pedido, ou quando já houver algo no prato 2 a 4. Com produtos normais, como uma cola, não os vê e tudo vai logo para a cozinha. Não há nada a configurar.
Por baixo da lista do pedido está Prato 1 2 3 4. Por defeito está ativo o prato 1 e tudo funciona como sempre: "Enviar pedido" envia tudo logo para a cozinha, sem cabeçalhos de prato no talão de cozinha. Se escolher o prato 2 (ou superior) antes de tocar nos produtos:
- estes já seguem para a cozinha ao "Enviar pedido", sob "-- Prato 2 · EM ESPERA de chamada --", para que a cozinha possa preparar;
- a lista do pedido mostra "Prato 2 · em espera" com um botão Chamar;
- ao Chamar, a cozinha recebe um talão " CHAMAR PRATO 2 " com o que tem de ser feito agora.
O prato 1 segue sempre de imediato. Se o prato 2 já foi chamado, um prato pedido mais tarde no prato 2 também segue de imediato.
Alergénios por produto
Por defeito desligado: os alergénios não aparecem em lado nenhum. Ligue em Definições → Estabelecimento → Introduzir e mostrar alergénios por produto.
- Definições → Produtos: em cada produto marque os 14 alergénios da UE (glúten, crustáceos, ovos, peixe, amendoins, soja, leite, frutos de casca rija, aipo, mostarda, sementes de sésamo, sulfitos, tremoço, moluscos). Na lista de produtos as abreviaturas aparecem a seguir ao nome.
- Ecrã de pedidos: em cada botão de produto aparecem as abreviaturas em pequeno (p. ex.
Gl Me), e o botão ⚠ Alergénios na barra de grupos mostra, para cada produto da categoria escolhida, os alergénios por extenso, com a explicação das abreviaturas. - As alterações de alergénios ficam no registo (antigo → novo). Se a definição estiver desligada, os alergénios já introduzidos ficam guardados.
All-you-can-eat
Por defeito desligado. Ativa-se em Definições → Estabelecimento → All-you-can-eat (só o administrador). Cria um ou mais menus fixos, p. ex. Peixe, Carne e Sushi, cada um com:
- um nome (aparece no talão: "Peixe adulto", "Peixe criança");
- um preço por adulto e por criança (IVA incluído) e a taxa de IVA (por defeito NL
LAAG, BEB); - os pratos incluídos (€ 0): categorias inteiras e/ou produtos avulsos (também de outras categorias, p. ex. batatas fritas no Peixe e na Carne);
- um limite de tempo em minutos (0 = nenhum);
- rondas: no máximo tantos pratos por pessoa por ronda (0 = ilimitado) e no mínimo tantos minutos entre duas rondas (0 = nenhum);
- um suplemento por desperdício por unidade (0 = nenhum).
Com ↑ ↓ define a ordem. Esta conta quando um prato pertence a vários menus fixos: vai então para o de cima que o grupo escolheu. Eliminar retira um menu fixo para mesas novas; as mesas em curso mantêm as suas linhas de preço (aí ainda pode reduzir pessoas, mas não aumentar).
À mesa:
- No ecrã de pedidos, acima do talão, está + All-you-can-eat. Escolha por menu o número de adultos e crianças; pode misturar (p. ex. 2× Peixe e 2× Carne). O preço entra como linhas na conta; estas não vão para a cozinha. O número de pessoas do grupo passa a ser o total de participantes (se a caixa registar pessoas).
- A barra mostra por menu fixo: pessoas, tempo restante (a vermelho quando o tempo acabou), em que ronda se está e o máximo, e quanto falta para a ronda seguinte. Os pratos incluídos aparecem nos botões como AYCE e no talão com a etiqueta AYCE por € 0. Tudo o que não pertence a nenhum menu fixo escolhido (bebidas, sobremesas ...) continua a ser cobrado normalmente.
- Enviar pedido: cada vez que faz "Enviar pedido" com pratos gratuitos conta como uma ronda, por menu fixo (só os menus de que há pratos no pedido). O que foi registado offline e enviado mais tarde não é bloqueado.
- Editar: ajustar as quantidades por menu fixo. Reduzir pessoas conta como anulação (permissão "anulação"). Pôr um menu fixo a 0 (ou Parar para tudo) é possível enquanto ainda não houver pratos desse menu na conta.
- Suplemento (só se um menu fixo escolhido tiver suplemento por desperdício): escolha a quantidade (e o menu fixo, se houver vários); "Suplemento por desperdício × quantidade" entra na conta.
- Cobrar, dividir, descontos e o talão funcionam como sempre: os preços dos menus fixos, o suplemento e as bebidas são linhas normais com o seu próprio IVA.
- Se o administrador desligar o all-you-can-eat enquanto há grupos a decorrer, os pratos registados a partir daí voltam a custar o preço normal; o que já está na conta mantém-se.
- Na loja online (opcional, desligado por defeito): com Também ao pedir à mesa através do código QR (loja online), o cliente que pede numa mesa com um menu fixo vê os pratos incluídos como Incluído por € 0, com o estado no topo (pessoas, ronda, tempo). Cada pedido é uma ronda, com as mesmas regras de Enviar pedido; demasiados, cedo demais ou tarde demais: a loja recusa de imediato. Bebidas e outros pratos o cliente paga normalmente; tudo vai para a conta da mesa. Desligado = a loja cobra os preços normais, como antes.
Vales-oferta
Dois interruptores em Definições → Estabelecimento → Cartões-presente:
- Vale-oferta como forma de pagamento ao cobrar: ligado por padrão, como sempre foi. Desligado = o botão Vale-oferta não aparece ao cobrar (nem em reembolsar via numa devolução), e o servidor da caixa recusa pagamentos com vale-oferta.
- Vender vales-oferta com saldo: desligado por padrão. Ligado:
- No ecrã de pedidos aparece o botão Vale-oferta: escolha o valor (€ 10, 25, 50, 100 ou outro valor) e deixe a caixa criar um código, ou leia o código de um cartão pré-impresso. O vale entra como linha na conta (código de IVA BON: sem faturação, sem IVA, não vai para a cozinha). Aí também pode consultar o saldo para um cliente.
- Depois de cobrar, o vale fica ativo e a impressora de talões imprime um vale-oferta com o valor, o código e um código QR.
- Usar: ao cobrar, escolha Vale-oferta e leia ou digite o código (o botão Saldo mostra o saldo). O valor é descontado do saldo. Se o saldo for inferior à conta, todo o saldo é usado como pagamento parcial e o resto paga-se com cartão ou dinheiro. O saldo pode ser gasto aos poucos.
- Código vazio = vale-oferta sem código, como antes (p. ex. um vale antigo em papel).
- Relatório → Cartões-presente (permissão Gerir vales-oferta, por padrão gerente e administrador): pesquisar por código, saldo em aberto, histórico por vale, bloquear (perdido/roubado) e corrigir saldo com um motivo. Isto fica no registo.
- Relatórios: os vales-oferta vendidos não contam como faturação e aparecem à parte (Vales-oferta vendidos); o dinheiro recebido aparece nas formas de pagamento. O que se paga com um vale-oferta é faturação normal (com IVA) na forma de pagamento Vale-oferta.
- Contabilidade: os vales vendidos vão a crédito e os vales usados a débito na conta Vales-oferta (saldo dos clientes).
- Um vale-oferta vendido pode ser devolvido em Talões → Devolução, desde que ainda não tenha sido usado (saldo = valor). Após a devolução o vale fica anulado (saldo 0, bloqueado; consta do histórico do vale). Se já foi (parcialmente) usado, ponha o saldo a 0 em Relatório → Cartões-presente e reembolse o restante à parte. Não é possível dar desconto num vale-oferta.
Saldo recarregável (opcional)
Para clubes, cantinas desportivas, centros de juventude e eventos: um vale-oferta com saldo torna-se um cartão recarregável. Ative em Definições → Estabelecimento → Saldo recarregável, por baixo dos vales-oferta (por predefinição desligado; só funciona se Vender vales-oferta com saldo estiver ligado).
- Cartão ou pulseira: venda um vale-oferta com Cartão pré-impresso e leia o cartão (um leitor NFC/RFID que funciona como teclado, ou um código de barras). O número do cartão passa a ser o código; com ele o cliente paga como com um vale-oferta.
- Carregar: ecrã de pedidos → Vale-oferta → Carregar saldo: leia o vale ou cartão e introduza o valor. Entra como linha na conta (código de IVA BON: sem faturação, sem IVA, tal como um vale-oferta vendido) e depois de cobrar fica no saldo. No histórico do vale aparece Carregado.
- Saldo máximo por vale ou cartão (por predefinição € 500, configurável até € 5.000).
- Devolver saldo restante (caixa de verificação, desligado por predefinição; permissão Gerir gaveta): depois de Consultar saldo aparece Devolver saldo restante. O saldo passa a € 0 e o valor aparece como dinheiro retirado da gaveta no relatório X e Z (Saldo devolvido …).
- Um carregamento pode ser anulado via Talões → Devolução enquanto o saldo ainda for pelo menos esse valor; o vale ou cartão continua válido.
- Carregar no quiosque (opcional): veja Quiosque de self-service.
Vales de refeição
Só para estabelecimentos na Bélgica, por predefinição desligado: Definições → Estabelecimento → Cobrar → Vales de refeição. Os vales de refeição são um benefício salarial: o empregador carrega-os num cartão do trabalhador (Edenred, Monizze ou Pluxee). O cliente paga com eles no terminal de pagamento normal; não é necessária nenhuma ligação aos emissores.
- Ligado: ao cobrar aparece o botão Vale de refeição. Escolha o emissor (só os emissores que o estabelecimento aceita) e peça ao cliente que aproxime o cartão do terminal de pagamento, tal como num pagamento com cartão. Sem integração do terminal: o cliente paga no próprio terminal de pagamento e você toca em Cobrar.
- Sem gorjeta e sem troco com vales de refeição. Se o saldo não chegar, o cliente paga o resto de outra forma (a conta fica aberta até estar tudo pago).
- Só para determinadas categorias (opcional, p. ex. comida mas não álcool): nesse caso, com vales de refeição pode pagar-se no máximo o valor desses produtos na conta. O ecrã de cobrança indica quanto; o resto o cliente paga de outra forma.
- No talão: Vale de refeição Pluxee (com o emissor a seguir).
- Relatório Z e relatório X: uma linha própria por emissor (Vale de refeição Edenred, … Monizze, … Pluxee).
- Contabilidade: uma conta do razão própria por emissor (Vales de refeição Pluxee (a receber) etc., por predefinição 416100, 416200 e 416300), porque o dinheiro vem do emissor e não do banco do terminal de pagamento.
- Necessário: um contrato com cada emissor cujos vales aceita e um terminal de pagamento que aceite estes cartões (confirme com o fornecedor do terminal de pagamento).
Moeda estrangeira
Cobrar em dinheiro noutra moeda, p. ex. turistas britânicos ou americanos, ou na zona fronteiriça com francos suíços. Por predefinição desligado: Definições → Estabelecimento → Cobrar → Moeda estrangeira. Adicione as moedas (CHF, CZK, DKK, GBP, HUF, NOK, PLN, SEK, TRY, USD) com um câmbio por moeda: quantos euros conta por 1 unidade (p. ex. 1 GBP = € 1,15).
- Introduzido manualmente: um câmbio fixo; ajuste-o você mesmo quando mudar.
- Em direto (BCE): o câmbio do dia do Banco Central Europeu (câmbios de referência, todos os dias úteis por volta das 16:00; gratuito, sem conta). Com uma margem em percentagem (0-20) o câmbio fica tanto mais baixo, para que o estabelecimento não pague o câmbio do seu bolso. A caixa obtém os câmbios sozinha se tiverem mais de 6 horas; Atualizar agora obtém-nos de imediato. Sem internet mantém-se o último câmbio.
- Ligado: ao cobrar aparece o botão Moeda estrangeira. Escolha a moeda; a caixa mostra quanto é nessa moeda. Introduza o que o cliente entrega: a caixa converte e dá o troco em euros. Se o cliente não quiser troco, marque O troco é gorjeta: o troco entra no talão como gorjeta, na Bélgica nessa moeda (GKS 2.0, UC296).
- Se o cliente entregar menos do que o valor total, é uma parte; o resto paga de outra forma.
- No talão: a moeda, o valor e o câmbio, e o troco em euros.
- Relatório X e Z: uma linha própria por moeda (Moeda estrangeira GBP, em euros) e, na gaveta, o que está na gaveta nessa moeda. O troco em euros é descontado do dinheiro previsto na gaveta; as moedas estrangeiras conta-as à parte.
- Contabilidade: conta como dinheiro (caixa), em euros.
Botões extra para pedidos e cobrança
Botões para o que nem todos os estabelecimentos precisam. Tudo está desligado por predefinição; ligue cada botão em Definições → Estabelecimento → Pedidos e cobrança (permissão Configurar estabelecimento, pagamentos e impressoras). Desligado = o botão não aparece em lado nenhum da caixa e o servidor da caixa recusa a operação. Nos Países Baixos tudo funciona sem caixa negra; na Bélgica um botão só funciona depois de essa função ter sido testada com a caixa negra (junto ao botão é indicado enquanto não for o caso).
Ao abrir uma mesa:
- Registar número de pessoas: a pergunta "Quantas pessoas?" numa mesa livre, as pessoas na planta e no ecrã de pedidos, e os clientes nos relatórios. Ver Número de pessoas.
Ao fazer o pedido (ecrã de pedidos, para o que tocar a seguir):
- Agrupar produtos iguais (sem botão, ativado por predefinição): se tocar novamente no mesmo produto (mesmas opções, ainda não pedido), a quantidade aumenta em vez de surgir uma nova linha: 4 Cola numa linha com o preço vezes 4. Com − retira-se um, mesmo que já tenha sido pedido (estorno de um). Com uma observação, lugar ou para levar, fica numa linha própria; o que já foi pedido fica numa linha própria (uma nova ronda).
- − e + (antes do preço em cada linha): − retira um, + acrescenta um (mesmo produto, opções e observação; se Agrupar produtos iguais estiver desligado, uma nova linha). Ainda não pedido e em 0: a linha desaparece. Já pedido: um a menos é um estorno, essa linha fica riscada (para a cozinha e os relatórios); um a mais torna-se uma nova linha que ainda tem de ser pedida. Tocar no próprio preço já não remove nada. Num menu só −.
- Para levar (só no local): o cliente leva este produto, ex. uma garrafa de água ou uma sobremesa. Essa linha recebe o IVA de take-away (na Bélgica etiqueta C), o resto da conta o IVA de consumo no local. No talão aparece levar junto à linha.
- Lugar (numa mesa): toque várias vezes para o lugar 1, 2, 3 ...; as linhas recebem esse número de lugar (também no talão de cozinha). Na Bélgica cada linha vai para a caixa negra com o centro de custo do lugar (CHAIR, UC4123). Mais uma vez após o lugar 12 = novamente sem lugar.
- Devolução de vasilhame: o produto seguinte entra com -1, ex. uma garrafa ou um copo vazio (depósito). Só é possível com produtos com Retornável (depósito) (Definições → Produtos). Se toda a conta for negativa (só depósito devolvido, sem venda), Cobrar passa a ser um reembolso: em dinheiro ou com cartão (reembolsado no próprio terminal). Na Bélgica como reembolso (REFUND, UC4108 e UC4114).
- Resgatar SPV: o cliente paga um produto ou menu com um single purpose voucher (um vale para exatamente esse produto, ex. "1 menu all-in"). Toque em Resgatar SPV e depois no produto no talão: entra com -1 (mesmo preço e IVA, num menu com os componentes), com SPV ao lado. Não vai para a cozinha; pode ser retirado normalmente. Um produto-vale vende-se antecipadamente como produto normal; em Definições → Produtos marque SPV (vale). Na Bélgica a linha vai para a caixa negra como VOUCHER na venda (UC271).
- Descontar adiantamento: ver abaixo.
- Preço aberto (sem botão, por produto): num produto com Preço aberto a caixa pede o preço, ex. o prato do dia ou um adiantamento.
Ao cobrar:
- Cobrança direta sem talão de pedido (não é um botão): por predefinição, Cobrar envia primeiro o que ainda não foi pedido, para que a cozinha e o bar recebam sempre o seu talão (veja O botão Enviar pedido: o que faz e quando precisa dele). Ligado: o que cobra diretamente sem tocar primeiro em Enviar pedido não gera talão de pedido, p. ex., ao balcão do bar, onde é o próprio a servir. O que já foi pedido não muda.
- Cobrar à parte (numa mesa, em Dividir a conta): escolha o que um cliente paga agora, mesmo parte de uma linha (½ para meia garrafa). Isso torna-se uma parte própria que cobra de imediato; o resto fica na conta, sem dividir a conta primeiro nem a mover para outro grupo. Um desconto percentual sobre todo o talão é aplicado proporcionalmente. Voltar sem pagar = tudo de novo na conta. Na Bélgica a venda fica no lugar da mesa, sem mudança de mesa (UC4103bis, UC4104).
- Cliente saiu sem pagar (permissão Fechar sem pagamento, por predefinição só gerente e administrador): a conta é fechada como venda sem pagamento, com um motivo no registo. No relatório X e Z e no resumo diário aparece como Não pago (cliente saiu); no lançamento contabilístico vai para incobrável (por predefinição 4985 / 643000). Na Bélgica uma venda sem pagamento (UC4109).
Posteriormente (Talões):
- Corrigir preço (permissão Corrigir o preço de um talão, por predefinição só gerente e administrador): o preço de um talão cobrado estava errado, ex. 50% de desconto em vez de 5%. A caixa cria um talão novo sem mesa com as linhas do talão antigo anuladas (em negativo, ao preço pago na altura) e os mesmos produtos outra vez ao preço normal. Aplique aí o desconto certo e cobre a diferença (ou reembolse se o preço novo for mais baixo). O talão antigo fica como estava; uma vez por talão, e não se já houver alguma devolução. Na Bélgica as linhas antigas seguem como CORRECTION (UC4116).
Código: apps/pos-server/src/lib/kassaopties.ts, routes/kassaopties.ts; ecrã KassaOpties.tsx. Registo: Definição alterada, SPV resgatado, Corrigir talão, Não pago.
Descontar adiantamento
Um adiantamento (sinal, ex. para uma festa ou uma reserva) vende-se como um produto normal com Adiantamento ligado (Definições → Produtos; tem sempre preço aberto). Crie um por taxa de IVA se o adiantamento tiver de ser por taxa (ex. Adiantamento comida e Adiantamento bebidas), ou um só produto se for uma parte do orçamento. O cliente paga o adiantamento antecipadamente e recebe um talão.
Ligar: Definições → Estabelecimento → Pedidos e cobrança → Descontar adiantamento (desligado por predefinição). Na cobrança final, toque em Descontar adiantamento no ecrã de pedidos e introduza o número do talão do adiantamento. A caixa coloca as linhas de adiantamento desse talão na conta com quantidade negativa (mesmo produto, preço e IVA). O que já foi descontado não pode ser descontado outra vez. Se o adiantamento for superior à conta, o cliente recebe a diferença (reembolso). Na Bélgica as linhas descontadas vão para a caixa negra como reembolso (REFUND) (UC4110, UC4111, UC4113). Registo: Adiantamento descontado.
Talão por e-mail
Desligado por padrão. Ative em Definições → Estabelecimento → Talão também por e-mail.
SMTP_HOST=smtp.voorbeeld.nl
SMTP_PORT=587
SMTP_GEBRUIKER=kassa@voorbeeld.nl
SMTP_WACHTWOORD=...
SMTP_AFZENDER=bon@voorbeeld.nl
Reinicie a caixa depois de preencher. A partir daí, em Cobrar aparece o campo Enviar também o talão por e-mail (opcional): vazio = só imprimir, como sempre; com um endereço de e-mail = o mesmo talão (com discriminação do IVA e linhas fiscais) é também enviado por e-mail ao cliente, com o nome do estabelecimento como remetente.
- O endereço de e-mail não é guardado; no registo aparece apenas "talão N enviado para a***@domein.nl" e se correu bem.
- Se o envio falhar (p. ex. dados de acesso errados), o talão fica cobrado e impresso normalmente; a mensagem indica o que correu mal.
- Não num pagamento parcial (dividir a conta): o talão sai no último pagamento, por isso é aí que introduz o endereço.
- Enviar mais tarde: em Talões, cada talão tem o botão Enviar por e-mail (permissão Imprimir cópia de um talão). Envia o talão com a indicação CÓPIA, tal como uma cópia impressa (na Bélgica registado como cópia).
- Não são precisos pacotes extra: a caixa comunica diretamente com o servidor de e-mail (STARTTLS na 587, TLS na 465).
Reservas
Ative em Definições → Estabelecimento → Reservas (desligado por predefinição). Aí também define quantos minutos antes uma mesa reservada aparece na planta (padrão 60) e a duração padrão de uma reserva (padrão 120 minutos).
- Botão Reservas na barra superior: vista por dia (◀ ▶), com o número de reservas, pessoas e faltas. + Nova reserva: nome, telefone, e-mail, pessoas, data, hora, duração, mesa (pode ser depois) e observação. As reservas são feitas pelo pessoal; reservas online ainda não existem.
- Se já houver uma reserva na mesma mesa nesse período, a caixa avisa; "Guardar mesmo assim" é possível.
- Confirmação por e-mail (visto, ou mais tarde "Enviar por e-mail") se houver um endereço de e-mail e um servidor de e-mail (
SMTP_HOST, ver Talão por e-mail). - Na planta, uma mesa livre reservada aparece a roxo com "R 19:30 Jansen (4)". Ao tocar nela: "Jansen chegou" abre a mesa com 4 pessoas e "Jansen" como nome do grupo; "Outros clientes" abre-a normalmente.
- Na vista geral: Chegou (abre a mesa; sem mesa, escolhe primeiro uma), Alterar, Não compareceu, Cancelar e Restaurar. Tudo fica no registo.
- Reservas de plataformas online: ver Plataformas de reservas abaixo.
Integração de caixa TheFork: mesa aberta à chegada, conta de volta
Com a API POS do TheFork, a caixa trabalha em conjunto com o TheFork Manager (desligado por predefinição), além de ir buscar as reservas acima. Ligar em Definições → Plataformas de reservas → Integração de caixa TheFork; funciona através do portal de gestão.
- Se puser um cliente em Chegou ou Sentado no TheFork Manager, abre-se na caixa a mesa com o mesmo nome, com o número de pessoas e uma observação: nome, alergias e dieta, pré-pagamento, oferta/desconto e pontos de fidelização (Yums). Se essa mesa já tiver um pedido aberto, este é associado. Sem mesa com esse nome: um aviso, e escolhe a mesa em Plataformas.
- Após o pagamento, a conta vai para o TheFork (total e linhas com nome, grupo de produtos, quantidade e valor); o TheFork põe então a reserva em Saiu. Com pagamento dividido, uma só conta com o total. Se falhar, a caixa tenta novamente a cada quarto de hora (durante dois dias), ou com Reenviar em Plataformas.
- Associar: a caixa mostra um código de associação; introduza-o no TheFork Manager (Integrações → caixa). O ID do restaurante do TheFork (Customer-id) é introduzido pelo administrador, ou chega automaticamente com o primeiro pedido.
- Caixas de seleção: abrir a mesa automaticamente, nome, alergias e pré-pagamento como observação, conta para o TheFork.
- Requisito: a Pin Voordeel tem a chave API do TheFork (só para parceiros) e registou lá a caixa como POS (botão no portal de gestão); o TheFork ativa a integração após uma sessão de teste.
Documentação do TheFork: https://docs.thefork.io/POS-API/introduction
Lista de espera para clientes sem reserva
Para clientes sem reserva que estão à espera de uma mesa. Ativar em Definições → Estabelecimento → Lista de espera (sem reserva) (desligado por predefinição). Só visível se o SMS via CM.com estiver configurado; caso contrário, a lista de espera não aparece em lado nenhum na caixa (nem nas definições). Funciona à parte das reservas: também quando estão desligadas. Aí também está o texto do SMS (vazio = "Hallo {naam}, uw tafel bij {zaak} is klaar. Wilt u zich melden bij de bediening?"; {naam}, {zaak} e {personen} são preenchidos).
- Botão Lista de espera na barra superior, com o número de pessoas à espera (laranja quando alguém espera). + Na lista de espera: nome, telefone (para o SMS), pessoas, o tempo de espera indicado e um pedido (esplanada, cadeira de bebé).
- A lista está por ordem de chegada, com há quanto tempo cada um espera (a vermelho quando demora mais do que o indicado) e, no topo, o número de pessoas à espera, de pessoas no total e a espera média de hoje.
- Se o SMS falhar, aparece o motivo. É possível enviar SMS de novo.
- Sentar: escolha a mesa; a caixa abre-a com o número de pessoas (se a caixa registar pessoas) e o nome como nome do grupo (tal como numa reserva que chega).
- Saiu (saiu ou cancelou) e Restaurar. Por baixo da lista aparece quem foi sentado ou saiu hoje, com quanto tempo esperou.
- Privacidade: os números de telefone são apagados ao fim de um dia; quem ainda estiver na lista após 12 horas sai automaticamente. Adicionar, chamar (só com os últimos 3 algarismos do número) e sentar ficam no registo.
- Porque não nas Reservas? Uma reserva é para mais tarde (data, hora, mesa antecipadamente); a lista de espera é para agora (ordem, espera, SMS quando a mesa fica livre). Por isso um interruptor e um botão próprios, com o mesmo "abrir mesa" de uma reserva.
- Online na lista de espera (opcional, desligado por defeito; só com a loja online): com Os clientes também se podem inscrever sozinhos na loja online, a loja mostra Lista de espera (e há um código QR para a porta, na gestão da loja em Mesas e QR). O cliente indica nome, telefone, pessoas e um pedido e vê o seu lugar em tempo real. Na caixa aparece na lista com online; chamar, sentar e saiu funcionam como sempre, e o cliente também o vê no telemóvel (onde também pode cancelar).
Cartão de cliente / pontos
Ative em Definições → Estabelecimento → Cartão de cliente / pontos (desligado por predefinição; assim não se vê nada em lado nenhum). Aí também define: pontos por euro (0 = só cartões de carimbos), após quantos pontos há recompensa e quantos euros de desconto vale essa recompensa.
- Na caixa, por cima do talão, aparece "+ Cartão de cliente": procure o cliente por nome ou número de telefone, ou crie um novo cliente (nome, opcionalmente telefone e e-mail). Depois, o nome com o saldo de pontos aparece no talão.
- Trocar: com pontos suficientes, "Trocar 100 pontos: € 5 de desconto"; com um cartão de carimbos completo, "Café grátis" (esse café tem de estar no talão). Isso torna-se uma linha de desconto; qualquer pessoa a pode remover.
- Os pontos e carimbos só são somados e descontados ao cobrar: pontos sobre o valor após desconto (sem vales-oferta vendidos), carimbos por unidade de um produto com cartão de carimbos (o produto grátis não conta).
- No talão: pontos acumulados, trocados, saldo e o estado dos cartões de carimbos.
- Relatório → Clientes (permissão Gerir cartão de cliente): procurar clientes, alterar dados, corrigir pontos (com motivo), histórico e eliminar (RGPD: nome, telefone e e-mail são apagados; o histórico fica anónimo). Em baixo, os cartões de carimbos por produto (p. ex. 10 cafés = 1 grátis).
- Uma devolução não anula automaticamente os pontos acumulados; corrija-os, se necessário, em Relatório → Clientes.
- Cartão de cliente com número (opcional): em Relatório → Clientes → (cliente) introduza o número do cartão (ou leia o cartão nesse campo). Com o leitor de códigos de barras, a leitura desse cartão associa o cliente ao talão, na caixa e no quiosque. Também pode pesquisar pelo número do cartão em + Cartão de cliente.
Perfil do cliente: VIP, restrições alimentares e preferências (opcional)
Ative em Definições → Estabelecimento → Perfil do cliente, por baixo do cartão de cliente (por defeito desligado; só funciona com o cartão de cliente ligado). Depois:
- No ecrã de pedidos aparece, por baixo do cliente associado, "+ Perfil do cliente": marque VIP, escolha restrições alimentares (vegetariano, vegano, pescetariano, halal, kosher) e alergias (os 14 alergénios) e escreva preferências (p. ex. "mesa habitual junto à janela", no máximo 300 caracteres). Depois aparecem junto ao cliente no ecrã de pedidos, as alergias a vermelho. Também se podem alterar em Relatório → Clientes → (cliente) → Perfil do cliente.
- Se tocar num produto com um alergénio do cliente (ver Alergénios por produto), a caixa pergunta primeiro se deve mesmo ser adicionado. Conta apenas o que está preenchido no produto; em caso de dúvida, pergunte sempre à cozinha.
- Um VIP recebe uma ★ na planta: numa conta aberta e na reserva mostrada desse cliente. Quando os clientes de uma reserva chegam, a caixa associa o cliente da reserva à conta.
- As restrições alimentares e as alergias (e VIP) aparecem no talão de cozinha para a cozinha e o bar:
GAST: VIP · Vegetarisch · allergie: Noten. - As restrições alimentares e as alergias são dados de saúde: preencha-as apenas com o consentimento do cliente. No registo aparece apenas que o perfil foi alterado, não as preferências em si. Eliminar o cliente também remove o perfil do cliente.
Favoritos / botões rápidos
Desligado por padrão. Definições → Estabelecimento → Favoritos / botões rápidos:
- Mais vendidos: no início da barra de categorias, o botão ★ Favoritos com os 12 produtos mais vendidos nos últimos 14 dias (atualizado automaticamente). O ecrã de pedidos abre nos favoritos.
- Escolher manualmente: no ecrã de pedidos, mantenha um produto premido (ou clique com o botão direito) e escolha ★ Favorito (botão rápido); outra vez = remover. Permissão Gerir produtos. Todas as caixas veem logo a alteração.
- Registar, opções, menus, happy hour e "esgotado" funcionam nos favoritos exatamente como nas categorias normais.
Mais uma ronda
No ecrã de pedidos aparece o botão ↻ Mais uma ronda (assim que haja algo na conta, mesmo que ainda não tenha sido pedido). Um toque volta a juntar a última ronda (tudo o que foi enviado de uma vez com "Enviar pedido", ou o que acabou de tocar) como novas linhas; depois é só Enviar pedido. Os preços são os atuais (incluindo happy hour).
- Toque longo (ou clique com o botão direito): escolha você. Com ◀ ▶ navega para rondas anteriores, por produto ligar/desligar (p. ex. desmarcar a comida) e a quantidade com − / +. Opções e observações são incluídas.
- Produtos esgotados e menus não são incluídos (os menus registam-se à parte). Também funciona sem ligação.
- As linhas são adicionadas tal como aparecem na conta: com Agrupar produtos iguais ativado, uma linha por produto (2 Cola); desativado, cada linha em separado (2 vezes 1 Cola).
Tempo de mesa na planta
Cada mesa ocupada mostra ⏱ 45m · 12m: há quanto tempo a mesa está ocupada e há quanto tempo foi registado algo pela última vez (toque e mantenha na mesa, ou passe o rato por cima, para ver as horas exatas). Se durante algum tempo nada for pedido, a mesa fica com uma borda laranja: passe por lá. Quantos minutos define em Definições → Estabelecimento → Tempo de mesa (padrão 20, 0 = sem borda laranja). Se ainda nada foi registado, conta a partir da abertura da mesa.
Se houver vários grupos (contas próprias) numa mesa, aparece uma linha por grupo, p. ex. G1 ⏱ 50m · 12m e Jansen ⏱ 10m (o nome do grupo, ou então o número do grupo). Um grupo parado há demasiado tempo recebe uma etiqueta laranja e a mesa uma borda laranja.
Mover a mesa inteira
No ecrã de pedidos existe Mudar de mesa. Escolha a sala (p. ex. Esplanada) e uma mesa: todos os grupos da mesa vão juntos, cada um com a sua própria conta. Se escolher uma mesa ocupada, as mesas são juntadas (os grupos são acrescentados). Se quiser mover apenas uma parte, use como antes Dividir / mover. Se tudo tiver de ficar numa só conta, use Juntar.
Continuar offline (tablet sem wifi)
Se a ligação entre um tablet e o servidor da caixa falhar (Wi-Fi na esplanada, servidor desligado por momentos), aparece uma barra amarela e o tablet continua a trabalhar com as últimas mesas, produtos e pedidos abertos guardados:
- abrir mesas, registar produtos e Enviar pedido ficam guardados no tablet (mesmo que reinicie) e aparecem na lista de pedidos com uma borda tracejada ("ainda não enviado");
- assim que a ligação volta, tudo segue por ordem para o servidor e só então o talão de cozinha vai para a cozinha. Cada envio tem uma chave, por isso nada chega em duplicado. Se entretanto outra pessoa abriu a mesa, os produtos juntam-se a esse pedido;
- cobrar, descontos, dividir, etc. só funcionam com ligação; "Cobrar" espera até tudo dessa mesa estar enviado.
Número de pessoas
Opcional e desligado por predefinição: Definições → Estabelecimento → Pedidos e pagamento → Registar número de pessoas. Desligado = o mínimo de toques possível: uma mesa livre abre com um só toque, não aparecem pessoas em lado nenhum, e o relatório, o painel e o resumo do dia não mostram clientes nem consumo por cliente.
Ligado: ao tocar numa mesa livre, a caixa pergunta quantas pessoas são (botões grandes 1-8, ou escrever; "Saltar" = 1). Na planta, uma mesa ocupada mostra "3/4 pess." (pessoas/lugares, a amarelo se houver mais pessoas do que lugares). No ecrã de pedidos altera-o com o botão "3 pess." na barra de grupos; com vários grupos, a mesa soma todos os grupos.
Sem pessoas tudo continua a funcionar: Dividir igualmente no pagamento começa em 2, o all-you-can-eat pergunta ele próprio o número de adultos e crianças, e as reservas e a lista de espera mantêm o seu próprio número de pessoas (a mesa abre então sem pessoas).
Registo HACCP
Todos os estabelecimentos de restauração têm de monitorizar e registar a segurança alimentar: nos Países Baixos segundo a Hygiënecode voor de Horeca (código de higiene para a restauração, fiscalização pela NVWA), na Bélgica segundo o autocontrolo do FAVV (guia G-023). Ative o Registo HACCP em Definições → Leis e normas (desativado por predefinição).
- Pontos de medição (administrador): p. ex. câmara frigorífica, congelador, manutenção a quente, temperatura no centro após confeção, arrefecimento rápido e receção de mercadorias, com um mínimo e/ou máximo em °C e a frequência (todos os dias, duas vezes por dia, todas as semanas ou na utilização). Adicionar lista padrão cria um ponto de partida (refrigeração até 7 °C, na Bélgica até 4 °C; congelador até -18 °C; manutenção a quente a partir de 60 °C; confeção a partir de 75 °C).
- Limpeza e controlo: tarefas por dia, semana (opcionalmente num dia fixo) ou mês, com área e instruções, p. ex. desinfetar tábuas de corte, filtros de gordura, controlo de pragas, verificar o termómetro.
- Registar (qualquer pessoa com sessão iniciada): botão HACCP na barra superior, com o número ainda em aberto hoje. Introduza a temperatura ou marque uma tarefa (Feito ou Não feito). Se uma temperatura estiver fora do limite, é obrigatória uma ação corretiva (p. ex. "porta fechada, produto deitado fora"). Os registos não podem ser alterados; um erro corrige-se com um novo registo.
- Resumo (permissão Faturação por período): por período todos os registos, o número de desvios e os registos em falta por dia; como CSV (Excel) ou para imprimir / guardar como PDF para uma inspeção.
Sistema de pressão e caudalímetros
Cada tiragem comunicada por um computador de pressão ou caudalímetro vai para a conta, para que nada se "perca". Ative em Definições → Sistema de pressão (desligado por predefinição).
- Fontes (administrador): o computador de tiragem ou o sistema de medidores de caudal. Escolha a marca; a caixa preenche uma predefinição. Dos Países Baixos e da Bélgica: Van Duijnen Horeca (automatização de tiragem, Dashbar), Beconet (Multi-Tap), TapSystems, Horecatechniek Nederland, Heineken SmartDispense, WeissBeerger / AB InBev e BarTrack; e ainda Gruber, Addimat, WMF / Hogatron (E-Protokoll), Drinkotec (ex-Hartec), , Berg, Easybar, Azbar, Scanabar, PourMyBeer, iPourIt, BeerBoard, US BeerSAVER, Bevchek, Capton/BarVision, Kegtron, Kegbot Kegboard, uma "torneira inteligente" ou um sistema próprio. Pode ligar de cinco formas (Kegboard: ver Tiragem doseada e Kegboard abaixo):
- Campos:
kraan(outap,plu),ml(oucl,liter,volumecomeenheid) ouporties,id(a mesma tiragem duas vezes = registada uma vez),tijdstip,tafel,bediening; uma tiragem, uma lista ou{ "taps": [...] }. - Rede (TCP): a caixa liga-se ao computador de pressão (endereço e porta) ou escuta ela própria numa porta.
- Porta série: porta COM ou USB-série, 1200–115200 baud, 8N1, 7E1 ou 7O1.
- Em rede e série define o formato da mensagem (uma mensagem por linha, ou STX … ETX com eventual verificação XOR e ACK/NAK de volta) e o padrão de uma mensagem, com as partes
kraanouplue eventualmenteml,cl,liter,porties,tafel,bedieningeid(p. ex.kraan;mlou apenas um PLU por copo). Os fornecedores só dão o formato exato aos instaladores; pergunte ao fornecedor do computador de pressão. Tiragem de teste envia uma tiragem como o computador de pressão faria.
- Campos:
- Torneiras (administrador): por torneira ou PLU, o produto e como vai para a conta: por copo (copo em ml; uma tiragem de 520 ml com copos de 250 ml = 2 copos; a partir de 50% conta um copo) ou por litro (o preço do produto é o preço por litro; na conta, p. ex., "Pilsner 0,33 l" pelo valor correto).
- Na conta: se o computador de pressão comunicar uma mesa, a tiragem vai logo para o pedido aberto dessa mesa. Caso contrário fica em Tirado: no ecrã de pedidos aparece a barra "… tiragem(ns) sem conta"; escolha as tiragens e toque em Nesta conta. As linhas ficam logo como pedido (já não vai talão de trabalho para o bar) e o stock é descontado. O botão Tirado na barra superior mostra tudo o que ainda não tem conta.
- Rejeitar (permissão Anulação): lavagem, quebra, prova, pessoal, oferta ou outros (com observação); isto fica no registo. Pouco demais para um copo (p. ex. lavagem) tem de ser rejeitado.
- Resumo (permissão Faturação por período): por torneira, tirado, na conta, rejeitado (por motivo), cancelado e ainda em aberto, em litros, com a percentagem vendida, e em CSV.
- As tiragens comunicadas não podem ser alteradas (apenas tratadas).
Tiragem doseada e Kegboard
Com a tiragem doseada, uma torneira só abre depois de o copo ser registado na caixa, e apenas para essa quantidade. Assim, nada é tirado sem estar na conta. Só funciona com o sistema de pressão ativo, e ativa-se por torneira (desativado por predefinição).
- Por torneira (administrador, Definições → Sistema de pressão → Torneiras): marque Tiragem doseada e escolha quanto tempo a torneira pode ficar aberta após o registo (10–600 segundos, predefinição 120). No Kegboard indique também o relé (válvula solenoide). A tiragem doseada só funciona por copo.
- Registo: ao Enviar pedido (ou ao Cobrar diretamente), a caixa cria, por cada linha da conta com esse produto, uma libertação (número de copos × copo em ml) e envia-a para o computador de tiragem. A tiragem que chega depois pertence a essa linha. Por isso não entra outra vez na conta nem em Tirado. Uma tiragem sem libertação entra normalmente em Tirado.
- Anulação da linha antes de tirar: a torneira volta a fechar. Uma libertação que não foi tirada a tempo expira; a torneira nunca abre mais tarde.
- Libertações no ecrã de pedidos (uma barra acima da conta): ver o que está em curso, Parar e Libertar novamente. Só é possível libertar novamente se ainda nada tiver sido tirado, por isso nunca se liberta nada a mais. Libertação de teste (administrador) liberta um copo sem conta; isso fica no histórico.
- Como a libertação chega ao computador de tiragem:
- Kegboard (Kegbot, open source, ESP32 com medidores de caudal e válvulas solenoides; protocolo totalmente público): a caixa dá um grant para as torneiras com esse produto, os relés e a quantidade. A placa fecha a torneira sozinha quando a quantidade é atingida ou o tempo acaba.
- Rede/série: um comando de libertação configurável com
{kraan},{ml},{porties},{sec}e{id}(p. ex.V{kraan};{ml}), enviado no formato de mensagem da fonte (linha ou STX … ETX com XOR). Opcionalmente há um comando de paragem. O comando exato é indicado pelo fornecedor.
- Ligar o Kegboard: em + Fonte, escolha a marca Kegbot Kegboard. A placa apresenta-se na fonte; clique em Permitir (ou Recusar). A placa recebe então uma única vez uma chave própria, que a caixa guarda apenas como hash. Outro dispositivo ou uma chave errada não altera nada numa placa ligada; se a placa perdeu a chave, use primeiro Desligar. A fonte mostra o firmware, os medidores e os relés da placa. As torneiras são os números dos medidores (0, 1 …). Um cartão apresentado à placa é recusado: o pagamento é feito na caixa. Se o sistema de pressão estiver desligado, a placa guarda as mensagens e envia-as mais tarde.
- Na fonte define após quantos segundos sem fluxo a torneira fecha (5–300, predefinição 30). Para cada torneira indique o número do medidor, o relé (válvula solenoide) e quanto tempo a torneira pode ficar aberta depois de registar o artigo.
Controlar a música a partir da caixa
O pessoal controla a música no ecrã tátil da caixa, por isso não é preciso um ecrã separado no balcão. Ative em Definições → Estabelecimento → Ecrãs e utilização → Controlar a música a partir da caixa (desligado por predefinição). Aparece então o botão Música na barra superior: por fonte (p. ex. Bar e Esplanada) Reproduzir, Pausa, Seguinte, Anterior, Mais alto, Mais baixo e um controlo deslizante para o volume, com o que está a tocar. Voltar à caixa fecha o painel. Ao desligar, as fontes são guardadas.
- Playlist (Sonos, Bluesound e VLC): a fila com o que está a tocar. Toque numa faixa para a reproduzir; com Editar remove faixas (✕), sobe-as ou desce-as (↑ ↓; Sonos e Bluesound) ou esvazia a playlist. Com Escolher outra música reproduz um favorito Sonos (p. ex. uma estação ou um canal Tunify) ou uma lista de reprodução Sonos, ou uma predefinição BluOS.
- Num ecrã próprio: os mesmos comandos e a playlist em grande em
http://<kassaserver>:3000/muziek, p. ex. num segundo monitor ao lado da caixa ou num tablet no balcão (com sessão já iniciada no mesmo dispositivo, caso contrário com um PIN). - Num tablet ou telemóvel: um código QR com o endereço desse ecrã próprio na rede do estabelecimento. Um funcionário lê-o com o seu próprio tablet ou telemóvel (na rede Wi-Fi do estabelecimento) e inicia sessão com o seu próprio PIN; com Terminar sessão fica novamente fechado. Ver Segundo ecrã num tablet ou telemóvel.
O gestor adiciona as fontes com + Fonte de música, escolhe como cada uma está ligada e testa-a com Testar:
- Soundtrack (soundtrack.io): através da API pública, com um token API (a pedir à Soundtrack) e uma zona de som (Carregar zonas). Reproduzir, pausa, seguinte, volume e o que está a tocar.
- Sonos: o endereço IP da coluna (num grupo: a coluna que lidera o grupo). Funciona com tudo o que tocar no Sonos, p. ex. Tunify, Spotify ou rádio.
- Bluesound (BluOS): o endereço IP do leitor; também funciona com tudo o que tocar nele, p. ex. Tunify.
- VLC no computador de música: a interface web ativada (Ferramentas → Preferências → Mostrar definições: Todas → Interface → Interfaces principais: Web, com uma palavra-passe em Lua); o endereço IP (opcionalmente com
:poort, predefinição 8080) e a palavra-passe. - Computador de música próprio (endereços web): para um computador ou box de música com um endereço web por botão; GET ou POST, e
{volume}(0-100) no endereço para o volume. Sem endereço de Mais alto/Mais baixo, a caixa ajusta o volume por passos. - Leitor web do serviço de música: o endereço web do leitor web ou da página de controlo (p. ex. o leitor web da Tunify ou Media Tools) abre na caixa com o botão Música; se o serviço não puder ser mostrado dentro de outro ecrã, use Abrir numa janela própria.
A caixa comunica com os leitores a partir do servidor, por isso estes têm de estar na mesma rede que a caixa (Soundtrack através da internet). Qualquer pessoa com sessão iniciada pode controlar a música; para configurar é preciso a permissão Configurar estabelecimento, pagamentos e impressoras. O token e a palavra-passe nunca voltam a ser mostrados nem aparecem no registo; no registo fica apenas a configuração (ligado/desligado, fontes), não cada toque num botão. A exportação da configuração inclui apenas ligado/desligado (as fontes pertencem a um único estabelecimento).
Segundo ecrã num tablet ou telemóvel
A música e as câmaras também podem ser vistas no tablet ou telemóvel próprio de um funcionário, como segundo ecrã ao lado da caixa. Na janela Música ou Câmaras está o botão Num tablet ou telemóvel: mostra um código QR com o endereço, p. ex. http://192.168.1.20:3000/muziek ou .../camera.
- Ligue o tablet ou telemóvel à rede Wi-Fi do estabelecimento.
- Leia o código QR com a câmara (ou escreva o endereço no browser).
- Inicie sessão com o seu próprio PIN. Só vê o que lhe é permitido: a música todos, as câmaras apenas com a permissão Ver imagens das câmaras.
- Concluído: Terminar sessão no canto superior direito. Se a sessão tiver expirado (p. ex. o tablet esteve parado durante a noite), o ecrã volta a pedir o PIN.
Dica: adicione a página ao ecrã principal do tablet (no browser: Adicionar ao ecrã principal) e ela abre como uma app.
Por isso a caixa obtém o endereço IP do PC da caixa na rede (se o PC tiver vários, p. ex. Wi-Fi e cabo, escolhe a rede). No portal de gestão (caixa à distância) é o endereço do portal. A caixa gera o código QR sozinha, sem internet.
Emparelhar tablets: com um só botão para o tablet (opcional)
Ainda mais fácil: emparelhe um tablet uma vez e a caixa envia a música ou as câmaras para esse tablet com um só botão. Ative-o em Definições → Estabelecimento → Ecrãs e utilização → Tablets como segundo ecrã (desligado por predefinição).
- No tablet: abra
http://<kassaserver>:3000/tablet(na definição aparece Num tablet ou telemóvel com o código QR), inicie sessão com um PIN e dê um nome ao tablet, p. ex. Tablet Bar. Emparelhar. - Na caixa: na janela Música ou Câmaras aparece agora o botão Para Tablet Bar (com um ponto verde quando o tablet está ligado). Toque nele: o tablet abre esse ecrã sozinho. Na música, a fonte escolhida também é enviada (p. ex. Esplanada).
- No tablet: Fechar volta à espera; Desemparelhar este tablet remove o emparelhamento.
Deixe a página aberta no tablet; se o tablet estiver desligado ou em repouso, abre o ecrã assim que voltar a ligar. O tablet fica com a sessão do funcionário que a iniciou: enviar e ver as câmaras só é possível com a permissão Ver imagens das câmaras. Na definição, o administrador vê que tablets estão emparelhados e se estão ligados, e pode mudar-lhes o nome ou removê-los. O tablet guarda uma chave própria; a caixa guarda apenas um hash dela. Ao desligar: os tablets emparelhados são mantidos. O registo mostra quem emparelhou, mudou o nome ou removeu um tablet.
Ecrã de chamada para take-away
Um ecrã para os clientes com Em preparação à esquerda e Pronto à direita, com números grandes, como numa snack-bar ou num restaurante de fast food. Ative-o em Definições → Estabelecimento → Ecrãs e utilização → Ecrã de chamada para take-away (desligado por predefinição).
Não é preciso emparelhar: numa TV com navegador (smart TV, stick ou mini PC), num tablet ou num segundo monitor, abra o endereço da caixa seguido de /oproep, por ex. http://192.168.1.20:3000/oproep. Na definição e na janela Chamar estão os botões Num ecrã próprio e Num tablet ou telemóvel (código QR com o endereço). Não é preciso iniciar sessão: o ecrã mostra apenas números. Toque uma vez no ecrã para que o navegador possa reproduzir som.
O que aparece:
- pedidos take-away da caixa, da loja online e da Thuisbezorgd (e, se quiser, também pedidos ao balcão sem mesa, na venda rápida) das últimas 12 horas;
- assim que algo é enviado para a cozinha ou o bar (ou o pedido online está em em preparação), o número aparece em Em preparação;
- Pronto é marcado automaticamente quando o ecrã de cozinha indica o pedido todo como pronto ou o pedido online está em pronto. O número pisca brevemente e o ecrã toca um ding-dong;
- um número pronto fica no ecrã os minutos definidos (por predefinição 10), ou até Levantado;
- os pedidos do quiosque (ver Quiosque de self-service) aparecem sempre assim que estão pagos ou vão ser pagos no caixa, também com "comer aqui", com o número de recolha do seu talão;
- opcionalmente também pedidos para estafetas da Thuisbezorgd, Uber Eats, Deliveroo e HubRise (caixa Também pedidos para estafetas …): com o número de pedido da plataforma e o nome da plataforma por baixo, para que o estafeta veja quando o pedido está pronto. Levantado avisa então também a plataforma de que o estafeta o tem (tal como na janela da plataforma).
O número: na loja online, Thuisbezorgd e plataformas de entrega, o número de pedido que o cliente ou estafeta já tem; caso contrário o número de levantamento (1 a 999). Aparece em grande no talão, com a explicação de que o número surge no ecrã quando o pedido estiver pronto (na língua do talão).
Opcional (desligado por defeito, na definição):
- Anunciar o número com voz: com um novo número pronto, o ecrã diz p. ex. "Número 42, o seu pedido está pronto." no idioma escolhido (neerlandês, inglês, alemão, francês, espanhol, italiano, português, polaco, turco ou árabe). A voz vem do navegador do ecrã e soa diferente em cada aparelho; toque uma vez no ecrã depois de o abrir. Depois do sinal sonoro, se o som também estiver ligado.
- Estado do pedido no telemóvel: aparece um código QR sob o número de recolha no talão. O cliente lê-o, vê o seu número e o estado (pedido, em preparação, pronto, recolhido) e recebe uma notificação quando o pedido está pronto. Funciona através do portal de gestão, por isso a caixa tem de estar ligada a ele. Não para a loja online e o Thuisbezorgd (têm estado próprio) nem para o quiosque (tem definição própria).
Na caixa existe o botão Chamar (com o número de pedidos ainda em preparação):
- Pronto marca um número como pronto à mão (sem ecrã de cozinha, ou quando é mais rápido). Num pedido da loja online ou da Thuisbezorgd o estado é atualizado também, por isso o cliente também é avisado.
- Voltar coloca-o de novo em Em preparação.
- Levantado retira-o do ecrã (com Desfazer).
Na definição escolhe também se o nome próprio aparece ao lado do número (por predefinição não, por privacidade) e se o ecrã emite som. Desligar: sem botão Chamar e sem número de levantamento no talão; as definições ficam guardadas. No registo fica quem marcou o quê à mão como pronto, voltar ou levantado.
Registo de entrada/saída
Por padrão, o registo de ponto está desligado: não aparece em lado nenhum na caixa (nenhum botão na barra superior, nada no ecrã de início de sessão, nenhum separador Horário de trabalho). Ative-o em Definições → Estabelecimento, em Registo de entrada/saída dos funcionários:
- Desligado: não utilizar. Se desligar o registo de ponto mais tarde, deixa de estar visível em qualquer lado, mas as horas já registadas são guardadas (nada é apagado); se o voltar a ligar, voltam a aparecer.
- Ligado: os funcionários podem registar entrada e saída. Após iniciar sessão, a caixa pergunta se quer registar a entrada (Agora não é permitido). Na barra superior aparece então Registar entrada ou Entrada registada 17:02; toque aí para registar a saída.
- Obrigatório: após iniciar sessão, registe primeiro a entrada, caso contrário não pode usar a caixa. Registar a saída termina logo a sessão.
Quem não usa a caixa (p. ex. a cozinha) regista o ponto no ecrã de início de sessão: toque em Registar entrada / saída e introduza o seu PIN. Alterna entre entrada e saída, sem iniciar sessão.
Com o registo de ponto ligado, o administrador vê em Definições → Horário de trabalho:
- quem tem entrada registada agora (e pode registar a saída de quem se esqueceu);
- as horas trabalhadas por funcionário e por período, com todos os turnos, e uma transferência em CSV (horas também em número decimal para o processamento salarial);
- alterar ou adicionar turnos (toque num turno, ou + Adicionar turno). Cada alteração fica no registo com as horas antigas e novas.
Na Bélgica, cada registo de entrada e saída é também comunicado à caixa negra. Se esta não estiver acessível, o registo de ponto não é efetuado (tal como ao cobrar). Ainda falta confirmar se isto cumpre exatamente o registo de pessoal belga.
Pesagem e etiquetas (balança)
Com a balança ligada (Definições → Balança), os produtos podem ter um preço por quilo. Todos os outros produtos continuam a ser vendidos à unidade.
- Pesar: toque num produto com preço ao quilo (o botão mostra p. ex.
12,95/kg). A janela Pesar mostra o peso da balança em direto (p. ex. uma Aclas OS6X, ou a balança onde a própria caixa funciona); verde = estável. Coloque o produto na balança e toque em Adicionar assim que o peso estiver estável. O preço é preço ao quilo × peso (arredondado ao cêntimo); a embalagem (tara) do produto é descontada automaticamente. Se o produto tiver opções, vêm a seguir. - Várias balanças: se houver várias balanças, escolha no topo da janela em qual pesa. Cada caixa/tablet lembra a escolha.
- Manualmente: sem balança (ou se for permitido manualmente), digite o peso:
0,512ou1,2é quilo,512ou512 gé grama. - Etiqueta da TS6X: leia o código de barras da etiqueta com o leitor de código de barras no ecrã de pedidos (basta ler, não é preciso ter nada aberto), ou toque em Etiqueta e leia ou digite os 13 dígitos. O produto (PLU) e o peso vêm da etiqueta. Se a etiqueta tiver um preço, a caixa cobra exatamente esse preço.
- No ecrã, no talão e no ecrã de cliente aparece o peso, p. ex.
Gehakt 6,63com por baixo0,512 kg x € 12,95/kg; no talão de cozinha0,512 kg Gehakt. Dividir, mover e devoluções funcionam em quilos. - Um produto pesado só funciona com ligação ao servidor da caixa (o peso chega através do servidor da caixa).
Uber Eats, Deliveroo e HubRise
Além do Thuisbezorgd.nl / Takeaway.com, entram também na caixa os pedidos da Uber Eats (Países Baixos e Bélgica), da Deliveroo (só Bélgica; a Deliveroo saiu dos Países Baixos no final de 2022) e tudo o que está no HubRise (entre outros Uber Eats, Deliveroo, Just Eat/Takeaway.com e apps de encomendas mais pequenas). Cada plataforma liga-se separadamente em Definições → Plataformas de entregas (desligado por predefinição; desligar guarda tudo). O separador mostra por plataforma em que países opera e avisa se não opera no país do estabelecimento.
- Ligue-a e depois Iniciar sessão na Uber Eats e associar loja (o estabelecimento inicia sessão com a sua própria conta Uber Eats). Se a conta tiver várias lojas, introduza o ID da loja (store id) e inicie sessão novamente. Para isso, a Uber Eats tem primeiro de aprovar a Pin Voordeel como parceiro.
- Deliveroo: direto, através do portal. Introduza o site id (location id) e o ID da marca (brand id). Sem tablet (por defeito): a caixa aceita ou recusa; com tablet: o estabelecimento aceita no tablet e o portal apenas comunica se o pedido está na caixa.
- HubRise: a caixa vai buscar os pedidos sozinha (a cada 20 segundos, sem portal).
- Por plataforma: aceitar automaticamente, talão logo para cozinha/bar e (Uber Eats, Deliveroo) enviar o menu automaticamente após uma alteração e Enviar menu agora. No menu estão os produtos assinalados em Produtos no menu da Uber Eats e da Deliveroo, com opções; o estado esgotado também é enviado.
Pedidos. Um pedido torna-se um pedido normal (bezorgen ou afhalen, nome de grupo <platform> <nummer>) com os preços da plataforma: produtos reconhecidos pelo ID (do menu), pelo código ou pelo número PLU; desconhecido = uma linha avulsa com o preço da plataforma (e um aviso); taxas de entrega, suplementos e descontos como linhas próprias; se mesmo assim o total não bater certo, uma linha "Diferença". O talão vai logo para cozinha/bar. Botão Plataformas na barra superior (com o número de pedidos em curso; laranja quando há algo por aceitar): aceitar ou recusar (com motivo), em preparação, pronto, a caminho, entregue ou levantado, cancelar e Concluir (pago online). O que a plataforma suporta é devolvido (Uber Eats: aceitar, recusar, cancelar; Deliveroo: aceitar, recusar, em preparação, pronto, levantado; HubRise: todos os estados). Se o estabelecimento fizer as entregas (entrega própria), o pedido também aparece em Rondas, e a partida e a entrega seguem automaticamente para a plataforma. Um cancelamento pela plataforma faz caducar o pedido. Se a caixa estiver mais de 2 minutos sem ligação ao portal, o portal recusa um novo pedido da Uber Eats e informa a Deliveroo (com tablet) de que não resultou, para que o estabelecimento o veja no tablet.
Código: apps/pos-server/src/lib/bezorgplatforms.ts, routes/bezorgplatforms.ts; ecrãs Bezorgplatforms.tsx. Lado do portal: horecapos-portaal/src/platforms.mjs. Registo: Plataformas de entregas (ligar/desligar, definições, pedidos). Tudo é incluído nas cópias de segurança da caixa.
As plataformas mais pequenas nos Países Baixos e na Bélgica (Homie, Hebtrek, sneleten.nl, Bistroo ...) não têm integração de caixa pública; se estiverem no HubRise, funcionam através do HubRise. De resto: veja o backlog.
Máquina de numerário (sistema fechado de gestão de numerário)
Por predefinição desligado: o dinheiro funciona como sempre. Com um sistema fechado de gestão de numerário, o pessoal não toca no dinheiro: o cliente ou o funcionário introduz o dinheiro na máquina, que o conta, verifica se há notas falsas e devolve o troco.
- Máquinas com as quais a caixa comunica diretamente:
- CashDro (3, 4+, 5, 7, S Compact; NuKassa, KluisKassa): em rede (web service). Na CashDro, ative Web Integration e crie um utilizador próprio para a caixa.
- Cashmatic (SelfPay 460/860/1060; na Bélgica Xpos): em rede (porta 50301) com um utilizador da Cashmatic.
- Azkoyen Cashlogy (POS1000, POS1500): através do CashlogyConnector num PC Windows junto da máquina (porta 8092).
- CashKeeper: através do CKMonitor num PC Windows (porta 16501).
- Glory CASHINFINITY (CI-5, CI-10, CI-10X; também através da Cikam): através do controlador (FCC) da máquina. Ainda em beta: peça à Glory ou ao seu revendedor que verifique a primeira integração.
- Externo: outro software controla a máquina e comunica com a caixa (como Cikam, ImaCash para 25 marcas, o software da CashGuard/StrongPoint (Merlin), PayComplete (SUZOHAPP), Gunnebo SafePay ou marcas francesas como a CashMag).
- Máquina de teste: sem hardware, para praticar ou demonstrar. Com Testar ligação verifica o endereço e o início de sessão. Coloque a máquina na rede própria (nunca aberta para a internet) e use um utilizador próprio para a caixa, não um administrador.
- Cobrar com Dinheiro: Pagar na máquina de numerário inicia o pagamento do montante (arredondado em dinheiro se estiver ativo, mais gorjeta; ao dividir a conta, a parte). O ecrã mostra o que foi introduzido e o que é devolvido; a caixa só cobra quando a máquina indicar concluído. Cancelar = a máquina devolve o dinheiro. Se a máquina não conseguiu dar todo o troco (moedas insuficientes), é indicado quanto tem de sair da gaveta. Um pagamento bem-sucedido que ainda não foi cobrado (p. ex. tablet desligado) é recuperado nessa encomenda.
- Dinheiro apenas através da máquina (por predefinição ligado): o servidor da caixa só aceita dinheiro com um pagamento bem-sucedido na máquina exatamente para essa encomenda e esse montante. Desligado = também dinheiro normal na gaveta.
- Gaveta (Relatório → Gaveta, permissão Gerir gaveta): Consultar níveis (por moeda e nota, na Cashmatic, Cashlogy, Glory e na máquina de teste), Pagar a partir da máquina com motivo (p. ex. troco para a gaveta), Reabastecer e Recolha (o troco fica; na Cashmatic). Previsto na gaveta não conta o dinheiro na máquina (que aparece em separado por baixo: Na máquina de numerário), mas conta o troco que teve de sair da gaveta.
O botão ©
No canto inferior direito de cada ecrã (PIN, planta, pedidos e cozinha) há um pequeno botão ©. Abre os dados da OptimumPOS: logótipo, morada, telefone, e-mail e site. O ícone está guardado localmente na app e por isso funciona também sem internet. O mesmo ícone é o ícone da app (separador e ecrã inicial).
Parte 2 · Gerente
Primeiros passos
Por padrão, um gerente pode fazer tudo o que o empregado de mesa faz e, além disso, entre outras coisas, aplicar descontos, fazer devoluções, fechar o dia, gerir a gaveta e consultar o registo e o stock. Isso está sobretudo no botão Relatório:
- Saldo intermédio (X): a faturação até agora, sem fechar o dia.
- Gaveta: fundo de caixa, entradas/saídas de dinheiro e abrir a gaveta.
- Fechar dia (Z): no fim do dia; depois começa um novo dia.
- Relatórios Z anteriores, Faturação por período e Painel.
- Registo, Cartões-presente e Clientes.
Stock
Desligado por padrão. Ative em Definições → Estabelecimento → Controlar stock. Desligado = não aparece em lado nenhum na caixa.
- Por produto, escolha em Definições → Produtos → (produto) → Stock:
- Não: como sempre;
- Por produto: cada venda desconta 1 (p. ex. garrafas, latas), com um nível de alerta para "quase esgotado";
- Via ingredientes: uma receita, p. ex. hambúrguer = 1 pão + 150 g de carne + 1 fatia de queijo. Cada venda desconta os ingredientes.
- Definições → Stock (permissão Gerir stock, por padrão gerente e administrador):
- Produtos e Ingredientes: o stock atual, com esgotado / quase esgotado; filtro "só (quase) esgotados" e exportação para CSV.
- Por produto ou ingrediente, registe Receção (+) (entrega), Contagem (=) (a quantidade contada passa a ser o novo stock) ou Abater (−) (quebra, fora de prazo; motivo obrigatório).
- Criar ingredientes com unidade (un., g, kg, ml, cl, l, porção, garrafa, barril) e nível de alerta.
- Histórico: todos os movimentos (venda, anulação, receção, contagem, abate) com quem e quando. As ações de gestão também ficam no registo.
- O desconto do stock acontece em Enviar pedido (ou ao cobrar, para o que foi cobrado diretamente). Uma anulação repõe o stock. Dividir e mover não descontam a dobrar. Nos menus, descontam os pratos e não a linha do menu. As devoluções (nota de crédito) não repõem o stock (o que é devolvido normalmente já não se pode vender); se quiser, registe-o como receção.
- Quando o stock está esgotado (ou um ingrediente não chega para mais uma vez), o produto passa automaticamente a esgotado em todas as caixas. Quando está quase esgotado, o botão do produto mostra restam N. Após uma receção ou contagem pode logo voltar a ser pedido. O servidor da caixa também recusa então o produto ("Pils" está esgotado (stock 0)), mesmo vindo de um tablet que ainda não sabia.
- O stock pode ficar abaixo de 0 (p. ex. dois tablets ao mesmo tempo, ou pedidos offline); a contagem volta a acertá-lo.
- Lista de encomenda: Definições → Stock → Lista de encomenda. Por produto (por produto) e por ingrediente define, além do nível de alerta, também repor até e o fornecedor. A lista de encomenda mostra tudo o que está no nível de alerta ou abaixo (sem nível de alerta: em 0), por fornecedor, com a sugestão repor até − stock atual. As quantidades podem ser ajustadas e marcadas/desmarcadas. Depois Imprimir (impressora de talões), Copiar (para e-mail ou WhatsApp), Exportar (CSV) e, após a entrega, Entregue: registar como receção (regista tudo de uma vez). Com o visto no topo vê também o que ainda não está esgotado, para encomendar a mais.
- Opções: num grupo de opções (Definições → Produtos → Opções) existe o botão Stock. Indique por opção os ingredientes por unidade, p. ex. Queijo extra = 1 fatia de queijo, Batatas fritas = 150 g de batatas fritas. Quando a opção é escolhida, esses ingredientes são descontados por unidade (mesmo que o próprio produto não controle stock; numa anulação são repostos). Se um ingrediente estiver esgotado, a opção aparece na caixa como (esgotado) e não pode ser escolhida.
Encomendar a fornecedores
Por predefinição desligado. Liga-se em Definições → Stock → Encomendar a fornecedores (só com Controlar stock ligado). Desligado = a lista de encomenda funciona como sempre.
- Fornecedores (separador Fornecedores): escolha um da lista ou crie um fornecedor próprio. A lista inclui grossistas e cash & carry (Sligro, Sligro-ISPC/Sligro-M, HANOS, Makro, De Kweker, Horeca Totaal, Van Zon, zegro, Lekkerland), foodservice (Bidfood e Bidfood Belgium, Solucious, Chefs Culinar, Java, Q-Food, Agora Culinair, VHC Jongens/Kreko/Actifood, Hocras, Van Hoeckel ...), grossistas de bebidas (De Klok, Henk Smit, Horesca, De Monnik, Hansen, Dranken Geers ...), cervejeiras e refrigerantes (Heineken através da Sligro, AB InBev/BEES, Alken-Maes, Haacht, Duvel Moortgat, Martens, Coca-Cola, Spadel, Grolsch, Bavaria), fornecedores de frescos (Van Gelder, Driessen, FiliusKaas, Bakkers Brigade, Rungis ...), non-food (Bunzl, Takeaware, Supplierz), a loja de vinhos online Vinify.nl e plataformas de encomenda (Apicbase, Exact Horeko, Growzer, inOne, Cuisin.io, OrderXL). Só aparecem fornecedores do país do estabelecimento. Ao escolher um, o modo de encomenda, o ficheiro e as colunas já ficam corretos; em cada fornecedor indica-se como se encomenda.
- Por fornecedor: número de cliente, encomendar via:
- E-mail: a encomenda como e-mail (com tabela) para o endereço de e-mail para encomendas, opcionalmente uma cópia, com a lista de encomenda em anexo: CSV, Excel, CSV para Care4Fresh (muitos grossistas de frescos), UBL 2.1 Order (Peppol BIS Order), EANCOM ORDERS (D96A nos Países Baixos, D01B/HO2C na Bélgica) ou cXML. As respostas chegam ao endereço de e-mail do estabelecimento.
- Ficheiro: a caixa cria o ficheiro, o utilizador carrega-o na loja online do fornecedor (p. ex. Bunzl Snel bestellen:
artikel;aantal, Takeaware:SKU,Quantity). O separador, a linha de cabeçalho e as colunas são configuráveis (artikel,ean,omschrijving,aantal,eenheid,prijs,totaal; comartikel=SKUdá um nome próprio ao cabeçalho). - Integração (cXML): um cXML OrderRequest com número de cliente e segredo partilhado para o endereço de encomendas do fornecedor, tal como os sistemas de compras enviam para a Sligro, HANOS e Bidfood. O endereço, o número de cliente e o segredo são fornecidos pelo fornecedor (Sligro: koppelingen@sligro.nl). O segredo nunca volta a aparecer no ecrã.
- Ambas as integrações permitem também nome de utilizador e palavra-passe (Basic) e cabeçalhos adicionais (um por linha, p. ex.
X-Api-Key: ...). - Carregamento (SFTP/FTPS): a caixa coloca ela própria o ficheiro (EANCOM, UBL, CSV, Excel ...) numa pasta no servidor do fornecedor, tal como muitos grossistas aceitam encomendas EDI. SFTP (SSH), FTPS (explícito na porta 21 ou implícito na porta 990) ou, apenas na rede própria, FTP. Início de sessão com palavra-passe ou chave SSH (OpenSSH, PEM ou PuTTY .ppk; ed25519, ECDSA ou RSA). Criar chave cria um par de chaves na caixa; a chave pública envia-a ao fornecedor. Testar ligação inicia sessão e procura a pasta. A impressão digital do servidor SFTP é registada na primeira ligação e verificada depois (outro servidor não recebe a palavra-passe); com FTPS e um certificado próprio, fixa a impressão digital do certificado. Não é necessário software adicional.
- Imprimir: a encomenda na impressora de talões, para transmitir por telefone.
- Palavras-passe, chaves, tokens e cabeçalhos nunca voltam a aparecer no ecrã (deixar vazio = manter, Apagar = remover).
- Pedir integração: para um fornecedor, a caixa redige um e-mail a pedir uma integração (cXML, EDI via SFTP/FTPS, UBL/Peppol ou a API própria do fornecedor) com os dados do estabelecimento (nome, morada, número de IVA, número de cliente, GLN) e o que é necessário; no caso de EDI, com a chave pública. Ajuste e envie; uma cópia e as respostas vão para o e-mail do estabelecimento. A data do pedido fica junto ao fornecedor. No caso da Sligro, segue para koppelingen@sligro.nl; caso contrário, preencha o endereço do seu gestor de conta.
- Um fornecedor próprio (fora da lista) pode fazer tudo exceto o que o próprio fornecedor tem de oferecer: e-mail, ficheiro e impressão funcionam sempre; uma integração ou carregamento apenas com os dados desse fornecedor.
- Dias de encomenda e entrega: dias de encomenda, hora limite, prazo de entrega (a data de entrega pretendida na encomenda) e um montante mínimo de encomenda. Automático: nos dias de encomenda, a partir dessa hora, a caixa prepara automaticamente uma encomenda (você revê-a) ou envia-a logo (por e-mail, carregamento ou integração; abaixo do montante mínimo de encomenda apenas prepara). Uma vez por dia por fornecedor.
- Por produto (Definições → Produtos → (produto) → Stock, em Por produto) e por ingrediente: Encomendar a (o fornecedor), referência de encomenda nesse fornecedor, EAN, por embalagem (grade de 24 = 24), o nome da embalagem e o preço de compra por embalagem. O nível de alerta é o momento de encomendar; repor até indica quanto deve haver então.
- Ordens de compra (separador Ordens de compra):
- Proposta de encomenda por fornecedor: tudo o que estiver no nível de alerta ou abaixo. O que já foi encomendado e ainda não chegou (a caminho) é contabilizado, para não encomendar nada em duplicado. Proposta = repor até − stock − a caminho (sem repor até: até ao nível de alerta), arredondada para cima a embalagens inteiras. Ajustar quantidades e Criar encomenda.
- Uma encomenda começa como preparada: quantidades, linhas avulsas (sem produto, p. ex. guardanapos), observação e data de entrega ainda podem ser alteradas. Depois Enviar (pelo modo do fornecedor ou, pontualmente, de outra forma). Se falhar (p. ex. o fornecedor recusa), o motivo é indicado e pode tentar novamente.
- Recebida: por linha a quantidade recebida (já preenchida com a quantidade encomendada); o stock aumenta por embalagem (2 grades de 24 = 48), com a encomenda indicada no histórico.
- Cada ficheiro (CSV, Excel, UBL, EANCOM, cXML) também pode ser transferido em separado.
- Enviada, falhou, recebida e cancelada ficam registadas no registo. A Lista de encomenda normal continua a funcionar; se um produto tiver um fornecedor da lista, aparece aí com esse nome.
Gestão de avaliações
Ler e responder a avaliações do Google e da Trustpilot na caixa. Ativar em Definições → Fidelização e avaliações → Gestão de avaliações (desligado por predefinição; assim não se vê nada em lado nenhum). Ler e responder em Relatório → Avaliações (permissão Ler e responder a avaliações, por predefinição também para o gerente). Se desativar, as ligações e as avaliações continuam guardadas.
- Depois, cada estabelecimento só toca em Ligar ao Google e inicia sessão com a sua própria conta Google do perfil da empresa. Uma chave Places também pode ser gerida centralmente (os custos ficam então a cargo do fornecedor). A Trustpilot é por estabelecimento: cada estabelecimento tem a sua própria conta Trustpilot Business (a API faz parte de uma subscrição paga), de onde vêm a chave, o segredo e o business user ID. Na caixa, cada opção indica "Quem trata disto?".
- App do fornecedor (através do portal do cliente): se a app Google e/ou a app Trustpilot do fornecedor estiverem no portal do cliente (ver o README do horecapos-portaal, "Reviews: apps do fornecedor"), o administrador escolhe App do fornecedor em Início de sessão e chaves (predefinição numa nova ligação se o portal tiver a app). O estabelecimento toca em Ligar ao Google ou Iniciar sessão com o Trustpilot e inicia sessão com a sua própria conta; a caixa aguarda por si mesma até o início de sessão terminar (a cada 3 segundos, no máximo 15 minutos) e obtém os tokens uma única vez do portal. A renovação também é feita através do portal. Não é necessário client-ID, secret nem chave API na caixa; no Trustpilot é necessário o domínio e, para respostas, o business user ID. O Trustpilot público lê então através da chave do portal. Requer
PORTAAL_URLePORTAAL_SLEUTEL. App própria ou chave API continua a funcionar como descrito abaixo. - De quem são as avaliações: ficam no próprio Perfil da Empresa no Google e na própria página do Trustpilot do estabelecimento, e a caixa só as guarda na sua própria base de dados. As respostas aparecem com o nome do estabelecimento. O portal apenas transmite o início de sessão (em memória, no máximo 15 minutos, só pode ser obtido uma vez) e não guarda avaliações nem tokens; o nome da app do fornecedor só aparece no ecrã de consentimento.
- Registar-se por conta própria: em cada plataforma há uma ligação para criar por conta própria um Perfil da Empresa no Google (business.google.com/create) ou uma conta Trustpilot Business (business.trustpilot.com) e, no Trustpilot, uma ligação para os planos (business.trustpilot.com/plans). O registo e o pagamento são feitos na própria plataforma; não existe API para isso.
- Depois Ligar ao Google e inicie sessão com a conta que gere o Perfil da Empresa. Um local no perfil = escolhido de imediato; vários = escolher na caixa.
- Google Places (só leitura): com o Place ID e uma chave API da Places API (ou
GOOGLE_PLACES_API_KEY): a média, o número de avaliações e as 5 avaliações mais relevantes. Assim não é possível responder. - Trustpilot Business (ler e responder): chave API e segredo API de uma aplicação na Trustpilot Business (Integrations → API; ou
TRUSTPILOT_API_KEYeTRUSTPILOT_API_SECRET), o domínio do estabelecimento (a caixa procura a business unit) e, para responder, o business user ID de quem responde. - Trustpilot público (só leitura): só a chave API.
- A caixa sincroniza a cada 30 minutos (e logo após a ligação; Obter agora). A caixa não guarda o e-mail nem o número de encomenda do cliente (que a Trustpilot envia).
- Relatório → Avaliações: média, número por estrela, sem resposta e não lidas; filtrar por plataforma, estrelas, sem resposta e não lidas. Por avaliação Responder (no máximo 4000 caracteres; todos a podem ler), Alterar resposta, Remover resposta e Lida. Uma avaliação nova ou alterada fica não lida. No registo aparecem review_beantwoord e review_antwoord_weg.
- Desligar mantém as avaliações obtidas.
Marketing por SMS e e-mail
Mensagens para clientes do cartão de cliente que deram o seu consentimento. Sem cartão de cliente, nenhum dos dois pode ser ativado.
- Consentimento por cliente e por canal: num cliente novo na caixa estão as caixas de seleção "O cliente quer receber campanhas por SMS" e "... por e-mail" (desmarcadas por predefinição). Em Relatório → Clientes vê e altera o consentimento (com a data em que foi dado) e um aniversário (só dia e mês). Cancelar: desmarcar e guardar.
- Menu atualizado de imediato: se ligar ou desligar o marketing ou o cartão de cliente, a caixa volta a enviar o menu para a loja online em poucos segundos (só se algo mudou), para que a caixa de seleção apareça ou desapareça logo.
- Consentimento através da loja online: se o estabelecimento tiver loja online, no pagamento aparece a caixa "Quero receber ofertas por e-mail/SMS" (só os canais ligados; desmarcada por predefinição). Quando chega um pedido assim, a caixa procura o cliente pelo número de telefone (senão pelo e-mail), cria-o se necessário e regista o consentimento com a data. Um número ou endereço em falta num cliente existente é completado; no registo aparece klant_toestemming com a origem webshop.
- Relatório → Marketing (permissão Gerir cartão de cliente): no topo, quantos clientes deram consentimento para SMS e para e-mail.
- Campanhas (pontuais): nome, SMS ou e-mail, (assunto,) texto com
{naam},{zaak}e{punten}, e opcionalmente só os clientes que não vêm há algum tempo ou têm um mínimo de pontos. Ver mostra para quantos clientes vai, a mensagem tal como o cliente a recebe e o número de SMS por cliente. Enviar teste para o seu próprio número ou endereço. Depois Enviar: a caixa envia em segundo plano (no máximo 1000 de cada vez) e conta o que foi enviado e o que falhou. Ninguém recebe a mesma campanha duas vezes; se a caixa parar a meio, Continuar a enviar retoma com quem ainda não recebeu nada. - Enviar via Mailchimp ou Klaviyo (com uma ligação a uma lista escolhida, ver abaixo): numa campanha por e-mail, em Enviar via escolhe a caixa (o servidor de e-mail próprio, como acima), o Mailchimp ou o Klaviyo. A caixa atualiza primeiro a lista (cancelamentos, pontos), cria lá uma campanha para exatamente os clientes escolhidos que estão na lista (Mailchimp: um grupo fixo na audience; Klaviyo: uma lista própria para a campanha) e envia-a com o remetente predefinido da audience ou da conta. O Mailchimp/Klaviyo preenche
{naam}e{punten}para cada cliente; a ligação de cancelamento do serviço aparece por baixo. Sem limite de 1000 de cada vez e sem código de desconto pessoal ({code}). Se falhar, a campanha fica como rascunho com a mensagem de erro. O separador Marketing também existe quando só a integração está ativa (nesse caso só campanhas via Mailchimp/Klaviyo; Enviar teste funciona com o servidor de e-mail da caixa). As mensagens automáticas são sempre enviadas pela própria caixa; no Mailchimp/Klaviyo cria-as como Customer Journey ou Flow. Chave do Klaviyo: também permissões de escrita para Campaigns e Templates (se já iniciou sessão: inicie sessão novamente). - Como notificação push via a loja online (se na gestão da loja online estiverem ligadas as Notificações push com ofertas): em Enviar por escolha Notificação push (loja online como app), com um título (máx. 60 caracteres) e um texto curto (máx. 200 caracteres; só
{zaak}é preenchido, porque a loja online não sabe quem é o cliente). A caixa envia a promoção através do portal de gestão para a loja online, que a envia aos clientes que lá ativam Promoções como notificação; tocar abre o menu da loja online. Após alguns segundos, a promoção mostra quantas foram entregues. Máx. 3 por dia, em conjunto com o que o estabelecimento envia na gestão da loja; caso contrário, a promoção fica como rascunho com o motivo indicado. O separador Marketing também aparece se só isto estiver ligado (sem cartão de cliente nem marketing por e-mail). Sem código de desconto nem seleção (dias, pontos); para testar: no seu próprio telemóvel, ative Promoções como notificação na loja online. - Automáticas: uma mensagem de aniversário (no dia de aniversário, uma vez por ano) e "temos saudades suas" (após tantos dias sem visita, uma vez por cada ausência do cliente). Ativar/desativar por mensagem; só são enviadas durante o dia (10:00–20:00).
- Código de desconto pessoal (opcional, por mensagem ou promoção; apenas se os Códigos de desconto estiverem ligados em Definições → Estabelecimento): cada cliente recebe o seu próprio código, p. ex.
TERUG-7K4Q2M(aniversárioJARIG-…, promoçãoACTIE-…), em percentagem ou valor fixo, opcionalmente com um valor mínimo de encomenda, de utilização única, válido durante os dias definidos após o envio (predefinição 30) e na caixa e/ou na loja online. Coloque{code}e{geldig}no texto onde os quiser; caso contrário, a caixa coloca por baixo da mensagem "Uw kortingscode: … (10% korting, aan de kassa of in de webshop, geldig t/m …)". Ver e Enviar teste mostram um código de exemplo (TERUG-VOORBEELD, não funciona). Se o envio falhar, o código não é criado. Na promoção vê-se quantos códigos foram emitidos e utilizados. - Cancelar subscrição está por baixo de cada mensagem: num SMS "Cancelar? Ligue para ... ou diga-nos na sua próxima visita", num e-mail uma ligação de cancelamento para o e-mail do estabelecimento (incluindo o botão Cancelar subscrição no Gmail e no Outlook). Uma resposta ao e-mail vai para o estabelecimento.
- Privacidade (RGPD): só clientes com consentimento e com número ou endereço; nenhum número ou endereço no registo, mas por campanha quantos foram enviados e quantos falharam. Se eliminar um cliente, ele desaparece também da lista de envio.
- Custos: os SMS são enviados pela sua própria conta CM.com (mais de 160 caracteres = mais SMS por cliente). O Gmail e outros servidores de e-mail têm um limite diário; com muitos clientes, envie por partes.
Gorjeta por funcionário
Em Definições → Estabelecimento → Gorjeta (só se "Mostrar botões de gorjeta ao cobrar" estiver ligado) escolhe como a gorjeta por funcionário aparece no saldo intermédio (X), no relatório Z (talão e e-mail) e em Faturação por período (também no CSV):
| Opção | Distribuição |
|---|---|
| Desligado (padrão) | apenas o total de gorjetas, como sempre |
| Cada um a sua gorjeta | gorjeta das contas que cada um cobrou |
| Fundo por horas | todas as gorjetas juntas, conforme as horas registadas nesse período (requer o registo de entrada/saída; ninguém registou = partes iguais) |
| Fundo igual | todas as gorjetas juntas, em partes iguais por quem tinha entrada registada (sem registo de ponto: quem registou ou cobrou algo) |
Os cêntimos soltos vão para quem está mais perto do cêntimo seguinte, para que o total esteja sempre certo. É um resumo: a caixa não paga nada (isso pode fazer-se com "Dinheiro retirado da gaveta"). Os relatórios Z antigos ficam como estavam.
Relatório Z por e-mail
Em Definições → Estabelecimento → Enviar relatório Z para, introduza uma vez o e-mail do administrador (vários endereços: separados por vírgula, máx. 3). Após Fechar dia, o relatório Z segue automaticamente para esse endereço, além do talão impresso. Vazio = não enviar, como sempre.
- O envio é feito em segundo plano, para que um servidor de e-mail lento não atrase o fecho do dia.
- Falhou ou é preciso outra vez: Relatório → Relatórios Z anteriores → (relatório) → Reenviar e-mail (com a indicação CÓPIA).
Resumo do dia (opcional)
Se houver um endereço em Enviar relatório Z para, por baixo aparece a caixa Com um breve resumo do dia no início do e-mail (por defeito desligada). Ligada = no início do e-mail do relatório Z, algumas linhas em linguagem simples, apenas com os dados da própria caixa (sem IA, nada sai para fora):
- faturação, talões e clientes e o gasto por talão, face ao mesmo período uma semana antes (em percentagem); se nessa altura não houve nada, isso é indicado;
- os 5 produtos mais vendidos e o que se destaca: produtos dos quais se venderam pelo menos 3 a mais ou a menos do que na semana passada;
- o número de anulações (face à semana passada) e a hora de maior movimento (talões e faturação).
O próprio relatório Z (talão e e-mail) fica exatamente igual. Pré-visualização de hoje mostra o resumo desde o último fecho do dia até agora. O resumo é em neerlandês, tal como o e-mail do relatório Z.
Painel
Separador Painel em Relatório (permissão Faturação por período), só de leitura:
- Faturação por hora em gráfico: o dia escolhido (azul) ao lado do mesmo dia da semana passada (cinzento). Hoje é comparado com a semana passada até à mesma hora, para que a percentagem seja justa. Com ◀ ▶ ou a data escolhe outro dia.
- Mosaicos: faturação (± % face à semana passada), talões e média por talão, gasto médio por cliente (só no local; take-away/entrega não contam) para esse dia e para o período escolhido.
- Top 10 produtos e horas de maior movimento nos últimos 7, 28 ou 90 dias. As horas de maior movimento são um mapa de calor dia da semana × hora (faturação média por dia aberto) com as três horas mais movimentadas por cima, útil para o horário do pessoal.
Os vales-oferta vendidos não contam como faturação, e descontos e cabeçalhos de menu não entram no top 10 (tal como nos outros relatórios). Um dia vai das 00:00 às 24:00.
Relatórios extra
Três separadores extra em Relatório, cada um ativável em separado em Definições → Estabelecimento → Gestão e relatórios → Relatórios extra (por padrão desligado: sem separador). Exigem a mesma permissão que Faturação por período e são apenas de leitura. Período: esta semana, semana passada, este mês, mês passado, os últimos 90 dias, este ano ou à escolha (no máximo pouco mais de um ano).
- Engenharia de menu: por produto, quantas vezes foi vendido (quota de todas as unidades vendidas) face ao que rende por unidade (margem = preço de venda sem IVA menos o custo). Cada produto recebe uma classificação: Estrela (popular e margem alta: manter), Cavalo de batalha (popular, margem baixa: subir um pouco o preço ou baixar o custo), Enigma (pouco vendido, margem alta: dar-lhe mais destaque) e Cão (pouco vendido, margem baixa: retirar da carta ou substituir). Popular = pelo menos 70% de uma quota igual; margem alta = pelo menos a margem média por unidade vendida. O custo vem do Apicbase (Definições → Receitas); caso contrário, do preço de compra do produto (preço de compra por embalagem dividido pela quantidade por embalagem); caso contrário, da receita de ingredientes com preço de compra (Stock). Os produtos sem custo aparecem à parte, no fim. Opcionalmente por categoria (
?groep=). - Promoções e códigos: por código de desconto, por campanha de Marketing (os códigos pessoais em conjunto) e por happy hour: quantas vezes foi usado (talões; num happy hour também as unidades), quanto desconto, a faturação e a média por talão.
- Desperdício: o que foi abatido ao stock (Definições → Stock, Abater (−)), por motivo (maiúsculas e espaços não contam) e por produto ou ingrediente, com o valor a preço de custo; e o que foi anulado depois de já ter sido enviado para a cozinha ou o bar, com o valor de venda e de custo.
Descontos
Um gerente ou administrador vê no ecrã de pedidos, ao lado do total, o botão % Desconto:
- no talão inteiro ou numa linha;
- em percentagem (10, 15, 20, 25, 50, 100% = grátis, ou introduzir manualmente) ou como valor fixo;
- sempre com um motivo (Pessoal, Cliente habitual, Reclamação, Promoção, Consumo próprio ou escrever o seu).
O desconto aparece como linha própria no talão ("Desconto 10%", com o motivo por baixo) com a mesma taxa de IVA, para que o total e o resumo do IVA batam certo. Em todo o talão o desconto é repartido por taxa de IVA. Retirar: toque no montante da linha de desconto. Se uma linha com desconto próprio for anulada, esse desconto cai com ela. Se retirar um produto de um talão com desconto percentual sobre todo o talão, a caixa recalcula esse desconto sobre o que resta (na Bélgica UC226); um montante fixo mantém-se e é novamente repartido pelas linhas ao cobrar. Se, devido a um desconto de 100%, não houver nada a pagar, feche com "Fechar (nada a pagar)". Os descontos aparecem no registo, e no relatório X/Z e no resumo do período como "dos quais desconto". Na devolução de um talão com desconto, o desconto é aplicado proporcionalmente.
Códigos de desconto (opcional)
Códigos com desconto no talão inteiro, por exemplo para uma promoção (ZOMER10). Ligar em Definições → Estabelecimento → Códigos de desconto (desligado por predefinição); os códigos criam-se em Definições → Códigos de desconto (permissão Gerir produtos):
- desconto em percentagem ou um valor fixo, opcionalmente com um valor de pedido mínimo, válido de/até e número máximo de utilizações (vazio = ilimitado);
- por código: na caixa e/ou na loja online (a caixa envia os códigos juntamente com o menu; a utilização conta para a caixa e a loja online em conjunto).
No ecrã de pedidos está o botão Código de desconto (qualquer pessoa pode introduzir um código; o código foi criado previamente pelo estabelecimento). O desconto aparece no talão como linha "Código de desconto CODE", distribuído pelas taxas de IVA; um código por talão, e não depois de já ter havido um pagamento (parcial). Se a linha for removida ou o pedido for cancelado, a utilização deixa de contar. Remover um código já usado desliga-o (os relatórios continuam corretos). Tudo fica no registo (Código de desconto). Código: lib/kortingscodes.ts, routes/kortingscodes.ts, Kortingscodebeheer.tsx, KortingscodeDialoog.tsx.
Não aparecem na lista em Definições → Códigos de desconto (o número por promoção sim, em Relatório → Marketing) e passam para a loja online enquanto forem válidos e não utilizados.
Relatórios e fecho do dia
Botão Relatório na barra superior:
- Saldo intermédio (X): faturação, IVA, formas de pagamento, por categoria e a gaveta desde o último fecho do dia. Também pode ser impresso. Não fecha nada.
- Fechar dia (Z) (gerente ou administrador): contar a gaveta (é mostrada a diferença face a fundo de caixa + dinheiro), introduzir o fundo de caixa para o dia seguinte e fechar. O relatório Z recebe um número sequencial, é guardado e impresso na impressora de talões. Não é possível enquanto houver pedidos em aberto. Opcional: Contar por moeda e nota (ajuda de contagem) preenche o valor contado por si; a contagem por moeda/nota aparece então também no relatório Z. Escrever o total manualmente funciona como sempre.
- Gaveta (gerente ou administrador, opcional):
- Dinheiro retirado da gaveta (depósito no banco, despesa, gorjeta paga) ou dinheiro na gaveta (trocos) com valor e motivo. A gaveta abre e sai um talão com linha para rubrica, para guardar com o dinheiro (pode ser desligado). Conta para o esperado na gaveta e aparece linha a linha nos relatórios X e Z.
- Introduzir ou corrigir o Fundo de caixa de hoje (normalmente introduz-se no fecho do dia, para o dia seguinte).
- Abrir gaveta sem venda, com motivo.
- Tudo fica no registo. Se não usar isto, o fecho do dia funciona exatamente como antes (fundo de caixa + dinheiro = esperado na gaveta).
- Por baixo da faturação aparece o número de clientes (pessoas dos pedidos cobrados) e a média por cliente, também no relatório X/Z impresso.
- Faturação por período (gerente ou administrador): hoje, ontem, esta semana/semana passada, este mês/mês passado, este ano ou escolher de-até. Mostra faturação, IVA, formas de pagamento, gorjeta, clientes, categorias de produtos, por dia e por funcionário. Com Exportar (Excel/CSV) obtém um ficheiro para o contabilista (ponto e vírgula e vírgula decimal, abre diretamente no Excel em neerlandês).
- Relatórios Z anteriores: lista com faturação e diferença de caixa; abrir e imprimir uma cópia (com "CÓPIA").
Exportação para a contabilidade
Relatório → Faturação por período → Exportação contabilidade (diário) (permissão Faturação por período) cria um CSV com um lançamento por dia, pronto a importar no e-Boekhouden, Exact, SnelStart, Twinfield, etc. (através da respetiva importação CSV/de diário geral), ou um dos formatos abaixo (UBL, XAF e pronto para 14 programas).
Por dia, um documento (KASSA-JJJJMMDD) que fecha sempre (débito = crédito):
| Lado | O quê |
|---|---|
| Débito | recebimentos por forma de pagamento (dinheiro, cartão, vale-oferta, online, outros), incl. gorjeta |
| Crédito | faturação por taxa de IVA (sem IVA) e IVA a entregar por taxa |
| Crédito | gorjeta (a pagar ao pessoal, não é faturação) |
| +/- | diferença de arredondamento (arredondamento de dinheiro a 5 cêntimos) |
| +/- | dinheiro colocado/retirado da gaveta (gestão de caixa) contra contas de transição, e diferença de caixa do relatório Z |
Devoluções e descontos já estão incluídos nos talões e reduzem a faturação. Colunas: Datum; Boekstuk; Dagboek; Rekening; Omschrijving; Debet; Credit; Btw-code; Btw-% (ponto e vírgula, vírgula decimal). Após a transferência, a caixa indica se há dias que não fecham ou que têm uma diferença maior do que o arredondamento.
Ao lado do botão escolhe o formato (a escolha fica memorizada no navegador). O mesmo diário, mas formatado para que o software o possa importar diretamente. A lista mostra apenas os formatos do país do estabelecimento (Definições → Estabelecimento), primeiro os padrões (CSV, UBL, XAF) e depois os programas por ordem alfabética:
| Formato | Ficheiro | Importar no software |
|---|---|---|
| Geral (CSV) | journaal_…csv | qualquer software com importação CSV/memorial (associar as colunas) |
| UBL 2.1 / Peppol (XML), NL e BE | journaal_…_ubl.xml (vários dias: .zip) | por dia uma fatura "recebimentos diários" a Kassaverkopen (já paga) segundo Peppol BIS Billing 3.0, com uma linha por taxa de IVA e a conta de vendas em AccountingCost; apenas faturação e IVA (formas de pagamento, gorjetas, arredondamento, gaveta e diferença de caixa não pertencem a uma fatura). Para carregar, entre outros, no Adsolut, Billit, BUNNI, DigiBoox, Expert/M, Moneybird, Popsy, Rompslomp, Storecove e TriFact365; não para enviar pela rede Peppol. Nome, número de IVA e morada vêm de Definições → Estabelecimento |
| XML Auditfile Financieel (XAF 4.0), NL | journaal_…_xaf.xaf | ficheiro de auditoria da Autoridade Tributária neerlandesa (Belastingdienst) (XSD XmlAuditfileFinancieel4.0): um único ficheiro para o período, com razão geral, códigos de IVA, períodos e por dia uma transação de diário geral; pode ser importado, entre outros, no Caseware, Exact Reeleezee e Visma Cash |
| AccountView (XML), NL | journaal_…_accountview.xml | Movimentos XML (VFPData, um transact por linha de lançamento com dj_code, period, inv_date, inv_nr, acct_nr, trn_desc e amount: débito positivo, crédito negativo), um documento por dia no diário geral; importação com uma definição de importação (Document → Importeren → Importdefinitie aanmaken, tipo XML), os nomes dos campos são os do próprio AccountView, por isso basta associá-los 1 para 1 uma vez. Mande verificar a primeira importação |
| AFAS Profit (XML) | journaal_…_afas.xml | XML do UpdateConnector FiEntries (lançamentos financeiros), um lançamento por dia com ano, período, empresa e diário; importar no Profit com Importar → XML; preencha o número da empresa (padrão 1) |
| Asperion (CSV), NL | journaal_…_asperion.csv | formato FMUTA (Extra → Import financiële mutaties), por dia uma linha de cabeçalho e as linhas de lançamento; a definição de importação é configurada pela Asperion através do helpdesk |
| Resumo diário (HTML), NL e BE | journaal_…_dagstaat.html | resumo diário legível por dia (faturação por taxa de IVA, formas de pagamento, gorjetas, diferença de caixa) e totais; imprimir como PDF ou enviar por e-mail, para software sem importação (Accountable, Dext, Dexxter, Jortt, Kleisteen, MoneyMonk) |
| e-Boekhouden.nl (CSV) | journaal_…_eboekhouden.csv | Data; N.º do documento; Descrição; Conta do razão; Valor (débito positivo, crédito negativo); código de IVA GEEN (o IVA já está nas contas de IVA); Importar → Movimentos, tipo diário geral |
| Exact Online (XML) | journaal_…_exact.xml | eExact-XML (tópico GLTransactions): um lançamento de diário geral por dia (tipo 90) no diário; Importar/exportar → Importar XML |
| InformerOnline (TXT), NL | journaal_…_informer.txt | diário geral separado por tabulações (Geavanceerd → Memoriaal → uploaden); o diário tem de ser um número 1–99 (caso contrário 90) |
| KING ERP (XML), NL | journaal_…_king.xml | KING_JOURNAAL: um lote de lançamentos (não definitivo) com um lançamento por dia |
| KOMAS (CSV), NL | journaal_…_komas.csv | formato livre do KOMAS (0401 Importeren journaalposten): Datum; Grootboek; Omschrijving; Bedrag |
| Odoo (CSV), NL e BE | journaal_…_odoo.csv | Contabilidade → Journal Entries → Import records; diário e conta por nome ou código |
| Sage BOB 50 (Excel), BE | journaal_…_bob.xlsx | Importation de données externes → Opérations diverses (associar as colunas uma única vez) |
| SAP Business One (ZIP), NL e BE | journaal_…_sapb1.zip | Data Transfer Workbench, Journal Entries: JournalEntries.csv e JournalEntries_Lines.csv |
| SnelStart (CSV) | journaal_…_snelstart.csv | Data; N.º do documento; Descrição; Conta do razão; Débito; Crédito (dd-mm-aaaa, vírgula decimal, sem BOM); importar como diário geral, o diário escolhe-se ao importar |
| Twinfield (XML) | journaal_…_twinfield.xml | transações de diário como rascunho (destiny="temporary"), o contabilista torna-as definitivas; preencha o código da empresa (vazio = a empresa para a qual importa) |
| Winbooks (CSV), BE | journaal_…_winbooks.csv | K_DOC.CSV, por dia um documento no diário (o Winbooks numera sozinho) |
| Yuki (XML) | journaal_…_yuki.xml | Journal-XML (GeneralJournal), um lançamento de diário geral por dia, mesma estrutura da ligação em direto; ID da empresa opcional |
Resumo: que software de contabilidade de que forma
Por segmento, por ordem alfabética. NL/BE = país em que o software funciona: em Definições → Contabilidade → Software de contabilidade só vê os programas do país do estabelecimento (os programas neerlandeses não funcionam na Bélgica e vice-versa). Live = a caixa lança sozinha todos os dias (escolhe-se em Definições → Contabilidade → Software de contabilidade); mediante pedido = existe uma API, mas exige primeiro um registo como parceiro ou uma aprovação do fornecedor (avise-nos). Ficheiro = o formato em Exportação contabilística. Onde ambos são possíveis, pode usar ambos. A lista está em packages/shared/src/boekhoudcatalogus.ts e aparece também em Definições → Contabilidade.
| Software | NL | BE | Live | Ficheiro | Observação |
|---|---|---|---|---|---|
| PME e trabalhadores independentes | |||||
| Accountable | – | ✓ | – | Resumo diário (HTML, para PDF ou e-mail) | |
| AccountView (Visma) | ✓ | – | mediante pedido | AccountView (XML), Geral (CSV) | Ficheiro: movimentos XML para uma definição de importação (Document → Importeren); o CSV genérico também funciona com uma definição de importação. Live através da API do AccountView.Net mediante pedido ao AccountView. |
| Acumulus | ✓ | – | ✓ | – | Live como fatura de venda paga por dia, com uma linha por taxa de IVA. |
| AFAS Profit | ✓ | – | ✓ | AFAS Profit (XML) | |
| Asperion | ✓ | – | mediante pedido | Asperion (CSV) | Live após inscrição como parceiro API na Asperion. |
| Billit | – | ✓ | mediante pedido | UBL 2.1 / Peppol (XML) | Carregar o UBL através de Fast input; live após aprovação pela Billit. |
| BUNNI | ✓ | – | – | UBL 2.1 / Peppol (XML) | Ainda sem documentação pública da API. |
| Dexxter | – | ✓ | – | Resumo diário (HTML, para PDF ou e-mail) | |
| DigiBoox (Visma DigiBTW) | ✓ | – | – | UBL 2.1 / Peppol (XML) | |
| e-Boekhouden.nl | ✓ | – | – | e-Boekhouden.nl (CSV) | Também para antigos clientes Ficsus. |
| Exact Online | ✓ | ✓ | ✓ | Exact Online (XML) | |
| Exact Reeleezee | ✓ | – | – | XML Auditfile Financieel (XAF 4.0) | |
| Horus | – | ✓ | ✓ | – | |
| InformerOnline | ✓ | – | – | InformerOnline (TXT) | |
| Jortt | ✓ | – | – | Resumo diário (HTML, para PDF ou e-mail) | Sem importação: lance a faturação do dia como receita com o resumo diário como anexo. |
| KING | ✓ | – | mediante pedido | KING ERP (XML) | Live após registo como parceiro na KING Software. |
| Kleisteen | ✓ | – | – | Resumo diário (HTML, para PDF ou e-mail) | |
| KOMAS (Adfinis) | ✓ | – | – | KOMAS (CSV) | |
| Minox | ✓ | – | mediante pedido | – | Live após uma ligação de parceiro através da Minox. |
| Moneybird | ✓ | – | ✓ | UBL 2.1 / Peppol (XML) | |
| MoneyMonk | ✓ | – | – | Resumo diário (HTML, para PDF ou e-mail) | O MoneyMonk terá em 2026 uma API para integrações. |
| Octopus | – | ✓ | mediante pedido | – | Live após pedir um software house ID à Octopus. |
| Popsy / Allegro | – | ✓ | – | UBL 2.1 / Peppol (XML) | |
| Rompslomp | ✓ | – | – | UBL 2.1 / Peppol (XML) | |
| Sage BOB 50 | – | ✓ | – | Sage BOB 50 (Excel) | |
| Silvasoft | ✓ | ✓ | ✓ | – | Live como lançamento de vendas por dia, com uma linha por taxa de IVA; formas de pagamento, gorjetas e diferença de caixa não são incluídas. |
| SnelStart | ✓ | – | ✓ | SnelStart (CSV) | |
| Twinfield | ✓ | – | ✓ | Twinfield (XML) | |
| Visma Cash | ✓ | – | mediante pedido | XML Auditfile Financieel (XAF 4.0) | API com uma chave do CASHWeb; o formato de registo dos lançamentos ainda está a ser confirmado. |
| Visma eAccounting | ✓ | – | mediante pedido | – | Live após aprovação pela Visma (registo como parceiro). |
| Winbooks | – | ✓ | mediante pedido | Winbooks (CSV) | |
| Wolters Kluwer Adsolut | – | ✓ | mediante pedido | UBL 2.1 / Peppol (XML) | UBL com a conta de vendas por linha; ative no Adsolut "grootboekrekening verwerken bij verkopen". |
| Wolters Kluwer Expert/M | – | ✓ | – | UBL 2.1 / Peppol (XML) | |
| Yuki | ✓ | ✓ | ✓ | Yuki (XML) | |
| Internacional | |||||
| QuickBooks Online | ✓ | ✓ | ✓ | CSV genérico | Sem edição neerlandesa nem belga: verifique as definições de IVA. |
| Xero | ✓ | ✓ | ✓ | CSV genérico | |
| Zoho Books | ✓ | ✓ | ✓ | CSV genérico | |
| Empresas e cadeias | |||||
| Exact Globe+ | ✓ | ✓ | – | Exact Online (XML) | O mesmo XML que o Exact Online; mande verificar a primeira importação. |
| Microsoft Dynamics 365 Business Central | ✓ | ✓ | ✓ | – | |
| Odoo | ✓ | ✓ | ✓ | Odoo (CSV) | |
| Oracle NetSuite | ✓ | ✓ | mediante pedido | CSV genérico | |
| SAP Business One | ✓ | ✓ | ✓ | SAP Business One (ZIP) | |
| Unit4 ERPx | ✓ | ✓ | – | CSV genérico | |
| Plataformas e agregadores | |||||
| Apicbase | ✓ | ✓ | mediante pedido | – | Vendas por talão para stock e food cost: integração em Definições → Receitas (não como programa de contabilidade). |
| Caseware | ✓ | ✓ | – | XML Auditfile Financieel (XAF 4.0) | |
| Combidesk | ✓ | – | mediante pedido | – | A Combidesk cria e gere a ligação por conta própria (para, entre outros, Exact, Moneybird, SnelStart e Twinfield); mediante pedido como parceiro. |
| Dext | ✓ | ✓ | – | Resumo diário (HTML, para PDF ou e-mail) | Envie o resumo diário (PDF) por e-mail para o seu endereço Dext. |
| Jamix | ✓ | ✓ | mediante pedido | – | Vendas para stock e food cost através da interface JAPI da Jamix; desenvolvimento à medida mediante pedido à Jamix. |
| Omniboost | ✓ | ✓ | mediante pedido | – | Encaminha através do programa de parceiros da Omniboost para muitos sistemas de contabilidade e hotelaria. |
| Storecove (Peppol) | ✓ | ✓ | mediante pedido | UBL 2.1 / Peppol (XML) | |
| TriFact365 | ✓ | – | – | UBL 2.1 / Peppol (XML), Resumo diário (HTML, para PDF ou e-mail) | |
| Qualquer outro software | ✓ | ✓ | – | CSV genérico, UBL ou XAF (NL) |
Peça ao contabilista que verifique a primeira importação. A formatação está em packages/shared/src/journaalexport.ts (com testes).
Definições → Contabilidade (permissão Configurar estabelecimento, pagamentos e impressoras): código do diário (padrão MEM) e a conta do razão por componente. Vazio = conta de exemplo (NL: 8000/8010/8020 faturação, 1500/1510 IVA, 1000 caixa, 1100 cartão; BE: 7000xx faturação, 451000 IVA, 570000 caixa). Peça ao contabilista para preencher as contas reais.
Ligação a um software de contabilidade
Ligações live com Acumulus, AFAS Profit, Microsoft Dynamics 365 Business Central, Exact Online, Horus, Moneybird, Odoo, QuickBooks Online, SAP Business One, Silvasoft, SnelStart, Twinfield, Xero, Yuki e Zoho Books. Depois de cada dia, a caixa lança o mesmo diário que a exportação acima (faturação e IVA por taxa, formas de pagamento, gorjeta, arredondamento, gaveta e diferença de caixa) como lançamento de diário geral no software escolhido, com o diário e as contas do razão de Definições → Contabilidade. Está sempre ativo, no máximo, um software.
- A lista está organizada por segmento (PME e trabalhadores independentes, Internacional, Empresas e cadeias) e mostra apenas os programas que funcionam no país do estabelecimento; o servidor recusa um software de outro país (400) e não lança com ele (409). Logo abaixo, o administrador recebe exatamente os campos desse software; a ligação e a lista de dias lançados estão por baixo das contas do razão, com a visão geral de todos os programas para este país por baixo. Se na atualização estavam dois ativos (numa versão mais antiga era possível), o Exact Online fica ativo e o outro software é desligado.
| Software | País | Ligar com | O que a caixa lança |
|---|---|---|---|
| Acumulus | NL | código de contrato, utilizador e palavra-passe de um utilizador API | por dia uma fatura de venda paga com uma linha por taxa de IVA; os erros são enviados pelo Acumulus por e-mail para ACUMULUS_FOUTMAIL |
| AFAS Profit | NL | ambiente, token, empresa | diário geral (FiEntries) |
| Business Central | NL, BE | tenant, ambiente, empresa, ID de cliente e segredo de uma app do Microsoft Entra (API.ReadWrite.All) | linhas no diário geral com o código de Diário |
| Exact Online | NL, BE | iniciar sessão (OAuth, app própria: ver Exact Online abaixo; Bélgica: start.exactonline.be) | lançamento de diário geral no diário (ex. 90) |
| Horus | BE | iniciar sessão (OAuth, app abaixo), dossiê opcional | operação diversa |
| Moneybird | NL | token API, empresa opcional | diário geral (general journal document) |
| Odoo | NL, BE | endereço, base de dados, utilizador, chave API | lançamento no diário com o código curto (ex. MISC) |
| QuickBooks Online | NL, BE | iniciar sessão (OAuth, app abaixo; QUICKBOOKS_OMGEVING) | journal entry; contas por número |
| SAP Business One | NL, BE | endereço do Service Layer, base de dados, utilizador, palavra-passe | lançamento de diário (JournalEntries) |
| Silvasoft | NL, BE | utilizador e chave API | lançamento de vendas na relação Kassaverkopen, uma linha por taxa de IVA (formas de pagamento, gorjetas e diferença de caixa não são incluídas) |
| SnelStart | NL | chave de ligação e chave de subscrição | diário geral |
| Twinfield | NL | iniciar sessão (OAuth, app abaixo), escritório opcional | transação de diário |
| Xero | NL, BE | iniciar sessão (OAuth, app abaixo), organização opcional | manual journal; contas por código |
| Yuki | NL, BE | chave API, empresa opcional | diário geral (GeneralJournal) |
| Zoho Books | NL, BE | iniciar sessão (OAuth, app abaixo; por predefinição o centro de dados europeu), organização opcional | lançamento de diário; contas por código |
- OAuth (Horus, QuickBooks, Twinfield, Xero, Zoho): registar uma vez uma app no software.
- Em alguns programas, os campos da API não podem ser totalmente confirmados a partir da documentação pública (entre outros Horus, Zoho Books, o sinal no Business Central e a estrutura no SAP Business One): peça sempre ao contabilista que verifique o primeiro lançamento.
- Exact Online: lança o diário como lançamento de diário geral na empresa escolhida.
- Escolhe-se em Definições → Contabilidade → Software de contabilidade → Exact Online (predefinição Desligado). Bélgica: a caixa usa automaticamente
start.exactonline.be. - Definições → Contabilidade → Exact Online: Ligar ao Exact Online abre o início de sessão no Exact; depois aparece a que empresa a caixa está ligada. Em Diário, introduza o código de um diário geral no Exact (ex.
90) e certifique-se de que as contas do razão existem no Exact. - Quando: logo após Fechar dia e depois a cada hora, para todos os dias passados (até ontem, inclusive) a partir de Lançar a partir de (por predefinição o dia da ligação; os dias anteriores o contabilista já tem). Cada dia uma só vez; os dias sem faturação são ignorados. Lançar agora é sempre possível.
- Erros (uma conta não existe no Exact, o dia não fecha, sem internet) aparecem com o motivo junto desse dia; a caixa tenta novamente mais tarde e os dias seguintes esperam até resultar (assim a ordem mantém-se correta). No registo: "exact_geboekt".
- O IVA fica nas contas do razão de IVA (sem código de IVA, tal como na exportação). Peça ao seu contabilista que verifique os primeiros lançamentos.
- Exact: uma ligação continua a funcionar enquanto a caixa a usar (a cada 10 minutos um novo token, de cada vez com um novo refresh token). Se for revogada ou não for usada durante demasiado tempo, a caixa pede para Voltar a ligar. Desemparelhar apaga os tokens; o que foi lançado mantém-se.
- Escolhe-se em Definições → Contabilidade → Software de contabilidade → Exact Online (predefinição Desligado). Bélgica: a caixa usa automaticamente
- AFAS Profit: número do ambiente (ex.
12345; produção, teste ou aceitação), o token de um conector de app com o UpdateConnector FiEntries e o número da empresa (padrão 1). Diário = o código de um diário geral no AFAS (ex.90). - Diário = número ou nome de um diário geral; se houver só um diário geral, a caixa usa esse. As contas do razão têm de ser números.
- Twinfield: iniciar sessão com OAuth. Sem essa app a caixa não consegue ligar-se. A caixa procura o cluster e a empresa (vazio = a primeira); diário = o código de um diário geral (ex.
MEMO). Lança de forma definitiva (destiny="final"). - Yuki: chave API da empresa (Yuki → Definições → Serviços web); empresa vazia = a primeira dessa chave. Lança um lançamento de diário geral (GeneralJournal); o Yuki não usa código de diário.
- Quando: logo depois de Fechar dia e a cada hora, para todos os dias passados a partir de Lançar a partir de (por padrão o dia da ligação; com outro software, de novo a partir desse dia). Cada dia uma vez por software; os dias sem faturação são ignorados; em caso de erro, o motivo aparece junto desse dia e os dias seguintes esperam. Lançar agora é sempre possível. No registo: "boekhoudpakket_geboekt".
- As chaves e os tokens nunca aparecem no ecrã (deixar vazio ao voltar a ligar = manter). Na cópia da caixa no portal não se lança nada.
Ficheiro de auditoria da caixa (XAA)
Para estabelecimentos nos Países Baixos, em Relatório → Faturação por período, ao lado da exportação contabilística, existe o botão Ficheiro de auditoria da caixa (XAA): o XML Auditfile Afrekensystemen 3.2 da Autoridade Tributária neerlandesa (Belastingdienst) e do XML Platform (SRA) relativo ao período escolhido (no máximo pouco mais de um ano; permissão Faturação por período). É o ficheiro que a Belastingdienst recomenda para fornecer os dados de uma caixa numa inspeção ou ao contabilista; as regras constam do Handreiking voor een betrouwbaar afrekensysteem (Guia para um sistema de caixa fiável) (docs/xaa).
No ficheiro (auditfile_kassa_<van>_tm_<tot>.xml, esquema docs/xaa/XmlAuditfileAfrekensystemen3.2.xsd):
- dados mestre: o estabelecimento (nome, n.º de IVA, morada), os códigos de IVA, todos os funcionários (com função e data de criação; mais
SYSTEEMpara o que a caixa faz sozinha, como a loja online e as integrações) e todos os artigos com o respetivo grupo; - eventos: tudo o que consta do registo no período (início e fim de sessão, gaveta aberta, fecho do dia, definições e preços alterados, anulação, desconto, devolução, cópia de talão, registo de entrada e saída ...) e a abertura do dia de caixa com o fundo de caixa, cada um com o código da Belastingdienst (18001 início de sessão, 18003 gaveta, 18006 alteração da instalação, 18008 relatório Z, caso contrário 18999);
- transações de caixa: cada talão (venda, devolução e proforma, com o número do talão, o funcionário e o estado fiscal se este não estiver em ordem) com todas as linhas (artigo, grupo, quantidade, preço, IVA; também descontos, vales-oferta, cabeçalhos de menu e linhas anuladas antes do pagamento, estas com valor 0), o IVA por taxa, o arredondamento, os pagamentos por meio de pagamento (dinheiro, cartão, vale-oferta, online; gorjeta à parte) e as entradas e saídas de dinheiro da gaveta.
Os valores são positivos com C (venda, recebimento) ou D (devolução, pagamento); as horas estão na hora neerlandesa com desvio (offset). Todas as chaves são os ids da base de dados sem hífenes, pelo que podem ser encontradas na caixa.
Assinatura (capítulo 6 da especificação): se a Optimum POS tiver configurado um certificado, o ficheiro de auditoria vem assinado num envelope (XML Signature) e o ficheiro chama-se …_ondertekend.xml; caso contrário, é um ficheiro de auditoria simples, e a caixa indica-o ao transferir.
Pagamento a crédito
Os clientes empresariais (uma empresa que manda buscar o almoço todas as semanas, um hotel, uma associação) compram a crédito e pagam mais tarde, com fatura. Ative-o em Definições → Faturas → Pagamento a crédito (só com Faturas ativado; desativado por predefinição).
- Clientes: em Relatório → A crédito regista os clientes empresariais com os dados para a fatura (nome, morada, número de IVA, número KvK/de empresa, ID Peppol, e-mail), opcionalmente um limite (quanto pode estar em aberto no máximo) e um prazo de pagamento próprio (caso contrário, o das faturas), e se a fatura é enviada de imediato.
- Cobrar: método de pagamento A crédito, escolha o cliente (com o que já está em aberto e o limite). O talão é uma venda normal: faturação e IVA nesse dia, na Bélgica normalmente através da caixa negra, com "A crédito" no talão. A caixa cria logo a fatura (UBL/Peppol e para imprimir) com o montante ainda em aberto e a data de vencimento, e envia-a como definido nas faturas (e-mail, Peppol via Billit/Storecove/Banqup ou o seu próprio endereço). A crédito é um único montante para o resto da conta (pode pagar-se antes uma parte de outra forma), sem gorjeta; um vale-oferta não pode ser vendido a crédito. Acima do limite, a caixa recusa.
- Pagar: o cliente paga no estabelecimento em dinheiro, com cartão ou com vale-oferta (Relatório → A crédito → Pagamento recebido; também uma parte). Não é uma nova venda nem um novo talão: o dinheiro entra como dinheiro na gaveta (a gaveta abre-se), tudo aparece no X e no Z em Recebido a crédito. Quando tudo estiver pago, a fatura fica "paga". O pagamento online não faz parte disto.
- Transferência: se houver um IBAN em Dados na fatura, este aparece na fatura (e no UBL), com "Também pode pagar no estabelecimento". Se o cliente pagou por transferência, registe-o com Pagamento recebido → Transferido (banco): não na gaveta, mas nos relatórios X e Z em Recebido a crédito. Sem IBAN aparece "A pagar no estabelecimento". Na Bélgica aparece uma comunicação estruturada (+++123/4567/89012+++, a partir do número da fatura) na fatura e no UBL, para que o banco a envie com o pagamento.
- Banco: conciliar transferências sem as digitar, ver abaixo.
- Saldo (dinheiro adiantado): em Relatório → A crédito → Depositar saldo deposita dinheiro adiantado na conta de um cliente, em dinheiro (a gaveta abre-se) ou com cartão, ex. para uma série de almoços. Na próxima venda a crédito, o saldo é descontado primeiro da fatura; se a fatura for maior, o resto fica em aberto. O saldo aparece no cliente (saldo € ...), no X e no Z em Recebido a crédito (Saldo depositado, Com saldo do cliente) e no lançamento contabilístico como recebido antecipadamente (por predefinição 1640 / 460000). Na Bélgica o depósito vai para a caixa negra como entrada de dinheiro (signMoneyInOut) (UC4100).
- Fatura agregada (por cliente, desligada por predefinição): com Uma fatura para todos os talões o cliente ainda não recebe fatura numa venda a crédito. O talão fica em aberto no cliente (Talões ainda não faturados, conta para o limite) e já pode ser pago. Com Criar fatura agregada (p. ex. no fim do mês) todos os talões em aberto vão para uma só fatura, cada linha antecedida do número do talão; o que já foi pago aparece como pago. Uma devolução para a conta aparece como linhas negativas. Desligado = como sempre, uma fatura por venda. Na Bélgica, uma só fatura com todos os talões na caixa negra (signInvoice, UC4121 e UC4122).
- Bélgica: se o cliente pagar mais tarde uma venda a crédito (dinheiro, cartão, vale-oferta ou transferência), a caixa comunica-o como correção de pagamento no talão: do crédito do cliente para o método de pagamento real (signPaymentCorrection, UC4118).
- Visão geral: faturas em aberto com a data de vencimento (em atraso a vermelho), e por cliente as faturas e os pagamentos. Em Definições → Faturas, uma coluna Em aberto.
- Contabilidade: no diário, a venda a crédito vai para Contas a receber (predefinido 1300 nos Países Baixos, 400000 na Bélgica; configurável em Definições → Contabilidade) e o pagamento passa de caixa, cartão, vale-oferta ou banco (predefinido 1050 / 550000) para contas a receber. XAA: método de pagamento "A crédito".
- Permissão: Cobrar a crédito e receber pagamentos a crédito (predefinição empregado de mesa não, gerente sim). Tudo fica no registo.
- Desativado: os clientes, faturas e pagamentos são conservados (também na cópia de segurança); o interruptor vai na exportação da configuração, os clientes não (pertencem a um só estabelecimento).
- Na loja online (opcional, desligado por defeito): com Também na loja online, os clientes empresariais encomendam online a crédito (take-away e entrega). Em Relatório → A crédito cria um código de cliente por cliente e entrega-o ao cliente; a caixa guarda apenas uma versão encriptada, por isso só o vê uma vez. Novo código de cliente = o antigo deixa de funcionar; Remover código de cliente = esse cliente deixa de poder encomendar online a crédito. A loja respeita o limite. Na janela Loja online conclui essa encomenda com Concluir (a crédito): cobrança a crédito, com a fatura de imediato.
Banco: conciliar transferências
Em Relatório → A crédito → Banco, a caixa procura para cada entrada a fatura a crédito correspondente:
- Importar extrato bancário: o ficheiro do seu homebanking, em CAMT.053 (XML, todos os bancos dos Países Baixos e da Bélgica), MT940 (.sta/.940) ou CODA (.cod, Bélgica). Apenas entradas; importar o mesmo extrato duas vezes não cria linhas duplicadas.
- Procura: pelo número da fatura ou pela comunicação estruturada na descrição (certo), caso contrário pelo montante (e nome): nesse caso é uma proposta. Cada linha pode ser conciliada (com a proposta ou outra fatura), ignorada ou mais tarde conciliada mesmo assim. Conciliar = Transferido (banco) na data bancária, nunca mais do que o valor em aberto; não na gaveta.
- Ligação bancária (PSD2, opcional): em Definições → Faturas → Ligação bancária, a caixa obtém sozinha, de hora a hora, as entradas através da Enable Banking (bancos dos Países Baixos, da Bélgica e do resto da Europa). Escolha o banco e inicie sessão nele (conta empresarial); o consentimento é válido por 180 dias, depois é preciso voltar a ligar. Desligar retira o consentimento; as entradas mantêm-se. Sem contrato com a Enable Banking, isto só funciona para as suas próprias contas (restricted production).
- Conciliação automática (desligada por predefinição): uma entrada que pertence com certeza a uma fatura é conciliada de imediato pela caixa (também ao importar).
- Permissão: conciliar com Registar a crédito e receber pagamentos a crédito; configurar a ligação bancária com Configurar estabelecimento, pagamentos e impressoras. Importar, ligar, obter e conciliar ficam no registo.
- Desligado: com o pagamento a crédito desligado, a caixa não obtém nada; as entradas e a ligação ficam guardadas (também na cópia de segurança).
Imagens das câmaras na caixa
Todas as imagens das câmaras do estabelecimento numa só página, sem ecrã ou aplicação à parte. Ative em Definições → Estabelecimento → Ecrãs e utilização → Imagens das câmaras na caixa (desligado por predefinição). Aparece então o botão Câmaras na barra superior para quem tem a permissão Ver imagens das câmaras (por predefinição gerente e administrador; em Definições → Permissões também pode ser ativado para os empregados de mesa). Todas as câmaras ficam lado a lado; toque numa câmara para a ver em grande. Ao desligar, os sistemas de câmaras ficam guardados.
Também num ecrã próprio: Num ecrã próprio abre http://<kassaserver>:3000/camera (p. ex. um monitor atrás do balcão), e Num tablet ou telemóvel mostra um código QR: um funcionário lê-o com o seu próprio tablet ou telemóvel e inicia sessão com o seu próprio PIN (também aí apenas com a permissão Ver imagens das câmaras). Num ecrã estreito as câmaras ficam umas por baixo das outras. Ver Segundo ecrã num tablet ou telemóvel.
O gestor adiciona os sistemas de câmaras com + Sistema de câmaras, testa-os com Testar e escolhe para cada câmara o nome e se aparece na página:
- Hikvision, Dahua, Axis e Reolink: uma câmara ou um gravador (NVR) na rede: o endereço IP (eventualmente com
:poort), um utilizador (de preferência só de visualização) e os canais, p. ex.1-8ou1,3,5. Início de sessão com Basic ou Digest; é permitido https com um certificado próprio. - Synology Surveillance Station: o endereço do NAS (porta predefinida 5000, com https 5001) e um utilizador; Obter câmaras obtém as câmaras com os seus nomes.
- UniFi Protect: o endereço da consola (https) e uma conta local; Obter câmaras.
- ONVIF: qualquer câmara ou gravador com ONVIF (p. ex. Hanwha, Bosch, Uniview, Annke); Obter câmaras procura o endereço da foto de cada fonte de vídeo.
- Endereço web próprio: uma foto (JPEG), um fluxo MJPEG ou um endereço
rtsp://. - Página web do sistema de câmaras (p. ex. Frigate, Blue Iris ou go2rtc): abre na caixa com o botão Câmaras (ou numa janela própria).
Sem ffmpeg: a foto.
Privacidade: a caixa obtém as imagens do sistema de câmaras e apenas as transmite; nada é guardado (sem gravações, sem cache). Os utilizadores e palavras-passe ficam no servidor e nunca aparecem no ecrã nem no registo. No registo fica quem viu as câmaras. A página pede as próprias imagens com uma chave (válida 12 horas, enquanto o funcionário tiver sessão iniciada), porque uma imagem no navegador não consegue enviar um token. A exportação da configuração inclui apenas ligado/desligado.
Registo de ações sensíveis
Relatório → Registo (gerente ou administrador) mostra quem fez o quê e quando.
- Escolha um período (hoje, ontem, esta semana, este mês/mês passado ou de-até), o que quer ver (por padrão Ações sensíveis, ou p. ex. só anulações e descontos, ou Tudo) e, se quiser, um funcionário.
- No topo, por funcionário: número e valor de anulações (eliminadas após o pedido), descontos e devoluções, e quantas vezes a gaveta abriu sem venda, dinheiro retirado da gaveta, cópias de talões, pró-formas e pagamentos com cartão manuais. Toque num nome para ver só esse funcionário. Também o número de vezes que foi introduzido um PIN errado.
- Por baixo, cada ação com hora, quem, o quê e uma descrição legível (p. ex. "2x Cola eliminada após o pedido € 5,60 · mesa 4 · motivo: o cliente já não queria").
- Transferir (CSV) para Excel.
O que é registado: anulações, descontos (e a sua remoção), devoluções, cópias de talões, pro formas, pagamentos com cartão manuais, abertura da gaveta, entradas/saídas de dinheiro da gaveta, fundo de caixa, fecho do dia, mover linhas ou mesas, fechar encomendas vazias, alterar preço/nome/IVA de produtos, produtos novos ou eliminados, alterações de pessoal e definições, ajuste de horários de trabalho, iniciar e terminar sessão, PIN errados e registo de entrada e saída. Com pagamento a crédito também: clientes, vendas e pagamentos a crédito, importação de extratos bancários, a ligação bancária e a obtenção de dados do banco. Com o alerta de tempo de preparação excessivo: encomendas atrasadas e pedidos de desculpa enviados. Com Mailchimp ou Klaviyo: ligar, escolher a lista, desligar e cancelamentos de subscrição vindos de lá. Com o controlo de música: ligado/desligado e adicionar, alterar e remover fontes de música. Com as imagens das câmaras: quem viu as câmaras (no máximo uma vez por meia hora por funcionário), ligado/desligado e os sistemas de câmaras. Com alertas: cada alerta, a sua resolução e o ligar e desligar.
Alertas: fraude e desvios
Definições → Alertas. Duas partes, cada uma ativada separadamente e desligada por predefinição; desligar guarda todos os alertas e definições. Pode configurar quem tem a permissão Configurar alertas (por predefinição o gerente e o administrador); pode ver e resolver os alertas quem pode ver o registo. A caixa verifica a cada 5 minutos (e com Verificar agora); não na caixa de reserva.
Deteção de fraude e roubo (por funcionário, por dia de trabalho a partir das 05:00), cada regra ligada ou desligada separadamente com o seu próprio limite:
- anulações após a pró-forma: removido depois de o cliente já ter visto a conta;
- anulações, descontos e devoluções: a partir de um certo número de vezes, ou no total a partir de um valor (0 = não por valor);
- gaveta aberta sem venda (botão Abrir gaveta);
- conta aberta há muito tempo: pedida mas ainda não paga após um certo número de minutos.
Avisos de desvios, comparado com o mesmo dia da semana e a mesma hora das últimas semanas (predefinição 4; dias sem faturação não contam, pelo menos dois dias de comparação):
- faturação até agora abaixo (e/ou acima) do normal em mais do que a margem, só a partir de uma faturação normal de um valor definido;
- tempo de cozinha (do pedido para a cozinha até pronto no ecrã de cozinha) da última hora acima da margem, ou acima de um número fixo de minutos;
- anulações de hoje acima da margem, só a partir de um número mínimo.
Cada alerta surge uma única vez (por regra, funcionário e dia; o tempo de cozinha no máximo uma vez por hora) e vai para:
- a caixa: botão Alertas (n) na barra superior com os alertas do último dia, da última semana ou dos últimos 30 dias; Resolvido com uma nota. Os outros ecrãs só recebem um sinal sem nomes;
- notificação push com ntfy (app gratuita; ntfy.sh ou um servidor próprio, topic e eventualmente um token), Pushover (API-token da app e a user key) ou Telegram (token do bot e o chat-id);
Cada canal tem um botão Mensagem de teste. Os tokens e chaves ficam na caixa (os ecrãs só veem se estão preenchidos). Um alerta não é uma prova: veja a conta e o registo e fale com o funcionário.
Talões: cópia e devolução (nota de crédito)
Botão Talões na barra superior:
- Lista dos talões desde o último fecho do dia, ou dos últimos 7 dias; um talão mais antigo procura-se pelo número.
- Imprimir cópia: o mesmo talão com "CÓPIA" (na Bélgica com o bloco FDM do talão original). Fica registado no registo.
- Devolução / nota de crédito (gerente ou administrador): escolha por linha quanto é devolvido, um motivo e como o dinheiro é devolvido (dinheiro, cartão, vale-oferta, outros). O talão antigo fica intacto: é criada uma nova nota de crédito com número próprio no diário (tipo de ticket
retour, valores negativos, na Bélgica enviada como NR para o FDM). Nunca se pode devolver mais do que foi vendido. Nos relatórios X e Z a devolução conta como faturação negativa. - Com CCV ou outro terminal: reembolse primeiro no próprio terminal e depois marque "Já reembolsado no próprio terminal".
- Dinheiro com arredondamento a 5 cêntimos: o valor a devolver também é arredondado.
- Devolver à conta (venda a crédito): se o talão era a crédito de um cliente empresarial, escolha A crédito. O montante é descontado da fatura em aberto e a caixa cria de imediato uma nota de crédito (em UBL uma CreditNote, tipo 381, com referência à fatura; na Bélgica assinada com signInvoice, UC4122). Não é possível devolver à conta mais do que está em aberto na fatura; reembolse o resto em dinheiro ou com cartão. A nota de crédito aparece em Faturas e é enviada como uma fatura.
Gaveta com sensor e gaveta por funcionário
Por predefinição desligado. Configura-se em Definições → Pagamentos → Gaveta.
- Sensor: muitas gavetas indicam através da impressora de talões se estão abertas ou fechadas (ESC/POS
DLE EOT 1, pino 3 da porta DK). Isso só é possível com uma impressora de talões em rede. Toque em Medir: gaveta fechada e Medir: gaveta aberta; se houver diferença, aplique o estado correto (alto = aberta ou baixo = aberta). Sem diferença = esta gaveta (ou cabo) não tem sensor. Sem resposta da impressora = desconhecido, nunca "fechada".- Não cobrar enquanto a gaveta estiver aberta: o servidor da caixa recusa então uma nova cobrança com "A gaveta ainda está aberta".
- Gaveta própria por funcionário: uma impressora de talões pode abrir duas gavetas (gaveta 1 e gaveta 2). Escolha a gaveta de cada funcionário; a caixa abre então, ao cobrar em dinheiro, com dinheiro na/retirado da gaveta e com Abrir gaveta, a gaveta de quem tem sessão iniciada. Em Relatório → Gaveta aparece então Gaveta por funcionário: fundo de caixa por funcionário, dinheiro (sem a máquina de numerário), previsto, Contar e a diferença por pessoa (no registo como
ladetelling). O fecho do dia normal mantém-se como está. - Testar gaveta 1 e Testar gaveta 2 abrem a gaveta para verificação.
- Abrir gaveta sem venda já fica sempre registado (com motivo) no registo e no ficheiro de auditoria da caixa (XAA), tal como exige a autoridade tributária (Belastingdienst) (exceções como "no sale").
Parte 3 · Administrador
Primeiros passos
Instalar. Instala o HorecaPOS com o instalador para o seu sistema, disponível na página de transferências da OptimumPOS: Android (app), Windows (instalador), macOS (instalador para Macs com Apple Silicon e Intel), Linux (instalador gráfico, ou o pacote .deb ou .rpm), Raspberry Pi (instalador gráfico ou .deb para um Raspberry Pi 3, 4 ou 5 com Raspberry Pi OS de 64 bits) e Chromebook (a app Android do Google Play). Escolha para todos os utilizadores para um servidor de caixa ao qual se ligam os tablets e o ecrã de cozinha, ou só para mim para apenas uma caixa nesse dispositivo. O instalador instala tudo o que é necessário, incluindo a base de dados, e faz uma cópia de segurança todas as noites. Para atualizar, instale a nova versão: os seus dados mantêm-se. O instalador arranca no idioma do seu computador (caso contrário, em inglês); no Windows e no Linux pode escolher outro idioma no primeiro ecrã. A caixa arranca depois logo nesse idioma. Os pacotes .deb e .rpm e a app Android seguem o idioma do sistema; caso contrário, neerlandês.
O administrador configura a caixa em Definições. Aí há separadores como Estabelecimento, Pessoal, Permissões, Horário de trabalho, Produtos, Happy hour, Stock, Plantas das salas, Pagamentos, Impressoras, Contabilidade, Cópias de segurança, Importar/exportar e Base de dados. Os separadores que um gerente também vê dependem das permissões.
Base de dados. Em Definições → Base de dados (apenas o administrador) escolhe entre MySQL / MariaDB, a base de dados integrada e PostgreSQL; ao mudar, todos os dados são transferidos (ver Base de dados). Se a Optimum POS já tiver definido um endereço fixo durante a instalação, aplica-se esse endereço e não há campos para preencher. Caso contrário, preenche o Servidor, a Porta, a Base de dados, o Utilizador e a Palavra-passe. A caixa guarda-os ela própria, depois mostra-os já preenchidos e pode sempre alterá-los com Alterar dados do MySQL/MariaDB ou Alterar dados do PostgreSQL. Deixar a palavra-passe vazia significa: manter a palavra-passe guardada (para o mesmo utilizador). O instalador e uma atualização não alteram DATABASE_URL nem a base de dados escolhida.
Contabilidade
Tudo para a contabilidade está em Definições → Contabilidade. Preencha, juntamente com o seu contabilista, o diário e as contas do razão. Se quiser que a caixa lance sozinha a faturação do dia todos os dias, escolha o seu software no topo em Software de contabilidade, incluindo o Exact Online: só vê os programas que funcionam no país do seu estabelecimento. Logo abaixo preenche os dados desse software e liga. Nos programas em que inicia sessão (como Exact Online, Twinfield ou Xero), preencha primeiro a app: ID de cliente e segredo de cliente. Se a Optimum POS definiu de forma fixa o software ou um dado na instalação, não verá essa opção ou esse campo. Aí encontra também uma visão geral de todos os programas: quais podem ser ligados em live e quais recebem um ficheiro. Um ficheiro cria-se em Relatório → Faturação por período → Exportação contabilística: escolha o formato do seu software, ou UBL (Peppol), XAF ou um resumo diário. Peça sempre ao seu contabilista que verifique o primeiro lançamento ou a primeira importação.
Para um estabelecimento nos Países Baixos existe aí também Ficheiro de auditoria da caixa (XAA): o XML Auditfile Afrekensystemen da Belastingdienst com todos os talões, linhas, pagamentos e eventos da caixa no período escolhido. Entregue-o ao seu contabilista ou, numa inspeção, à Belastingdienst.
Salários e planeamento
Se o seu pessoal usa o registo de entrada/saída, em Definições → Horário de trabalho, em baixo, encontra Salários e planeamento, em dois blocos. Em Processamento salarial escolhe o seu software de salários ou (na Bélgica) o seu secretariado social, e introduz para cada funcionário o respetivo número de funcionário nesse software. Depois cria, para um período, o ficheiro com as horas trabalhadas e a faturação por funcionário, e importa-o no seu software de salários. Em Planeamento de pessoal escolhe o seu sistema de planeamento: no Deputy, Dyflexis e Shiftbase a faturação vai automaticamente a cada hora; nos outros cria um ficheiro de faturação. Assim vê no seu planeamento os custos salariais ao lado da faturação. Se trabalha sem registo de entrada/saída, pode mesmo assim enviar a faturação para o seu planeamento: nesse caso está em baixo em Definições → Contabilidade, em Faturação para o seu planeamento. Se a Optimum POS tiver definido algo de forma fixa na instalação, não vê essa opção ou esse campo.
Cópias de segurança
A caixa faz todas as noites automaticamente uma cópia de segurança, e sempre antes de uma atualização. Em Definições → Cópias de segurança vê todas as cópias (quando, por quem ou automática, tamanho) e com Criar cópia de segurança faz uma manualmente. Se a última cópia tiver mais de dois dias, aparece um aviso vermelho: contacte então a Optimum POS.
Restaurar faz-se com o botão Restaurar junto a uma cópia de segurança. Tudo o que aconteceu depois dessa cópia perde-se. Tem de o confirmar com um visto e introduzir de novo o seu PIN. A caixa faz primeiro uma cópia de segurança do estado atual e depois termina a sessão de todos. Na Bélgica isto não pode ser feito a partir da caixa (os contadores da caixa negra continuam); aí é a Optimum POS que o faz.
Base de dados
Em Definições → Base de dados (apenas o administrador) vê onde a caixa guarda os seus dados. No topo está a base de dados atual com programa, versão, tabelas, linhas e endereço ou pasta. Para o pessoal e os tablets, a caixa funciona da mesma forma com qualquer base de dados. No Windows, macOS, Linux e Raspberry Pi escolhe entre três bases de dados:
- MySQL / MariaDB: um programa de base de dados à parte (MySQL 8.0 ou mais recente, MariaDB 10.6 ou mais recente), por exemplo num servidor ou NAS que já tenha. Todos os dados ficam então em tabelas normais no MySQL ou MariaDB, legíveis pelo seu próprio programa de relatórios ou BI. A caixa calcula exatamente como com PostgreSQL.
- Integrada (PGlite): faz parte da própria caixa, não precisa de instalar nada. A melhor escolha para a maioria dos estabelecimentos, e a base de dados no Android e no Chromebook.
- PostgreSQL: um programa de base de dados à parte, no PC da caixa ou noutro ponto da rede.
Quando MySQL ou MariaDB? Se o seu estabelecimento já tem um servidor MySQL ou MariaDB, se o seu administrador de TI trabalha com ele, ou se quer ler os dados nos seus próprios relatórios, no Excel ou num programa de BI. Na dúvida, escolha a integrada: funciona de imediato.
O que é preciso para MySQL ou MariaDB?
- MySQL 8.0 ou mais recente, ou MariaDB 10.6 ou mais recente, acessível a partir do servidor da caixa.
- Uma base de dados própria para a caixa (ou para as caixas de uma cadeia), com o conjunto de caracteres utf8mb4.
- Um utilizador da base de dados que possa criar, alterar, renomear e eliminar tabelas nessa base de dados (CREATE, ALTER, DROP, INDEX, SELECT, INSERT, UPDATE, DELETE), por exemplo assim:
CREATE DATABASE horecapos CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
CREATE USER 'horecapos'@'localhost' IDENTIFIED BY 'wachtwoord';
GRANT ALL PRIVILEGES ON horecapos.* TO 'horecapos'@'localhost';
Se o MySQL ou MariaDB funcionar noutro computador, coloque nas duas últimas linhas o endereço IP do servidor da caixa em vez de localhost.
Migrar para MySQL / MariaDB:
- Em Endereço do MySQL/MariaDB, preencha os campos: Servidor (predefinição localhost), Porta (predefinição 3306), Base de dados (predefinição horecapos), Utilizador e Palavra-passe; igual para MariaDB. Se o endereço já estiver definido, os campos já vêm preenchidos; se deixar a palavra-passe vazia, mantém-se a guardada (para o mesmo utilizador). A caixa guarda o endereço sozinha; se a Optimum POS já tiver definido um endereço fixo, aplica-se esse endereço e não há campos. Se a caixa já funcionar com MySQL/MariaDB, altera os dados mais tarde com Alterar dados do MySQL/MariaDB. A Optimum POS configura uma ligação encriptada por si.
- Toque em Testar ligação: vê o programa e a versão, ou porque não funciona.
- Toque em Migrar para MySQL/MariaDB, assinale que compreende e introduza o seu próprio PIN.
A migração funciona em qualquer sentido entre as três bases de dados, e todos os dados vão junto:
- A caixa deixa de aceitar pedidos por instantes (normalmente menos de um minuto); depois os tablets continuam sozinhos.
- Primeiro a caixa faz uma cópia de segurança do estado atual (em Definições → Cópias de segurança).
- Tudo passa para a nova base de dados e a caixa conta, tabela a tabela, se está lá tudo exatamente.
- Só quando tudo bate certo é que a caixa continua na nova base de dados. Os funcionários com sessão iniciada continuam com sessão.
Se algo falhar, nada muda e a caixa continua a trabalhar na base de dados antiga. A base antiga fica intacta, por isso pode sempre voltar atrás. Os dados de caixa que já estavam na nova base MySQL/MariaDB ou PostgreSQL são substituídos. Também funciona na Bélgica: os contadores da caixa negra passam exatamente.
As cópias de segurança e o restauro funcionam da mesma forma com as três bases de dados (Definições → Cópias de segurança). Uma cópia de uma base de dados pode ser restaurada em qualquer outra, incluindo uma cópia do PostgreSQL no MySQL ou MariaDB.
O que está no MySQL ou MariaDB? Cada tabela da caixa, com o mesmo nome e as mesmas colunas (horas em UTC). Cada tabela recebe ainda a coluna-chave _hp_sleutel, e nas tabelas auxiliares _horecapos_stand, _horecapos_kolom, _horecapos_reeks e _horecapos_wijziging (registo de alterações, guardado 14 dias) a caixa regista o estado, os tipos de coluna, os contadores e as alterações. Outros programas leem os dados; só as caixas escrevem.
Como funciona: a caixa calcula numa cópia de trabalho rápida no servidor da caixa e escreve cada alteração no MySQL/MariaDB no mesmo passo. Se isso falhar, a alteração não é feita e a caixa mostra um erro; mantenha por isso o MySQL/MariaDB acessível. Ao arrancar, a caixa lê tudo do MySQL/MariaDB.
Várias caixas numa base de dados. Tal como com PostgreSQL, várias caixas podem usar a mesma base de dados MySQL/MariaDB, por exemplo cada estabelecimento de uma cadeia com o seu próprio servidor de caixa. As alterações são feitas uma após outra e cada caixa assume primeiro o que as outras fizeram, por isso nada se perde quando se altera ao mesmo tempo. Se uma caixa restaurar uma cópia de segurança ou uma caixa com uma versão mais recente atualizar a base de dados, as outras caixas voltam a ler tudo sozinhas; por isso, atualize todas as caixas ao mesmo tempo. Uma caixa que esteve desligada mais de 14 dias volta a ler tudo ao arrancar.
Na instalação escolhe também a base de dados: MySQL / MariaDB, integrada (recomendado) ou PostgreSQL com o endereço. Se não estiver acessível, a caixa instala-se com a base de dados integrada; depois pode migrar aqui. Numa atualização a escolha mantém-se.
Ligar tablets e ecrãs
- Em cada tablet/caixa, abra o endereço do servidor da caixa, p. ex.
http://192.168.1.20:3000, e crie um atalho no ecrã inicial (Chrome: Adicionar ao ecrã principal). - Ecrã de cozinha:
http://192.168.1.20:3000/keuken. - Ecrã de cliente (virado para o cliente, opcional):
http://192.168.1.20:3000/klantscherm, ver Ecrã de cliente. - Os ecrãs encontram o servidor da caixa automaticamente (mesmo endereço, porta 4000).
Ecrã do cliente
Um ecrã na caixa virado para o cliente. O cliente vê, em linhas gerais, o que foi pedido e, de forma bem clara, o valor e como é pago. Não tem controlos: o ecrã apenas segue o que a caixa faz. Desligado por padrão; ative em Definições → Estabelecimento → Ecrã de cliente. Num PC da caixa com dois ecrãs, a caixa liga-o automaticamente da primeira vez; se o desligar depois, fica desligado. Sem ecrã de cliente (desligado, ou nenhum ligado), tudo funciona exatamente como sempre: a caixa envia a imagem em segundo plano e o pessoal nunca nota um erro ou um ecrã em falta.
O que o cliente vê:
- Em repouso (ninguém a pagar): o nome do estabelecimento e um texto de boas-vindas próprio (Definições → Estabelecimento; vazio = "Bem-vindo").
- Pedido: os produtos com quantidade e valor (linhas iguais juntas, um menu como uma linha com os componentes em pequeno por baixo, desconto como uma linha) e o total em grande. O que já foi pago numa conta dividida aparece por baixo. Com Definições → Estabelecimento → Fotos de produtos → no ecrã de cliente, aparece uma pequena foto por produto.
- Cobrar: a forma de pagamento (Cartão, Dinheiro, Vale-oferta), a gorjeta e, em grande, A pagar. Dinheiro: o que o cliente entrega e o troco, assim que isso for introduzido na caixa. Cartão: "Siga as instruções no terminal de pagamento".
- Obrigado: depois de cobrar, durante alguns segundos "Obrigado!" com o valor pago (dinheiro: o troco do cliente), depois volta o ecrã de repouso.
Ligação, de duas formas (ambas configuradas no próprio dispositivo):
- Segundo monitor no PC da caixa (Windows, Linux/Raspberry Pi, macOS): automático. Ao iniciar sessão e após a instalação, a caixa coloca o ecrã do cliente em ecrã inteiro no ecrã mais pequeno que não seja o principal (com tamanho igual, o mais à direita); no Windows, sempre num ecrã diferente do da caixa (a caixa está no ecrã tátil e também abre sozinha ao arrancar). O tamanho e a posição vêm do sistema, por isso qualquer formato funciona. Sem segundo ecrã não acontece nada. No Windows, um ecrã do cliente fechado volta sozinho; no Linux e no macOS, o atalho HorecaPOS ecrã do cliente no menu volta a colocá-lo no sítio. No Windows abre no modo de quiosque do Chrome (ou do Edge): em ecrã inteiro, sem barra de título e sem barra de tarefas (fechar com Alt+F4). Acompanha a caixa no mesmo PC sem código de emparelhamento.
- Em qualquer navegador, um toque longo nunca abre o menu do navegador e não aparece nenhum pedido para traduzir a página.
- Caixa fechada = ecrã do cliente fechado. Se o software da caixa parar (Reiniciar, uma atualização, a caixa parada ou removida), o ecrã do cliente também fecha após pouco mais de 10 segundos; quando a caixa voltar a funcionar, regressa sozinho. No Windows também fecha se fechar apenas a janela da caixa. Com Wayland (Linux), a caixa não consegue fechar a janela sozinha.
- Ecrã do cliente fechado por engano? No Windows regressa sozinho após alguns segundos, desde que a caixa esteja aberta e o segundo ecrã esteja ligado.
- Sempre apenas um ecrã do cliente. No Windows, o ecrã do cliente só aparece no modo de quiosque no segundo ecrã. Um ecrã do cliente na janela da caixa (p. ex., reposto pelo Edge após uma falha de energia ou aberto com o botão na caixa) fecha sozinho em poucos segundos; o ecrã do cliente correto ocupa então o seu lugar.
- Ninguém com sessão iniciada = só as boas-vindas. Se a caixa estiver no ecrã do código PIN (também após reiniciar ou terminar sessão), o ecrã do cliente mostra apenas o texto de boas-vindas, nunca a conta anterior.
- No Windows, a abertura automática também pode ser desativada com a caixa de seleção Abrir ecrã do cliente automaticamente ... no instalador.
- No Linux, a caixa move a janela com wmctrl (incluído no pacote). Em Wayland (p. ex. Raspberry Pi OS com labwc) isso não é possível: coloque então uma vez o ecrã do cliente no segundo ecrã (o navegador memoriza), ou escolha X11 em raspi-config. No macOS, o Mac pede autorização da primeira vez em Acessibilidade.
- Manualmente: Definições → Estabelecimento → Ecrã do cliente → Abrir ecrã do cliente (segundo monitor). No Chrome e no Edge (também num Chromebook), o botão coloca a janela logo no ecrã do cliente (da primeira vez o navegador pede autorização); um clique no ecrã do cliente coloca-o em ecrã inteiro. Noutros navegadores: arrastar e F11.
- Caixa Android com ecrã do cliente integrado (p. ex. Sunmi D2/T2) ou um monitor via HDMI/USB-C: também automático. Assim que a app estiver numa caixa, o ecrã do cliente aparece no segundo ecrã; ligar e desligar o cabo funciona de imediato.
- Sunmi T1 mini / T2 mini com o pequeno visor de texto (2 linhas): a app mostra aí automaticamente o valor: Total, A pagar, em numerário Troco, após o pagamento Obrigado! e em repouso o nome do estabelecimento. O ecrã do cliente tem de estar ativado.
- iPad (ecrã de operação) com um ecrã externo via HDMI/USB-C ou AirPlay: a app coloca automaticamente o ecrã do cliente nesse ecrã (preparado; a app iOS ainda não foi lançada).
- Chromebook: como ecrã de operação no Chrome, o botão Abrir ecrã do cliente (segundo monitor) funciona como acima. Na app Android, o ecrã do cliente aparece automaticamente no segundo ecrã assim que o ChromeOS passa esse ecrã às apps Android; se não o fizer, use um dispositivo à parte com código de emparelhamento.
- Dispositivo separado (tablet ou PC próprio ao lado da caixa): abra
http://<kassaserver>:3000/klantscherm. O ecrã mostra no canto inferior direito um código de emparelhamento de 6 caracteres. Introduza-o na caixa em Definições → Estabelecimento → Ecrã de cliente → Emparelhar. Desemparelhar volta a pôr o ecrã no código de emparelhamento. O emparelhamento é guardado por caixa (no navegador dessa caixa), por isso cada caixa pode ter o seu próprio ecrã de cliente.
O ecrã de cliente não pede PIN (não há nada para operar) e mostra apenas a imagem da caixa a que está emparelhado. A imagem fica só na memória do servidor da caixa; após um reinício, o ecrã fica vazio até à alteração seguinte. A definição (ligado/desligado e texto de boas-vindas) é incluída na cópia de segurança e em Importar/exportar (Outras definições).
Talão digital via QR (opcional)
Por padrão desligado. Ligar em Definições → Estabelecimento → Cozinha e ecrã de cliente → Talão digital (a opção aparece quando o ecrã de cliente está guardado como ligado). Após o pagamento aparece em Obrigado! um código QR; este fica então 45 segundos no ecrã em vez de alguns segundos. O cliente lê-o com o próprio telemóvel e vê o talão, exatamente como o talão em papel (o mesmo texto, numa caixa belga também com o bloco FDM). No telemóvel pode imprimir o talão, guardá-lo como PDF ou descarregá-lo como ficheiro de texto.
- Funciona através do portal de gestão:
https://kassa.<portaal>/__bon/<kassa>/<sleutel>. A caixa tem, portanto, de estar ligada ao portal; caso contrário, não aparece código QR e nada muda. - A chave é aleatória e impossível de adivinhar, e funciona durante 30 dias. Depois a caixa elimina-a automaticamente. O portal não guarda nada.
- Funciona com um segundo monitor e com um ecrã de cliente separado. O talão em papel e o talão por e-mail continuam a funcionar normalmente.
Ecrã de cliente em repouso: apresentação de diapositivos (opcional)
Por padrão desligado. Ligar em Definições → Estabelecimento → Cozinha e ecrã de cliente → Ecrã de cliente em repouso. Se não houver nenhuma conta no ecrã de cliente, os diapositivos alternam (por padrão a cada 8 segundos, configurável de 4 a 60):
- Campanhas: os happy hours (se o happy hour estiver ligado), com o desconto, os dias e horários e os produtos ou grupos; os que estão a decorrer aparecem primeiro, com "Agora!".
- Produtos em destaque (no máximo 12, por exemplo novidades na carta), com preço e (se as fotos de produto no ecrã de cliente estiverem ligadas) a foto. Um produto esgotado é saltado pelo ecrã.
- O cartão de pontos: pontos por euro, a recompensa e os cartões de carimbos (apenas se o cartão de cliente estiver ligado).
- Textos próprios: no máximo 5, cada um num diapositivo próprio (por exemplo "A partir de sexta-feira: a nossa carta de verão").
Sem diapositivos, o ecrã de cliente mostra o ecrã de boas-vindas, como sempre.
Happy hour
Desligado por padrão. Ative em Definições → Estabelecimento → Usar happy hour; depois aparece o separador Definições → Happy hour.
- Por happy hour: nome (aparece no talão), dias, de–até (pode passar a meia-noite, p. ex. 23:00–01:00), desconto em % ou um preço fixo, e para que categorias de produtos e/ou produtos individuais.
- Dentro desse período, a caixa aplica automaticamente o preço de happy hour ao registar (nunca mais caro do que o normal; com preço fixo, as opções são acrescentadas normalmente). No botão do produto aparece o preço antigo riscado com o novo preço e HH; no pedido e no talão aparece o nome da happy hour. O que já foi registado mantém o preço.
- Oferta do dia: assinale Todo o dia (00:00–24:00) e escolha o(s) dia(s), p. ex. entrecosto a preço fixo todas as terças-feiras.
- Época: assinale Só numa época (todos os anos) e escolha de e até (dia e mês, p. ex. de 1 de junho a 31 de agosto; pode passar a passagem de ano, p. ex. de 1 de dezembro a 28 de fevereiro). Fora da época o happy hour não se aplica.
- As alterações ficam no registo.
Períodos do dia e épocas
Desligado por predefinição. Ligue em Definições → Estabelecimento → Períodos do dia e tipo de pedido → Oferta por período do dia e época; depois aparece o separador Definições → Períodos do dia. Se o desligar, todos os produtos voltam a estar sempre à venda e os períodos do dia ficam guardados.
- Por período do dia: nome (p. ex. Pequeno-almoço, Almoço, Jantar, Carta de verão), dias, de–até (pode passar da meia-noite; Todo o dia = 00:00–24:00), opcionalmente uma época (todos os anos, dia e mês), e que categorias e/ou produtos individuais lhe pertencem.
- Os produtos e categorias que estão num ou mais períodos do dia só estão à venda enquanto um desses períodos decorre; o que não estiver em nenhum período está sempre à venda. O ecrã de pedidos só mostra o que está à venda agora e muda automaticamente quando um período começa ou termina; o servidor recusa o resto ("agora não está à venda, só no Pequeno-almoço").
- A loja online mostra e cobra a mesma oferta (no momento da encomenda).
- Um preço diferente num dia ou numa época é um happy hour (oferta do dia, ver acima).
- Carta por local: cada caixa (estabelecimento) tem os seus próprios produtos, períodos do dia e preços.
- As alterações ficam no registo.
Oferta e preços por tipo de pedido
Desligado por predefinição. Ligue em Definições → Estabelecimento → Períodos do dia e tipo de pedido → Oferta e preços por tipo de pedido. Se o desligar, volta a aplicar-se o preço normal em todo o lado e tudo está à venda em todo o lado; os preços introduzidos ficam guardados.
- Em Definições → Produtos, por produto: Preço em take-away e Preço em entrega (vazio = o preço normal) e Vendido em (no local, take-away, entrega; pelo menos um). Numa categoria também Vendido em, para todos os produtos dessa categoria.
- Num pedido de take-away ou entrega, o ecrã de pedidos mostra o preço desse tipo de pedido e só o que aí é vendido; o servidor cobra esse preço e recusa o resto. Happy hour, menus e opções calculam com esse preço.
- A taxa de IVA de take-away (no produto) é independente disto, como sempre.
- A loja online mostra em take-away e entrega os preços e produtos dessa escolha (ao mudar, a página do menu recarrega), e na mesa os de no local.
- A exportação e importação da configuração (Definições → Importar/exportar) incluem os preços por tipo de pedido, "vendido em", os períodos do dia e a época dos happy hours.
Menus
Desligado por padrão. Ative em Definições → Estabelecimento → Usar menus.
- Um menu é um produto normal (com o preço do menu) no qual define componentes em Definições → Produtos → (produto) → Menu:
- fixo: sempre este produto (p. ex. "Bebida: Vinho da casa");
- à escolha: escolher 1 (ou mais) de uma categoria, eventualmente limitado a certos produtos (p. ex. "Prato principal: escolha 1 de Pratos principais").
- Por componente, o prato (1 = imediato, 2/3 = aguarda chamada).
- Ao registar o menu, escolhe os pratos por componente. Por prato (também os fixos) pode escolher as opções como num produto individual (ponto de cozedura, queijo extra; as opções obrigatórias têm de ser escolhidas) e uma observação. O suplemento das opções acresce ao preço do menu. O menu aparece como uma linha com os pratos (e as suas opções) por baixo.
- Os pratos vão como linhas separadas para a cozinha/bar (talão de cozinha e ecrã de cozinha), no seu próprio prato. A linha do menu em si não.
- Para efeitos de IVA, o preço do menu é repartido pelos componentes na proporção do seu preço normal, para que comida e bebida tenham cada uma a taxa correta. No talão aparece o menu com o preço total e os pratos por baixo.
- Se o próprio menu tiver opções (p. ex. tamanho), escolhe-as no topo da janela do menu. Aparecem junto à linha do menu no talão e, em cada prato do menu, no talão de cozinha e no ecrã de cozinha como "(menu)".
- Remover/anular faz-se por menu inteiro (toque na linha do menu).
- Dividir / mover: escolha a linha do menu; os pratos acompanham. Com 2× o mesmo menu também pode mover 1 (o cabeçalho e os pratos são divididos).
- Sem ligação pode registar menus normalmente; ficam guardados no tablet e são enviados assim que a ligação volta (tal como os produtos individuais).
- A happy hour também se pode aplicar a um menu.
Receitas e custo (Apicbase)
Integração com o Apicbase (receitas, custo, stock e compras) através da Generic POS API do Apicbase (desligado por predefinição, cada parte liga-se ou desliga-se em separado). Configura-se em Definições → Receitas (permissão Configurar estabelecimento, pagamentos e impressoras). A caixa comunica diretamente com o Apicbase (só tráfego de saída, sem portal).
- Ligar (tudo preenchido pelo administrador), de uma de três formas:
- Colar token: no Apicbase Library Settings → API Settings → New token → Service Account Token (scopes accounts, library, sales); colar o access token e o refresh token;
- Iniciar sessão com a API-app própria do estabelecimento (client-id e client secret de API Settings): Iniciar sessão no Apicbase e colar o código que o Apicbase mostra a seguir;
- Um token expirado (após 7 dias) é renovado automaticamente pela caixa com o refresh token.
- Outlet: Obter outlets e escolher o outlet deste estabelecimento. A caixa define aí o POS como Generic POS API com um location-id próprio (editável; por predefinição
HORECAPOS-…, único por caixa). - Ligado, com caixas de seleção:
- Produtos, grupos e opções para o Apicbase: categorias, produtos (PLU = o número PLU do produto, senão o código, senão o id), opções como modifiers, com preço e IVA. Automaticamente após cada alteração (passado um minuto) e todos os dias. No Apicbase ligas depois cada produto da caixa a uma receita;
- Cada talão pago para o Apicbase: os mais antigos primeiro, no máximo 100 de cada vez, até um quarto de hora após o pagamento (e a cada 5 minutos). O desconto é repartido pelas linhas; valores livres, taxa de descartáveis e tara aparecem como produto próprio no Apicbase; produtos pesados como 1 unidade com o valor total. Se falhar, a caixa para (o Apicbase quer os talões por ordem) e tenta de novo mais tarde: a cobrança não é afetada. Ao ligar escolhes a partir de que dia (por predefinição a partir de agora);
- Obter o custo por porção (a cada 6 horas): por receita ligada, o food cost (ingredientes e desperdício), com custos de pessoal, o preço de venda e a margem segundo o Apicbase. Calculado com o fornecedor mais barato, o último preço encomendado ou o valor médio do stock;
- Usar o preço de venda do Apicbase (desligado por predefinição): definir o preço de venda dos produtos ligados na caixa (fica no registo).
- Em baixo: Custo por produto com custo, custo com pessoal, preço na caixa, custo % e margem. Botões Enviar catálogo agora, Enviar talões agora e Obter custos agora.
Código: apps/pos-server/src/lib/apicbase.ts, routes/apicbase.ts; ecrã Apicbase.tsx. Registo: Apicbase. Requisito: o módulo API do Apicbase. Para a app da Pin Voordeel para todos os clientes: parceria e certificação com o Apicbase (ver o backlog). Documentação: https://developers.apicbase.com/docs/generic-pos-api-guide
Software hoteleiro: debitar no quarto
Para um restaurante ou bar de um hotel: debitar a conta no quarto de um hóspede. Desligado por predefinição: Definições → Hotel (permissão Configurar estabelecimento, pagamentos e impressoras).
- Uma lista com todo o software hoteleiro (Software hoteleiro do hotel). Ligações integradas:
- Mews (Connector API: client token e access token, o serviço do restaurante e, por taxa de IVA, o código de IVA da Mews), apaleo (app própria com client ID e client secret, o ID da propriedade; por taxa de IVA eventualmente o tipo de IVA) e Cloudbeds (chave API e ID da propriedade), cada um com um ambiente de teste e um real;
- Oracle OPERA Cloud (OHIP), protel (protel I/O), RoomRaccoon, Booking Experts, Amadeus (XMLPOS), VIPS, Stayntouch, Clock PMS+, Guestline (Rezlynx), Hotelogix, eviivo, Little Hotelier, Shiji e Infor HMS (Databridge). Depois de escolher, aparecem exatamente os campos desse software hoteleiro (chaves, ID do hotel, eventualmente o endereço da API deles e, por taxa de IVA, o código deles), com uma breve explicação do que pedir ao fornecedor. Estas ligações foram construídas segundo a documentação dos fornecedores; peça ao fornecedor que confirme a ligação e experimente primeiro com Testar ligação e um só talão;
- uma demo (quatro suites, quartos 4 a 7) para experimentar;
- Sirvoy, como ligação parcial e apenas com Sirvoy Pro. O Sirvoy não tem API para uma caixa lançar algo numa reserva, nem sequer através de um ficheiro (a importação CSV só cria reservas novas). Assim, a caixa conhece os hóspedes (quarto, nome, chegada, partida): a pesquisa em Debitar no quarto e o self-service no quiosque e na loja online funcionam normalmente. O talão não vai sozinho para o Sirvoy: depois de cobrar, aparece em Definições → Hotel em Por lançar no Sirvoy, com o quarto, o hóspede, o número do talão e o valor por taxa de IVA. O hotel lança-o à mão como extra na reserva e clica em Já está lançado (para voltar atrás, Afinal ainda não). Necessário:
- de preferência uma caixa ligada ao portal de gestão: o endereço passa então pelo portal (
https://<portaal>/hotel/<kassa-id>/sirvoy?sleutel=...) e não é preciso abrir nenhuma porta no hotel. Caso contrário, a própria caixa tem de estar acessível a partir da internet por https (domínio próprio com certificado ou reencaminhamento de portas; o Sirvoy exige TLS 1.2 ou superior) e introduza esse endereço; - O endereço só é mostrado uma vez; a caixa guarda apenas o hash. Criar um endereço novo = o antigo deixa de funcionar;
- de preferência uma caixa ligada ao portal de gestão: o endereço passa então pelo portal (
O Sirvoy só envia algo quando uma reserva muda: as reservas de antes da ligação só ficam conhecidas pela caixa após uma alteração no Sirvoy. As mensagens podem chegar fora de ordem; uma mensagem mais antiga (generatedAt) do que o que a caixa já tem é ignorada. No hotel = não cancelada e sem check-out, com check-in feito ou chegada hoje ou antes, e partida hoje ou mais tarde. Testar ligação indica quantas reservas chegaram.
Todo o software hoteleiro está à venda nos Países Baixos e/ou na Bélgica. Testar ligação verifica os dados. Código por ligação: apps/pos-server/src/lib/pms/<naam>.ts.
- Self-service (desativado por predefinição): o hóspede debita ele próprio o pedido no seu quarto, no quiosque e/ou na loja online (levantamento e entrega, não em pedidos à mesa). Introduz o número do quarto e o apelido; a caixa verifica junto do software hoteleiro se esse hóspede está agora alojado nesse quarto. Com um máximo por pedido (por predefinição € 150), e após 5 tentativas falhadas num quarto de hora tem primeiro de ir à receção. A mensagem nunca revela quem está alojado num quarto.
- Cobrar: com a ligação ligada, existe o método de pagamento Debitar no quarto. Procure o hóspede pelo nome ou número do quarto (só hóspedes alojados agora no hotel) e toque em Debitar no quarto .... A caixa lança o talão por taxa de IVA na conta do hotel do hóspede; o hóspede paga no check-out.
- Bélgica: se o pedido já estiver registado na mesa junto da caixa negra, passa primeiro da mesa para o quarto (signCostCenterChange para ROOM, UC4101); o talão vai para a caixa negra como crédito de quarto (ROOM_CREDIT).
- Se o lançamento no software hoteleiro falhar (sem internet), a venda fica registada na mesma e o lançamento aparece como Falhou em Definições → Hotel, com Tentar novamente.
- Relatórios e contabilidade: Debitar no quarto (hotel) é um método de pagamento próprio no relatório X e Z, no resumo diário e no ficheiro de auditoria (XAA).
Código: apps/pos-server/src/lib/hotel.ts, routes/hotel.ts, as ligações em lib/pms/, catálogo packages/shared/src/hotelcatalogus.ts; ecrã Hotel.tsx. Registo: Hotel. Os segredos (tokens) ficam apenas na base de dados, nunca no ecrã.
Gestão de vinhos com o Vinify
Definições → Gestão de vinhos (desligado por predefinição; desligar guarda tudo). O Vinify gere a garrafeira, a carta de vinhos e o stock, e é a fonte principal dos vinhos. De acordo com os requisitos de POS do Vinify, a caixa oferece uma API com a qual o Vinify pode:
Autenticar-se, com os três métodos que o Vinify conhece (o administrador liga quais):
- ID de API e chave de API (
X-Api-IdeX-Api-Key, ouAuthorization: Bearer <id>:<sleutel>); - Chave de API e segredo de API com uma assinatura:
X-Api-Key,X-TimestampeX-Signature= hex HMAC-SHA256(secret,<timestamp>\n<METHODE>\n<pad met query>\n<sha256 van de body>), com no máximo 5 minutos.
A chave e o segredo são criados pela caixa (mostrados uma vez); os ecrãs só mostram se estão preenchidos. Acessível através do portal em https://<portaal>/vinify/<kassa-id>/... (sem portas abertas no estabelecimento; o endereço está em Definições → Gestão de vinhos). Que produtos são vinho: o que o Vinify cria, mais os grupos que assinalares. Se o Vinify indicar um endereço para onde enviar as vendas, a caixa também as envia por si (push, com um token): após cada talão pago e a cada 5 minutos o que ainda não tiver sido enviado. O Vinify ativa a integração com o HorecaPOS (hello@vinify.no). Tudo fica no registo. Não confundir com Vinify.nl, uma loja de vinhos online: está nos fornecedores (Encomendar a fornecedores).
Introdução rápida de morada com código postal e número da porta
Ativa-se em Definições → Estabelecimento → Introdução rápida de morada (desligado por predefinição; só para um estabelecimento nos Países Baixos). Escreva o código postal e o número da porta (também com letra ou complemento, ex. 12A ou 12-1) e toque em Procurar morada: a rua, o número da porta, o código postal e a localidade são preenchidos. Se houver várias moradas nesse número (12, 12A, 12B), escolha a certa. Depois ainda pode alterar tudo.
- Nos dados do estabelecimento (Definições → Estabelecimento, acima da morada).
- Num cliente do cartão de cliente: na caixa, num cliente novo, e em Relatório → Clientes. Para isso, os clientes têm uma morada (opcional): rua e número da porta, código postal e localidade.
- As moradas vêm do Locatieserver do PDOK, gratuito (as moradas oficiais dos Países Baixos, BAG): não é preciso conta nem chave, mas sim internet. Sem internet ou para uma morada belga, escreva simplesmente a morada.
Aviso de nova versão
Ative em Definições → Estabelecimento → Aviso de atualização (desligado por predefinição).
- Caixa atualizada: se o servidor da caixa foi atualizado enquanto um tablet ainda tem os ecrãs antigos abertos, aparece no topo "A caixa foi atualizada (versão …)" com Atualizar. O tablet verifica a cada 5 minutos, quando o ecrã volta a ficar visível e após um reinício do servidor.
- Atualização disponível: se a caixa estiver ligada ao portal de gestão (
PORTAAL_URL/PORTAAL_SLEUTEL) e aí estiver preenchidoNIEUWSTE_VERSIE, quem pode gerir definições vê "Atualização disponível: versão …" (com a explicação deUPDATE_NOTITIE). Mais tarde oculta o aviso nesse tablet até haver uma versão ainda mais recente. A atualização faz-se como sempre comscripts\windows\update.cmd(ver Atualizar).
Plataformas de reservas
As reservas do TheFork, Formitable, Zenchef, Resengo (só Bélgica), OpenTable (só Países Baixos), PlanPanther, RestoManager e Aqqo (só Países Baixos) entram automaticamente na caixa e na planta da sala. Ativa-se em Definições → Plataformas de reservas (desativado por predefinição). Só funciona com as Reservas ativas.
- País do estabelecimento: só pode escolher plataformas que funcionam no país do estabelecimento (Resengo só na Bélgica, OpenTable e Aqqo só nos Países Baixos). O servidor também verifica isto.
- Várias plataformas ao mesmo tempo: pode ligar várias plataformas lado a lado, por exemplo TheFork e Formitable. Duas plataformas nunca recebem a mesma mesa no mesmo horário; a segunda reserva entra então sem mesa.
- + Ligar plataforma: escolha a plataforma e preencha os dados. Os segredos (Client secret, chave de callback) nunca aparecem na vista geral; deixar vazio = manter, Apagar = remover.
- TheFork (API B2B pública): Restaurant-UUID, Client ID e Client Secret (a pedir ao TheFork). Se a caixa cancelar, também cancela no TheFork.
- Formitable, Zenchef, Resengo, OpenTable, PlanPanther, RestoManager, Aqqo: a API destas plataformas é só para parceiros ou não é pública (PlanPanther, RestoManager e Aqqo: uma integração de caixa é feita em acordo com eles). Os eventos do Formitable (
booking.created,.changed,.canceled,.checkin,.checkout) são reconhecidos. - Na planta da sala: se uma mesa na caixa tiver o mesmo nome que a mesa da plataforma e estiver livre nesse horário, a reserva vai para essa mesa; caso contrário, fica sem mesa (escolha-a na chegada). Uma reserva que volta a chegar é atualizada, não duplicada. Na vista geral aparece "via TheFork".
- Estado: se a plataforma cancelar ou comunicar um no-show, a caixa assume isso. O que já está como chegado na caixa continua chegado.
- Reportar de volta (no-shows de volta): introduza um URL de callback (por exemplo, do seu serviço de integração). A caixa envia cada alteração feita na caixa (chegada, no-show, cancelada, paga com valor) em JSON:
{ platform, id, status, statusEn, bedrag, valuta, tafel, tijdstip, gemeldOp }(valor em cêntimos, só quando paga), comAuthorization: Bearer <terugmeld-sleutel>se a tiver preenchido. Se falhar, a caixa tenta novamente a cada minuto e o erro aparece na plataforma. O que veio da própria plataforma não é reenviado. - Reserva de teste: cria uma reserva tal como a plataforma a enviaria.
- Remover: a ligação e a chave desaparecem; as reservas ficam.
- Todas as alterações ficam no registo (sem segredos).
Programas de fidelização e avaliações
Dois interruptores separados em Definições → Fidelização e avaliações (ambos desligados por predefinição; assim não se vê nada em lado nenhum). Se os desligar, as definições e tudo o que já aconteceu ficam guardados.
Programa de fidelização de outra plataforma: o cliente acumula pontos no Joyn (Bélgica) e/ou no Piggy (Leat; Países Baixos e Bélgica). Isto é independente do cartão de cliente próprio da caixa, que pode continuar ligado em paralelo.
- Vários em simultâneo: na Bélgica, o Piggy e o Joyn podem estar ligados ao mesmo tempo, cada um com os seus dados (escolha a plataforma, preencha, Guardar; Alterar e Eliminar por plataforma). O cliente recebe por programa um código QR próprio no talão, um link próprio no talão enviado por e-mail e um botão próprio na loja online, e acumula pontos em cada programa uma vez por encomenda. O que já estava configurado continua a funcionar.
- Código QR no talão: após o pagamento, aparece sob o talão um código QR com "Leia e acumule pontos no ...". O talão enviado por e-mail inclui uma ligação, e a loja online (levantamento e entrega) mostra um botão na página da encomenda e uma ligação no e-mail de confirmação. Uma encomenda só dá pontos uma vez: talão, e-mail e loja online usam o mesmo código único (o número da encomenda). Pode desligar "Código QR no talão impresso"; o e-mail e a loja online continuam a receber a ligação.
- Piggy, modo "Código QR e ligação": introduza o endereço do seu portal de clientes Piggy, o Shop UUID e o Account secret (Piggy Business Dashboard). Funciona sem internet: a caixa cria a ligação sozinha.
- Piggy, modo "Creditar logo": introduza também um personal access token (Piggy → Marketplace → Private App). Se a caixa enviar o talão por e-mail e o cliente com esse endereço já for membro, a caixa credita os pontos logo; o talão mostra então "Pontos creditados no Piggy". A caixa nunca cria um novo membro; sem membro (ou sem endereço de e-mail) = o código QR.
- Joyn, modo "Código QR e ligação": com a partner key, a shop reference e o shared secret do Joyn (a pedir através de api-integration@joyn.be). Funciona sem internet. O código QR é válido 2 horas.
- Joyn, modo "Através da API": com a shop API key (ativar a ligação no portal de comerciantes do Joyn). No pagamento, a caixa pede um código de pontos ao Joyn. O resgate é feito como sempre no Joyn-iPad.
- Criar ligação de exemplo: verifica se os dados estão corretos (uma ligação de 10 €; abra-a só para ver).
- Só podem ser escolhidas as plataformas do país do estabelecimento; os segredos ficam só na base de dados e nunca aparecem no ecrã (deixar vazio = manter).
Pedir avaliações: após a visita, um único e-mail com um botão para o Google e/ou o Trustpilot.
- Algumas horas depois (configurável, predefinição 3) o cliente recebe o e-mail, no idioma do talão.
- Loja online: no levantamento e na entrega, a própria loja online envia o e-mail, algumas horas depois de a encomenda ser concluída na caixa, no idioma do cliente.
- Google: cole a ligação de avaliação do seu Perfil da Empresa (Google → o seu Perfil da Empresa → Pedir avaliações,
https://g.page/r/.../review) ou introduza o Place ID. - Trustpilot: introduza o domínio do seu estabelecimento (o botão leva a
trustpilot.com/evaluate/<domein>). Se tiver no Trustpilot um endereço de convite (Automatic Feedback Service,...@invite.trustpilot.com), introduza-o também: o e-mail segue então em cópia oculta (BCC) para o Trustpilot, com o nome, o endereço de e-mail e o número do talão invisíveis, e o Trustpilot envia o convite (nesse caso sem botão próprio do Trustpilot). Só Trustpilot com endereço de convite: a caixa envia o e-mail só para o Trustpilot. - Não demasiadas vezes: o mesmo cliente (endereço de e-mail) recebe no máximo um pedido por período (predefinição 90 dias; 0 = sempre). Para isso, a caixa guarda só um hash do endereço; o próprio endereço de e-mail é apagado assim que o e-mail é enviado (se falhar, após três tentativas, e caso contrário após 14 dias).
- Código QR no talão (opcional): também um código QR para uma avaliação sob o talão impresso.
- Exemplo do e-mail e Apagar e-mails pendentes (os endereços são então apagados de imediato). O registo mostra review_gevraagd com a***@dominio.pt.
- O Google e o Trustpilot proíbem recompensar uma avaliação e pedi-la só a clientes satisfeitos ("review gating"). Por isso a caixa pede a todos da mesma forma e não dá nada em troca de uma avaliação.
- Ler e responder a avaliações na caixa: ver Gestão de avaliações abaixo.
Integração com Mailchimp e Klaviyo
Os seus clientes do cartão de cliente no seu próprio programa de e-mail: em Definições → Estabelecimento → Mailchimp e Klaviyo (abaixo do marketing por SMS e e-mail). Não há interruptor: sem uma integração com uma lista escolhida, nada acontece.
- Ligar: com uma chave API (Mailchimp: Profiel → Extra → API keys; Klaviyo: uma chave privada
pk_…com permissões de escrita para Lists, Profiles, Subscriptions, Events, Campaigns e Templates). O segredo de cliente e a chave nunca voltam a ser mostrados (deixar vazio = manter). Depois escolha a lista (Mailchimp: audience). - Clientes: quem deu consentimento para e-mail vai para a lista (subscrito), com nome próprio, apelido, telefone, aniversário e pontos (Mailchimp: campo
PUNTEN, criado pela própria caixa; Klaviyo: propriedadepunten). Consentimento retirado, endereço de e-mail alterado ou cliente eliminado: subscrição cancelada. Só o que mudou é enviado de novo. Com uma integração, a caixa (e a caixa de seleção "ofertas" na loja online) também pede aos novos clientes consentimento para e-mail, que pode ser alterado em Relatório → Clientes, mesmo sem o marketing por e-mail próprio. - Cancelar subscrição: quem cancela a subscrição no Mailchimp ou Klaviyo deixa também de ter consentimento para e-mail na caixa (registo: "subscrição cancelada no Mailchimp"). A caixa nunca volta a subscrever quem cancelou por iniciativa própria.
- Encomendas: cada talão pago de um cliente da lista é enviado como evento (Mailchimp:
bestelling, com valor, número do talão e quantidade; Klaviyo:Placed Order, com o valor em euros). Assim cria e-mails automáticos no programa de e-mail, p. ex. após a primeira encomenda ou quando alguém não vem há um mês. Talões de antes da escolha da lista não são enviados. - Campanhas: em Relatório → Marketing também pode enviar uma campanha via Mailchimp ou Klaviyo (ver Marketing por SMS e e-mail); a caixa cria então lá a campanha e envia-a.
- Atualizar: a cada 5 minutos, ou com Atualizar agora. Desligar: removido da caixa; no Mailchimp e Klaviyo fica tudo como está. As chaves ficam na base de dados (incluídas na cópia de segurança, não na exportação da configuração).
Código: lib/mailinglijst.ts, routes/mailinglijst.ts e MailingKoppelingen.tsx.
BI e exportação de dados
Os dados de vendas para Power BI, Looker Studio, Excel, Google Sheets, Tableau, Qlik Sense, Metabase, um serviço de BI (por exemplo YourBI, BI4Horeca ou Moore DRV) ou um data warehouse próprio. Ative em Definições → BI e exportação de dados (desligado por predefinição). Só leitura: através de uma integração não se pode alterar nada na caixa. Sem dados de clientes.
- Dados: recibos (incluindo notas de crédito), produtos vendidos (linhas de recibo), pagamentos, faturação por dia, faturação por hora, anulações, produtos, funcionários (sem PIN) e horas trabalhadas. Valores em euros com ponto como separador decimal, horas na hora local do estabelecimento.
- + Integração: escolha o pacote e o modo. Cada pacote suporta um ou mais modos; pode ter várias integrações ao mesmo tempo (também para o mesmo pacote).
- O pacote obtém os dados sozinho (API): a caixa fornece uma única vez uma chave só de leitura. Período com
?van=&tot=(AAAA-MM-DD) ou um endereço fixo com?periode=(vandaag, gisteren, 7d, 30d, 90d, 365d, week, maand, vorigemaand, jaar); no máximo 366 dias, no máximo 200.000 linhas. A chave emAuthorization: Bearer,X-Sleutelou?sleutel=. - Através do portal: se a caixa estiver ligada ao portal do cliente, o mesmo endereço funciona também fora do estabelecimento, sem abrir uma porta:
https://<portaal>/bi/<kassa-id>/<gegevens>?periode=90d&formaat=csv&sleutel=.... Assim o serviço Power BI atualiza de forma agendada (sem gateway) e o Google Sheets pode obter os dados com=IMPORTDATA("...")(também a origem para Looker Studio). A caixa mostra o endereço na integração. - Visão geral da cadeia via portal do cliente (vários estabelecimentos): um endereço e uma chave para todas as suas caixas em conjunto. Em cada caixa que deve participar, ative Visão geral da cadeia via portal do cliente (por baixo do interruptor de BI) e crie uma chave no portal do cliente em As minhas caixas → BI para todos os seus estabelecimentos. Depois:
https://<portaal>/bi/keten/<gegevens>?periode=90d&formaat=csv&sleutel=hpk_.... O portal obtém os dados de cada caixa e junta-os, comkassaIdezaakem cada linha. As caixas que estão offline ou não participam aparecem emontbrekend(JSON) e no cabeçalhoX-Ontbrekend. A própria caixa não precisa de uma chave própria para isto; desativar na caixa ou no portal do cliente interrompe-o. - Com um token, este é enviado como
Authorization: Bearere há uma assinatura emX-HorecaPOS-Handtekening(sha256=HMAC do conteúdo). Se falhar, a caixa tenta de novo a cada minuto; nada é enviado em duplicado. Com a partir de envia também recibos mais antigos. - A caixa entrega ficheiros: todos os dias (a uma hora definida, do dia anterior; os dias em falta são recuperados) ou de hora a hora (hoje até agora), em CSV (vírgula, ou ponto e vírgula para Excel neerlandês) ou JSON, para uma pasta no computador da caixa (por exemplo uma pasta do OneDrive ou SharePoint para Power BI ou Excel), um servidor FTP(S) ou SFTP ou por e-mail. Nomes dos ficheiros:
horecapos_<gegevens>_<datum>.csv. - Enviar teste (push) e Exportar agora (ficheiro) na integração.
- Descarregar manualmente: escolha os dados, o período e o formato.
- Modelo Power BI (
.pbit): um relatório pronto para o Power BI Desktop, com Descarregar modelo Power BI em BI e exportação de dados. Crie primeiro uma ligação API (Power BI). No modelo: uma tabela por conjunto de dados com os tipos corretos, um calendário (ano, mês, semana, dia da semana), relações (data → calendário, linhas de talão → produtos, horas trabalhadas → funcionários) e medidas (faturação com e sem IVA, IVA, gorjetas, talões, clientes, média por talão e por cliente, quantidade vendida, faturação por produto, pago, estornos, horas trabalhadas, faturação por hora trabalhada). Três páginas: Visão geral (números-chave, faturação por dia, dia da semana e hora, formas de pagamento), Produtos (por grupo e por produto) e Pessoal (horas e faturação por funcionário). Através do portal, o serviço Power BI também o atualiza segundo um agendamento. - Os segredos (token, palavra-passe, chave) nunca aparecem na vista geral; deixar vazio = manter, Apagar = remover. Tudo fica registado no histórico (sem segredos).
Salários e planeamento
Com o Registo de entrada/saída ligado (Definições → Estabelecimento), em Definições → Horário de trabalho, em baixo, está Salários e planeamento (permissão Gerir definições), em dois blocos separados. Se o registo estiver desligado, não há horas: nesse caso só o bloco Planeamento de pessoal (a faturação, live ou como ficheiro de faturação) está em baixo em Definições → Contabilidade, sob o título Faturação para o seu planeamento:
- Processamento salarial (payroll): escolha o software de salários ou (Bélgica) o secretariado social, preencha os respetivos campos e, para cada funcionário, o seu número de funcionário nesse software. Depois cria, para um período, o ficheiro com as horas trabalhadas (turnos fechados, por funcionário por dia de entrada) e a faturação por funcionário (sem IVA, o que ele/ela cobrou): pronto a usar para Loket.nl (Variabele gegevens, total por funcionário no período, linha de cabeçalho
aanslnr;persnr;ploeg;<looncomponent>) e SD Worx Bélgica (Tijdsregistratie, posições fixas, por funcionário por dia); caso contrário, a lista de horas (CSV: Datum; Personeelsnummer; Naam; Uren; Omzet excl. btw). Os funcionários sem número de funcionário não entram no ficheiro do Loket ou do SD Worx; a caixa indica quem são. - Planeamento de pessoal (WFM): escolha o sistema de planeamento. Um novo envio substitui o anterior. Além disso, a lista de faturação (CSV por dia e hora, sem e com IVA) e, para o Strobbo, o ficheiro Excel para Importeer omzet.
- Apenas software que funciona no país do estabelecimento, por grupo e por ordem alfabética; o servidor recusa software de outro país (400).
- As chaves e os tokens nunca são mostrados no ecrã.
- Afeta a contabilidade: os custos salariais são lançados na contabilidade pelo software de salários, a faturação é lançada pela caixa (Definições → Contabilidade). O AFAS Payroll e o Exact Online Loon estão no mesmo ambiente que a contabilidade do AFAS e do Exact.
- Na cópia da caixa no portal isto não é possível (fá-lo a caixa no estabelecimento).
- Em vários softwares a API não é pública ou está disponível apenas para parceiros (p. ex. Loket, Nmbrs, Nostradamus, Employes, Shyfter, Planday, Eitje): estes aparecem como mediante pedido; até lá, o ficheiro. O formato do SD Worx e do Strobbo vem da respetiva documentação: peça para verificar a primeira importação.
| Software | NL | BE | Live | Ficheiro | Observação |
|---|---|---|---|---|---|
| Software de salários e processadores salariais | |||||
| ADP | ✓ | ✓ | mediante pedido | Lista de horas por funcionário e por dia (CSV) | Ligação via ADP (mediante pedido); até lá, a lista de horas por funcionário e por dia. |
| AFAS Payroll | ✓ | – | mediante pedido | Lista de horas por funcionário e por dia (CSV) | Processamento salarial no AFAS Profit (mesmo ambiente que a contabilidade no AFAS); ligação mediante pedido, até lá a lista de horas. |
| BCS HR | ✓ | – | mediante pedido | Lista de horas por funcionário e por dia (CSV) | Ligação via BCS (mediante pedido); até lá, a lista de horas. |
| Buddee | ✓ | – | mediante pedido | Lista de horas por funcionário e por dia (CSV) | Software de RH e salários; ligação mediante pedido, até lá, a lista de horas por funcionário e por dia. |
| Employes | ✓ | – | mediante pedido | Lista de horas por funcionário e por dia (CSV) | O Employes tem uma API para horas trabalhadas (token do cliente); a ligação segue após acordo com o Employes. Até lá, a lista de horas. |
| Exact Online Loon | ✓ | – | mediante pedido | Lista de horas por funcionário e por dia (CSV) | Processamento salarial no Exact Online (mesmo ambiente que a contabilidade no Exact); ligação mediante pedido, até lá a lista de horas. |
| Humanwave | ✓ | – | mediante pedido | Lista de horas por funcionário e por dia (CSV) | Ligação via Humanwave (mediante pedido); até lá, a lista de horas. |
| Loket.nl | ✓ | – | mediante pedido | Loket.nl Variabele gegevens (CSV), Lista de horas por funcionário e por dia (CSV) | Ficheiro para Werkgever → Collectieve mutaties → Importeren → Variabele gegevens (horas por funcionário no período). Live através da API do Loket após registo no Loket. |
| Nmbrs | ✓ | – | mediante pedido | Lista de horas por funcionário e por dia (CSV) | Lista de horas por funcionário e por dia, para transpor para o Nmbrs. Live através da API do Nmbrs após o registo de uma app no Nmbrs. |
| Salar (Van Winckel) | ✓ | – | – | Lista de horas por funcionário e por dia (CSV) | Lista de horas por funcionário e por dia para o gabinete de contabilidade; o formato de importação do Salar não é público. |
| Secretariados sociais | |||||
| Acerta | – | ✓ | mediante pedido | Lista de horas por funcionário e por dia (CSV) | Secretariado social: o formato do ficheiro de prestações é fornecido pela Acerta; até lá, a lista de horas. |
| Group S | – | ✓ | mediante pedido | Lista de horas por funcionário e por dia (CSV) | Secretariado social: o formato do ficheiro de prestações é fornecido pelo Group S; até lá, a lista de horas. |
| Liantis | – | ✓ | mediante pedido | Lista de horas por funcionário e por dia (CSV) | Secretariado social com uma API que a Liantis disponibiliza por empresa; até lá, a lista de horas. |
| Partena Professional | – | ✓ | mediante pedido | Lista de horas por funcionário e por dia (CSV) | Secretariado social: o formato do ficheiro de prestações é fornecido pela Partena; até lá, a lista de horas. |
| SD Worx | ✓ | ✓ | – | SD Worx Tijdsregistratie (TXT), Lista de horas por funcionário e por dia (CSV) | Bélgica: ficheiro Tijdsregistratie (posições fixas, por funcionário por dia) para "Tijdsregistratie importeren". Países Baixos: a lista de horas. |
| Securex | – | ✓ | mediante pedido | Lista de horas por funcionário e por dia (CSV) | Secretariado social: as ligações são feitas através de parceiros; até lá, a lista de horas. |
| Planeamento e registo de horas | |||||
| Book'u | – | ✓ | mediante pedido | Faturação por dia e hora (CSV) | O Book'u faz as declarações Dimona; uma ligação à caixa é feita mediante pedido. Até lá, a lista de faturação. |
| Deputy | ✓ | ✓ | ✓ | Faturação por dia e hora (CSV) | Live: a faturação por hora vai a cada hora para o Deputy (Sales). Um token permanente é criado no Deputy, nas ligações API. |
| Dyflexis | ✓ | – | ✓ | Faturação por dia e hora (CSV) | Live: a faturação por hora vai a cada hora para o Dyflexis (information streams). O token API é obtido através do Dyflexis. |
| Eitje | ✓ | – | mediante pedido | Faturação por dia e hora (CSV) | O Eitje liga-se através do seu programa de parceiros; até lá, a lista de faturação por dia e hora. |
| Exact Horeko | ✓ | – | mediante pedido | Faturação por dia e hora (CSV) | Ligação via Horeko (mediante pedido); até lá, a lista de faturação. |
| Fooks | ✓ | – | mediante pedido | Faturação por dia e hora (CSV) | O Fooks desenvolve ele próprio as ligações a caixas; até lá, a lista de faturação por dia e hora. |
| L1NDA | ✓ | – | mediante pedido | Faturação por dia e hora (CSV) | O L1NDA desenvolve ligações a caixas em conjunto com parceiros; até lá, a lista de faturação por dia e hora. |
| Mr. Einstein | ✓ | – | mediante pedido | Faturação por dia e hora (CSV) | RH, escalas e custos salariais para a restauração; o Mr. Einstein desenvolve ligações a caixas em conjunto com o fornecedor da caixa (pedido via mreinstein.nl/contact). Até lá, a lista de faturação por dia e hora. |
| Nostradamus | ✓ | ✓ | mediante pedido | Faturação por dia e hora (CSV) | O Nostradamus recebe a faturação através da sua interface de caixa (token de API e domínio do estabelecimento, mediante pedido ao Nostradamus); até lá, a lista de faturação por dia e hora. |
| Plan-Me | – | ✓ | mediante pedido | Faturação por dia e hora (CSV) | O Plan-Me faz as declarações Dimona; uma ligação à caixa é feita mediante pedido. Até lá, a lista de faturação. |
| Planday | ✓ | ✓ | mediante pedido | Faturação por dia e hora (CSV) | O Planday tem uma API aberta para sistemas de caixa; a ligação segue após acordo. Até lá, a lista de faturação. |
| Shiftbase | ✓ | – | ✓ | Faturação por dia e hora (CSV) | Live: a faturação por dia vai a cada hora para o diário do departamento no Shiftbase. A chave API é criada no Shiftbase, em App center. |
| Shyfter | – | ✓ | mediante pedido | Faturação por dia e hora (CSV) | O Shyfter faz as declarações Dimona e aceita a faturação por dia através da sua API; a ligação segue após acordo com o Shyfter. Até lá, a lista de faturação. |
| Strobbo | ✓ | ✓ | – | Importação de faturação Strobbo (Excel), Faturação por dia e hora (CSV) | Ficheiro Excel para Planning → € → Importeer omzet (faturação por dia por posto de trabalho). |
| Tamigo | ✓ | ✓ | mediante pedido | Faturação por dia e hora (CSV) | Ligação via Tamigo (mediante pedido); até lá, a lista de faturação. |
| Werktijden.nl | ✓ | – | – | Faturação por dia e hora (CSV), Lista de horas por funcionário e por dia (CSV) | O Werktijden.nl regista ele próprio as horas e (ainda) não aceita faturação através da sua API; as listas servem para comparar. |
| XPS Logic | ✓ | – | mediante pedido | Faturação por dia e hora (CSV) | O XPS Logic destina-se a pessoal flexível e temporário; uma ligação é feita mediante pedido. Até lá, a lista de faturação. |
Requisitos legais na Bélgica e nos Países Baixos
O que a lei exige e o que o HorecaPOS faz para isso (peça ao seu contabilista que confirme o que se aplica ao seu estabelecimento):
| País | Requisito | HorecaPOS |
|---|---|---|
| Bélgica | Sistema de caixa registadora (GKS 2.0) com caixa negra para estabelecimentos de restauração que têm de o cumprir (entre outros, com mais de € 25.000 de faturação anual em refeições, sem IVA) | ligação à caixa negra (FDM), os dados obrigatórios no talão e os contadores no relatório Z (país Bélgica em Definições → Estabelecimento, FDM_API_KEY e FDM_TERMINAL_ID); no topo de Definições → Estabelecimento escolhe se o estabelecimento está sujeito ao GKS: Sim = cobrar apenas com uma caixa negra a funcionar, Não = sem, com uma declaração do administrador (todos os anos de novo); enquanto nada for escolhido, não é possível cobrar. A caixa conta a faturação de refeições e avisa acima de 25.000 € |
| Bélgica | Faturação eletrónica via Peppol: desde 1 de janeiro de 2026, as faturas entre empresas belgas sujeitas a IVA têm obrigatoriamente de ser eletrónicas e estruturadas (UBL, Peppol BIS 3); os talões de caixa a consumidores não estão abrangidos | exportação das vendas diárias em UBL segundo Peppol BIS Billing 3.0 para o programa de contabilidade (Exportação contabilidade); e faturas a partir de um talão para clientes empresariais (Definições → Faturas): UBL segundo Peppol BIS Billing 3.0 mais uma fatura para imprimir, envio por e-mail, via Billit para a rede Peppol, para um endereço próprio ou download (ver Faturas para clientes empresariais) |
| Bélgica | IVA na restauração desde 1 de março de 2026: refeições para levar e bebidas não alcoólicas 12% (no local e para levar), álcool 21%, refeições que o cliente ainda prepara (fondue, gourmet) 6% | Assistente de IVA (Definições → Leis e regras): por produto o tipo, a taxa correta de imediato ou a partir de uma data; as descrições das taxas A/B/C foram atualizadas |
| Países Baixos | Alcoholwet: nada de álcool a jovens com menos de 18, também não na venda online e na entrega (verificar a idade na entrega) | Verificação de idade: produtos com álcool; na loja online o cliente confirma 18+ (caixa não pré-assinalada) com o aviso de que a idade é verificada na entrega; "18+" no talão de trabalho, talão de entrega e talão de caixa |
| Países Baixos | Copos e caixas descartáveis (SUP): desde 2024 um preço separado e visível para embalagens descartáveis de plástico na recolha e na entrega | Taxa de descartáveis por produto, como linha separada no talão (IVA do produto) e à parte no volume de vendas |
| Países Baixos | Depósito em latas e garrafas de plástico | Depósito por produto (€ 0,15 / € 0,25), linha separada sem IVA na recolha e na entrega, à parte no volume de vendas |
| Países Baixos | Pagamento em dinheiro: desde 1 de janeiro de 2026 nada de € 3.000 ou mais em dinheiro por bens | Aviso na recolha e na entrega (também no sistema de numerário); é possível confirmar, fica registado no histórico |
| Países Baixos e Bélgica | Alteração de IVA: uma taxa ou um produto recebe outra percentagem de IVA a partir de uma data | Agendar alteração de IVA: a caixa executa-a no próprio dia (na Bélgica por produto, as letras A/B/C/D são fixas) |
| Países Baixos | Alojamento (dormidas) 21% desde 1 de janeiro de 2026 | taxa de IVA configurável por produto |
| UE | Diretiva Omnibus: um preço "antes" riscado só pode ser o preço mais baixo dos últimos 30 dias | a loja online só risca em relação ao preço mais baixo de 30 dias (a caixa guarda o histórico de preços; happy hours que se repetem todas as semanas contam) |
| UE | European Accessibility Act (desde 28 de junho de 2025): lojas online acessíveis (WCAG 2.1 AA) | a loja online funciona com teclado e leitor de ecrã (link "Ir para o conteúdo", foco visível, etiquetas) e tem uma declaração de acessibilidade (link no rodapé) |
| Países Baixos | XML Auditfile Financieel (XAF): o padrão da Autoridade Tributária neerlandesa (Belastingdienst) para transferir (uma parte de) a contabilidade; o XAF 4.0 é obrigatório a partir de 2027 | exportação como XAF 4.0 (Exportação contabilística) |
| Países Baixos | Sistema de caixa fiável: conservar os dados da caixa (todos os talões, correções e eventos) e poder fornecê-los em formato digital numa inspeção; para isso, a Belastingdienst recomenda o XML Auditfile Afrekensystemen (XAA) | exportação como XAA 3.2 (Relatório → Faturação por período → Ficheiro de auditoria da caixa), opcionalmente assinada com o certificado do fornecedor |
| Bélgica | Registo de presenças num sistema de caixa registadora: registar o início e o fim do tempo de trabalho dos trabalhadores no sistema de caixa | O Registo de entrada/saída (Definições → Estabelecimento; Obrigatório = registar entrada primeiro) é registado na caixa negra |
| Bélgica | Dimona: declarar cada ocupação (incluindo flexi-jobs e estudantes) ao RSZ antes do seu início | isso é feito pelo seu secretariado social ou ferramenta de planeamento (p. ex. Shyfter, Book'u, Plan-Me); o HorecaPOS fornece as horas trabalhadas e a faturação (Definições → Horário de trabalho → Salários e planeamento) |
| Países Baixos | Registo dos tempos de trabalho e de descanso (Lei do Tempo de Trabalho, Arbeidstijdenwet) | Registo de entrada/saída com as horas trabalhadas por funcionário, editáveis pelo administrador (com registo de alterações), e a lista de horas para o software de salários |
| Países Baixos e Bélgica | HACCP / segurança alimentar: registar temperaturas (refrigeração, congelador, manutenção a quente, confeção, arrefecimento rápido, receção) e limpeza; NL Hygiënecode voor de Horeca (NVWA), BE autocontrolo FAVV (guia G-023) | Registo HACCP na caixa (Definições → Leis e normas, botão HACCP no topo): pontos de medição com limites, tarefas de limpeza e controlo, ação corretiva obrigatória em caso de desvio, não alterável, resumo com registos em falta como CSV ou impressão (ver Registo HACCP) |
| Países Baixos e Bélgica | Obrigação de conservação (NL 7 anos, BE 10 anos) | os talões, os relatórios Z e o registo estão na base de dados e nas cópias de segurança; o registo não pode ser alterado nem apagado a partir da caixa |
Leis e regras
Definições → Leis e regras (administrador; o assistente de IVA também com a permissão Gerir produtos). Tudo vem desligado por defeito; sem estas definições, a caixa funciona como sempre.
- Verificação de idade para álcool (18+): em Produtos assinale Contém álcool (ou use o assistente de IVA). Na recolha e na entrega com álcool aparece "18+" no talão de trabalho, no talão de caixa e no ecrã de encomendas. Na loja online o cliente confirma ter 18 anos ou mais (a caixa não vem pré-assinalada) e vê que a idade será verificada na entrega.
- Taxa de descartáveis (Países Baixos): um valor por produto (preços indicativos: copo € 0,25, caixa de refeição € 0,50, caixa pequena € 0,05). Na recolha e na entrega, a caixa coloca sozinha uma linha "Taxa de descartáveis" no talão (com o IVA do produto); esta acompanha automaticamente os produtos (a base de dados acompanha-a, mesmo depois de anular, mover ou mudar o tipo de encomenda) e aparece à parte no volume de vendas. No local não há taxa. A Thuisbezorgd.nl e a loja online cobram a sua própria taxa.
- Depósito (Países Baixos): por produto (€ 0,15 lata/garrafa, € 0,25 garrafa grande), linha "Depósito" sem IVA, só na recolha e na entrega.
- Dinheiro: € 3.000 ou mais (Países Baixos, proibido para bens desde 1-1-2026): na recolha e na entrega, um aviso ao cobrar e no sistema de numerário; o funcionário pode confirmar (p. ex. catering como serviço), o que fica registado no histórico. Comer e beber no local é um serviço: sem aviso.
- Assistente de IVA: por produto o tipo (refeição, bebida não alcoólica, bebida alcoólica, alimentos sem preparação, outro; primeiro um palpite com base no nome e no grupo). A caixa mostra a taxa correta no local e para levar (Bélgica desde 1-3-2026: refeições e refrigerantes 12%, também para levar; álcool 21%; alimentos sem preparação 6%. Países Baixos: 9% e 21%) e aplica-a, de imediato ou a partir de uma data.
- Agendar alteração de IVA: um produto para outra taxa, ou (só nos Países Baixos) uma taxa com uma nova percentagem, a partir de uma data. A caixa executa-a sozinha nesse dia (verifica a cada quarto de hora e ao arrancar).
As faturas (obrigatórias entre empresas na Bélgica) estão descritas em Faturas para clientes empresariais. Por fazer: GKS 2.0, perguntar como está a certificação (ver docs/backlog-concurrenten.md).
Faturas para clientes empresariais
Definições → Faturas (administrador; desligado por defeito): ative Faturas para clientes empresariais (UBL / Peppol). Quando está ativo, encontra por baixo Pagamento a crédito, os Dados na fatura, os Serviços Peppol, a Ligação bancária (com o pagamento a crédito) e a lista de todas as faturas. Na Bélgica, a faturação eletrónica entre empresas é obrigatória desde 1-1-2026.
- Faturas para clientes empresariais: Talões → escolhe o talão → Fatura. Preenche o cliente (ou escolhe um anterior); a caixa cria uma fatura numerada (p. ex. F2026-0001, sequencial por ano), como UBL segundo o Peppol BIS Billing 3.0 e como fatura para imprimir ou guardar em PDF. Envio por e-mail (ambos em anexo, opcionalmente com cópia para o contabilista), via Billit para a rede Peppol (
BILLIT_API_KEY,BILLIT_PARTY_ID), via Storecove (STORECOVE_API_KEY,STORECOVE_LEGAL_ENTITY_ID; o destinatário vem do Peppol-ID do cliente, p. ex. 0208 → BE:EN, 0106 → NL:KVK, caso contrário por e-mail via Storecove) ou via Banqup da Unifiedpost (BANQUP_CLIENT_ID,BANQUP_CLIENT_SECRET,BANQUP_SPACE_ID;BANQUP_SANDBOX=1para o ambiente de testes; o Banqup verifica o UBL e entrega-o ele próprio), para um endereço próprio (FACTUUR_HTTP_URL, p. ex. um programa de contabilidade ou outro serviço Peppol) ou transferir. Uma fatura por talão; o talão já está pago, por isso "liquidado". Número KvK/de empresa, IBAN, Peppol-ID, prefixo e prazo de pagamento em Dados na fatura. Todas as faturas no fundo do separador (permissão Faturação por período). - Chaves, segredos e cabeçalhos nunca são mostrados (apenas "preenchido"; deixar vazio = manter, Apagar = remover) nem registados no histórico (apenas quais os campos alterados). Ficam na base de dados (
vestiging.peppol_gegevens): incluídos nas cópias de segurança, não na exportação da configuração.
Quiosque de self-service
Os clientes pedem sozinhos num totem ou tablet, como num restaurante de fast food, e pagam no caixa ou com cartão no quiosque. Os ecrãs de pedido fazem parte da própria caixa, por isso o menu, os preços, as opções, os menus, as happy hours, os períodos do dia, as fotos, os alergénios, os idiomas e o talão vêm da caixa e não precisam de ser configurados noutro lado. No quiosque corre a app PinPortal Kiosk 2 (Android, incluindo Sunmi, e Windows, Linux e macOS), que mostra a página e imprime o talão. Desligado por defeito.
Ligar e configurar (administrador): Definições → Estabelecimento → Ecrãs e utilização → Quiosque de self-service.
- Escolha o que o cliente pode escolher: Comer aqui e/ou Para levar (para levar usa o preço para levar e a taxa de IVA para levar, se estiverem definidos).
- Texto de boas-vindas, após quantos segundos sem toque o quiosque volta ao início (o cesto é esvaziado) e que grupos de produtos estão no quiosque (nada marcado = todos).
- Mais alguma coisa?: marque grupos de produtos (p. ex. bebidas, sobremesas); no cesto o quiosque sugere então alguns produtos desses grupos.
- Pagamento, por quiosque (ver Adicionar e ligar um quiosque):
- No caixa (por defeito, como o quiosque antigo): o cliente pede, recebe um número de recolha e paga no caixa. Não é preciso terminal de pagamento no quiosque.
- Com cartão no quiosque: o cliente paga no terminal de pagamento do quiosque.
- O cliente escolhe: no caixa ou com cartão. Se o quiosque não tiver terminal de pagamento, será no caixa.
- Para a cozinha (ao pagar no caixa): logo após o pedido no quiosque (por defeito), ou só depois de pago no caixa.
- Talão: na impressora do quiosque (por defeito), na impressora de talões da caixa, ou sem talão (só o número no ecrã). Ao pagar no caixa, o quiosque imprime um talão com o número e ainda não pago; o talão de venda sai quando se cobra no caixa.
- Estado do pedido no telemóvel (opcional, desligado por defeito): aparece um código QR no talão do quiosque e no ecrã final. O cliente lê-o, vê o seu número e o estado (pedido, em preparação, pronto) e recebe uma notificação quando o pedido está pronto. Funciona através do portal de gestão, por isso a caixa tem de estar ligada a ele.
- Álcool e produtos ao quilo nunca estão no quiosque: sem funcionários não é possível verificar a idade e não há balança.
- Leitor de códigos de barras (opcional, tudo desligado por defeito): assinale o que uma leitura pode fazer no quiosque:
- um produto no cesto (o código do produto);
- um código de desconto;
- um cartão de cliente (o cliente acumula pontos);
- um vale-oferta ou cartão pré-pago como pagamento. Se houver saldo suficiente, o pedido fica logo pago. Caso contrário, o vale paga uma parte e o cliente paga o resto com cartão ou na caixa (isso passa então a ser permitido também num quiosque só com cartão). Depois desse pagamento parcial, o cliente já não pode cancelar; o pedido aparece na caixa como Quiosque … · número.
O próprio leitor configura-se no quiosque: na app PinPortal Kiosk 2, em gestão → Leitor de códigos de barras (como teclado, o leitor integrado ou uma porta COM), com um teste do leitor. Um leitor que funcione como teclado também funciona sem a app.
- Carregar saldo (opcional, desligado por predefinição; só funciona se o saldo recarregável estiver ligado): no ecrã inicial do quiosque aparece então Carregar saldo. O cliente lê o seu cartão ou vale (ou introduz o código), vê o saldo e escolhe um valor. Os valores define-os você (de 1 a 6, por predefinição € 10, € 20 e € 50). O pagamento faz-se como definido no quiosque: com cartão, ou no caixa com o número de recolha. Depois de cobrar, o valor fica no saldo. Um carregamento destes não vai para a cozinha, não aparece no ecrã de chamada e não recebe código QR. O saldo máximo do saldo recarregável também se aplica aqui.
- No meu quarto (ligação ao hotel, desativado por predefinição; Definições → Hotel → Self-service): junto ao cesto aparece então Debitar no meu quarto. O hóspede introduz o número do quarto e o apelido; se corresponder a um hóspede alojado agora nesse quarto, o pedido vai para a cozinha e fica pago no quarto (ver Software hoteleiro: debitar no quarto).
- Bélgica (caixa negra): o que ainda não foi testado com a caixa negra fica automaticamente desativado no quiosque (vale-oferta ou saldo como pagamento, carregamento, código de desconto, menus, opções com suplemento, happy hour), tal como na caixa.
Adicionar e ligar um quiosque
- Em Quiosques, introduza um nome (p. ex. Quiosque entrada) e escolha Adicionar quiosque. Recebe um código de ligação de 6 dígitos (válido 30 minutos).
- Escolha no quiosque como o cliente paga: no caixa por defeito. Se for um quiosque com terminal de pagamento, escolha com cartão ou o cliente escolhe, e escolha o terminal de pagamento deste quiosque (em Definições → Pagamentos).
- Abra a página do quiosque no quiosque:
- no estabelecimento: na app, em gestão → Vast adres, o endereço indicado na definição, p. ex.
http://192.168.1.20:3000/kiosk; - ou através do portal de gestão (https, também se o quiosque não estiver na mesma rede): associe o endereço do quiosque indicado na definição ao código do quiosque da app, tal como com o quiosque antigo.
- no estabelecimento: na app, em gestão → Vast adres, o endereço indicado na definição, p. ex.
- Introduza o código de ligação no quiosque. Pronto: o quiosque guarda a sua própria chave. Ligar novamente dá um novo código; Remover desliga-o.
Em cada quiosque vê-se se está online.
Como o cliente pede
- Ecrã inicial com o texto de boas-vindas; o cliente escolhe a língua (todas as línguas da caixa) e toca para pedir.
- Comer aqui ou para levar.
- O menu por grupo de produtos, com fotos, o preço (com happy hour), alergénios e o que está esgotado. Produtos com escolhas ou um menu abrem a janela de escolha.
- O cesto: alterar quantidades e eventualmente Mais alguma coisa?.
- Pedir (pagamento no caixa): o cliente vê o seu número de recolha em grande no ecrã com o valor, recebe o talão e paga no caixa. Na caixa o pedido fica aberto como Quiosque Entrada · 42 (o número que o cliente diz); cobra-se como sempre. Depois aparece como pago no ecrã de chamada e vai para a cozinha se isso só devesse acontecer após o pagamento.
- Pagar com cartão: a caixa envia o valor para o terminal de pagamento deste quiosque (a mesma ligação de pagamento que na caixa). Se falhar, o cliente pode tentar de novo ou cancelar (ou, se puder escolher, pagar afinal no caixa). Só quando o pagamento é bem-sucedido o pedido vai para a cozinha e é cobrado. O cliente vê o seu número de recolha em grande no ecrã e recebe o talão.
- Após alguns segundos, o quiosque volta ao início.
Em caso de avaria: aviso e modo de emergência (na app do quiosque, gestão → Bij storing; desligado por predefinição). Se o quiosque não conseguir aceder à caixa, mostra Even gesloten. Dois extras:
- Teams, Slack, Discord, ntfy, Home Assistant, Make ou Zapier), e uma mensagem hersteld quando volta a funcionar. Com Testmelding sturen verifica o endereço.
- Modo de emergência: o quiosque guarda uma ementa simples, transmitida pela página do quiosque: produtos sem opções nem menus, com o preço de comer aqui (ou para levar, se for a única opção).
- Se a caixa estiver indisponível durante algum tempo (por predefinição 60 segundos), o cliente encomenda a partir dessa ementa.
- O cliente paga com cartão ou no balcão. Pagar com cartão só é possível se Pinbetaling estiver ativado na app.
- São impressos dois talões de emergência: um para o cliente (N1, N2 …) e outro para o balcão/cozinha. Indicam que não são um talão de caixa.
- Quando a caixa volta, a página do quiosque coloca os pedidos de emergência na caixa como Nood N… <quiosque>. Não vão para a cozinha (que já tinha o talão de emergência) e não aparecem no ecrã de chamada.
- Pago com cartão e com o mesmo valor que na caixa: acertado como Pagamento com cartão manual. Caso contrário (pagamento no balcão ou um valor diferente), o pedido fica aberto para os empregados.
- Tudo fica no registo.
- Bélgica: com o sistema de caixa registadora (GKS, caixa negra) cada venda tem de passar de imediato pela caixa e pelo FDM. O modo de emergência provavelmente não é então permitido; confirme primeiro. Na Bélgica, a app do quiosque só o ativa após uma confirmação adicional, e a caixa mostra um aviso no quiosque.
Na caixa, um pedido do quiosque é um pedido normal (para levar ou para comer no local, com o nome Quiosque Entrada) em nome do funcionário Kiosk. A caixa cria-o sozinha; ninguém pode iniciar sessão com ele. Não o coloque como inativo, senão o quiosque não pode pedir. Os pedidos do quiosque aparecem nos relatórios, em Talões e no ecrã de chamada. Um pedido que não seja concluído no quiosque (não pedido ou não pago com cartão) expira sozinho após 30 minutos.
Pagamento com cartão em modo de teste (Definições → Pagamentos)? Então o quiosque não cobra realmente; útil para experimentar. Sem internet não é possível pagar com cartão; o quiosque diz então que se pode pedir no balcão.
Avaria: se a caixa não estiver acessível, a app do quiosque mostra "Fechado por um momento" e continua sozinha. Se o quiosque funcionar através do portal de gestão e a internet falhar, a app pode recorrer à caixa na rede local (na app: gestão → Extensões → Em caso de avaria, usar a rede local); o quiosque transmite esse endereço ele próprio.
Desligar: o quiosque indica que está fechado por um momento. Os quiosques e as definições ficam guardados. No registo ficam ligar/desligar, as definições, os quiosques adicionados e removidos, as ligações e os pedidos cancelados.
Menu digital
A carta com preços numa TV (ou noutro monitor com browser), diretamente da caixa. Por padrão desligado; ligar em Definições → Estabelecimento → Ecrãs e utilização → Menu digital. Depois abra na TV http://<kassaserver>:3000/menubord (ou use o botão Num ecrã próprio / Num tablet ou telemóvel com o código QR). Sem início de sessão e sem emparelhamento.
- Por categoria, os produtos com preço, pela ordem da caixa. Escolha que categorias (e em que ordem), 1 a 4 colunas, escuro ou claro, um cabeçalho próprio (vazio = o nome do estabelecimento), fotos de produto e alergénios.
- Sempre certo: o quadro pede a carta a cada 10 segundos (e de imediato quando há uma alteração), por isso um produto esgotado (riscado com Esgotado, ou retirado do quadro), um stock vazio, um happy hour (preço promocional com o preço normal riscado, e o nome e a hora de fim no topo) e os períodos do dia (só o que está à venda agora) aparecem sozinhos corretamente.
- Se nem tudo couber no ecrã, as páginas alternam (por padrão a cada 12 segundos, configurável de 5 a 120).
Pessoal e PINs
Definições → Pessoal (só administrador): adicionar funcionários, alterar nome, função e PIN, e desativar.
- Funções: empregado de mesa (enviar pedidos, cobrar, relatório X), gerente (além disso desconto, devolução, fechar dia, gaveta e registo) e administrador (tudo, incluindo todas as Definições). Este é o padrão; o que o empregado de mesa e o gerente podem fazer é ajustável (ver Permissões por função).
- PIN de 4 a 8 dígitos, único entre os funcionários ativos. Os PINs são guardados apenas encriptados (hash) na base de dados e não podem ser lidos.
- Eliminar de vez não é possível (talões e registo referem o funcionário); inativo = já não pode iniciar sessão.
- Fica sempre pelo menos um administrador ativo.
- Outra função, novo PIN ou inativo: as sessões em curso desse funcionário terminam de imediato.
- Bélgica: opcionalmente o número de registo nacional para o registo de pessoal.
- Idioma: o idioma dos ecrãs para este funcionário (ou "Idioma do dispositivo"). Após iniciar sessão, a caixa fica logo nesse idioma; o funcionário também o pode alterar com a bandeirinha no canto inferior direito (ver Idiomas).
- Dica: substitua os PINs de demonstração 1111 e 2222 antes de a caixa entrar em funcionamento.
Iniciar sessão com cartão (opcional)
Por predefinição desligado. Para ligar: Definições → Pessoal, opção Iniciar sessão com cartão (NFC, RFID ou iButton). Necessário: um leitor de cartões USB que funcione como teclado (para cartões NFC ou RFID, porta-chaves, pulseiras ou chaves iButton). Um leitor destes "escreve" o número do cartão e carrega em Enter; não é preciso controlador nem integração.
- Associar: toque no funcionário, depois em Associar cartão e aproxime o cartão do leitor. Um cartão pertence a um só funcionário. Remover cartão se o cartão se perder.
- Iniciar sessão: no ecrã de início de sessão, aproxime o cartão do leitor. O PIN continua a funcionar normalmente.
- Registar entrada e saída (se estiver ligado): no ecrã de início de sessão, Registar entrada / saída e o cartão no leitor.
- O número do cartão só fica guardado encriptado (hash) na base de dados, tal como o PIN. Funcionários inativos também não conseguem iniciar sessão com o cartão.
- Desligado: início de sessão só com o PIN, como sempre. Os cartões associados ficam guardados.
Permissões por função
Definições → Permissões (só administrador): por função, marque o que o empregado de mesa e o gerente podem fazer. Por padrão está tudo exatamente como acima (como a caixa sempre fez); uma caixa que difere do padrão fica colorida.
| Permissão | Empregado de mesa | Gerente |
|---|---|---|
| Eliminar linhas após o pedido (anulação) | sim | sim |
| Aplicar desconto / remover desconto | não | sim |
| Marcar produto como "esgotado" | sim | sim |
| Imprimir cópia de um talão | sim | sim |
| Devolução (nota de crédito) | não | sim |
| Cobrar a crédito e receber pagamentos a crédito (só com o pagamento a crédito ativado) | não | sim |
| Saldo intermédio (relatório X) | sim | sim |
| Fechar dia (relatório Z) | não | sim |
| Faturação por período | não | sim |
| Gerir gaveta | não | sim |
| Gerir vales-oferta (só com vales-oferta com saldo) | não | sim |
| Ler e responder a avaliações (só com a gestão de avaliações ativada) | não | sim |
| Gerir cartão de cliente (só com o cartão de cliente ativado) | não | sim |
| Ver registo | não | sim |
| Ver imagens das câmaras (só com as imagens das câmaras ligadas) | não | sim |
| Gerir stock (só com stock ligado) | não | sim |
| Gerir produtos | não | não |
| Gerir plantas das salas | não | não |
| Configurar estabelecimento, pagamentos e impressoras | não | não |
| Ver e ajustar horários de trabalho | não | não |
- O administrador pode sempre tudo. Alterar pessoal e permissões fica sempre reservado ao administrador (caso contrário alguém poderia dar mais permissões a si próprio).
- Botões e separadores que uma função não pode usar ficam ocultos para essa função; o servidor da caixa também o verifica. Se um gerente receber p. ex. Gerir produtos, vê o botão Definições apenas com o separador Produtos.
- As alterações aplicam-se de imediato em todas as caixas e ficam no registo. Repor padrão volta a pôr tudo como estava.
Dados do estabelecimento
Definições → Estabelecimento (só administrador): nome, morada, código postal, localidade, telefone e número de IVA do estabelecimento. Aparecem no topo de cada talão e pró-forma. Aqui também se define o texto no fundo do talão (pode ter várias linhas; vazio = sem texto; padrão "Obrigado e até breve!"), e logo abaixo o idioma do talão de venda (padrão neerlandês; ver Idiomas). Uma pré-visualização do talão muda em tempo real. Depois de guardar, o talão seguinte usa logo os novos dados. O país e os dados fiscais (GKS) não podem ser alterados aqui de propósito. Na Bélgica o número de IVA é obrigatório. Com o visto Arredondar pagamentos em dinheiro a 5 cêntimos (desligado por predefinição), o total em dinheiro é arredondado (€ 6,62 → € 6,60, € 6,63 → € 6,65); a diferença aparece como "Arredondamento" no talão. O cartão fica sempre ao cêntimo.
Gerir produtos
Inicie sessão como administrador e escolha Definições → Produtos.
- Adicionar, alterar (nome, preço, categoria, taxa de IVA no local e take-away, nome no talão, código, esgotado) e eliminar categorias e produtos. Categorias e produtos podem ter uma cor própria; um produto com cor recebe um botão colorido no ecrã de pedidos (texto automaticamente branco ou escuro para legibilidade).
- Altere a ordem arrastando uma categoria ou produto pelo ≡. Funciona com o rato e com o dedo num tablet. Essa ordem aparece exatamente assim no ecrã de pedidos; os ecrãs de caixa abertos atualizam-se de imediato.
- Eliminar retira um produto da caixa, mas os pedidos antigos e o diário fiscal continuam a conhecer o produto. Uma categoria só pode ser eliminada quando estiver vazia.
- Opções: abra um produto ou categoria e adicione em "Opções" grupos de opções, como "Ponto de cozedura" (exatamente um, obrigatório), "Molho" (no máximo um) ou "Extra" (vários, com mínimo e máximo; máximo vazio = ilimitado). Cada opção tem um nome e um suplemento (pode ser negativo, p. ex. -0,50). Os grupos de opções de uma categoria aplicam-se a todos os produtos dessa categoria, além das opções próprias do produto. Ordem com ▲▼. Pode eliminar sempre: os pedidos e talões existentes guardam as opções escolhidas. O servidor também verifica as opções obrigatórias e o máximo.
- Foto por produto: ver Fotos de produtos.
- Preço por quilo, número PLU e tara (só com a balança ligada): ver Configurar balança. Sem o visto, um produto continua a ser vendido à unidade.
Fotos de produtos
Cada produto pode ter uma foto.
- Definir foto: Definições → Produtos → escolha o produto → Escolher foto (num tablet ou telemóvel também pode usar logo a câmara). A foto é reduzida no navegador para no máximo 512 × 512 píxeis (JPEG, normalmente 20–80 kB) e guardada de imediato; Outra foto substitui-a, Eliminar foto remove-a. Na lista de produtos aparece uma pequena foto antes do nome. Só com a permissão Gerir produtos; jpg, png e webp, no máximo 512 kB.
- Mostrar escolhe o administrador em Definições → Estabelecimento → Fotos de produtos, separadamente e desligado por padrão:
- Foto do produto nos botões do ecrã de pedidos: a foto no topo do botão do produto, com o nome e o preço por baixo.
- Foto do produto junto aos produtos no ecrã de cliente: uma pequena foto antes de cada linha no ecrã de cliente (o próprio ecrã de cliente também tem de estar ligado). Produtos sem foto ficam como estão; se estiver desligado, tudo funciona exatamente como antes.
Leitor de códigos de barras
Com um leitor de códigos de barras na caixa, lê produtos, códigos de desconto, cartões de cliente e vales-oferta. Ative em Definições → Leitor (separador junto às impressoras e à balança; por defeito desligado). Assinale o que uma leitura faz no ecrã de pedidos:
- Produto no talão: o produto com esse código (Definições → Produtos, campo Código; p. ex. o código de barras EAN da embalagem). Com escolhas, um menu ou um preço por quilo, abre primeiro a janela de escolhas ou a balança, tal como ao tocar. O mesmo faz Ler no ecrã de pedidos em Imprimir etiquetas; isso continua a funcionar normalmente.
- Código de desconto no talão (se os códigos de desconto estiverem ligados).
- Cartão de cliente: o cliente com esse número de cartão passa para o talão (se o cartão de cliente estiver ligado). Se ler um código desconhecido num talão com cliente, a caixa pergunta se é o seu novo cartão.
- Vale-oferta ou cartão pré-pago: a caixa mostra o saldo (se os vales-oferta com saldo estiverem ligados). O pagamento faz-se em Cobrar → Vale-oferta; aí também pode ler o vale.
A caixa procura primeiro nos produtos, depois nos cartões de cliente, nos vales-oferta e nos códigos de desconto. A leitura funciona no ecrã de pedidos quando não está num campo de introdução. Num campo de introdução, o código vai simplesmente para esse campo.
Teste do leitor: em Definições → Leitor vê, a cada leitura, o código e o que a caixa faz com ele, mesmo que o leitor ainda esteja desligado. Se não funcionar:
- Configure o leitor como teclado (USB-HID), com um Enter após o código. Na maioria dos leitores já é assim.
- Um leitor integrado (p. ex. de uma caixa Sunmi) configura-se como entrada de teclado nas definições do leitor do dispositivo.
- As etiquetas da balança TS6X (peso e preço) são tratadas pela própria balança, mesmo com o leitor ligado.
No quiosque o leitor configura-se à parte (Definições → Estabelecimento → Quiosque); veja Quiosque de self-service.
Imprimir etiquetas
Etiquetas de artigos com o nome, o preço e um código de barras, numa impressora de etiquetas (Brother, Dymo, Zebra ...) instalada no computador ou tablet. Ative em Definições → Estabelecimento → Imprimir etiquetas (por defeito desligado). Aí escolhe também o formato da etiqueta (38 × 25, 57 × 32, 62 × 29 ou 100 × 50 mm) e se o preço e o código de barras aparecem. Imprimir exemplo imprime uma etiqueta de teste.
- Definições → Produtos → (produto) → Etiquetas: escolha o número e Imprimir.
- Compras → (encomenda recebida) → Imprimir etiquetas: de cada produto, tantas etiquetas quantas as que chegaram (unidades de encomenda recebidas × quantidade por unidade de encomenda; ingredientes não). No máximo 500 etiquetas de uma vez.
- A caixa abre a caixa de diálogo de impressão: escolha aí a impressora de etiquetas e o formato de papel do rolo. Cada etiqueta é uma página.
- O código de barras é o código do produto (Definições → Produtos): 8 ou 13 algarismos com um dígito de controlo correto = EAN (12 algarismos: o dígito de controlo é acrescentado), caso contrário Code 128 (letras, algarismos e sinais de pontuação, até 30 caracteres). Sem código não há código de barras.
- Ler no ecrã de pedidos (caixa de seleção, por defeito desligada): um leitor de códigos de barras que funcione como teclado adiciona o produto com esse código, com as escolhas habituais (opções, balança, alergia). Não em conjunto com a balança TS6X, que tem as suas próprias etiquetas com peso e preço.
- Permissão: Gerir produtos ou Gerir stock.
Configurar a balança (A&D, Aclas, Adam Equipment, Avery Berkel, Avery Weigh-Tronix, Balanzas Marques, Baxtran, Bizerba, Brecknell, CAS, Datalogic, Dibal, DIGI, Dini Argeo, Excell Precision, Gram, Ishida, Kern & Sohn, Mettler Toledo, Minebea Intec, Ohaus, Precia Molen, Precisa, Rice Lake, Rongta, Sartorius, Star Micronics, T-Scale, UWE, Wedderburn, Wintec, Zebra)
Separador próprio Definições → Balança (permissão Configurar estabelecimento, pagamentos e impressoras, por padrão só o administrador; o separador existe sempre, mesmo com a balança ainda desligada). Desligado por padrão: a caixa funciona exatamente como antes. Não vê o separador?
Procura automática. Se ainda nada estiver configurado, a caixa procura automaticamente ao abrir esta secção (o botão Procurar volta a fazê-lo):
- a caixa (servidor) funciona numa balança PC ou IA Aclas (TS6X, TS3X, TS5EX/NX/GX, iS6X, iS2X, iR6X, Ti6X, iL8X; marca/modelo do dispositivo: Windows via WMI, Android via
getprop, Linux via DMI) e o Aclas Scale Module responde? Então essa balança é configurada como Neste dispositivo, e também a balança de etiquetas; em Linux (sem Scale Module), a balança integrada na porta interna encontrada (/dev/ttyS...) como "TS6X (ingebouwd)", com o modelo; - há uma OS6X numa porta COM/USB? Cada porta é testada a 9600, 4800, 2400 e 19200 baud: primeiro escuta um momento (contínuo), depois envia
W(Toledo) e, caso contrário, Dialog 06 (9600, 7 bits de dados, paridade ímpar: pedir estado).
Encontrada = colocada no formulário com o botão Ativar e usar: um toque e funciona. (A procura envia um W para cada porta COM livre; uma porta ocupada, p. ex. pelo terminal de pagamento, é ignorada.)
Todas as balanças Aclas. Para cada balança escolhe o modelo; a caixa sabe então como pode ser ligada. Há dois tipos:
- Neste dispositivo (configurar uma vez): a caixa funciona na balança (balança PC ou IA). Com Windows ou Android pesa através do Aclas Scale Module, sem porta, velocidade ou protocolo; com Linux (sem Scale Module) pela porta interna da balança (normalmente
/dev/ttyS0ou/dev/ttyS1), com porta, velocidade e protocolo. Há apenas uma por caixa; a pesquisa encontra-a automaticamente. Uma balança PC ou IA (TS6X, iS6X ...) é sempre Neste dispositivo: só pode aparecer uma vez na lista e os outros modelos PC/IA deixam de poder ser escolhidos. Uma TS6X noutro sítio do estabelecimento pode ainda imprimir etiquetas (ative então apenas Ler etiquetas). - Ligadas (várias ao mesmo tempo): a balança está ligada ao servidor da caixa por cabo (RS232/USB), Bluetooth ou rede. Tantas quantas forem precisas (no máximo 8), cada uma com o seu nome.
Uma lista, duas caixas. Todas as balanças estão numa lista. Para cada balança assinala o que faz: Pesar na caixa (a caixa pede o peso ao fazer o pedido) e/ou Digitalizar etiquetas (a balança imprime uma etiqueta com código de barras que a caixa lê, e recebe os PLU da caixa). Uma balança PC ou IA como a TS6X faz as duas coisas; uma etiquetadora LS só etiquetas. As etiquetas podem vir de uma balança por estabelecimento.
| Modelo | Tipo | Ligações | Na caixa |
|---|---|---|---|
| OS6X | Balança POS | RS232, USB, Bluetooth | ligada, várias ao mesmo tempo |
| OS2X | Balança POS | RS232, USB | ligada, várias ao mesmo tempo |
| CS6X, CS3X | Balança registadora | RS232, USB, Ethernet, wifi | ligada, várias ao mesmo tempo |
| TS6X, TS3X, TS5EX, TS5NX, TS5GX | Balança PC (Windows, Android, Linux) | RS232, USB, Ethernet, wifi | neste dispositivo (1x), também como balança de etiquetas |
| iS6X, iS2X, iR6X, Ti6X, iL8X | Balança IA com reconhecimento de produtos (Windows, Android, Linux) | RS232, USB, Ethernet, wifi | neste dispositivo (1x), também como balança de etiquetas |
| iS5X, OiT2X | Balança IA (só Linux) | RS232, USB, Ethernet | ligada ou como etiquetadora |
| LS2S, LS2RX, LS2CX, LS2NX, LS5SX, LS5RX, LS5CX, LS5NX, LS6CX, LS6RX, LS6NX | Balança etiquetadora | RS232, Ethernet, wifi | digitalizar etiquetas e PLU |
| PS1CX, PS1DX, PS6CX, PS6DX | Balança computadora de preços | RS232 | ligada, várias ao mesmo tempo |
| PS1BX | Balança computadora sem ligação | nenhuma | peso à mão |
| LH15X | Balança suspensa com impressora de etiquetas | RS232, Ethernet, wifi | ligada ou como etiquetadora |
A&D, Adam Equipment, Avery Berkel, Avery Weigh-Tronix, Balanzas Marques, Baxtran, Bizerba, Brecknell, CAS, Datalogic, Dibal, DIGI, Dini Argeo, Excell Precision, Gram, Ishida, Kern & Sohn, Mettler Toledo, Minebea Intec, Ohaus, Precia Molen, Precisa, Rice Lake, Rongta, Sartorius, Star Micronics, T-Scale, UWE, Wedderburn, Wintec e Zebra. Estão incluídos os modelos mais comuns destas marcas para os quais se sabe como a caixa comunica com eles (a testar = o protocolo não consta literalmente de nenhuma fonte; a caixa escolhe o mais óbvio). Todos ligados (vários ao mesmo tempo) ou como balança de etiquetas cuja etiqueta a caixa lê:
| Marca | Modelo | Tipo | Ligação | Protocolo (de fábrica) | Na caixa |
|---|---|---|---|---|---|
| A&D | EK-i (p. ex. EK-610i), HV-WP | Balança registadora (só peso) | RS232, EK-i também USB | Contínuo (modo stream), 2400 baud, 7E1 | ligada, várias ao mesmo tempo |
| Adam Equipment | Swift | Balança computadora de preços | RS232, USB (opcional) | Contínuo (contínuo para PC), 9600 8N1 (a testar) | ligada, várias ao mesmo tempo |
| Avery Berkel | FX110, FX120, FX131 (de encastrar com scanner) | Balança registadora | RS232, FX131 também USB | Mettler Toledo 82/7 = Toledo 8217 (a caixa envia W), 9600 baud, 7E1 | ligada, várias ao mesmo tempo |
| Avery Berkel | FX125 | Balança computadora de preços | RS232 | Checkout-Dialog 06 (9600, 7O1) | ligada, várias ao mesmo tempo |
| Avery Berkel | Xs, XTs, XTi | Balança etiquetadora | Ethernet, Wi-Fi, USB | PLU próprios na balança | ler etiquetas |
| Avery Weigh-Tronix | 7820, 7829, ZP900 | Balança registadora | RS232, 7820 também USB, ZP900 também USB e Ethernet | NCI (a caixa envia W), 9600 baud, 7E1 | ligada, várias ao mesmo tempo |
| Balanzas Marques | BM1000P TOP | Balança registadora (só peso) | RS232 | METTLER (a caixa envia W, Toledo), 9600 baud, 7E1 | ligada, várias ao mesmo tempo |
| Balanzas Marques | BM5 Junior Tower Label, BM500 ETQ | Balança etiquetadora | Ethernet, USB, RS232, BM500 ETQ também wifi | PLU próprios na balança | ler etiquetas |
| Baxtran | TW, VW, XTA, XTA-P | Balança computadora de preços | RS232 | Toledo (a caixa envia W), 9600 baud, 7E1 | ligada, várias ao mesmo tempo |
| Bizerba | CS 300 (também de encastrar) | Balança registadora | RS232 | Checkout-Dialog 06 (9600, 7O1) | ligada, várias ao mesmo tempo |
| Bizerba | K-Class Flex, KH II | Balança etiquetadora | Ethernet | PLU próprios na balança | ler etiquetas |
| Brecknell | 6702U, 6710U, 6720U | Balança registadora | RS232, USB (porta COM virtual) | NCI (a caixa envia W), 9600 baud, 7E1 | ligada, várias ao mesmo tempo |
| CAS | PD-II, PDN, PDI, PDS-B | Balança registadora | RS232, PDN também USB e Bluetooth, PDI também USB | ECR type 2 = Toledo (a caixa envia W), 9600 baud, 7E1 | ligada, várias ao mesmo tempo |
| CAS | CL3000, CL5500, CL7200 | Balança etiquetadora | Ethernet, USB, RS232, CL5500 e CL7200 também wifi | PLU próprios na balança | ler etiquetas |
| Datalogic | Magellan 9300i, 9400i, 9800i (scanner com balança) | Balança registadora | RS232 (porta de balança separada), USB | Mettler Toledo 8217 (a caixa envia W), 9600 baud, 7E1 | ligada, várias ao mesmo tempo |
| Dibal | KS-400, D-POS 400 | Balança registadora | RS232, D-POS 400 também USB | Checkout-Dialog 06 (9600, 7O1) | ligada, várias ao mesmo tempo |
| Dibal | G-325, PI-100 | Balança computadora de preços | RS232 | Checkout-Dialog 06 (9600, 7O1) | ligada, várias ao mesmo tempo |
| Dibal | M-500 (Mistral), D-900, CS-2200 | Balança etiquetadora | Ethernet, Wi-Fi, USB | PLU próprios na balança | ler etiquetas |
| DIGI | DS-781 | Balança computadora de preços | RS232 | DIGI Type B (a caixa envia ENQ), 9600 8N1 | ligada, várias ao mesmo tempo |
| DIGI | SM-120, SM-6000 | Balança etiquetadora | Ethernet, Wi-Fi | PLU próprios na balança | ler etiquetas |
| Dini Argeo | DFW, DGT, 3590E | Balança registadora (só peso) | RS232, USB, Ethernet, DFW e 3590E também wifi | Contínuo (ST,GS, 0.512,kg), 9600 8N1 | ligada, várias ao mesmo tempo |
| Excell Precision | TPE, AM4, FD4-P, FDP4-P, GE4, GEP4 | Balança computadora de preços | RS232 | Contínuo (ST,GS,+0.876kg), 9600 8N1 (exceto TPE, a testar) | ligada, várias ao mesmo tempo |
| Gram | XFOC RS, XFOC+ RS, ZFOC RS | Balança computadora de preços | RS232, USB (cabo da Gram) | Gram (a caixa envia ENQ, depois DC1), 9600 8N1 (XFOC a testar) | ligada, várias ao mesmo tempo |
| Ishida | Uni-3, Uni-5, Uni-7, Uni-9 | Balança etiquetadora | Ethernet, Wi-Fi, USB | PLU próprios na balança | ler etiquetas |
| Kern & Sohn | RPB, RFC | Balança computadora de preços | RS232, USB | Checkout-Dialog 06 (Prot = DLG-06, 9600, 7O1) | ligada, várias ao mesmo tempo |
| Kern & Sohn | RFE (preço), IFB, EOC | Balança computadora de preços / registadora | RS232 | Contínuo, 9600 8N1 | ligada, várias ao mesmo tempo |
| Mettler Toledo | Ariva-S | Balança registadora | RS232, USB (porta COM virtual) | Toledo 8217 (a caixa envia W), 9600 baud, 7E1 | ligada, várias ao mesmo tempo |
| Mettler Toledo | Viva | Balança registadora | RS232 | Toledo 8217, 9600 baud, 7E1 | ligada, várias ao mesmo tempo |
| Mettler Toledo | bPlus, UC Evo | Balança etiquetadora | Ethernet, Wi-Fi | PLU próprios na balança | ler etiquetas |
| Minebea Intec | Signum, Combics, Midrics, Puro | Balança registadora (só peso) | RS232, USB, Signum e Combics também Ethernet | Contínuo (SBI, impressão automática), 9600 8N1 | ligada, várias ao mesmo tempo |
| Ohaus | Aviator 7000 | Balança computadora de preços | RS232 ou USB | Checkout-Dialog 06 (9600, 7O1) | ligada, várias ao mesmo tempo |
| Ohaus | Valor 7000, Ranger 3000, Ranger 4000, Ranger 7000, Defender 3000 | Balança registadora (só peso) | RS232, USB, Ethernet | Contínuo (Auto Print Continuous), 9600 8N1 | ligada, várias ao mesmo tempo |
| Precia Molen | DP400 | Balança registadora | RS232, USB | Checkout-Dialog 06 (9600, 7O1) | ligada, várias ao mesmo tempo |
| Precia Molen | DPOS CR, C 210 B, C 210 C | Balança computadora de preços | RS232 | Checkout-Dialog 06 (9600, 7O1; C 210 a testar) | ligada, várias ao mesmo tempo |
| Precia Molen | Corail 500 | Balança etiquetadora | Ethernet, Wi-Fi | PLU próprios na balança | ler etiquetas |
| Precisa | XB, XT, LS, LX (balanças de precisão) | Balança registadora (só peso) | RS232, LS e LX também USB | Contínuo (modo de impressão CONTINUOUS), 9600 8N1 | ligada, várias ao mesmo tempo |
| Rice Lake | BenchPro BP-S, BenchPro BP-R | Balança registadora | RS232 | BP-S Toledo 8213, BP-R NCI (ambas: a caixa envia W), 9600 baud, 7E1 (a testar) | ligada, várias ao mesmo tempo |
| Rongta | RLS1000, RLS1100 | Balança etiquetadora | Ethernet, RS232, wifi | PLU próprios na balança | ler etiquetas |
| Sartorius | Entris, Quintix | Balança registadora (só peso) | RS232, USB | Contínuo (SBI, impressão automática), 9600 8N1 | ligada, várias ao mesmo tempo |
| Star Micronics | mG-T12, mG-T30, mG-T60, mG-S8200 | Balança registadora (só peso) | RS232, USB (porta COM virtual) | Contínuo, 9600 8N1 (a testar) | ligada, várias ao mesmo tempo |
| T-Scale | PA10, PA15, PEA10 | Balança etiquetadora | Ethernet | PLU próprios na balança | ler etiquetas |
| UWE | ASEP | Balança computadora de preços | RS232 | Contínuo, 9600 8N1 (a testar) | ligada, várias ao mesmo tempo |
| Wedderburn | TSDS983 | Balança registadora | RS232 | DIGI Type B (a caixa envia ENQ), 9600 8N1 (a testar) | ligada, várias ao mesmo tempo |
| Wedderburn | TSDS781T, TSDS782T | Balança computadora de preços | RS232 | DIGI Type B, 9600 8N1 (a testar) | ligada, várias ao mesmo tempo |
| Wedderburn | TSSM120 | Balança etiquetadora | Ethernet, RS232 | PLU próprios na balança | ler etiquetas |
| Wintec | ScalePOS ACS-S60E (caixa com balança integrada) | Balança registadora | COM6 interna (Windows) ou COM4 (Android) | Contínuo, 9600 8N1 (a testar) | ligada |
| Zebra | MP7000, MP72 (scanner com balança) | Balança registadora | RS232 (porta AUX) | SASI = Toledo (a caixa envia W), 9600 baud, 7E1 (a testar) | ligada, várias ao mesmo tempo |
- A&D EK-i e HV-WP: coloque a balança em stream (EK-i:
prt 0; de fábrica está na tecla PRINT) e a caixa em Contínuo com 2400 baud e 7E1 (a configuração de fábrica da A&D). A mensagem éST,+00512.00 g(US= em movimento,OL= sobrecarga). - Adam Equipment Swift: coloque a balança em contínuo para PC (8N1); a caixa fica então em Contínuo.
- Avery Berkel FX110, FX120 e FX131: na balança escolha o protocolo Mettler Toledo 82/7 e coloque a caixa em Consultar (Toledo) com 7E1 (9600 baud). Dialog 06 também funciona. A FX125 (com mostrador de preço) não tem Toledo: aí, Dialog 06. A caixa configura isto sozinha ao escolher o modelo.
- Avery Weigh-Tronix 7820, 7829 e ZP900 e Brecknell 6702U, 6710U e 6720U: NCI, o protocolo da Weigh-Tronix. A caixa envia
W(tal como com Toledo), a balança responde com o peso (1.234KG) e uma linha de estado, que indica se está em movimento, em sobrecarga ou demasiado leve. A caixa fica em Consultar (Toledo) com 7E1 (9600 baud). O USB funciona como porta COM virtual. Na ZP900, ligue a caixa à porta 2 (NCI). Na 67xxU, a balança também pode ser configurada em 8213 (SCP03). - Balanzas Marques BM1000P TOP: na porta COM escolha o protocolo B (METTLER) e 9600 baud, 7 bits de dados, paridade par; a caixa fica então em Consultar (Toledo) com 7E1.
- Baxtran TW, VW, XTA e XTA-P (balanças de cálculo de preço; VW e XTA-P com coluna): no menu RS232 da balança escolha o protocolo Toledo, 9600 baud e 7 bits de dados com paridade par (7E1); a caixa fica então em Consultar (Toledo) com 7E1. A caixa configura isto sozinha ao escolher o modelo. CONT (a balança envia sozinha) também funciona: coloque então a caixa em Contínuo com a mesma velocidade e os mesmos bits de dados. Ligar com o cabo RS232 (9 pinos) ou um cabo USB para RS232.
- Bizerba CS 300: Checkout-Dialog 06 (a especificação da Bizerba): a caixa envia o preço ao quilo e a balança verificada calcula o valor. Se a balança pedir códigos de controlo, obtém-nos da Bizerba ou do fornecedor.
- CAS PD-II, PDN, PDI e PDS-B (a PDS-B, entre outros, na LRE): escolha na balança ECR type 2 (Toledo) e coloque a caixa em Consultar (Toledo) com 7E1 (9600 baud).
- Datalogic Magellan 9300i, 9400i e 9800i: coloque o Scale Interface Type da porta de balança separada em Mettler Toledo 8217 e a caixa em Consultar (Toledo) com 7E1.
- Dibal KS-400, D-POS 400, G-325 e PI-100: na balança escolha o protocolo Checkout_Dialog06 (protocolo 24) e 9600 baud, 7 bits de dados, paridade ímpar (tipo de parâmetro 5); a caixa fica então em Dialog 06. A D-POS 400 também liga por USB.
- DIGI DS-781: coloque a balança em Type B / comando padrão (data transmission
00011); a caixa enviaENQe recebe peso líquido, tara, preço ao quilo e valor. - Dini Argeo DFW, DGT e 3590E: coloque a porta série em envio contínuo (9600 8N1); a caixa fica então em Contínuo.
- Excell Precision TPE (e a 4.ª geração AM4, FD4-P, FDP4-P, GE4, GEP4): coloque a saída RS232 em contínuo (9600 8N1); a caixa fica então em Contínuo.
- Gram XFOC RS, XFOC+ RS e ZFOC RS: protocolo Gram (9600 8N1). A caixa envia
ENQ, a balança respondeACK, a caixa enviaDC1e a balança envia o peso:SOH STX S/U/F teken gewicht eenheid BCC ETX EOT(S= estável,U= em movimento,F= erro; BCC = XOR do estado até à unidade inclusive). Ligar com RS232 ou com o cabo USB da Gram. - Kern & Sohn RPB e RFC: configure na balança
Prot = DLG-06(a ligação à caixa é a opção 965-419); a caixa fica então em Dialog 06. RFE, IFB e EOC: envio contínuo (8N1), a caixa em Contínuo. - Mettler Toledo Ariva/Viva: coloque a balança no protocolo Toledo (8217) e a caixa em Consultar (Toledo) com Bits de dados / paridade = 7E1 (Mettler: 9600 baud, 7 bits de dados, paridade par; a Ariva também liga por USB como porta COM virtual). A caixa configura isto sozinha ao escolher o modelo.
- Minebea Intec Signum, Combics, Midrics e Puro e Sartorius Entris e Quintix: SBI com impressão automática (9600 8N1); a caixa fica então em Contínuo. A mensagem é
N + 0.512 kg; sem unidade, ainda está em movimento. - Ohaus Aviator 7000: nas definições da balança (passo 20) escolha o protocolo Dialog 06; a caixa fica então em Dialog 06. RS232 ou USB, conforme o cabo.
- Ohaus Valor 7000, Ranger 3000/4000/7000 e Defender 3000 (pesagem sem preço): coloque a balança em Auto Print Continuous (9600 baud, 8N1) e a caixa em Contínuo. A balança envia
0.512 kg G; um?depois do peso significa que ainda se está a mexer. A Ranger 7000 também liga por Ethernet (porta TCP 9761). - Precia Molen DP400, DPOS CR e C 210 (as balanças comerciais pertencem à Dibal desde 2025): Dialog 06 (9600 7O1), tal como a Dibal. Se não funcionar com a C 210, experimente Consultar (Toledo) com 7E1.
- Precisa XB, XT, LS e LX: coloque o modo de impressão em CONTINUOUS e 9600 8N1, sem data, hora e ID na linha; a caixa fica então em Contínuo. Sem unidade, o peso ainda está em movimento.
- Rice Lake BenchPro BP-S (Toledo 8213) e BP-R (NCI): a caixa fica em Consultar (Toledo) com 7E1.
- Star Micronics mG-T e mG-S8200: por RS232 ou USB (porta COM virtual, com o controlador da Star) em Contínuo.
- UWE ASEP: RS232 para PC/caixa, a caixa em Contínuo (a testar).
- Wedderburn TSDS983, TSDS781T e TSDS782T são balanças DIGI com número próprio: DIGI (Type B), tal como a DIGI DS-781. Se não funcionar, experimente Consultar (Toledo) com 7E1.
- Wintec ScalePOS ACS-S60E: a caixa funciona no próprio ScalePOS; a balança integrada está em COM6 (Windows) ou COM4 (Android), 9600 8N1. Escolha Contínuo; se não enviar nada, Procurar encontra o protocolo correto.
- Zebra MP7000 e MP72: a porta AUX RS232 vem de fábrica em SASI (9600 7E1, a caixa envia
W): a caixa em Consultar (Toledo) com 7E1. - As balanças de etiquetas destas marcas (Avery Berkel, Balanzas Marques, Bizerba, CAS, Dibal, DIGI, Ishida, Mettler Toledo, Precia Molen, Rongta, T-Scale, Wedderburn) são sistemas autónomos com o seu próprio ficheiro PLU. Ative Digitalizar etiquetas na balança e configure o mesmo código de barras que na balança (EAN-13, início 20–29, PLU e peso ou preço). Os PLU configuram-se na própria balança ou com o software da marca; Enviar para a TS6X e Descarregar ficheiro PLU só existem para a Aclas.
A mesma lista está na caixa em Definições → Balança → Todas as balanças (ACLAS_MODELLEN em packages/shared/src/weegschaal.ts, com a marca por modelo).
Preencher o mínimo possível: ao escolher um modelo, a caixa prepara o resto como a marca o configura de fábrica: ligação Porta COM / USB na primeira porta livre, 9600 baud (A&D: 2400) e o protocolo da marca (Toledo: Aclas com 8N1, e com 7E1 Avery Berkel FX, Avery Weigh-Tronix, Balanzas Marques, Baxtran, Brecknell, CAS, Datalogic, Mettler Toledo, Rice Lake e Zebra; Dialog 06: Avery Berkel FX125, Bizerba, Dibal, Kern & Sohn RPB/RFC, Ohaus Aviator e Precia Molen; DIGI Type B: DIGI e Wedderburn; Gram: Gram; Contínuo: A&D, Adam Equipment, Dini Argeo, Excell Precision, as outras Kern & Sohn, Minebea Intec, as outras Ohaus, Precisa, Sartorius, Star Micronics, UWE e Wintec), e um nome (p. ex. OS6X, OS6X 2). Uma balança PC ou IA passa a Neste dispositivo (p. ex. TS6X (ingebouwd); em Linux na porta interna /dev/ttyS0). Se algo não estiver certo, Procurar encontra a porta, a velocidade e o protocolo corretos.
Neste dispositivo (Aclas Scale Module): a balança mostra o peso aferido; a caixa envia o preço ao quilo e a tara (como pré-tara) e adota o valor calculado pela balança, tal como com Dialog 06.
- Android: a app da Aclas AclasScaleDriver (
com.aclas.aclasscaledriver) normalmente já está na balança; se não estiver, instaleaclas-android/AclasScaleDriver.apk. A app HorecaPOS comunica diretamente com o serviço dessa app, pelo que não é precisa nenhuma biblioteca extra. - Linux: a Aclas não tem Scale Module para Linux. Escolha simplesmente o modelo (p. ex. TS6X): a ligação passa a Neste dispositivo (porta interna) em
/dev/ttyS0, 9600 baud, Toledo. A balança integrada está normalmente em/dev/ttyS0ou/dev/ttyS1; a pesquisa experimenta-as e preenche a porta, a velocidade e o protocolo corretos. Também aqui apenas uma vez.
O software da Aclas vem incluído na caixa: o Scale Module para Windows (aclas-module), o AclasScaleDriver para Android (aclas-android) e o Aclas Sync SDK para Windows e Linux (aclas-sdk). A Aclas permite-nos incluí-los. Os instaladores para Windows e Linux trazem-nos; nada para descarregar ou instalar à parte.
Bluetooth (p. ex. a OS6X): emparelhe primeiro a balança. O Windows transforma-a numa porta COM (Definições de Bluetooth → Mais opções de Bluetooth → Portas COM), o Linux /dev/rfcomm0: introduza essa porta. Na app Android introduz o endereço Bluetooth (00:11:22:AA:BB:CC); a app pede uma vez autorização para Dispositivos próximos e liga-se por Bluetooth SPP.
Balanças IA (reconhecimento de produtos): a câmara reconhece o produto no software da Aclas na balança. A pesagem funciona através do Scale Module (neste dispositivo) ou da porta RS232; as etiquetadoras IA imprimem após o reconhecimento uma etiqueta com código de barras que a caixa lê (como com a TS6X).
Aclas AI Recognition Plugin (balança IA com a caixa instalada, p. ex. a iS6X com Windows): o plugin da Aclas reconhece o produto e escreve o respetivo código de barras na caixa, tal como um leitor (seguido de Enter); o ecrã de pedidos coloca o produto com o peso no pedido. Configure-o assim:
- Na balança, ative Digitalizar etiquetas com o mesmo código de barras que no plugin. Recomendado: começa por
27, PLU de 5 algarismos, peso (tipo Aclas 17): a caixa calcula então ela própria com o preço por quilo. Com o preço (tipo 12, começa por22) também funciona. - Nessa balança, desative Pesar na caixa: o plugin e o Scale Module não podem aceder à balança ao mesmo tempo. O peso vem do código de barras. Se o plugin responder ao Procurar, a caixa propõe esta configuração e não inicia o Scale Module. Sem código de ativação, o plugin pesa e calcula o valor, mas não reconhece produtos.
- No próprio plugin: o código de barras em Scale and Barcode Format Settings → Default Barcode Format (tipo 17) e, nas definições da janela, o ponto onde o plugin clica e escreve o código. Escolha para isso um espaço vazio no ecrã de pedidos, não um botão. O estabelecimento ensina os produtos novos ao plugin na própria balança (treino de IA).
- Atribua um número PLU aos produtos pesáveis e envie os PLU para a balança (Enviar para a TS6X ou o ficheiro PLU); o plugin reconhece pelo número PLU.
- A caixa só deixa o plugin reconhecer enquanto o ecrã de pedidos estiver aberto na própria balança (
POST /aiplugin/resume, ao fechar/aiplugin/suspend, porta 5003 na balança; da primeira vez também EmployeeMode: o ecrã de cliente da balança não mostra produtos). Noutras caixas e tablets e através do portal de gestão não acontece nada. - O plugin arranca sempre em Resume e não consegue comunicar o seu estado. Por isso, o ecrã de pedidos volta a enviar resume a cada 30 segundos; se isso deixar de acontecer (ecrã fechado, plugin ou balança reiniciados), a caixa coloca o plugin em Suspend no espaço de um minuto e mantém-no assim.
- O plugin requer um código de ativação da Aclas por balança (associado ao número de série). Funciona agora no Windows; a versão Android da Aclas virá a seguir (a caixa faz o mesmo aí).
Aclas OS6X (balança POS na caixa, RS232/USB; as outras balanças ligadas funcionam da mesma forma):
- Uma ou mais balanças (no máximo 8), cada uma com um nome (p. ex. Balcão, Bar) e uma ligação própria: porta COM / USB (
COM3no Windows,/dev/ttyUSB0no Linux/Android) com a velocidade, ou rede através de um conversor série-rede (endereço IP e porta TCP, p. ex. 4001). - Protocolo: Consultar (Toledo) = a caixa envia
We a balança responde com o peso (Toledo 8217, como a OS6X costuma estar; também as mensagens de estado não estável/sobrecarga/abaixo de zero) ou Contínuo = a balança envia sozinha o peso continuamente (ST,GS, 0.512kg,US= não estável) ou Dialog 06 (homologado), ver abaixo, ou DIGI (Type B) = a caixa enviaENQe a DIGI responde com estado, peso líquido, tara, preço ao quilo e valor (37 caracteres:<status> <toestand> CR 0<netto> CR 4<tarra> CR U<kiloprijs> CR T<bedrag> CR LF; estado bit 1 = estável, bit 2 = abaixo de zero, bit 3 = sobrecarga, bit 4 = demasiado leve), ou Gram = a caixa enviaENQ, espera porACK, enviaDC1e lêSOH STX <S/U/F> <teken> <gewicht> <eenheid> <BCC> ETX EOT. Configure na balança o mesmo protocolo e a mesma velocidade. Bits de dados / paridade: 8N1 (Aclas, Adam Equipment, DIGI, Dini Argeo, Excell Precision, Gram, Kern & Sohn, Minebea Intec, Ohaus, Precisa, Sartorius, Star Micronics, UWE, Wedderburn, Wintec) ou 7E1 (A&D, Avery Berkel, Avery Weigh-Tronix, Balanzas Marques, Baxtran, Brecknell, CAS, Datalogic, Mettler Toledo 8217, Rice Lake, Zebra); Dialog 06 é sempre 7O1. Consultar também lê NCI (Avery Weigh-Tronix, Brecknell, Rice Lake BP-R): aWa balança respondeLF 1.234KG CR LF S00 CR ETX; a linha de estado (S+ 2 ou 3 bytes) indica se está em movimento (byte 1 bit 0), demasiado leve (byte 2 bit 0) ou em sobrecarga (byte 2 bit 1);^^^^^= sobrecarga,_____= demasiado leve. - Dialog 06 (Checkout-Dialog 06, o protocolo europeu para uma balança homologada ligada a uma caixa): a caixa envia o preço por quilo (e a tara do produto) para a balança; a balança pesa, calcula ela própria o valor e mostra preço por quilo, peso e valor no seu próprio visor (homologado). A caixa assume o peso e o valor; na janela de pesagem aparece "calculado pela balança". Sempre 9600 baud, 7 bits de dados, paridade ímpar, 1 stop bit (a velocidade na definição não conta). Sequência:
EOT STX 01 ESC <kiloprijs 6> ESC ETX(com tara: registo03com 4 dígitos em gramas) → ACK;ENQ→STX 02 ESC 3 ESC <gram 5> ESC <kiloprijs 6> ESC <bedrag 6> ETX; NAK →EOT STX 08 ETX→STX 09 ESC <code> ETX(22 = ainda não pronta, repetir após 100 ms; 20 = em movimento; 21 = levantar primeiro; 30/31 = demasiado leve; 32 = demasiado pesado; 11 = preço inválido). Códigos de controlo: muitas balanças Dialog 06 pedem de vez em quando (p. ex. a cada 30 pesagens) os códigos de controlo do software da caixa (registo 11 → registo 10). Esses códigos e a forma como são calculados só são fornecidos pelo fabricante da balança ao fornecedor da caixa. Introduza-os em Códigos de controlo (pares de 4 caracteres hexadecimais, p. ex.74AE 1B2C); a caixa envia-os quando a balança os pede. Se a balança calcular com um número variável (Z) e os códigos fixos não funcionarem, a caixa avisa; peça então ao fornecedor para configurar a balança sem este controlo, ou use Toledo. - As balanças ficam ligadas ao PC ou dispositivo onde corre o servidor da caixa; todas as caixas e tablets pesam através do servidor da caixa e escolhem na janela de pesagem qual a balança a usar. Testar pesa uma vez.
- A rede funciona em qualquer lado.
- Introduzir também o peso manualmente: ligado = mesmo com balança pode digitar-se o peso; sem OS6X é sempre possível.
Digitalizar etiquetas (caixa na balança: Aclas TS6X, outra balança PC ou IA, a série LS ou a LH15X; balança + impressora de etiquetas, uma por estabelecimento):
- Endereço IP: só é preciso para Naar TS6X sturen. Pesar e digitalizar etiquetas funcionam sem ele. Se a caixa funcionar na própria TS6X, deixe-o vazio: a caixa envia então para si própria (127.0.0.1). Se a mesma balança também pesar na caixa, as duas caixas ficam na mesma balança (a pesquisa configura-o assim).
- Digitalizar etiquetas: digitalizar etiquetas no ecrã de pedidos. Defina o aspeto do código de barras, tal como na TS6X: começa por (20–29, por defeito
28), número de algarismos do PLU (4, 5 ou 6) e depois o peso em gramas ou o preço em cêntimos, mais o dígito de controlo (EAN-13). Por baixo da definição há um exemplo. - Números PLU: em Definições → Produtos, um produto pesável recebe um preço por quilo, eventualmente uma tara e um número PLU (único). O número PLU escolhe-se de uma lista (Sem PLU, próximo livre, Outro número…); ao marcar Preço por quilo, o próximo número livre já aparece preenchido. Só é necessário para as etiquetas e os PLU da TS6X: sem TS6X pode ficar Sem PLU.
- O envio direto funciona em Windows e Linux; em Android e macOS use o ficheiro PLU. Na primeira instalação, verifique os nomes dos campos do ficheiro PLU e os códigos em
aclas-plu.ps1com o manual do SDK da balança fornecida (um único sítio para ajustar:ACLAS_PLU_KOLOMMENempackages/shared/src/weegschaal.ts).
Portal de gestão: a mensagem ao portal tem a função Balança (A&D, Aclas, Adam Equipment, Avery Berkel, Avery Weigh-Tronix, Balanzas Marques, Baxtran, Bizerba, Brecknell, CAS, Datalogic, Dibal, DIGI, Dini Argeo, Excell Precision, Gram, Ishida, Kern & Sohn, Mettler Toledo, Minebea Intec, Ohaus, Precia Molen, Precisa, Rice Lake, Rongta, Sartorius, Star Micronics, T-Scale, UWE, Wedderburn, Wintec, Zebra) com ligado/desligado e as balanças por modelo (p. ex. TS6X (op dit apparaat), 2x OS6X, PS1CX, Ariva-S, DS-781, LS6RX, 5 producten per kilo); sem endereços IP, portas COM ou endereços Bluetooth.
Lei de metrologia: uma balança usada para vender tem de estar homologada (classe III, como a OS6X). Com Toledo/contínuo, a caixa calcula com o peso dado pela balança; com Dialog 06, é a balança homologada que calcula o preço.
Código: packages/shared/src/weegschaal.ts (protocolos, etiquetas, ficheiro PLU), apps/pos-server/src/lib/weegschaal.ts e routes/weegschaal.ts; ecrãs WeegschaalInstellingen.tsx e WeegDialoog.tsx.
Thuisbezorgd.nl / Takeaway.com
Os pedidos da Thuisbezorgd.nl chegam diretamente à caixa, sem intermediários (sem Deliverect, HubRise ou semelhantes): o JET Connect da Just Eat Takeaway comunica com o portal de gestão da Pin Voordeel, e a caixa vai buscar aí as suas mensagens.
Na Bélgica a plataforma chama-se Takeaway.com: a mesma empresa (Just Eat Takeaway) e a mesma integração. Num estabelecimento belga, os ecrãs, as notificações, a comanda e o portal de gestão mostram sempre Takeaway.com em vez de Thuisbezorgd.nl. Abaixo, Thuisbezorgd refere-se a ambos.
Porquê através do portal? A caixa só precisa de PORTAAL_URL e PORTAAL_SLEUTEL (ver Portal de gestão) e só faz pedidos de saída.
Configurar (Definições → Plataformas de entregas → Thuisbezorgd.nl / Takeaway.com, permissão Configurar estabelecimento, pagamentos e impressoras; antes ficava em Definições → Estabelecimento):
- Ligar Usar Thuisbezorgd (tem efeito imediato, independentemente de Guardar).
- Registar na Thuisbezorgd. Depois, o estabelecimento escolhe na Thuisbezorgd (Partner Hub ou gestor de conta) OptimumPOS / Pin Voordeel como caixa. A JET inicia então uma sessão de onboarding; o portal associa a caixa registada (por código postal e nome; caso contrário a Pin Voordeel associa a sessão manualmente no portal), envia a configuração e pede o menu à caixa. Depois disso a integração fica ativa.
- Marcar os produtos que podem ser pedidos via Thuisbezorgd (por categoria ou individualmente), eventualmente com uma descrição para a Thuisbezorgd. O menu (preço, opções como modifiers, alergénios, IVA) é enviado automaticamente; PLU = id do produto/opção. Após uma alteração no catálogo, a caixa atualiza o menu em 30 segundos; só "esgotado"/"novamente disponível" passa pela API de disponibilidade.
- Horário Thuisbezorgd: separado para entrega e take-away (p. ex.
16:00-22:00, vários blocos separados por vírgula). É guardado com o botão Guardar horário por baixo e enviado ao Thuisbezorgd como service times assim que a integração estiver pronta. - Temporariamente fechado / Reaberto (nos Países Baixos/Bélgica reabre o mais tardar na manhã seguinte às 07:00).
Pedidos. Um pedido torna-se um pedido normal sem mesa (bezorgen ou afhalen, nome do grupo TB <ordernummer>) com os preços que o cliente pagou, mais taxa de entrega/taxa de serviço como linha própria e o desconto da Thuisbezorgd como linha de desconto; se mesmo assim o total não bater certo, é acrescentada uma linha "Diferença Thuisbezorgd". O talão de cozinha segue logo para a cozinha/bar (pode ser desligado). A caixa confirma em segundos ao portal, que o comunica à JET; se isso não acontecer em 3 minutos ou se a caixa estiver offline, a JET recebe "falhou" e o estabelecimento recorre ao Orderpad.
Botão Thuisbezorgd na barra superior (com o número de pedidos em curso): lista, cliente e morada, hora de pronto/entrega e a linha temporal (track & trace): recebido, estafeta a caminho do estabelecimento, estafeta no estabelecimento, a caminho do cliente, entregue (da JET), mais passos próprios (em preparação, pronto, a caminho/entregue em entrega própria, levantado). Um mapa em tempo real com o estafeta não é disponibilizado pelo JET Connect à caixa; o cliente vê-o na app da Thuisbezorgd. Novo pedido, cancelamento e "estafeta no estabelecimento" mostram uma barra laranja e emitem um som. Concluir (pago online) cobra com a forma de pagamento online; se o cliente pagar à porta, basta cobrar normalmente. Um cancelamento da Thuisbezorgd anula o pedido e imprime um talão de cozinha "CANCELADO".
Código: apps/pos-server/src/lib/thuisbezorgd.ts, routes/thuisbezorgd.ts; ecrãs ThuisbezorgdInstellingen.tsx e Thuisbezorgd.tsx. Lado do portal: horecapos-portaal/src/thuisbezorgd.mjs (ver o README do portal).
Contagem no portal de gestão. O número de pedidos Thuisbezorgd por dia é incluído na comunicação ao portal de gestão (verkoopTelling em lib/portaal.ts): recebidos e não cancelados, no dia em que chegaram. Um pedido Thuisbezorgd cobrado na caixa (também com Concluir (pago online)) não volta a contar aí em take-away/entrega. Os dados da Thuisbezorgd ficam na base de dados da caixa e por isso são incluídos normalmente nas cópias de segurança da caixa.
Loja online e pedidos online
Cada estabelecimento pode ter a sua própria loja online: um site de encomendas (e app) com a sua própria imagem para take-away, entrega, pedidos à mesa com código QR e reservas, com pagamento online (MultiSafepay ou Buckaroo) ou pagamento no levantamento/na entrega. A loja online é um projeto separado, horecapos-webshop (Node.js, ver o README lá), e corre no mesmo servidor que o portal de gestão.
Ligar e configurar faz-se na gestão da loja: botão Gerir loja online no portal do cliente (proprietário) ou na instalação no portal de gestão (Pin Voordeel). Aí encontra ligar/desligar, o endereço web (<zaak>.<webshopdomein> ou um domínio próprio), imagem (cores, logótipo, imagem de cabeçalho, tipo de letra), horários de funcionamento e faixas horárias para take-away e entrega, zona de entrega (códigos postais, raio ou uma área no mapa, com custos e mínimo), pagamentos, códigos de desconto, textos, idiomas, códigos QR para as mesas, reservas e a app (instalável como PWA; uma app Android através de uma Trusted Web Activity), e as notificações push (opcionais, desligadas por predefinição): o cliente ativa uma notificação na página do seu pedido e recebe uma notificação push quando o pedido está pronto ou a caminho; quem quiser recebe também de vez em quando uma promoção, que o estabelecimento envia a partir da gestão da loja (separador Notificações push). Funciona em Android e computadores (Chrome, Edge, Firefox, Samsung Internet), na app Android, e em iPhone e iPad (iOS 16.4 ou mais recente) se o cliente adicionar a loja online ao ecrã principal. Não é enviado nenhum SMS nem e-mail e não é guardado nenhum nome nem número. Detalhes no README da loja online.
Menu. A caixa envia o menu automaticamente: todos os produtos ativos (não ao quilo), por grupo de produtos, com preço, opções de escolha, alergénios, esgotado e a foto do produto, mais as mesas e os dados do estabelecimento, e quais os canais de marketing ligados (para a caixa "receber ofertas" no pagamento, ver Marketing por SMS e e-mail). Isto acontece no arranque, assim que a loja online é ligada, até 30 segundos após uma alteração no catálogo e poucos segundos após uma alteração em Definições → Estabelecimento, como o marketing ou o cartão de cliente (ou com Enviar menu agora). Para manter um produto fora da loja online, use a gestão da loja (ocultar) ou a base de dados com artikel.webshop = false.
Pedidos. Take-away e entrega tornam-se um pedido normal sem mesa (nome de grupo WEB <bestelnummer>) com os preços que o cliente viu, mais taxa de entrega e custos de transação como linhas próprias e um código de desconto como linha de desconto; se mesmo assim o total não bater certo, é adicionada uma linha "Diferença loja online". A gorjeta do cliente não conta como faturação: é adicionada ao pagamento como gorjeta em Concluir (pago online). Os pedidos à mesa (código QR) vão para a conta aberta dessa mesa (pago online: como grupo próprio nessa mesa). O talão de cozinha segue logo para a cozinha/bar (pode ser desligado na janela Loja online). A caixa confirma em segundos com o número do talão; o cliente recebe então "recebido" e um e-mail. Se a caixa estiver offline, a loja online não aceita pedidos (o cliente vê-o de imediato) e envia um e-mail ao estabelecimento se um pedido ficar demasiado tempo à espera. As reservas da loja online entram em Reservas (só se as reservas estiverem ligadas na caixa). Se houver um máximo por faixa horária (Entrega e faixas horárias), os pedidos da loja online com uma hora nessa faixa também contam.
Bélgica (caixa negra). Um pedido da loja online vai logo como pedido (signOrder) para a caixa negra, antes da ordem de trabalho, tal como Enviar pedido na caixa. Se falhar, não entra na caixa e a loja online volta a enviá-lo mais tarde. O que ainda não foi testado com a caixa negra fica desativado no menu da loja online (vales-oferta, códigos de desconto, a crédito, no quarto, menus, opções com suplemento, happy hour e gorjeta) e é recusado se uma loja online antiga o enviar mesmo assim. Concluir verifica gorjeta, a crédito e no quarto tal como a caixa.
Debitar no quarto (ligação ao hotel, Definições → Hotel → Self-service → Na loja online): o menu recebe kamer: { maxBedrag }; a loja online envia betaling.wijze = "kamer" com kamer e achternaam. A caixa verifica o hóspede junto do software hoteleiro (não à mesa, não com vale-oferta) e guarda-o com o pedido; Concluir (debitar no quarto) cobra no quarto e lança o talão na conta do hotel. Fatura agrupada com pagamento a crédito: o talão fica então como movimento em aberto.
Botão Loja online na barra superior (com o número de pedidos em curso): lista, cliente e morada, hora pretendida ou "o mais rápido possível", forma de pagamento e a cronologia. O cliente vê os passos Em preparação, Pronto e A caminho em tempo real na loja online (e por e-mail, se o estabelecimento quiser). Cobrado na caixa = Concluído; Cancelar anula só as linhas desse pedido online, imprime um talão de cozinha "CANCELADO", e a loja online reembolsa um pedido pago online. Chegou, não compareceu ou cancelado numa reserva também é enviado de volta para a loja online. Um novo pedido ou reserva mostra uma barra laranja e emite um som.
Código: apps/pos-server/src/lib/webshop.ts, routes/webshop.ts; ecrã Webshop.tsx. Lado do portal: horecapos-portaal/src/webshop.mjs.
Caixa e loja online iguais (cada parte liga-se em separado, desligado por predefinição; uma loja online mais antiga ignora os campos novos). O que está ligado na caixa também funciona na loja online:
- Happy hour: a loja online cobra o mesmo preço que a caixa nesse momento (preço normal riscado e o nome do happy hour), também com época.
- Períodos do dia e tipo de pedido (se estiverem ligados): a loja online só mostra o que está à venda agora, e em take-away e entrega o preço e os produtos dessa escolha (na mesa: no local). O menu recebe por produto
prijzen(afhalen,bezorgen) enietBij, e a listadagdelen. - Menus: o cliente escolhe os pratos (fixos e à escolha, com as suas opções); na caixa aparece como linha de menu com os pratos por baixo e o preço do menu distribuído (o IVA por prato fica correto). Pratos que só pertencem a um menu são enviados como
menuArtikelen. Uma loja online antiga sem escolhas: o menu aparece no talão como produto normal, como antes. - Sem stock = esgotado, incluindo opções de escolha com um ingrediente que acabou.
- Alergénios: desligados na caixa = não aparecem na loja online.
- Cartão de cliente: ao finalizar o pedido, o cliente pode acumular pontos (pelo número de telefone ou e-mail); a caixa associa o cliente ao pedido e os pontos são somados ao cobrar (o resgate é feito no estabelecimento). A loja online mostra o saldo.
- Vales-oferta (Definições → Estabelecimento → Cartões-presente → Vender vales-oferta na loja online, só com saldo): o cliente compra um vale e paga online; a caixa cria o vale, que fica logo ativo, e o código volta à loja online através do portal (estado e e-mail). Se Vale-oferta como forma de pagamento também estiver ligado, o cliente pode escolher no take-away "com um vale-oferta no estabelecimento".
- Códigos de desconto (Definições → Códigos de desconto, com o interruptor em Estabelecimento): por código na caixa e/ou na loja online; a utilização conta para ambos em conjunto.
- Pausa e ocupado: botão Loja online na barra superior: Pausar loja online (com um texto para o cliente) e Ocupado (minutos extra). Chega à loja online em poucos segundos.
- Reservas online com as regras da caixa (Definições → Estabelecimento → Reservas): máximo de pessoas, dias de antecedência, intervalo de reserva, antecedência mínima e os horários por dia da semana.
- Entrega e faixas horárias: ver A loja online segue a caixa em Entrega e faixas horárias.
- All-you-can-eat à mesa (Definições → Estabelecimento → All-you-can-eat → Também ao pedir à mesa através do código QR): se houver um menu fixo a decorrer na mesa, o cliente vê os pratos incluídos como Incluído por € 0, com as rondas, o máximo por pessoa, o tempo de espera e o limite de tempo. O resto paga normalmente; tudo vai para a conta da mesa. Se o estado da mesa acabou de mudar, a caixa recusa o pedido e o cliente pede novamente.
- A crédito (Definições → Faturas → Pagamento a crédito → Também na loja online): ver Na loja online em Pagamento a crédito.
- Online na lista de espera (Definições → Estabelecimento → Lista de espera): ver Online na lista de espera em Lista de espera para clientes sem reserva.
- Upsell: "Mais alguma coisa?" (opcional, por predefinição desligado; Definições → Estabelecimento → Cobrar → Upsell na loja online): escolha as categorias (p. ex. bebidas, molhos, sobremesas) e quantas sugestões. Na loja online aparecem então, no cesto e ao cobrar, produtos dessas categorias que ainda não estão no cesto (só o que está à venda agora, não esgotado e sem escolhas obrigatórias); o cliente adiciona-os com um toque. Nenhuma categoria escolhida = desligado, como antes. O quiosque tem o seu próprio upsell (ver Quiosque de self-service).
Para isso, o menu da loja online tem versie: 2 com os campos menuArtikelen, allergenenAan, happyhours, menus, klantenkaart, cadeaubon, kortingscodes, pauze, drukteMin, volgt, bezetting, reserveren.online, ayce, opRekening, wachtlijst e upsell. A confirmação ao portal tem ainda cadeaubonnen (códigos), klant (pontos) e plek (lista de espera).
Contagem no portal de gestão. Take-away e entrega através da loja online contam à parte (webshop, webshopGeannuleerd em verkoopTelling), no dia em que chegaram, e não voltam a contar em take-away/entrega. Os pedidos à mesa contam normalmente como mesa.
Pagamento com cartão e terminais de pagamento
Definições → Pagamentos (só administrador):
- Terminais: por terminal, um nome, o ID do terminal e a chave API própria do PinPortal (Klant → Bewerk klant → Overige → API Keys). Depois de guardar, só fica visível o fim da chave; ela nunca volta ao navegador. Com Testar ligação verifica a chave e o terminal.
- Modo de teste: simula um terminal (aprovado após ±7 s; um valor que termine em 13 cêntimos é recusado). Útil para testar sem terminal de pagamento.
Se houver pelo menos um terminal com chave API (ou o modo de teste estiver ligado), Cobrar → Cartão / Bancontact inicia automaticamente o pagamento no terminal, pelo valor calculado pelo servidor.
Enquanto a integração estiver ligada, o servidor só aceita "cartão" com um pagamento no terminal aprovado para exatamente esse pedido e esse valor. Os pedidos seguem, tal como no PHP-SDK oficial, como formulário normal, com a API de reserva (api-backup.pinvandaag.com) se a API principal não responder. Cada resposta da API aparece com [pin] na janela do servidor, útil em caso de avarias. Um pagamento aprovado que ainda não foi processado (p. ex. tablet desligado) é recuperado na cobrança seguinte desse pedido.
Gorjeta (cartão, dinheiro e vale-oferta)
No ecrã de cobrança há, em cada forma de pagamento, uma fila de botões de gorjeta: Nenhum, 5%, 10%, 15% (arredondado para cima a 10 cêntimos), Arredondamento (para o euro inteiro seguinte) e Outro valor. Com cartão, o cliente paga valor + gorjeta de uma só vez no terminal; em dinheiro, a gorjeta conta para o troco e para a gaveta. No talão aparece o valor pago com cartão com "dos quais gorjeta" por baixo; o TOTAL e o IVA mantêm-se, porque a gorjeta não é faturação. No relatório X/Z a gorjeta aparece por forma de pagamento e como "Total de gorjetas".
O administrador configura os botões de gorjeta em Definições → Estabelecimento → Gorjeta: ligado/desligado, que percentagens (no máximo 4, p. ex. "5, 10, 15"), se o botão "Arredondamento" aparece e com que formas de pagamento (cartão, dinheiro, vale-oferta) é possível dar gorjeta. "Nenhum" e "Outro valor" aparecem sempre.
"Arredonde para …" aparece sempre, em cada forma de pagamento, mesmo com os botões de gorjeta desligados (sem definição): o cliente arredonda ele próprio a conta para cima e a diferença é gorjeta. Há botões com o euro inteiro seguinte e os valores redondos seguintes (p. ex. € 28,00 → 29, 30, 40; € 44,00 → 45, 50, 60) e Outro total para digitar o total. Tocar de novo no botão escolhido = não arredondar. No máximo € 500 de gorjeta (o mesmo limite do servidor da caixa).
Sem internet
A caixa funciona na rede local e não precisa de internet; só o pagamento com cartão através da integração precisa. Se o estabelecimento não tiver internet, aparece na barra superior Sem internet · cartão manual (verificado a cada minuto). No ecrã de cobrança aparece então, e também após um início falhado no terminal, o botão Já pago no terminal: cobre o valor no próprio terminal e registe-o assim.
Plantas das salas e mesas
Definições → Plantas das salas (só administrador):
- Adicionar plantas (p. ex. Sala, Esplanada, Jardim de inverno), mudar o nome, eliminar e alterar a ordem com ◀ ▶.
- Adicione mesas com os botões por cima da grelha (redonda, quadrada, comprida, mesa alta) e arraste-as com o rato ou o dedo para o seu lugar. O canto azul de uma mesa selecionada torna-a maior ou menor.
- Por mesa, defina nome/número, número de pessoas (as cadeirinhas à volta da mesa contam) e forma; duplicar ou eliminar.
- Com o teclado: as setas movem (Shift = passo maior), Delete elimina.
- As alterações só têm efeito após Guardar; "Desfazer" repõe tudo.
- Uma mesa ou planta com um pedido em aberto não pode ser eliminada. As mesas eliminadas continuam guardadas nos pedidos antigos.
Copiar a configuração para um segundo estabelecimento
Definições → Importar/exportar (só o administrador). Depois de configurar completamente um estabelecimento, exporte a configuração para um ficheiro .json e importe-o na caixa do segundo estabelecimento. Pode escolher por componente:
- Produtos: categorias, produtos, preços (também por tipo de pedido), IVA, opções, menus, happy hours (com época), períodos do dia, alergénios, ingredientes/receitas, cartões de carimbos, os menus all-you-can-eat e as fotos de produtos.
- Plantas das salas: salas e mesas.
- Outras definições: todas as opções do estabelecimento, impressoras (sem endereço IP), permissões por função e contabilidade.
Nunca são incluídos: nome, morada, código postal, localidade, telefone, e-mail, número de IVA e linha final do talão do estabelecimento, o e-mail para o relatório Z, terminais de pagamento e as suas chaves, pessoal e PINs, e toda a faturação, talões, clientes e quantidades em stock.
A importação é fortemente protegida: um grande aviso vermelho, um visto "Compreendo...", de novo o PIN próprio do administrador, nenhum pedido em aberto, o mesmo país (taxas de IVA) e antes disso uma cópia de segurança automática. A importação é feita numa única transação: se algo correr mal, nada muda. Produtos, categorias, ingredientes e mesas existentes não são apagados, mas retirados da caixa (como em Eliminar), para que os talões e relatórios antigos continuem corretos.
Importar de outra caixa
Mudar de caixa sem voltar a escrever tudo. Sempre disponível (sem interruptor): em Definições → Importar/exportar (só o administrador) encontra-se a secção Importar de outra caixa.
- O quê: produtos (nome, preço com IVA, IVA, grupo, código/PLU, stock) ou clientes do cartão de cliente (nome, telefone, e-mail, pontos, morada, código postal, localidade; o nome próprio e o apelido são juntos).
- Ficheiro: uma exportação da sua caixa anterior (Dobizzz/DoPos, Lightspeed, MplusKASSA, unTill, Tebi ...) ou uma lista própria: CSV (; , tab ou |; UTF-8 ou Excel em neerlandês) ou Excel (.xlsx), a primeira folha, com os nomes das colunas na primeira linha. Um ficheiro .xls antigo deve ser guardado primeiro como .xlsx ou CSV.
- Pré-visualização: a caixa reconhece as colunas pelo nome (Omschrijving, Verkoopprijs incl. BTW, BTW %, Omzetgroep, Artikelnummer, GSM, Spaarpunten ...) e mostra as primeiras 10 linhas. Se uma coluna não estiver certa, escolha-a. Nada muda até Importar.
- Produtos: preços como 3,50, € 3,50 ou 1.234,50; IVA como 21, 9%, 0,09, alta ou baixa (desconhecida ou vazia: a taxa que escolher, por predefinição a mais alta). As categorias que ainda não existem são criadas (sem grupo: "Importado").
- Stock (coluna Voorraad, Stock, Aantal ...): se Controlar stock estiver ligado (Definições → Estabelecimento), o produto controla o stock e o stock passa a ser essa quantidade (uma contagem no histórico do stock, motivo "Importado"). Vazio: o stock fica como está.
- Ficheiro de exemplo (CSV): uma lista para preencher você mesmo (Naam;Productgroep;Prijs;Btw;Voorraad;Code), por exemplo no Excel.
- Clientes: os pontos são adicionados como correção "Importado de outra caixa" (visível no histórico). O consentimento para SMS ou e-mail não é transferido (RGPD): peça-o novamente. Ative primeiro o cartão de cliente.
- Os produtos existentes (mesmo código ou, sem código, mesmo nome) e os clientes existentes (mesmo telefone ou e-mail) são ignorados, ou atualizados se marcar essa opção (nos produtos: nome, preço, IVA, grupo e stock). As linhas duplicadas no ficheiro são consideradas uma só vez.
- No fim: quantos novos, atualizados e ignorados, com o que estava errado em cada linha (ex. sem preço). No máximo 5000 linhas de cada vez. No registo aparece como "Configuração importada".
Idiomas (42, entre eles turco, árabe, darija, berbere, polaco, búlgaro, húngaro, russo, sérvio, albanês, persa, tigrínia, amárico, somali, papiamento, sranan tongo, hindi, urdu, indonésio, vietnamita, siríaco-aramaico, chinês e ucraniano)
Ao lado do botão © no canto inferior direito, cada ecrã tem um botão com o idioma (p. ex. NL e a bandeirinha). Toque nele para abrir o menu: os idiomas aparecem por ordem alfabética, com o nome no próprio idioma antes da bandeira: Bahasa Indonesia (indonésio), Čeština (checo), Darija (árabe marroquino em escrita latina), Deutsch, English, Español, Français, Hrvatski (croata), Italiano, Kurdî (Kurmancî), Latviešu (letão), Lietuvių (lituano), Magyar (húngaro), Nederlands, Papiamentu (papiamento), Polski, Português, Română, Shqip (albanês), Slovenčina (eslovaco), Soomaali (somali), Sranantongo, Srpski (sérvio, em escrita latina), Tarifit (berbere rifenho), Tiếng Việt (vietnamita), Türkçe, em seguida em escrita cirílica Български (búlgaro), Русский (russo) e Українська (ucraniano), depois os idiomas em escrita árabe: اردو (urdu), الدارجة (darija), العربية (árabe), دری (dari), فارسی (persa, farsi), پښتو (pashto) e کوردی (سۆرانی) (curdo sorani), depois em escrita siríaca ܣܘܪܝܝܐ (siríaco-aramaico, Suryoyo), em devanágari हिन्दी (hindi), em escrita ge'ez ትግርኛ (tigrínia) e አማርኛ (amárico), em escrita tifinagh ⵜⴰⵎⴰⵣⵉⵖⵜ (tamazight, berbere), e por último 中文(简体)(chinês, escrita simplificada). Todos os ecrãs, botões, avisos e mensagens de erro do servidor da caixa são traduzidos.
- Por funcionário: o idioma escolhido é guardado no funcionário com sessão iniciada (
gebruiker.taal). Se alguém iniciar sessão com outro idioma, a caixa muda de imediato. No próprio dispositivo é memorizado o último idioma usado, para que também o ecrã do PIN já apareça nesse idioma. Se escolher um idioma (no ecrã do PIN ou com sessão iniciada) e iniciar sessão (de novo) dentro de 10 minutos, essa escolha prevalece e passa a ser o idioma desse funcionário. Mudar de idioma recarrega o ecrã; a sessão mantém-se e a conta aberta continua aberta. - Primeira vez num dispositivo: se um tablet ou PC ainda não tiver idioma definido, a caixa arranca no idioma escolhido durante a instalação. Se não tiver sido escolhido nenhum, usa o idioma do próprio dispositivo (navegador ou sistema operativo, também na app Android) e, se esse não estiver disponível, neerlandês. Depois, cada dispositivo memoriza a sua própria escolha.
- Europa de Leste: polaco, checo, eslovaco, húngaro, romeno, búlgaro, croata (também para bósnio), lituano, letão, ucraniano e russo: as línguas da maioria dos trabalhadores migrantes da Europa Central e de Leste nos Países Baixos e na Bélgica.
- Balcãs: sérvio (em escrita latina, como o escreve a maioria dos sérvios nos Países Baixos e na Bélgica; também para montenegrino) e albanês (Albânia, Kosovo e Macedónia do Norte).
- Corno de África: tigrínia (Eritreia) e amárico (Etiópia), ambos em escrita ge'ez, e somali (em escrita latina).
- Irão: persa (farsi). Um dispositivo em persa do Afeganistão (fa-AF) recebe dari, os restantes farsi.
- Países Baixos Caribenhos e Suriname: papiamento (Papiamentu, ortografia de Curaçao e Bonaire; também para Aruba) e sranan tongo.
- Ásia: hindi (devanágari; também para sarnami hindustani), urdu (da direita para a esquerda), indonésio e vietnamita (escrita latina, também no talão).
- Marroquino: darija (árabe marroquino, a língua falada) em escrita árabe e também em escrita latina (como muitos neerlandeses de origem marroquina escrevem nas mensagens), além do árabe padrão. Berbere: tarifit (rifenho, em escrita latina; a maioria dos neerlandeses de origem marroquina vem do Rif) e tamazight marroquino padrão em escrita tifinagh.
- Da direita para a esquerda: árabe (árabe padrão), urdu, darija em escrita árabe, dari e pashto (Afeganistão), persa (farsi, Irão), curdo sorani (Iraque/Irão) e siríaco-aramaico (Suryoyo, em escrita siríaca). Valores, códigos e as teclas numéricas continuam da esquerda para a direita. O curdo kurmancî (Turquia/Síria) usa escrita latina.
- Talão de cozinha (cozinha/bar): por padrão no idioma do funcionário que envia o pedido. Por impressora, em Definições → Impressoras → Idioma do talão de cozinha, também pode ser um idioma fixo (p. ex. o do cozinheiro), em escrita latina: Nederlands, Čeština, Darija, Deutsch, English, Español, Français, Hrvatski, Italiano, Kurdî, Latviešu, Lietuvių, Magyar, Papiamentu, Polski, Português, Română, Shqip, Slovenčina, Soomaali, Sranantongo, Srpski, Tarifit, Tiếng Việt, Bahasa Indonesia ou Türkçe. O búlgaro, o russo e o ucraniano saem no talão de cozinha em transcrição latina (a impressora de talões não tem cirílico). A escrita árabe, siríaca, devanágari, ge'ez e tifinagh e o chinês não podem ser impressos numa impressora de talões: nesse caso o darija sai em escrita latina, o tamazight como tarifit e os restantes em neerlandês. Os textos fixos (MESA, Prato, AGUARDA chamada, CHAMAR PRATO, IMPRESSO MAIS TARDE, Take-away, Balcão) são traduzidos; os nomes dos produtos e as observações ficam como foram introduzidos. As impressoras que estavam em neerlandês passam a seguir o funcionário.
- Talão de venda (para todos os clientes): por padrão em neerlandês, independentemente do idioma dos ecrãs. Escolhe outro idioma em Definições → Estabelecimento → Idioma do talão de venda (logo abaixo do texto no fundo do talão), só idiomas em escrita latina. Isto aplica-se também à pró-forma, ao talão de devolução, à cópia, ao vale-oferta e ao talão por e-mail. Os valores, os códigos de IVA, o número de IVA do estabelecimento e as linhas fiscais (Bélgica) mantêm-se; um texto próprio no fundo do talão fica tal como o estabelecimento o escreveu.
- Produtos, categorias e opções têm o nome que o estabelecimento lhes dá; não são traduzidos.
- O idioma por funcionário também se define em Definições → Pessoal.
- A introdução e o manual também estão disponíveis em todos estes idiomas. Pelo botão © abrem no idioma da caixa; no topo escolhe outro idioma com as bandeiras (isso não altera nada na caixa).
Para programadores: cada texto visível está no código como vt('Nederlandse tekst') (apps/pos-web/lib/i18n.ts); o texto neerlandês é a chave. As traduções estão em apps/pos-web/lib/vertalingen/<taal>.ts. Se faltar uma tradução, a caixa mostra o neerlandês; o teste i18n (pos-web) verifica se cada texto está traduzido em todos os idiomas e se os marcadores {0} estão corretos. As mensagens do servidor da caixa ficam em neerlandês e são traduzidas no navegador (também com {0}, p. ex. um nome de produto na mensagem).
Configurar impressoras
Uma caixa nova não tem impressoras. Inicie sessão como administrador (demo: 1111) e escolha Definições na barra superior.
- Impressoras: adicione tantas impressoras quantas o estabelecimento tiver (p. ex. caixa, cozinha, bar, pizza), cada uma com uma ligação (normalmente a rede: endereço IP e porta 9100) e largura do papel. Com Impressão de teste verifica se funciona. No topo escolhe qual a impressora que imprime o talão e pró-forma (e abre a gaveta). Por impressora escolhe também o idioma do talão de cozinha (ver Idiomas); o talão de cliente fica em neerlandês.
- Ligação por impressora:
- Rede (endereço IP): endereço IP e porta (normalmente 9100). Sempre funcionou assim, e continua a funcionar assim: as impressoras existentes ficam automaticamente em rede.
- USB: no Linux o dispositivo, por exemplo
/dev/usb/lp0. No Android a impressora USB ligada ao dispositivo (cabo OTG; vazio = a primeira impressora USB). No Windows e no macOS escolha Impressora do sistema. - Série (COM / ttyUSB): uma porta COM (Windows),
/dev/ttyUSB0ou/dev/ttyS0(Linux, Android) ou/dev/cu.…(macOS), com a velocidade (normalmente 9600, 19200 ou 38400 baud). Também para uma impressora Bluetooth que o Windows ou o Linux emparelha como porta COM ou/dev/rfcomm0. - Bluetooth: na app HorecaPOS no Android, com o endereço Bluetooth da impressora emparelhada (p. ex. uma impressora de talões móvel). Emparelhe primeiro a impressora nas definições de Bluetooth do Android.
- Impressora do sistema (Windows / CUPS): a impressora tal como o Windows ou o CUPS (Linux, macOS) a conhece, com o seu próprio controlador ou como Generic / Text Only. O talão segue em bruto (RAW) para a impressora, sem formatação pelo controlador.
- Integrada (Sunmi, iMin ...): a impressora da própria caixa Android.
- Procurar mostra as impressoras e portas que a caixa vê. Escolha uma e o endereço fica preenchido.
- Protocolo: ESC/POS (quase todas as impressoras de talões, incluindo impressoras Star em modo ESC/POS) ou Star (Star Line Mode). Com Star, a própria caixa converte o talão; o talão fica com o mesmo aspeto.
- Ecrã de serviço com impressora própria: um ecrã de serviço Android com a app HorecaPOS (p. ex. um terminal portátil com uma impressora Bluetooth móvel, ou um Sunmi como ecrã de serviço) pode imprimir ele próprio. Registe-o no próprio dispositivo (Definições → Impressoras → Ecrãs de serviço com impressora própria) e escolha Ligada a na impressora. O ecrã de serviço vai buscar os seus talões à caixa; deixe a app aberta nele. Se não conseguir (app fechada, fora do alcance do Wi-Fi), o talão de cozinha vai para a fila de impressão, tal como com uma impressora de rede desligada. Anular registo do dispositivo volta a colocar as impressoras na própria caixa.
- Impressora por categoria / produto: por categoria de artigos, escolha em que impressora sai o talão de cozinha. Por produto pode substituir isso por uma impressora própria ou "sem talão de cozinha".
Produtos iguais são agrupados na impressão: duas vezes 1x Cola passa a 2x Cola, no talão de cozinha e no talão. Só se agrupam produtos com as mesmas opções e observação.
O instalador Linux adiciona o utilizador da caixa aos grupos lp e dialout, para que a caixa possa usar impressoras USB e série.
Precisa de ajuda?
Optimum POS · 085 560 00 60 · support@optimumpos.nl · seg–sex 9:00–20:00, sáb–dom 14:00–20:00