Almoxarifado · WMS — Conferência por QR Code

Entre com sua conta Master Diagnóstica para acessar.

Acesso restrito aos colaboradores da Master Diagnóstica.

Almoxarifado — conferência, endereçamento e inventário por QR Code

Acesso rápido

Painel operacional

Últimas conferências

DataOperaçãoDocumentoOKFaltaDiverg.Resultado

Notas fiscais de entrada

0NFs a conferir
0Conferidas
0Itens a receber
0Unidades a receber
0Com divergência

Nova nota

Itens da nota

nenhum item

Importar notas

Notas no Supabase

Usa a conexão configurada na aba Pedidos (URL e chave anon).

Não configurado.

NFFornecedorEmissãoItensUn.Status

Armazenar produto

Três passos: 1) bipe o QR do produto · 2) informe a quantidade · 3) bipe o QR da localização e conclua. A câmera aceita os dois QRs — o app identifica sozinho se é produto ou endereço.

Entrada manual / leitor pistola

1 · Produto bipe o QR do produto
2 · Quantidade
unidades a guardar
3 · Localização bipe o QR do endereço

A armazenar

Alimentado pelas conferências de recebimento finalizadas. Clique em usar para preencher os três passos de uma vez.

0Itens pendentes
0Unidades pendentes
0Guardados hoje
0Unidades hoje
0Endereços de origem
CódigoDescriçãoLoteVal.OrigemDocumentoPendente

Armazenagens de hoje

HoraCódigoLoteQtdDePara

Fila de pedidos

0A separar
0A conferir
0Concluídos
0Unidades na fila
0Atrasados

Novo pedido

Itens do pedido

nenhum item

Importar do ERP

A coluna local é opcional: em branco, o app busca o endereço no inventário pela regra FEFO.

Sincronizar com Supabase

Opcional. Com isso a fila de pedidos passa a ser compartilhada entre todos os aparelhos do almoxarifado. Sem configurar, o app funciona 100% local.

Não configurado.

PedidoClienteOperaçãoItensUn.EndereçosPrazoStatus

Fila de separação

Pedidos aguardando separação. O roteiro é montado na ordem do percurso do armazém (rua → módulo → nível), com o endereço de cada produto vindo do inventário e o lote escolhido por FEFO — vence antes, sai antes.

PedidoClienteItensUn.PrazoEndereços

Dados do produto

Biblioteca de QR Code não carregada. Conecte-se à internet e recarregue a página para gerar QR codes. A leitura pela câmera continua funcionando.

Caixa fechada / master (vários lotes)

Um único QR para a caixa inteira. Ao bipar, o app dá baixa em todas as unidades e lotes de uma vez.

Conteúdo da caixa

CódigoDescriçãoLoteValidadeQtd

Pré-visualização

Preencha código e lote e clique em Gerar QR Code.

Fila de etiquetas

Padrão Zebra TLP 2844. Escala 100% e margens zero na janela de impressão — veja a aba Ajuda.

Dados da conferência

Lista esperada

CódigoDescriçãoLoteValidadeEsperadoLidoStatus

Leitura

0Itens esperados
0Conferidos OK
0Faltantes
0Divergências
0Leituras

Entrada manual / leitor pistola

HoraCódigoLoteQtdValidadeLocalStatusObservação

Encerrar

Tudo é salvo automaticamente neste navegador/dispositivo. Nada é enviado para a internet.

Cadastrar localização

Endereço no formato Rua | Módulo | Nível. Cada local recebe um QR próprio — bipe o local antes dos produtos para registrar onde a mercadoria foi guardada ou de onde foi retirada.

Código gerado:

Geração em lote

Os três campos aceitam letra (A → D, ou até AA, AB…) e número (01 → 12). Se você usar letra na rua e número no módulo, tudo bem — cada campo é independente.

Locais cadastrados

CódigoRuaMóduloNívelSetor / observaçãoOcupação registrada

Etiqueta do local

Pré-visualização no tamanho real do papel.

Clique em QR na lista para visualizar.

Lançar produto no inventário

Todo item precisa de localização — é o que permite montar o roteiro de separação e endereçar o recebimento. Endereço novo pode ser cadastrado na hora.

Localização *

Inventário no Supabase

Usa a mesma conexão configurada na aba Pedidos (URL e chave anon). Aqui você só informa a tabela do estoque.

Não configurado.

A coluna local é obrigatória: linhas sem endereço são recusadas e listadas no fim da importação.

Posição de estoque

0Linhas / lotes
0Unidades
0Códigos distintos
0Vencem em 90 dias
0Vencidos
CódigoDescriçãoLoteValidadeSituaçãoQtdLocal

Etiquetas com QR Code

Formato Zebra TLP 2844 — térmica 50 × 30 mm, rolo de uma carreira, uma etiqueta por página.

