IDR FLOW 0.6.0 — WINDOWS
Atualização de 26/10/2026

COMEÇAR OU ATUALIZAR

1. Feche a versão anterior. Extraia TODO o ZIP em uma nova pasta.
2. Mantenha Aplicativo e Catalogo juntos, com os arquivos internos originais.
3. Abra Aplicativo\Abrir IDR Flow.cmd ou Aplicativo\IDR Flow.exe.
4. No mesmo usuário do Windows, a base existente é reconhecida. Não apague dados.
5. Para ensaiar sem misturar vendas reais, abra Aplicativo\Abrir demonstracao.cmd.

Na primeira execução de uma base nova, cadastre o gestor e seu PIN. Não há
PIN administrativo padrão. A demonstração usa uma base separada.
Dados reais: %LOCALAPPDATA%\IDR Solucoes\IDR Comandas
Dados de demonstração: %LOCALAPPDATA%\IDR Solucoes\IDR Comandas Demo
As pastas continuam com o nome antigo para preservar a compatibilidade.

Esta versão migra o banco para a estrutura 4, mantendo vendas, itens, pagamentos,
usuários e códigos. Antes de migrar uma base anterior, cria uma cópia em backups.
Não abra o banco atualizado com executáveis antigos. Para voltar, use a cópia
anterior em ambiente separado; ela não contém operações posteriores à atualização.

ACESSO COM PIN

Novos acessos e trocas de senha usam um PIN numérico de 4 a 8 dígitos.
Não são aceitos dígitos todos iguais ou sequências completas crescentes ou
decrescentes, inclusive com passagem pelo zero: 1111, 1234, 4321, 7890 etc.
Zeros à esquerda são preservados. Cada pessoa deve manter seu próprio PIN.
Senhas antigas continuam funcionando até serem trocadas em Ajustes > Usuários
e permissões. Deixar o campo de novo PIN vazio mantém o acesso existente.
As senhas do administrador da central e do proprietário online continuam
independentes: a regra de PIN curto é exclusiva do aplicativo local.

MESAS E COMANDAS

Mesas (Alt+3 ou F6) mostra as mesas livres em verde e ocupadas em amarelo.
O gestor cadastra as mesas em Cadastrar / gerenciar. Use número ou nome.
Uma mesa pode conter várias comandas; cada uma preserva itens e pagamento próprios.
O cartão mostra o número de cada comanda. Clique nela para atender no PDV.
Nova comanda nesta mesa cria o vínculo; Vincular comanda existente associa outra.
No PDV > Mais operações > Vincular / trocar mesa, mova ou desvincule a comanda.
A mesa só fica livre quando nenhuma comanda vinculada permanece aberta.
Mesas ocupadas não podem ser inativadas. Mesas com histórico conservam seu nome.
Comandas abertas, em cobrança ou guardadas continuam ocupando a mesa.
Venda avulsa e encomenda continuam independentes das mesas.

Para imprimir a comanda selecionada, pressione F8 ou use Mais operações.
O documento traz mesa, comanda, cliente, itens e saldo. Imprimir não encerra nem
recebe a conta. Uma comanda aberta é identificada como comanda de consumo.

CUSTO, PREÇO E MARKUP

Em Produtos > Novo produto / Editar, informe custo e preço de venda.
Markup percentual = (venda - custo) / custo x 100.
Lucro bruto por unidade de venda = preço de venda - custo informado.
Exemplo: custo 10,00 e venda 15,00 mostram markup 50,00% e lucro bruto 5,00.
Para produção própria, custo 0,00 é aceito. Markup aparece Não se aplica porque
não há divisão válida por zero. O lucro mostrado considera só o custo informado,
antes de taxas e despesas; custo zero não significa produção sem despesas.
Produtos existentes começam com custo 0,00 até o gestor informar o custo real.
Alterar apenas o preço preserva o custo. Itens já vendidos mantêm seu preço original.
Preço de venda zero continua proibido para venda, mesmo quando o custo é zero.
Digite 100 para obter 100,00; digite a vírgula para informar centavos.

