Pular para o conteúdo principal

MNF004 — Emissão de Notas Fiscais Liberadas (enriquecimento)

Menu: Faturamento > Movimentações > Notas Fiscais > Emissão de Notas Fiscais Liberadas

Objetivo​

A tela MNF004 emite em lote as notas fiscais de venda que já foram liberadas (status 'L') no MNF003, transformando-as em notas válidas (status 'V') com numeração fiscal definitiva, processos de caixa, integração contábil e impressão. Também permite excluir (reverter para status 'E') notas liberadas que não devem ser emitidas, desvinculando-as de ordens de carregamento.

Fluxo principal​

  1. Abrir a tela; o sistema já lista automaticamente todas as notas de venda com status 'Liberada' (ST_NOTA='L') da empresa logada. (Grid 'Notas Fiscais Liberadas') — source/MNF004/UdmMNF004.dfm:78-80
  2. Marcar (clicando na coluna de seleção ou usando o botão 'Marcar Todos') as notas que serão emitidas; todas as marcadas devem ser da mesma série. (Grid 'Notas Fiscais Liberadas' / botão btnMarca) — source/MNF004/UMNF004.pas:997-1013 (TfrmMNF004.gridNOTACellClick)
  3. Confirmar o TEF pendente (se houver) e o sistema efetiva o commit da transação, atualizando as notas para status 'Válida' (ST_NOTA='V'). (sem tela — processamento automático) — source/MNF004/UMNF004.pas:774-805 (TfrmMNF004.btnSalvarClick)
  4. O sistema imprime automaticamente recibo de caixa (se gerado), NF-e/NFC-e (se configurado envio imediato), a nota fiscal e as duplicatas, e exibe mensagem de sucesso com o número das notas emitidas. (Impressão automática / caixa de mensagem) — source/MNF004/UMNF004.pas:807-866 (TfrmMNF004.btnSalvarClick)
  5. Alternativamente, marcar notas e clicar em Excluir (F7) para reverter notas liberadas ao status 'Excluída', desvinculando-as de ordens de carregamento. (Toolbar btnExcluir) — source/MNF004/UMNF004.pas:909-981 (TfrmMNF004.btnExcluirClick)

Campos obrigatórios​

CampoCondiçãoMensagemFonte
Nº do Recibo do movimento de caixaNota gera processo de caixa (venda à vista com histórico de caixa configurado) e a sequência automática SEQ_RECIBO não está cadastradaSequência não cadastrada: sistema pede o número do recibo manualmente via caixa de diálogosource/MNF004/UMNF004.pas:616-646 (TfrmMNF004.btnSalvarClick)
Marcação da(s) nota(s) na coluna STATUS do gridAo clicar em Salvar ou Excluir, é preciso ter ao menos uma nota marcada com 'Å' na coluna de seleçãoNão foi Selecionada nenhuma Nota Fiscal!source/MNF004/UMNF004.pas:332-333 (TfrmMNF004.btnSalvarClick)

Mensagens: causa e ação​

A Nota já foi %s. Verifique! Nº da Nota: %s Pessoa: %s Nº Lançamento: %s Série: %s​

Causa: Ao clicar em Salvar, o sistema revalida o status de cada nota selecionada; se outro usuário já emitiu, cancelou ou excluiu essa nota entre a abertura da tela e o clique em Salvar, o status não é mais 'L' (Liberada).

Ação: Clicar em Atualizar (F2) para recarregar a lista de notas liberadas e verificar a situação real da nota antes de tentar novamente.

Fonte: source/MNF004/UMNF004.pas:359-386 (TfrmMNF004.btnSalvarClick)

A Nota já foi Emitida. Verifique! Nº da Nota: %s Pessoa: %s Nº Lançamento: %s Série: %s​

Causa: Ao clicar em Excluir, o sistema constata que a nota marcada já foi emitida (status 'V') por outra operação concorrente.

Ação: Atualizar a lista (F2); notas já emitidas não podem mais ser excluídas por esta tela.

Fonte: source/MNF004/UMNF004.pas:932-949 (TfrmMNF004.btnExcluirClick)