Marque os itens na tabela acima (ou deixe todos desmarcados para usar os itens filtrados) e clique em Gerar e imprimir etiquetas.

Saldo dos itens

O saldo parte do que foi lançado no inventário e é movimentado pelas conferências finalizadas: recebimento soma, expedição subtrai. Conferência de inventário não movimenta.

0Itens (cód.+lote)
0Unidades em saldo
0Entradas no mês
0Saídas no mês
0Saldos negativos
CódigoDescriçãoLoteVal.EndereçosEntradasSaídasSaldoÚltimo mov.

Extrato de movimentação

DataHoraTipoDocumentoCódigoLoteVal.EndereçoQtd

Cada linha nasce de uma conferência finalizada. Somente leituras validadas movimentam saldo — divergências (lote errado, não previsto, vencido) ficam de fora.

Conferências finalizadas

DataOperaçãoDocumentoResponsávelOKFaltaDiverg.Resultado

Como usar

  1. Início: painel com os números da operação (atualiza a cada 60 s ou no botão Atualizar) e atalhos em ícones. Cada indicador é clicável e leva direto à tela correspondente. O menu lateral (☰, canto superior esquerdo) abre em qualquer tela e mostra pendências nos módulos.
  2. Pedidos: a fila de trabalho. Um pedido nasce A separar, vai para A conferir quando o separador termina e fecha em Concluído automaticamente quando você finaliza a conferência dele. Entradas possíveis: cadastro manual, importação CSV do ERP (uma linha por item) ou Supabase, que compartilha a fila entre todos os aparelhos. O botão conferir carrega os itens do pedido na lista esperada e já abre a aba de conferência.
    Para o Supabase: preencha URL do projeto + chave anon + nome da tabela, use Testar conexão e Baixar SQL da tabela para criar a estrutura no banco. Sem configurar nada, o app funciona 100% local.
  3. Gerar QR (unidade): informe código, descrição, lote e validade → Gerar QR Code. Use Adicionar à fila para montar uma folha de etiquetas e imprimir todas de uma vez.
  4. Gerar QR de caixa fechada: no card Caixa fechada / master, dê um identificador ao volume (ex.: CX-0001) e adicione uma linha por lote com a quantidade de unidades — 10, 12, 20, quantas houver. Uma caixa pode conter vários lotes e até vários códigos. O total é somado automaticamente e um único QR representa o volume inteiro. A etiqueta impressa já sai com a lista de lotes ao lado do QR.
    Ao bipar esse QR na conferência, o app dá baixa em todas as unidades de todos os lotes de uma vez e mostra uma linha de status por lote. Limite prático: ~15 lotes por QR.
  5. Recebimento: as notas entram por Nova NF, CSV (nf;fornecedor;emissao;codigo;descricao;lote;validade;quantidade, uma linha por item) ou Supabase (tabela notas_fiscais, com SQL para baixar). Abrindo a nota você tem os itens com lote, validade e situação de vencimento, e três caminhos:
    • Gerar e imprimir todas as etiquetas — QR no padrão do app para todos os itens da nota.
    • Imprimir etiquetas selecionadas — marque só os itens que precisa reetiquetar.
    • Conferir esta nota — leva os itens da NF para a lista esperada e abre a conferência, validando código, lote, validade e quantidade contra a nota. Ao finalizar, a NF é marcada como Conferida com o resultado, o saldo recebe a entrada e o status sobe para o Supabase.
    A chave 1 etiqueta por unidade replica a etiqueta pela quantidade da nota (12 un. = 12 etiquetas); desmarcada, sai uma por lote. Tamanho e rolo seguem o que está configurado na aba Gerar QR.
  6. Armazenagem: o passo seguinte ao recebimento. A fila A armazenar é alimentada pelas conferências de recebimento finalizadas, mostrando o que está na doca, de qual NF e quanto falta guardar. O processo tem três passos: 1) bipe o QR do produto — o app já sugere a quantidade pendente e mostra onde esse lote está hoje; 2) ajuste a quantidade; 3) bipe o QR do endereço e clique em Concluir armazenamento. A mesma câmera lê os dois QRs, identificando sozinha se é produto ou endereço.
    Armazenar é uma transferência de endereço: sai da doca (ou do endereço com mais saldo) e entra na posição bipada — o saldo total não muda, e o movimento aparece no extrato como ARMAZENAGEM com o percurso origem → destino. Se o lote não tiver saldo em nenhum endereço, o app pergunta antes de lançar como entrada direta. O endereço bipado permanece selecionado depois de concluir, para você guardar vários itens na mesma posição em sequência. Bipar o QR de uma caixa fechada preenche produto e quantidade de uma vez.
  7. Separação: a fila mostra os pedidos A separar. Ao abrir um, o app monta o roteiro: uma linha por item, ordenada pelo percurso do armazém (rua → módulo → nível), com o endereço vindo do inventário e o lote escolhido por FEFO — vence antes, sai antes. Endereços alternativos aparecem como "tb:" abaixo do principal.
    Bipe o QR do endereço e o app lista o que retirar ali; bipe o produto e a linha avança. Se o produto for bipado num endereço diferente do que o inventário aponta, ele conta mas avisa LOCAL DIFERENTE — sinal de endereçamento desatualizado. Sem saldo na posição, use ruptura: a conferência passa a esperar só o que realmente saiu. Concluir a separação é o que libera o pedido para a conferência — antes disso ele não aparece lá.
  8. Guia do próximo item: quando a quantidade lida bate com a solicitada, o app fecha a câmera e mostra um painel com o item concluído e o próximo a ler — código, lote, validade, quantas unidades faltam e o endereço. Clique em Continuar lendo para reabrir a câmera já apontada para o próximo, ou Dispensar para seguir manualmente. Ao fechar a última linha, o painel avisa que a conferência (ou a separação) está completa. Vale para a conferência e para a separação, e pode ser desligado na chave Pausar a câmera ao concluir cada item.
  9. Conferência: preencha operação e documento, monte a lista esperada (manual, importando CSV ou puxando um pedido já separado) e comece a bipar.
  10. Locais (Rua | Módulo | Nível): cadastre os endereços um a um ou gere faixas inteiras de uma vez (ex.: ruas 1–4, módulos 1–10, níveis 1–4 = 160 endereços). O código sai no padrão RUA-00-00 (ex.: A-01-01) e cada local tem etiqueta própria com o endereço em letra grande + QR.
    Na conferência, bipe primeiro o QR do local: aparece a faixa “📍 Registrando em A-01-01” e todas as leituras seguintes ficam gravadas nesse endereço, até você bipar outro local ou clicar em limpar. A coluna Local do log e o bloco ENDEREÇAMENTO do CSV mostram o que foi guardado onde; a lista de locais mostra a ocupação registrada de cada posição.
  11. Resultado por leitura:
    • OK código e lote conferem com a lista.
    • LOTE DIVERGENTE o código existe na lista, mas o lote é outro.
    • NÃO PREVISTO item que não consta na lista.
    • EXCEDENTE quantidade lida acima do esperado.
    • DUPLICADO / VALIDADE mesma etiqueta bipada de novo, ou validade vencida/próxima (90 dias).
    • FALTANTE item esperado que não foi bipado até o fim.
  12. Inventário: lance código, lote, validade, quantidade e localização (obrigatória) — sem endereço o produto não entra no roteiro de separação. Endereço novo no padrão RUA-00-00 (ex.: A-01-01) é cadastrado em Locais na hora, com sua confirmação. O campo Local continua preenchido depois de lançar, para você cadastrar vários lotes da mesma posição em sequência. Na importação, a 6ª coluna do CSV é o local e linhas sem endereço são recusadas e listadas; no Supabase (botão na própria aba, usando a conexão da aba Pedidos) o envio é upsert por codigo,lote,local. A tabela mostra a posição de estoque com KPIs de unidades, vencidos e a vencer em 90 dias, e filtros rápidos. O botão Gerar e imprimir etiquetas monta a folha de QR dos itens marcados (ou dos filtrados, se nada estiver marcado) e abre a impressão direto — com a opção de 1 etiqueta por unidade para reetiquetar caixa por caixa. Enviar seleção p/ conferência transforma o inventário na lista esperada para você contar bipando as prateleiras.
  13. Saldo: consulta por código + lote com entradas, saídas, endereços, situação de validade e último movimento. O saldo parte do que foi lançado no inventário e é movimentado pelas conferências finalizadas — recebimento soma, expedição subtrai, conferência de inventário não movimenta. Só leituras validadas movimentam: divergências (lote errado, não previsto, vencido, excedente) ficam fora. O botão extrato de cada linha filtra o kardex daquele item.
    Na expedição, se o endereço bipado não tem a linha do lote, a baixa sai do endereço cadastrado por FEFO. Vender item sem cadastro deixa saldo negativo — é proposital, aparece em vermelho no painel e na aba para você corrigir o inventário em vez de esconder o erro. No recebimento sem endereço bipado, o app pergunta a posição de destino antes de dar entrada.
  14. Encerrar: Finalizar e salvar grava no histórico. Exporte o CSV para anexar ao processo.