ETIQUETAS DOS CÓDIGOS INTERNOS

Cadastre 1, 101, 00101 etc. em Código interno. Os zeros são preservados.
Em Produtos, selecione o item e use Etiquetas. Outra opção: PDV > Códigos (F9),
selecione com as setas e pressione Etiqueta (F6).
A etiqueta contém nome, barras Code 128, código legível e preço/unidade.
Escolha 58 ou 80 mm de largura, 40 mm de altura, e de 1 a 100 cópias.
F8 envia à impressora padrão do Windows; Salvar PDF gera as páginas da etiqueta.
O leitor deve estar configurado para Code 128 e enviar Enter após a leitura.
Não converta o código interno para EAN; o PDV reconhece o identificador exato.
Códigos que não cabem na largura escolhida são recusados, sem comprimir as barras.
Códigos com caracteres acentuados não são impressos em Code 128.
Na lista de códigos, F8 imprime a lista filtrada e F6 abre a etiqueta selecionada.

ATALHOS DO PDV

F1       Ajuda de atalhos (também em Mais operações)
F2       Nova comanda
F3       Comandas abertas: setas para selecionar e Enter para abrir
F4       Abrir pagamento da venda selecionada
F5       Nova venda avulsa
F6       Mesas
F7       Desconto (com as permissões gerenciais existentes)
F8       Imprimir a comanda/venda selecionada
F9       Consultar códigos internos por código ou descrição
F10      Abrir caixa se fechado; conferir fechamento se aberto
F11      Sangria
F12      Abastecimento em dinheiro
Ctrl+G   Guardar a venda selecionada
Ctrl+R   Retomar venda guardada: pesquise, use as setas e Enter
Ctrl+D   Abrir divisão de pagamento
Ctrl+M   Mais operações do PDV (menu ...)
Ctrl+O   Opções do atendimento selecionado (menu ...)
Ctrl+F   Ir ao PDV e focar a busca para bipar/digitar
Ctrl+P   Imprimir a comanda/venda selecionada
Alt+1    PDV
Alt+2    Comandas
Alt+3    Mesas
Alt+4    Produtos
Alt+5    Caixa / gestão (gestor)
Alt+6    Histórico (gestor)
Alt+7    Ajustes
Tab / Shift+Tab   Próximo / anterior campo
Esc      Voltar ou fechar o diálogo

DENTRO DO PAGAMENTO

F1 Dinheiro | F2 Pix | F3 Débito | F4 Crédito.
A forma selecionada recebe o restante ainda não distribuído. Digite a parcela,
troque para outra forma e complete; os valores anteriores são preservados.
Exemplo: venda 15,00, F4, digite 10, F2: crédito 10,00 e Pix 5,00.
Dinheiro entregue calcula o troco; não confunda com a parcela paga em dinheiro.
Enter confirma o recebimento e conclui se os valores forem válidos. Para receber
menos que o saldo, marque recebimento parcial; o restante continua na comanda.
F5 abre Dividir pagamento; F6 escolhe divisão por pessoas e foca a quantidade.
F7 volta às formas de pagamento; F9 calcula a parcela por pessoa.
Na área de divisão, Enter calcula a parcela: NÃO registra recebimento.
Na área de formas, Enter confirma o valor, após a conferência do operador.
Informe quantas pessoas ainda vão pagar; para parcelas diferentes, ajuste os valores.
Alt+1 mostra as formas; Alt+2 também abre as opções para dividir a conta.
Após concluir: F8 imprime o comprovante; Enter fecha a confirmação.
Pix e cartões exigem confirmação real no banco/maquininha. QR Code não confirma
o recebimento automaticamente. Recibos internos são NÃO FISCAIS.

GUARDAR E RETOMAR VENDAS