Deseja Confirmar a Ordem de Carregamento %s?​

Causa: A nota emitida é a última pendente de uma Ordem de Carregamento vinculada e o parâmetro PARMFATUR.ST_FECHAORDEMCARREGNOTAS está configurado como 'S'.

Ação: Confirmar para encerrar a ordem de carregamento (status 'A') e baixar as quantidades atendidas no pedido; recusar mantém a ordem pendente para posterior confirmação manual.

Fonte: source/MNF004/UMNF004.pas:1041-1049 (TfrmMNF004.AtendeOrdemCarregamento)

Não foi Possivel Realizar a Confirmação das Transações Efetuadas pelo TEF. Realize a Baixa Novamente. Favor Reter o Cupom!​

Causa: Existe pagamento via TEF vinculado ao processo de caixa da nota e a confirmação das transações pendentes junto ao equipamento/operadora falhou.

Ação: Reter o cupom do TEF impresso e refazer a baixa/confirmação da transação antes de tentar emitir a nota novamente.

Fonte: source/MNF004/UMNF004.pas:790-799 (TfrmMNF004.btnSalvarClick)

Não foi Selecionada nenhuma Nota Fiscal!​

Causa: O usuário clicou em Salvar ou Excluir sem marcar nenhuma nota na coluna de seleção do grid.

Ação: Marcar ao menos uma nota (clicando na coluna de status ou usando 'Marcar Todos') antes de salvar/excluir.

Fonte: source/MNF004/UMNF004.pas:332-333 (TfrmMNF004.btnSalvarClick), source/MNF004/UMNF004.pas:970-971 (TfrmMNF004.btnExcluirClick)

Não é permitido marcar Notas com tipo de série diferentes!​

Causa: O usuário marcou notas de séries diferentes para emitir no mesmo lote.

Ação: Desmarcar e emitir separadamente as notas de cada série, ou marcar apenas notas da mesma série.

Fonte: source/MNF004/UMNF004.pas:320-326 (TfrmMNF004.btnSalvarClick)

Ocorreu um Problema na Impressão do Cupom Fiscal. Nota Fiscal Cancelada!​

Causa: A série da nota está configurada para cupom fiscal (PARMNOTA.ST_CUPOMFISCAL='S'), mas após a impressão o número do cupom (NR_CUPOMFISCAL) não foi gravado na nota.

Ação: Verificar o equipamento/serviço de emissão de cupom fiscal e repetir a emissão da nota; a operação foi totalmente desfeita (rollback).

Fonte: source/MNF004/UMNF004.pas:750-766 (TfrmMNF004.btnSalvarClick)

Ordem de Carregamento Nº %s Confirmada com Sucesso!​

Causa: Confirmação da última nota pendente de uma ordem de carregamento foi aceita pelo usuário.

Ação: Nenhuma ação necessária; a ordem de carregamento e o embarque foram encerrados automaticamente.

Fonte: source/MNF004/UMNF004.pas:1069-1076 (TfrmMNF004.AtendeOrdemCarregamento)

Rateio de Centro de Resultado Cancelado!​

Causa: A rotina de rateio de centro de resultado (RateioCR) foi aberta para a nota (havia divergência entre contas com/sem centro de resultado apontado) e o usuário cancelou a tela sem concluir o rateio.

Ação: Repetir a emissão e concluir o rateio de centro de resultado na tela que se abre, ou ajustar previamente o cadastro fiscal do item para não gerar a divergência.

Fonte: source/MNF004/UMNF004.pas:471-485 (TfrmMNF004.btnSalvarClick)

Somente é Permitido Informar Números !​

Causa: Ao ser solicitado o número do recibo manual (sequência SEQ_RECIBO não configurada), o usuário digitou um valor que não é um número inteiro.

Ação: Repetir a emissão e informar apenas dígitos no campo do número do recibo.

Fonte: source/MNF004/UMNF004.pas:632-637 (TfrmMNF004.btnSalvarClick)

