Uma venda no PDV sem servidor: a fila local em ação

No artigo anterior contei a ideia: o caixa grava a venda primeiro no próprio computador e só depois envia para a nuvem. Aqui está uma venda de verdade no modo de demonstração, sem nenhum servidor conectado. O caixa, o operador e os produtos são fictícios.

O que acontece

  1. Abertura do caixa: o operador se identifica com código e PIN (verificados no próprio caixa, sem rede) e informa o fundo de troco.
  2. Leitura dos produtos: o campo aceita o código de barras, 2*código para quantidade e 0,350*código para produtos pesáveis, como a banana.
  3. Pagamento: dinheiro, PIX ou cartão, em uma ou mais formas. Aqui, R$ 100,00 em dinheiro para uma compra de R$ 57,06, com troco de R$ 42,94.
Tela de venda do PDV com quatro itens e total de R$ 57,06
Quatro itens lidos: arroz, feijão (2 unidades), banana (0,350 kg) e refrigerante. Total R$ 57,06.
Tela de pagamento do PDV com opções de PIX, cartão e dinheiro
Pagamento em dinheiro, PIX ou cartão.

Onde está a parte "offline"

Olhe a barra superior: ela mostra "1 a enviar à nuvem" logo após abrir o caixa e "2 a enviar à nuvem" depois da venda. Cada evento (abertura, venda) entra numa fila local, com hash encadeado, e espera a sincronização. Sem servidor, a fila só cresce, e o caixa continua vendendo normalmente.

PDV após concluir a venda, mostrando troco e o contador de eventos a enviar
Venda concluída. O contador no topo mostra os eventos aguardando envio.

Um detalhe para não confundir: o selo "Online" ao lado de "PDV" indica o modo fiscal (normal ou contingência), não a conexão de rede. Como a emissão de NFC-e ainda não está implementada, ele fica sempre "Online" nesta demonstração.

O que vem depois

Quando a conexão volta, o caixa envia a fila em lotes assinados, e a nuvem confere a sequência e o hash de cada evento. Na próxima etapa quero mostrar essa conferência, incluindo o que acontece se a resposta do servidor se perde no meio do caminho.

← Todos os artigos