Os botões Guardar (Ctrl+G) e Retomar (Ctrl+R) ficam destacados no PDV.
Guardar mantém itens e pagamentos já recebidos, liberando o atendimento atual
para outra venda. O saldo pendente não é contado como dinheiro recebido.
A lista Retomar pesquisa número, cliente e data e inclui vendas de dias anteriores.
Use setas e Enter para escolher. O estoque já movimentado não é baixado novamente.

No fechamento, uma venda guardada ainda impede concluir até ser resolvida.
Em Pendências, escolha receber, cancelar com autorização, ou Levar para o próximo
dia. Essa última ação exige uma justificativa e confirmação explícita, registrando
operador, data e saldo. A decisão vale para aquele fechamento; no próximo caixa
aberto será necessário resolver ou justificar novamente, caso continue pendente.
É possível desfazer a passagem antes de fechar. Retomar/alterar a venda também
invalida a aprovação anterior. Vendas realmente vazias continuam sendo encerradas
automaticamente, sem contar como venda.

O gestor vê as vendas levadas para outro dia no relatório salvo, com justificativas.
Recebimentos posteriores pertencem ao caixa em que ocorrerem; o relatório do
fechamento anterior permanece intacto. As informações estão nos backups locais.
Esta função não cria dívida de cliente, fiado ou contas a receber.

FECHAMENTO CEGO E PERFIS

F10 ou Fechar caixa abre a conferência cega, inclusive para o gestor.
Antes de confirmar, não mostra total vendido, saldo esperado, diferença ou se bateu.
Informe o dinheiro físico contado e uma observação opcional. Pix/cartões não entram
nessa contagem. A confirmação grava o valor e encerra o caixa em uma transação.
Depois de confirmado, a contagem não pode ser digitada novamente para alterar
o resultado. O relatório salvo é uma fotografia daquele fechamento.

Gestor: pode vender normalmente, cadastrar usuários e acessar Caixa/Histórico.
Depois de seu fechamento, recebe o relatório final, com opção de PDF/impressão.
Em Caixa > Relatórios de fechamento, consulta caixas encerrados por qualquer operador.
Caixa também mostra Vendas da equipe · hoje, com hora, atendimento, responsável
pela conclusão e valor. As últimas 50 aparecem ali, com atualização a cada 10 s
enquanto essa tela estiver aberta. Histórico e análise por período complementam.
O painel do gestor pode acompanhar as vendas durante o dia; a tela de conferência
permanece cega. Nesta entrega, a consulta da equipe é no aplicativo local.

Colaborador: atende, recebe e conta o caixa. Não acessa Caixa/Histórico nem os
relatórios gerenciais. Depois de fechar, vê somente a confirmação de gravação.
A passagem de operador também salva sua contagem sem antecipar a diferença.
Cada pessoa deve usar sua própria conta; não compartilhe a senha do gestor.
Cadastre perfis em Ajustes > Usuários e permissões. Administradores existentes
aparecem como Gestor; operadores existentes aparecem como Colaborador.

Pendências com consumo impedem o fechamento até resolver ou aprovar a passagem
das vendas guardadas para o próximo dia com justificativa. Na mesma tela, receba,
abra no PDV ou cancele com a autorização adequada. Contas realmente vazias são
encerradas automaticamente sem contabilizar venda. Total zero com itens legados
sem preço não é apagado automaticamente: corrija ou cancele o lançamento.

DADOS, BACKUP E FUNCIONALIDADES PRESERVADAS

Vendas e pagamentos são gravados no SQLite local antes da confirmação de sucesso.
Backups verificados acontecem após recebimentos/fechamento e periodicamente quando
há mudanças. Em Ajustes > Backup e recuperação, confira a última cópia e configure
uma segunda pasta em outro disco ou pasta sincronizada. A nuvem é configurada à parte.
Restaurar exige gestor e reabrir o sistema; a base anterior é preservada.
As cópias comerciais não incluem o catálogo de descrições nem a ativação da licença.