Regras de negócio​

  • MNF004.R001 (ver regras/MNF004/MNF004.R001.md)
  • MNF004.R002 (ver regras/MNF004/MNF004.R002.md)
  • MNF004.R003 (ver regras/MNF004/MNF004.R003.md)
  • MNF004.R004 (ver regras/MNF004/MNF004.R004.md)
  • MNF004.R005 (ver regras/MNF004/MNF004.R005.md)
  • MNF004.R006 (ver regras/MNF004/MNF004.R006.md)
  • MNF004.R007 (ver regras/MNF004/MNF004.R007.md)
  • MNF004.R008 (ver regras/MNF004/MNF004.R008.md)
  • MNF004.R009 (ver regras/MNF004/MNF004.R009.md)
  • MNF004.R010 (ver regras/MNF004/MNF004.R010.md)
  • MNF004.R011 (ver regras/MNF004/MNF004.R011.md)
  • MNF004.R012 (ver regras/MNF004/MNF004.R012.md)
  • MNF004.R013 (ver regras/MNF004/MNF004.R013.md)
  • MNF004.R014 (ver regras/MNF004/MNF004.R014.md)
  • MNF004.R015 (ver regras/MNF004/MNF004.R015.md)
  • MNF004.R016 (ver regras/MNF004/MNF004.R016.md)
  • MNF004.R017 (ver regras/MNF004/MNF004.R017.md)
  • MNF004.R018 (ver regras/MNF004/MNF004.R018.md)
  • MNF004.R019 (ver regras/MNF004/MNF004.R019.md)
  • MNF004.R020 (ver regras/MNF004/MNF004.R020.md)

Perguntas frequentes​

P: Por que não consigo marcar/emitir uma nota que aparece na tela do MNF004? R: Só é possível emitir notas cujo status seja 'L' (Liberada); a consulta da tela já traz apenas essas. Se a nota já foi emitida por outro usuário simultaneamente, o sistema recusa ao salvar avisando a situação atual dela. Fonte: source/MNF004/UdmMNF004.dfm:78-80, source/MNF004/UMNF004.pas:369-386 (TfrmMNF004.btnSalvarClick)

P: Deu a mensagem 'A Nota já foi Emitida/Cancelada/Excluida. Verifique!' ao salvar. R: Entre a abertura da tela e o clique em Salvar, outro usuário (ou outra sessão) já emitiu, cancelou ou excluiu essa nota. Use Atualizar (F2) para recarregar a lista e confira a situação atual da nota antes de tentar novamente. Fonte: source/MNF004/UMNF004.pas:359-386 (TfrmMNF004.btnSalvarClick)

P: Por que não consigo marcar notas de séries diferentes ao mesmo tempo? R: O sistema processa o lote como um bloco único e exige que todas as notas marcadas sejam da mesma série; ao detectar série diferente, cancela a operação com aviso. Marque e emita as notas de cada série separadamente. Fonte: source/MNF004/UMNF004.pas:320-326 (TfrmMNF004.btnSalvarClick)

P: A nota não teve o cupom fiscal impresso e sumiu da lista mesmo assim, o que aconteceu? R: Se a impressão do cupom fiscal falhar (NR_CUPOMFISCAL não gravado), o sistema desfaz (rollback) toda a transação daquele lote e nenhuma nota do lote é emitida; a mensagem de cancelamento aparece e é preciso repetir a operação. Fonte: source/MNF004/UMNF004.pas:749-767 (TfrmMNF004.btnSalvarClick)

P: Apareceu um pedido para confirmar Ordem de Carregamento ao emitir a nota — isso é obrigatório? R: Sim, quando o parâmetro PARMFATUR.ST_FECHAORDEMCARREGNOTAS está ligado ('S') e a nota emitida é a última pendente da ordem de carregamento; confirmar atualiza o status da ordem/embarque e baixa quantidades do pedido. Se recusar, a ordem continua pendente. Fonte: source/MNF004/UMNF004.pas:489-530 (TfrmMNF004.btnSalvarClick), source/MNF004/UMNF004.pas:1041-1079 (TfrmMNF004.AtendeOrdemCarregamento)