Impressão — Zebra TLP 2844 · etiqueta 50 × 30 mm

Todas as etiquetas do app já saem no tamanho exato 50 × 30 mm, uma por etiqueta do rolo (uma carreira na horizontal). A página de impressão é configurada automaticamente para 50×30 mm sem margens quando você clica em qualquer botão de imprimir etiquetas.

Tamanhos disponíveis (o de local é escolhido na aba Locais):

  • 50 × 30 mm — produto, caixa fechada e local de prateleira. Stock 50,8 × 30 mm, uma carreira.
  • 50 × 30 mm em rolo de 2 carreiras — duas etiquetas de produto por avanço. Escolha o rolo no seletor da fila de etiquetas (aba Gerar QR) ou no inventário.
    • Deitadas: as duas lado a lado, página de 100 × 30 mm — no driver, stock 101,6 × 30 mm.
    • Na vertical: cada etiqueta gira 90° e ocupa 30 × 50 mm, página de 60 × 50 mm — no driver, stock 60 × 50,8 mm, orientação retrato.
    • Se o número de etiquetas for ímpar, a última página sai com a segunda posição em branco.
  • 100 × 50 mm deitada — local de porta-palete. Endereço em 13 mm de altura, QR de 23 mm. Stock 101,6 × 50,8 mm.
  • 100 × 35 mm deitada — local de porta-palete em rolo mais estreito. Endereço em 10 mm, QR de 15 mm. Stock 101,6 × 35 mm.
  • Versões "na vertical" — a mesma etiqueta girada 90°, para colar na coluna do porta-palete. A página troca de lado: 100 × 50 vira 50,8 × 101,6 mm e 100 × 35 vira 35 × 101,6 mm no driver. Mantenha a orientação retrato — a rotação já vem no desenho, não marque "paisagem".

