← Portfólio

Software & automação · estudo de caso

Conferência de Nota Fiscal

Do leitor de código de barras ao estoque do Bling: conferir a mercadoria, corrigir o custo real e atualizar preços com confirmação.

TipoCliente
PapelConcepção, desenvolvimento e testes
PeríodoNov/2025 – Mai/2026
EstadoConcluído
TecnologiasPython · PyQt6 · SQLite · openpyxl · API Bling v3 · OAuth 2.0 · PyInstaller · pytest

O projeto em poucas palavras

A Conferência de Nota Fiscal é um aplicativo para Windows que acompanha o recebimento de mercadorias de ponta a ponta: a pessoa importa a nota do fornecedor, confere cada item com um leitor de código de barras, revisa o custo real, simula preços e só então dá entrada no estoque do Bling ERP.

O visual segue a identidade da Motokão Moto Center, em vermelho e preto. Na mesma rotina de compras e recebimento, ele complementa o Motokão Pedidos, que cuida da reposição.

O ponto de partida

Conferir uma caixa de peças contra a nota fiscal, item por item, é trabalho de atenção e de repetição. Sobras e faltas passam despercebidas, a entrada no estoque é digitada de novo no ERP e, em alguns fornecedores, o valor da nota é menor do que o realmente pago, o que distorce o custo e, por consequência, o preço de venda.

Um fluxo em quatro passos

1. Conferir

A nota entra por planilha (CSV ou XLSX) ou pelo XML do fornecedor, e o sistema faz a correspondência com o cadastro do Bling por código, SKU ou EAN. A conferência acontece com o leitor de código de barras: cada leitura atualiza a tabela em tempo real, com destaque piscante na linha, som de confirmação e o status do item (OK, parcial, sobra ou pendente). Um painel de exceções lista códigos não encontrados, sobras e itens sem SKU, e o último bip pode ser desfeito.

2. Corrigir o custo e simular preços

Na aba de preços, a pessoa informa o ajuste entre o custo da nota e o valor pago, o frete, o imposto e a margem. O sistema recalcula o custo real de cada produto e sugere o preço de venda. A simulação não grava nada — nem no banco local, nem no Bling — até haver confirmação.

3. Dar entrada no estoque

Antes de lançar, o sistema verifica o status da conferência, pede o depósito de destino e alerta sobre itens parciais, sobras e entradas duplicadas. Ao final, gera um comprovante.

4. Registrar o que aconteceu

Cada sessão pode virar uma planilha com várias abas, com a auditoria das operações e das edições feitas localmente.

Decisões de engenharia

  • Dinheiro sem surpresa. Valores usam aritmética decimal com arredondamento comercial de duas casas, e o custo original da nota é preservado em uma coluna própria, nunca sobrescrito.

  • Simulação separada da escrita. O estado da simulação vive na memória e é a fonte da verdade da tela; o envio ao Bling roda em segundo plano, em lote, com resumo antes e comparação de antes e depois por SKU.

  • Integração autenticada. O acesso ao Bling usa OAuth 2.0 com renovação automática do token e diagnóstico quando a autorização expira.

  • Do documento ao código. A precificação começou como uma especificação escrita, com exemplos de cálculo, e foi implementada e testada contra ela.

O que ficou pronto

O aplicativo tem 278 testes automatizados e mais de 20 mil linhas de Python, incluindo a interface, o motor de precificação, o importador de XML e a integração com o Bling. Ele é empacotado como um executável único para Windows, sem exigir instalação de Python.

O que guiou as decisões

Toda ação que mexe num sistema de terceiros precisa de um passo de revisão: simular primeiro, mostrar o antes e o depois, confirmar depois. Foi isso que permitiu automatizar o recebimento sem tirar do usuário a decisão final.

Uma ideia em movimento?

Vamos transformar a próxima pergunta em algo que funciona.

Conversar sobre um projeto ↗