P: Por que a nota emitida gerou movimento de caixa/recibo automaticamente? R: Quando a nota gera um processo de caixa (ex.: venda à vista) e a empresa tem histórico de caixa configurado (PARMFATUR.CD_HISTORICO), o sistema abre o caixa e grava o movimento automaticamente, imprimindo o recibo após a confirmação. Fonte: source/MNF004/UMNF004.pas:538-570 (TfrmMNF004.btnSalvarClick)

P: Não consigo excluir uma nota liberada, deu erro de nota já emitida. R: A exclusão de uma nota liberada só é permitida se o status ainda for 'L'; se alguém já emitiu essa nota (status 'V'), o sistema bloqueia a exclusão e mostra os dados da nota. Atualize a tela e confirme a situação atual antes de excluir. Fonte: source/MNF004/UMNF004.pas:932-949 (TfrmMNF004.btnExcluirClick)

P: Ao excluir a nota, o que acontece com a Ordem de Carregamento vinculada? R: A exclusão desvincula a nota da ordem de carregamento (zera os campos de empresa/lançamento/tipo/série na ORDEMCARREG), permitindo que a ordem seja atendida por outra nota. Fonte: source/MNF004/UMNF004.pas:953-962 (TfrmMNF004.btnExcluirClick)

P: Deu a mensagem sobre não conseguir confirmar transações do TEF ao salvar. R: A nota tinha um pagamento por cartão via TEF pendente de confirmação junto à operadora; ao falhar essa confirmação, o sistema orienta reter o cupom e refazer a baixa/confirmação. Não avance sem confirmar a transação junto ao TEF. Fonte: source/MNF004/UMNF004.pas:774-799 (TfrmMNF004.btnSalvarClick)

P: Por que apareceu uma tela de compensação financeira ao emitir a nota? R: Quando a forma de pagamento da nota não é à vista ('V') e o parâmetro de compensação financeira (PARMFINANC.ST_COMPENSACAOFINANC) está ativo, e a pessoa tem títulos em aberto, o sistema abre a tela de compensação para permitir abater esses valores contra a nota gerada. Fonte: source/MNF004/UMNF004.pas:721-746 (TfrmMNF004.btnSalvarClick)

P: A nota é NF-e/NFC-e e não foi transmitida automaticamente para a SEFAZ. R: A transmissão automática só ocorre se o parâmetro de configuração de NF-e da empresa (CONFIGNFE.TPENVIO) estiver como 'I' (imediato); nesse caso o sistema chama a rotina de envio logo após o commit da emissão. Fonte: source/MNF004/UMNF004.pas:771-772 (TfrmMNF004.btnSalvarClick), source/MNF004/UMNF004.pas:821-839 (TfrmMNF004.btnSalvarClick)

Dúvidas em aberto (o código não responde)​

  • O que exatamente a procedure GERA_NOTAFISCAL valida/gera (numeração, estoque, impostos, comissão) e quais mensagens de erro V_MENSAGEM ela pode devolver? — UMNF004.pas:397-413 apenas repassa o V_MENSAGEM retornado pela procedure como erro; o corpo de GERA_NOTAFISCAL não foi lido por ser um script Firebird extenso e compartilhado com outros módulos (MNF002 etc.), fora do escopo definido para este módulo.
  • Quais são exatamente os efeitos dos valores de PARMFATUR.ST_ATENDECARREG diferentes de 'N' (ex.: 'S')? — UMNF004.pas:1086 só testa o valor 'N' (não atende pedido); não há código no módulo que trate explicitamente outros valores.
  • Por que o array VNota[I].ParmRecibo usa índices 0-16 mas o índice 12 e 15 nunca são preenchidos? — UMNF004.pas:658-678; pode ser parâmetro não utilizado por este fluxo ou herança de outro módulo — não há comentário que explique.
  • O aviso de caixa aberto há mais de um dia (parâmetro ST_DIASCAIXA = 'A') bloqueia a emissão ou é apenas informativo? — Scripts/CONTROLE_CAIXA.sql:76-79 gera O_DS_AVISO (não O_DS_MENSAGEM), e UdmMNF004.pas:183-184 apenas exibe MsgCodigo('W-0000') sem interromper o fluxo — parece ser só aviso, mas não há confirmação explícita no código lido de que a emissão prossegue sem impedimento algum.