MNF017 — Venda Balcão (enriquecimento)
Menu: Faturamento > Movimentações > Notas Fiscais > Venda Balcão
Objetivo
Tela de PDV (Venda Balcão) para lançar vendas de balcão/restaurante: identifica o produto por código, código de barras ou balança, monta o carrinho com preço/grade/lote, e abre uma tela de confirmação para definir cliente, pagamento e parcelas. Ao confirmar, grava a Nota Fiscal/NFC-e/Pedido, calcula impostos e comissão, integra com o caixa e, quando configurado, com TEF/NFe/SAT e o módulo de restaurante (mesas/comandas).
Fluxo principal
- Clicar em 'Cupom/Nota <F6>' (venda) ou 'Pedido <F10>' para abrir a tela de Dados Complementares. (Tela principal) —
source/MNF017/UMNF017.pas:779-887 (TfrmMNF017.buttonCupomClick) - Informar/confirmar cliente, endereço, vendedor, condição/forma de pagamento, valor recebido e parcelas. (Dados Complementares) —
source/MNF017/uMNF017ConfPedido.pas:1303-1387 (TfrmMNF017ConfPedido.FormActivate)
Campos obrigatórios
| Campo | Condição | Mensagem | Fonte |
|---|---|---|---|
| Pessoa (Cliente) | Sempre, para confirmar a venda/pedido. | -> Informe a pessoa! | source/MNF017/uMNF017ConfPedido.pas:243-247 (Verifica_Dados) |
| Endereço | Sempre, vinculado à pessoa informada. | -> Informe o endereço da pessoa! | source/MNF017/uMNF017ConfPedido.pas:249-253 (Verifica_Dados) |
| Vendedor | Quando o parâmetro ST_VENDEDOR='S'. | -> Informe um Vendedor! | source/MNF017/uMNF017ConfPedido.pas:255-259 (Verifica_Dados) |
| Condição de Pagamento | Sempre. | -> Informe a condição de pagamento! | source/MNF017/uMNF017ConfPedido.pas:261-265 (Verifica_Dados) |
| Forma de Pagamento | Sempre. | -> Informe a forma de pagamento! | source/MNF017/uMNF017ConfPedido.pas:267-271 (Verifica_Dados) |
| Data de Vencimento | Quando a condição de pagamento é do tipo 'D' (vencimento fixo). | -> Informe a data de vencimento! | source/MNF017/uMNF017ConfPedido.pas:273-278 (Verifica_Dados) |
| Valor Recebido | Sempre. | -> Informe o Valor Recebido! | source/MNF017/uMNF017ConfPedido.pas:280-284 (Verifica_Dados) |
| Valor Líquido | Sempre. | -> Informe o Valor Liquido! | source/MNF017/uMNF017ConfPedido.pas:286-290 (Verifica_Dados) |
| Data de Emissão | Sempre. | -> Informe a data de emissão! | source/MNF017/uMNF017ConfPedido.pas:225-229 (Verifica_Dados) |
| Série e Número da Nota Fiscal | Quando é emissão de Nota (Tipo='N') e os campos estão visíveis (não gerado por sequência automática). | -> Informe a série da Nota Fiscal / Cupom! / -> Informe o Número da Nota Fiscal! | source/MNF017/uMNF017ConfPedido.pas:231-241 (Verifica_Dados) |
Mensagens: causa e ação
A Pessoa está com a Situação Financeira Bloqueada! Verifique [TFA001]
Causa: O cliente selecionado está com ST_SCPC='S' (bloqueio financeiro) no cadastro de Pessoa.
Ação: Desbloquear o cliente no cadastro financeiro ou escolher outro cliente.
Fonte: source/MNF017/UdmMNF017.pas:1470-1471 (TdmMNF017.tabCABECALHOCD_PESSOAValidate)
A Condição de Pagamento deve ser do tipo Saída! Verifique [TFC002]
Causa: A condição de pagamento escolhida está parametrizada apenas para operações de Entrada.
Ação: Selecionar uma condição de pagamento cadastrada para operações de Saída.
Fonte: source/MNF017/UdmMNF017.pas:1788-1790 (TdmMNF017.tabCABECALHOCD_CONDPAGTOValidate)
A Condição de Pagamento não está Cadastrada [TFC002]!
Causa: O código digitado não existe na tabela CONDPAGTO.
Ação: Usar F9 para pesquisar uma condição de pagamento válida.
Fonte: source/MNF017/UdmMNF017.pas:1846-1848 (TdmMNF017.tabCABECALHOCD_CONDPAGTOValidate)
A Forma de Pagamento não está Cadastrada [TFC001]!
Causa: O código de forma de pagamento não existe em FORMAPAGTO.
Ação: Selecionar uma forma de pagamento existente via pesquisa (F9).
Fonte: source/MNF017/UdmMNF017.pas:1757-1759 (TdmMNF017.tabCABECALHOCD_FORMAPAGTOValidate)
O Vendedor não está Cadastrado [TFA007]!
Causa: O código informado no campo Vendedor não corresponde a um registro em VENDEDOR/PESSOA.
Ação: Pesquisar (F9) e selecionar um vendedor cadastrado.
Fonte: source/MNF017/UdmMNF017.pas:2247-2248 (TdmMNF017.tabCABECALHOCD_VENDEDORValidate)
Os Parâmetros de Nota Fiscal para a Empresa ... e Operação de Saída não estão Cadastrados [MFA002]!
Causa: A série informada não tem registro em PARMNOTA para TP_NOTA='S' na empresa atual.
Ação: Cadastrar a série em Parâmetros de Nota Fiscal ou trocar para uma série já configurada.
Fonte: source/MNF017/UdmMNF017.pas:2052-2055 (TdmMNF017.tabCABECALHOCD_SERIEValidate)
O percentual de desconto não pode ser maior ou igual a 100% ou menor que 0%!
Causa: Foi digitado um desconto fora da faixa permitida (ex.: 100 ou negativo).
Ação: Informar um desconto entre 0 e 99,99%.
Fonte: source/MNF017/UdmMNF017.pas:2076-2080 (TdmMNF017.tabCABECALHOVL_DESCONTOValidate)
Valor Liquido nao pode ser menor que Zero!
Causa: O valor líquido informado/calculado ficou negativo, geralmente após um desconto ou ajuste manual.
Ação: Corrigir o valor líquido ou o desconto aplicado.
Fonte: source/MNF017/UdmMNF017.pas:2311-2312 (TdmMNF017.tabCABECALHOVL_LIQUIDOValidate)
O Valor Líquido não pode ser inferior ao Valor dos Produtos em Promoção (R$ ...). Verifique!
Causa: O usuário reduziu o valor líquido para menos do que a soma dos itens marcados como promocionais.
Ação: Aumentar o valor líquido para pelo menos o total dos itens em promoção.
Fonte: source/MNF017/UdmMNF017.pas:2326-2332 (TdmMNF017.tabCABECALHOVL_LIQUIDOValidate)
O Valor Recebido deve ser Maior que Zero!
Causa: O valor recebido em moeda estrangeira foi informado como zero ou negativo.
Ação: Informar um valor recebido positivo.
Fonte: source/MNF017/UdmMNF017.pas:2273-2275 (TdmMNF017.tabCABECALHOVL_RECEBIDOMOEDAValidate)
O Valor Recebido deve ser Maior o Valor Líquido!
Causa: O valor recebido em moeda estrangeira convertido é menor que o valor líquido da venda.
Ação: Aumentar o valor recebido informado.
Fonte: source/MNF017/UdmMNF017.pas:2276-2279 (TdmMNF017.tabCABECALHOVL_RECEBIDOMOEDAValidate)
A Data de Vencimento Não Pode Ser Menor do que a Data da Compra!
Causa: A data de vencimento digitada é anterior à data de emissão da nota.
Ação: Informar uma data de vencimento igual ou posterior à emissão.
Fonte: source/MNF017/UdmMNF017.pas:2262-2267 (TdmMNF017.tabCABECALHODT_VENCTOValidate)
O Valor da Parcela não pode ser Menor que Zero!
Causa: Foi digitado um valor negativo na grade de parcelas.
Ação: Corrigir o valor da parcela para um número positivo.
Fonte: source/MNF017/UdmMNF017.pas:3448-3450 (TdmMNF017.tabPARCELAVL_PARCELAValidate)
Produto não tem local de armazenagem [TPO001]!
Causa: O item não possui nenhum local de armazenagem cadastrado (RETORNA_LOCAISARMAZENAGEM vazio).
Ação: Cadastrar o local de estoque do item antes de vendê-lo.
Fonte: source/MNF017/UMNF017.pas:1294-1301 (TfrmMNF017.edtSubMensagemKeyDown)
O Local de Armazenagem não está Cadastrado ou não está Associado a este Tipo de Local [TEQ003]!
Causa: A combinação de Local x Tipo de Local informada no Foco Inicial não existe em LOCALESTOQUE.
Ação: Selecionar uma combinação válida de Local/Tipo de Local.
Fonte: source/MNF017/UdmMNF017.pas:2511-2519 (TdmMNF017.tabFocoCD_LOCALValidate)
O Tipo de Local de Armazenagem não está Cadastrado [TEQ002]!
Causa: O código de tipo de local informado não existe em TIPOLOCAL.
Ação: Informar um tipo de local cadastrado.
Fonte: source/MNF017/UdmMNF017.pas:2535-2544 (TdmMNF017.tabFocoCD_TIPOLOCALValidate)
Para informar a Série Padrão é necessário desmarcar a opção Série em Branco!
Causa: O usuário tentou preencher a Série Padrão com 'Série em Branco' ainda marcada.
Ação: Desmarcar 'Série em Branco' antes de informar a Série Padrão.
Fonte: source/MNF017/UdmMNF017.pas:2496-2499 (TdmMNF017.tabFocoCD_SERIEValidate)
Para selecionar a opção Série em Branco é necessário que o campo Série Padrão não esteja informado!
Causa: Há uma Série Padrão preenchida ao tentar marcar 'Série em Branco'.
Ação: Limpar a Série Padrão antes de marcar a opção.
Fonte: source/MNF017/UdmMNF017.pas:3180-3183 (TdmMNF017.tabFocoST_SERIEVAZIOValidate)
O Item da Grade não possui Saldo Suficiente para Venda!
Causa: A combinação linha/coluna da grade do produto não tem saldo em estoque para a quantidade solicitada.
Ação: Reduzir a quantidade da grade específica ou repor o estoque dessa combinação.
Fonte: source/MNF017/UdmMNF017.pas:2849-2858 (TdmMNF017.ValidaSaldoGrade)
É necessario configurar a tabela de preço padrão [MFA001]
Causa: PARMFATUR.CD_TABPRECO não está preenchido para a empresa.
Ação: Configurar a Tabela de Preço padrão em Parâmetros de Faturamento.
Fonte: source/MNF017/UMNF017.pas:244-245 (iniciar)
É necessario configurar a movimentação padrão [MFA001]
Causa: PARMFATUR.CD_MOVSAIDA não está preenchido para a empresa.
Ação: Configurar a Movimentação de Saída padrão em Parâmetros de Faturamento.
Fonte: source/MNF017/UMNF017.pas:246-247 (iniciar)
É Obrigatorio Informar o Consumidor Final! Verifique [MFA001]
Causa: PARMFATUR.CD_CONSUMIDOR não está preenchido para a empresa.
Ação: Cadastrar o Consumidor Final em Parâmetros de Faturamento.
Fonte: source/MNF017/UMNF017.pas:254-258 (iniciar)
CNPJ/CPF Inválido
Causa: O número digitado no campo CPF/CNPJ não passa na validação de dígito verificador.
Ação: Conferir e redigitar o número do documento.
Fonte: source/MNF017/uMNF017ConfPedido.pas:1930-1936 (TfrmMNF017ConfPedido.edtNR_CPFExit)
Para Identificação de NFCe, Somente é Permitido "CPF/CNPJ". Verifique!
Causa: Foi informado um identificador diferente de CPF/CNPJ (ex.: texto livre) em uma venda de espécie NFC-e.
Ação: Informar apenas CPF ou CNPJ válido, ou deixar em branco.
Fonte: source/MNF017/uMNF017ConfPedido.pas:1939-1945 (TfrmMNF017ConfPedido.edtNR_CPFExit)
Identificado mais de um imposto de Tipo 'ICMS' para a Movimentação ... Verifique [MFI001]
Causa: A movimentação fiscal do item está associada a mais de um imposto do tipo ICMS, o que a procedure de geração da nota não suporta.
Ação: Corrigir o cadastro de Impostos da Movimentação em Faturamento > Movimentação, deixando um único imposto tipo ICMS.
Fonte: source/MNF017/uMNF017ConfPedido.pas:914-936 (TfrmMNF017ConfPedido.btnConfirmaClick)
Não foi Possivel Realizar a Confirmação das Transações Efetuadas pelo TEF. Realize a Baixa Novamente. Favor Reter o Cupom!
Causa: A API do TEF falhou ao confirmar transações pendentes vinculadas ao caixa da nota.
Ação: Reter o cupom, repetir a baixa da venda e, se persistir, verificar a conexão/configuração do TEF com o suporte técnico.
Fonte: source/MNF017/uMNF017ConfPedido.pas:1199-1206 (TfrmMNF017ConfPedido.btnConfirmaClick)
Não é Possível Realizar a Impressão, Pois o Layout de Nota Esta como "Cupom" E o Parâmetro de "Emite Cupom Fiscal" está como "Não"! Verifique! [MFA002]
Causa: A série usa layout 'CUPOM' mas o parâmetro Emite Cupom Fiscal da série está desligado.
Ação: Ativar o parâmetro Emite Cupom Fiscal da série ou trocar o layout da série.
Fonte: source/MNF017/uMNF017ConfPedido.pas:401-405 (Imprime_Nota)
O usuário não possui acesso a tela de Histórico de Cliente [CFC004]!
Causa: O cliente tem pendências financeiras e o parâmetro de alerta está ativo, mas o usuário logado não tem permissão de acesso à tela CFC004.
Ação: Solicitar ao administrador liberação de acesso ao menu CFC004 para o usuário.
Fonte: source/MNF017/uMNF017ConfPedido.pas:2104-2106 (TfrmMNF017ConfPedido.edtCD_PESSOAExit)
O Código de Liberação não é Válido!
Causa: O código informado na janela de liberação não corresponde ao PARMFATUR.CD_LIBERACAO cadastrado.
Ação: Informar o código de liberação correto configurado nos Parâmetros de Faturamento.
Fonte: source/MNF017/UMNF017Liberacao.pas:75-86 (TfrmMNF017Liberacao.btnLiberarClick)
Senha Inválida!, Verifique! [ADM001]
Causa: A senha informada na tela de autorizador não confere com o campo SN_USUARIO do usuário autorizador.
Ação: Confirmar a senha correta do usuário autorizador junto ao administrador do sistema.
Fonte: source/MNF017/UMNF017formAutorizador.pas:131-138 (TUMNF017formAutorizadorForm.btnOKClick)
A Mesa não Está Cadastrada. Verifique! [MRE003]
Causa: O número de mesa/cartão informado não existe na tabela MESA.
Ação: Conferir o número da mesa no módulo de Restaurante.
Fonte: source/MNF017/UMNF017Cartao.pas:170-178 (TfrmMNF017Cartao.tabFILTRONR_CARTAOValidate)
Não Existe Lançamento Aberto Para Esta Mesa. Verifique! [MRE005]
Causa: A mesa existe e está ativa, mas não há um registro de RESTAURANTE em aberto (ST_RESTAURANTE='A') para ela.
Ação: Abrir a comanda da mesa no módulo de Restaurante antes de importar para a Venda Balcão.
Fonte: source/MNF017/UMNF017Cartao.pas:182-192 (TfrmMNF017Cartao.tabFILTRONR_CARTAOValidate)
A Descrição e o Valor São Campos Obrigatórios.
Causa: Na tela auxiliar de Produto, o campo descrição ficou vazio ou o valor não é maior que zero.
Ação: Preencher a descrição e um valor positivo antes de confirmar.
Fonte: source/MNF017/UMNF017Produto.pas:43-45 (TfrmMNF017Produto.btnOkClick)
O produto informado não está registrado! Verifique!
Causa: O código/código de barras digitado não corresponde a nenhum item cadastrado.
Ação: Conferir o código do produto ou cadastrá-lo em Cadastros > Produtos.
Fonte: source/MNF017/UMNF017.pas:953-960 (TfrmMNF017.edtSubMensagemKeyDown)
A Quantidade do Produto ... deve ser Maior que Zero! Verifique!
Causa: O usuário digitou uma quantidade zero no formato 'quantidade*código'.
Ação: Informar uma quantidade maior que zero antes do '*'.
Fonte: source/MNF017/UMNF017.pas:951-958 (TfrmMNF017.edtSubMensagemKeyDown)
Tabela de Preço não Informada. Verifique!
Causa: O campo Tabela de Preço na tela principal está vazio ao tentar lançar um item.
Ação: Informar/pesquisar uma Tabela de Preço válida no campo correspondente.
Fonte: source/MNF017/UMNF017.pas:926-931 (TfrmMNF017.edtSubMensagemKeyDown)
Tabela de Preço não cadastrada! Verifique [TFA006]
Causa: O código de tabela de preço digitado não existe em TABPRECO.
Ação: Selecionar uma Tabela de Preço cadastrada.
Fonte: source/MNF017/UMNF017.pas:2493-2521 (TfrmMNF017.edtTabPrecoExit)
Regras de negócio
MNF017.R001(verregras/MNF017/MNF017.R001.md)MNF017.R002(verregras/MNF017/MNF017.R002.md)MNF017.R003(verregras/MNF017/MNF017.R003.md)MNF017.R004(verregras/MNF017/MNF017.R004.md)MNF017.R005(verregras/MNF017/MNF017.R005.md)MNF017.R006(verregras/MNF017/MNF017.R006.md)MNF017.R007(verregras/MNF017/MNF017.R007.md)MNF017.R008(verregras/MNF017/MNF017.R008.md)MNF017.R009(verregras/MNF017/MNF017.R009.md)MNF017.R010(verregras/MNF017/MNF017.R010.md)MNF017.R011(verregras/MNF017/MNF017.R011.md)MNF017.R012(verregras/MNF017/MNF017.R012.md)MNF017.R013(verregras/MNF017/MNF017.R013.md)MNF017.R014(verregras/MNF017/MNF017.R014.md)MNF017.R015(verregras/MNF017/MNF017.R015.md)MNF017.R016(verregras/MNF017/MNF017.R016.md)MNF017.R017(verregras/MNF017/MNF017.R017.md)MNF017.R018(verregras/MNF017/MNF017.R018.md)MNF017.R019(verregras/MNF017/MNF017.R019.md)MNF017.R020(verregras/MNF017/MNF017.R020.md)MNF017.R021(verregras/MNF017/MNF017.R021.md)MNF017.R022(verregras/MNF017/MNF017.R022.md)MNF017.R023(verregras/MNF017/MNF017.R023.md)MNF017.R024(verregras/MNF017/MNF017.R024.md)MNF017.R025(verregras/MNF017/MNF017.R025.md)MNF017.R026(verregras/MNF017/MNF017.R026.md)MNF017.R027(verregras/MNF017/MNF017.R027.md)
Perguntas frequentes
P: Por que não consigo salvar a venda mesmo preenchendo os itens?
R: A tela de Dados Complementares confere data de emissão, série, pessoa, endereço, vendedor, condição e forma de pagamento e valores antes de gravar; qualquer um vazio bloqueia com uma lista de pendências.
Fonte: source/MNF017/uMNF017ConfPedido.pas:202-318 (Verifica_Dados)
P: Deu a mensagem 'A Condição de Pagamento deve ser do tipo Saída'. O que fazer?
R: A condição de pagamento selecionada está cadastrada apenas para Entrada; escolha outra condição parametrizada para Saída em Financeiro > Condição de Pagamento.
Fonte: source/MNF017/UdmMNF017.pas:1766-1791 (TdmMNF017.tabCABECALHOCD_CONDPAGTOValidate)
P: Por que o sistema pede senha de autorizador ao cancelar a venda?
R: O parâmetro ST_AUTORIZADOR está ativo e o usuário logado não é um autorizador cadastrado; é preciso um login/senha de autorizador ativo para prosseguir.
Fonte: source/MNF017/UMNF017.pas:592-604 (TfrmMNF017.confirmacaoFechamento)
P: Por que aparece 'Produto não tem local de armazenagem'?
R: O item não tem nenhum local de estoque associado nem há Local/Tipo de Local padrão definido no Foco Inicial da tela; é preciso cadastrar o local do item.
Fonte: source/MNF017/UMNF017.pas:1275-1301 (TfrmMNF017.edtSubMensagemKeyDown)
P: Por que a venda pergunta se quero continuar mesmo sem saldo em estoque?
R: Os parâmetros ST_ESTOQUENEGATIVO/ST_ALERTAESTOQUENEGATIVO estão configurados para apenas alertar (não bloquear); confirmar a mensagem permite vender com saldo negativo.
Fonte: source/MNF017/uMNF017ConfPedido.pas:1442-1521 (ValidaEstoqueNegativo)
P: Por que não consigo emitir Cupom Fiscal nessa série?
R: O layout da série não está definido como 'CUPOM' ou o parâmetro 'Emite Cupom Fiscal' da série está desativado; ajuste em Parâmetros de Nota Fiscal.
Fonte: source/MNF017/uMNF017ConfPedido.pas:380-405 (Verifica_Dados)
P: Deu 'CNPJ/CPF Inválido' ao digitar o documento do cliente na NFC-e. Por quê?
R: O número não passou na validação de dígitos verificadores de CPF/CNPJ; confira e redigite o número correto.
Fonte: source/MNF017/uMNF017ConfPedido.pas:1924-1937 (TfrmMNF017ConfPedido.edtNR_CPFExit)
P: Por que a venda travou pedindo o TEF?
R: Há um lançamento de caixa vinculado a TEF ainda pendente de confirmação; o sistema tenta confirmar automaticamente e, se falhar, pede para reter o cupom e repetir a baixa.
Fonte: source/MNF017/uMNF017ConfPedido.pas:1182-1207 (TfrmMNF017ConfPedido.btnConfirmaClick)
P: Por que preciso de código de liberação para cancelar o cupom?
R: A empresa tem um Código de Liberação configurado em Parâmetros de Faturamento; sempre que há itens no cupom, cancelar ou iniciar novo cupom exige esse código.
Fonte: source/MNF017/UMNF017Liberacao.pas:62-92 (TfrmMNF017Liberacao.btnLiberarClick)
P: Por que a importação da mesa (MRE005) não traz os itens do restaurante?
R: A mesa informada precisa estar ativa e ter uma comanda/lançamento de restaurante em aberto; sem isso o sistema recusa a mesa.
Fonte: source/MNF017/UMNF017Cartao.pas:163-196 (TfrmMNF017Cartao.tabFILTRONR_CARTAOValidate)
P: Por que o valor das parcelas não bate e não deixa confirmar?
R: A soma de todas as parcelas precisa ser exatamente igual ao valor líquido da venda; use 'Editar Parcelas' para ajustar antes de confirmar.
Fonte: source/MNF017/uMNF017ConfPedido.pas:292-315 (Verifica_Dados)
Dúvidas em aberto (o código não responde)
- O bloqueio de erro em 'VERIFICA_BLOQUEIO' com tipo 'E' faz rollback e cancela a nota, mas o comportamento para tipo diferente de 'E' (bloqueio normal) permite seguir bloqueada como pendência (ST_NOTA='B'); é esse o comportamento esperado para todos os tipos de bloqueio parametrizados na procedure? — uMNF017ConfPedido.pas, TfrmMNF017ConfPedido.btnConfirmaClick, linhas ~822-877.
- A condição comentada 'if (ParmFatur.Values[TP_RARTEIOCC] = A)' antes do rateio de centro de resultado agrupado foi removida intencionalmente (rateio agrupado sempre obrigatório) ou é um resíduo de mudança não finalizada? — uMNF017ConfPedido.pas, TfrmMNF017ConfPedido.btnConfirmaClick, linhas ~998-1014.
- A validação de Valor Recebido em reais (tabCABECALHOVL_RECEBIDOValidate) tem o Raise comentado - a intenção é permitir vender recebendo menos que o valor da compra, ou é uma validação pendente de reativação? — UdmMNF017.pas, linhas 2420-2437.
- O bloco de envio para SAT sempre lança 'Envio SAT não disponível!' antes de qualquer tentativa - a espécie SAT está formalmente descontinuada nesta versão do MNF017 ou aguarda apenas reativação (ImplementarV2)? — uMNF017ConfPedido.pas, TfrmMNF017ConfPedido.btnConfirmaClick, linhas 1249-1261.