Como o tamanho de página é único por impressão, quando a fila tiver etiquetas de tamanhos diferentes o app mostra um botão para cada tamanho — imprima uma rodada por rolo.

No driver da impressora (uma vez só):

  • Painel de Controle → Dispositivos e Impressoras → botão direito na ZDesigner TLP 2844Preferências de impressão.
  • Tamanho do papel / Stock: personalizado 50,8 mm × 30 mm (2,00" × 1,18"). Margens: 0 em todos os lados.
  • Media type: térmica direta (etiqueta térmica) — ou transferência térmica se usar ribbon. Tracking: Web sensing (gap entre etiquetas).
  • Velocidade 2–3 ips e escurecimento (darkness) 8–12: QR muito claro não lê, muito escuro borra os módulos.
  • Rode a calibração do rolo antes do primeiro lote (botão de feed pressionado até piscar, ou pelo utilitário Zebra).

Na janela de impressão do navegador: destino = ZDesigner TLP 2844 · escala 100% (nunca "ajustar à página") · margens nenhuma · desmarque cabeçalhos e rodapés e gráficos de fundo não é necessário marcar.

Sai uma etiqueta com moldura de 50×30 mm e um QR de leitura: se a moldura sair inteira e o QR ler, está calibrado.

Densidade do QR: o app usa nível de correção M para conteúdos curtos e L para longos, para manter os módulos grandes o suficiente a 203 dpi. Etiquetas de caixa com muitos lotes geram QR denso — o app avisa acima de ~320 caracteres (cerca de 6 lotes).

Formato do QR Code

Unidade: MD|codigo|lote|validade|descricao
Caixa fechada: MDX|id|embalagem|total|cod*lote*validade*qtd*desc~cod*lote*validade*qtd*desc (lotes separados por ~).
Local: MDL|A-01-01|A|01|01|setor
Na leitura ele também entende: JSON ({"codigo":"...","lote":"..."}), pares chave=valor separados por | ou ;, GS1 com AIs (01)(10)(17) e, como último recurso, CODIGO|LOTE ou só o código.

Celular, tablet e computador

O app se adapta ao tamanho da tela: no celular as tabelas viram cartões (um item por bloco, sem rolagem lateral), os botões ganham área de toque de 44 px para uso com luva, os campos usam fonte 16 px para o iPhone não dar zoom ao focar e o resultado da leitura fica fixo no rodapé enquanto você bipa. No tablet os formulários se reorganizam em 2–3 colunas e no computador em 4. Vale adicionar à tela inicial (Chrome: menu → Adicionar à tela inicial; Safari: Compartilhar → Adicionar à Tela de Início) para abrir em tela cheia como um aplicativo.

Requisitos da câmera

Para a câmera funcionar, a página precisa ser aberta em https:// ou em localhost (exigência dos navegadores). Em celular Android/Chrome a leitura usa o detector nativo, sem depender de internet. No iPhone use o Safari.

Publicar online

É um arquivo único: suba em qualquer hospedagem estática (GitHub Pages, Netlify, IIS/Apache interno) e acesse pelo celular. Também funciona salvo na rede e aberto direto do arquivo, mas nesse caso a câmera pode ser bloqueada — use a entrada manual/leitor pistola.