Permanecem: estoque, entradas/perdas, avisos de reposição, lotes, categorias/ícones,
produtos por peso, preços em lote, descontos auditados, confirmação de estoque
negativo, inativação, exclusão só sem movimento, comandas independentes, pagamentos
parciais, devoluções, sangrias, abastecimentos, encomendas e sinais.
O catálogo local contém 2.537.446 códigos/descrições e funciona sem internet.
A base não fornece o preço de venda da loja. O código 7898938890076 continua incluído.
Logo IDR original, temas claro/escuro, barra inferior e efeitos de movimento preservados.

ATUALIZAÇÕES PELO PRÓPRIO PDV

Esta primeira instalação da versão 0.6.0 é feita pelo ZIP completo. Depois, com a
central configurada, a IDR pode publicar novas versões pelo painel Atualizações.
O cliente recebe a indicação de nova versão e escolhe Atualizar. A verificação
acontece em segundo plano a cada minuto, após entrar no aplicativo.

No canto inferior, uma bolinha verde com Central online indica contato recente
confirmado com a central. Uma falha de conexão mostra Central offline e avisa que
podem existir atualizações quando a conexão voltar. A tela também distingue uma
central ainda não configurada. Verificar agora permite consultar manualmente.
Central online confirma conexão, não substitui a situação da licença comercial.

A instalação exige caixa fechado. O aplicativo baixa apenas o programa, confere
assinatura e integridade, cria backup verificado e reabre a nova versão. Se a nova
versão não confirmar que iniciou, o instalador tenta restaurar o programa e o
banco anteriores. A atualização não inclui nem substitui o catálogo gigante.
O programa anterior e os registros ficam preservados na pasta .idr-flow-update-*
ao lado de Aplicativo para recuperação técnica. Reserve espaço livre suficiente
para download e cópias temporárias; mantenha a instalação em pasta gravável.
O tempo depende da conexão e do computador. Não há promessa de prazo fixo.

O ZIP separado IDR-Flow-0.6.0-Atualizacao.zip é para publicar na CENTRAL, não para
a primeira instalação do cliente. Vendas e usuários continuam no computador.
Falhas no download ou pacote inválido não substituem a versão em funcionamento.
Sem hospedagem e ativação configuradas, aparece Central não configurada.

CENTRAL ONLINE E ENTREGA AO CLIENTE

Este ZIP atualiza o PDV offline e inclui o código da central existente. A central
ainda não foi publicada nem configurada na HostGator. Não há cobrança automática.
A implantação depende dos links e do plano da hospedagem, que serão conferidos
com a IDR. A central Python fornecida exige ambiente compatível; não basta enviar
os arquivos para uma hospedagem que só aceite PHP.
Antes de entregar como serviço mensal, concluir HTTPS, ativação, permissões do
proprietário, testes de sincronização e suspensão no ambiente hospedado.
O modo local desta entrega ainda funciona sem ativação de central configurada.
Não confundir esse modo com uma instalação comercial já sujeita ao licenciamento.

Com a central configurada, a suspensão chega na próxima validação online; offline,
a autorização assinada vale até expirar (prazo definido pela IDR, até 72 horas).
Bloqueio remoto instantâneo não é possível enquanto o computador está desconectado.
Registros comerciais permanecem preservados. O painel remoto depende da sincronização.

VALIDAÇÃO E CÓDIGO-FONTE

Veja docs\RELATORIO_TESTES.txt para números e evidências desta compilação.
Impressão PDF e fluxos locais foram verificados; impressora física, leitor e a
hospedagem do cliente precisam de teste no equipamento/ambiente correspondente.
src, tests, scripts, central, requirements*.txt e build.ps1 estão inclusos.
Fonte: EXECUTAR_FONTE.cmd (Python/dependências necessários).
Compilação: powershell -ExecutionPolicy Bypass -File .\build.ps1
O cliente executa o aplicativo sem instalar Python. Preserve a pasta _internal.
