Pular para o conteúdo principal

MNF019 — Gerenciamento de Notas Geral/Mestra (enriquecimento)

Menu: Faturamento > Movimentações > Notas Fiscais > Gerenciamento de Notas Geral/Mestra

Objetivo​

Tela genérica de gerenciamento de Notas Fiscais (entrada, saída e devolução), usada para consolidar uma ou mais notas de origem/pedidos em uma nova nota ou nota mestra simbólica (MESTRA/REMESSA). Trata itens, grade de produtos, lotes de semente rateados, números de série, impostos, controle de entrega, embarque e emissão/gravação da NF-e, integrando com o financeiro e o estoque ao salvar.

Fluxo principal​

  1. Informar filtro da nota (tipo de nota, operação, movimentação manual se aplicável, motivo se devolução) e localizar as notas de origem/pedidos disponíveis. (Aba Nota Geral/Mestra (Filtro)) — source/MNF019/UMNF019.pas:727-740 (Consulta_NFOrigem)
  2. Marcar (status) as notas de origem desejadas na grade e clicar em Processar para consolidá-las. (Grid de Notas de Origem) — source/MNF019/UMNF019.pas:3242-3247 (TfrmMNF019.btnProcessaClick)
  3. Sistema traz os itens das notas de origem para a grade, define movimentação/local de estoque e calcula impostos e totais automaticamente. (Aba Nota Fiscal / Itens) — source/MNF019/UMNF019.pas:1141-1229 (Consulta_NFOrigem)
  4. Completar dados da nota (pessoa, endereço, condição/forma de pagamento) e dos itens (grade, lote de semente, serial) conforme o tipo de produto. (Aba Nota Fiscal) — source/MNF019/UdmMNF019.pas:2843-2917 (TdmMNF019.tabITEMNOTACD_ITEMValidate)
  5. Se necessário, alterar impostos manualmente (Alterar/Confirmar) antes de salvar. (Aba Impostos) — source/MNF019/UMNF019.pas:2776-2840 (TfrmMNF019.btnAlterarClick)
  6. Salvar (F6): sistema valida campos obrigatórios, verifica controle de entrega/devolução, grava a nota, gera número da NF, mestra (se aplicável), controle de entrega e integração. (Botão Salvar) — source/MNF019/UMNF019.pas:1690-1728 (TfrmMNF019.btnSalvarClick)
  7. Se a nota do fornecedor for NF-e/CT-e de entrada, informar a chave de acesso de 44 dígitos para concluir. (Tela Chave de Acesso) — source/MNF019/UMNF019.pas:1909-1919 (TfrmMNF019.btnSalvarClick)

Campos obrigatórios​

CampoCondiçãoMensagemFonte
Data de Emissão da Notasempre, ao salvar (tabNOTABeforePost)source/MNF019/UdmMNF019.pas:2474-2479 (TdmMNF019.tabNOTABeforePost)
Pessoa Física/Jurídica e Endereço da notasempre, ao salvarsource/MNF019/UdmMNF019.pas:2481-2493 (TdmMNF019.tabNOTABeforePost)
Condição de Pagamentosempre, ao salvarsource/MNF019/UdmMNF019.pas:2495-2500 (TdmMNF019.tabNOTABeforePost)
Data de Vencimentoquando a condição de pagamento é do tipo 'Vencto Digitado' (ST_CONDPAGTO = 'D')source/MNF019/UdmMNF019.pas:2502-2507 (TdmMNF019.tabNOTABeforePost)
Forma de Pagamentosempre, ao salvarsource/MNF019/UdmMNF019.pas:2517-2522 (TdmMNF019.tabNOTABeforePost)
Valor da Nota Fiscalquando a operação é Entrada (compra/devolução de venda)source/MNF019/UdmMNF019.pas:2524-2530 (TdmMNF019.tabNOTABeforePost)
Número da Nota Fiscalquando a série não usa sequência automática e a operação não é Entradasource/MNF019/UMNF019.pas:1444-1449 (TfrmMNF019.btnSalvarClick)
Produto e Movimentação do item da notasempre, para cada linha da grade de itenssource/MNF019/UdmMNF019.pas:2554-2566 (TdmMNF019.tabITEMNOTABeforePost)
Peso e Quantidade do itemquando ValidaRegistro=True e o campo não está bloqueado por Habilita_PesoQtdesource/MNF019/UdmMNF019.pas:2568-2581 (TdmMNF019.tabITEMNOTABeforePost)
Valor Unitário e Valor Total do itemsempre, para cada itemsource/MNF019/UdmMNF019.pas:2583-2592 (TdmMNF019.tabITEMNOTABeforePost)
Local de Armazenagem do itemquando a movimentação do item gera estoque (CD_OPERACAO preenchido)source/MNF019/UdmMNF019.pas:2598-2603 (TdmMNF019.tabITEMNOTABeforePost)
Número/Série/Espécie da Nota do Fornecedorquando a operação é Entradasource/MNF019/UMNF019.pas:1406-1426 (TfrmMNF019.btnSalvarClick)
Motivo da Devoluçãoquando o tipo de nota (cmbTP_NOTA) é Devoluçãosource/MNF019/UMNF019.pas:736-740 (Consulta_NFOrigem)
Data de Embarquequando os dados de embarque da nota são preenchidossource/MNF019/UdmMNF019.pas:3691-3696 (TdmMNF019.tabEMBARQUEBeforePost)

Mensagens: causa e ação​

A Data de Vencimento não pode ser Menor que a Data de Emissão da Nota Fiscal!​

Causa: Usuário digitou uma data de vencimento anterior à data de emissão da nota.

Ação: Corrigir a data de vencimento para ser igual ou posterior à emissão.

Fonte: source/MNF019/UdmMNF019.pas:2509-2515 (TdmMNF019.tabNOTABeforePost)

A Movimentação Gera Estoque e o Produto "%s": Não Possui Local de Armazenagem Associado. Ou o Usuário não Possui Acesso. Ou não Permite Faturamento. Verifique [TPO001, TOF007]!​

Causa: O produto não tem local de armazenagem cadastrado, ou o usuário não tem acesso liberado a esse local, ou o local não permite faturamento.

Ação: Cadastrar/associar o local de armazenagem ao produto (TPO001) e liberar o acesso do usuário ao local (TOF007).

Fonte: source/MNF019/UdmMNF019.pas:3021-3051 (TdmMNF019.tabITEMNOTACD_MOVIMENTACAOValidate)

A Movimentação não possui Código Fiscal de Operação(CFO) Associado [TCB001]!​

Causa: A movimentação de estoque selecionada no item não tem CFO cadastrado.

Ação: Completar o cadastro da movimentação com o CFO correspondente (tela TCB001).

Fonte: source/MNF019/UdmMNF019.pas:2593-2597 (TdmMNF019.tabITEMNOTABeforePost)

O Produto %s já foi Informado na Nota Fiscal!​

Causa: O mesmo código de produto já existe em outra linha da grade de itens desta nota.

Ação: Remover a linha duplicada e ajustar a quantidade no item já existente.

Fonte: source/MNF019/UdmMNF019.pas:2867-2878 (TdmMNF019.tabITEMNOTACD_ITEMValidate)

A Nota Fiscal %s Série %s da Empresa %s já foi Lançada. Verifique!​

Causa: Já existe uma nota ativa (ST_NOTA <> 'E') com o mesmo número e série para a empresa.

Ação: Conferir se a nota já foi digitada antes; se sim, usar outro número/série de nota.

Fonte: source/MNF019/UdmMNF019.pas:3625-3641 (TdmMNF019.tabNOTANR_NOTAFISCALValidate)

A Nota Fiscal já está Lançada para esta Pessoa!​

Causa: A combinação número + série + espécie da nota do fornecedor já está cadastrada para a mesma pessoa.

Ação: Conferir se a nota de compra/entrada já foi lançada antes de digitar novamente.

Fonte: source/MNF019/UdmMNF019.pas:3288-3311 (TdmMNF019.tabNOTANR_NOTAFORValidate)

Não foi possivel realizar a devolução de [...] pois ele possui um controle de entrega com o saldo agendado(s)/entregues(s) maior que o total a devolver...​

Causa: O produto tem entregas agendadas ou já entregues (controle de entrega) em saldo maior do que a quantidade que está sendo devolvida.

Ação: Cancelar o controle de entrega do produto na tela MNF016 antes de concluir a devolução.

Fonte: source/MNF019/UMNF019.pas:1489-1541 (TfrmMNF019.btnSalvarClick)

Não foi informado os dados da grade para o produto "%s". Selecione o produto e verifique a grade <F10>!​

Causa: O produto tem grade cadastrada, a movimentação gera estoque e o usuário não preencheu a distribuição por grade.

Ação: Selecionar o item na grade de produtos e pressionar F10 para preencher a grade antes de salvar.

Fonte: source/MNF019/UdmMNF019.pas:1740-1755 (Grava_NotaFiscal)

A Soma do Saldo em Estoque do(s) Lote(s) Para o Item ... é Menor a Quantidade Informada. O Máximo Possível é %s. Para Quantidades Maiores Faça uma Nota de Origem Separada. [MNF002]​

Causa: Na geração de mestra por Contrato, a quantidade do item excede o saldo disponível nos lotes de semente vinculados à nota de origem.

Ação: Reduzir a quantidade do item para o saldo indicado ou separar o excedente em outra nota de origem.

Fonte: source/MNF019/UdmMNF019.pas:1887-1909 (Grava_NotaFiscal)

O lançamento selecionado já está na lista!​

Causa: O usuário tentou incluir na grade de múltiplas notas uma nota de origem que já havia sido adicionada.

Ação: Selecionar outra nota de origem diferente das já incluídas.

Fonte: source/MNF019/UdmMNF019.pas:4117-4119 (TdmMNF019.tabORIGEMNR_NOTAValidate)

Este Embarque está com Status/Situação Atendido!​

Causa: O número de embarque informado já foi finalizado (status Atendido) e não pode receber nova nota.

Ação: Informar outro número de embarque em aberto ou deixar o campo em branco para gerar um novo embarque.

Fonte: source/MNF019/UdmMNF019.pas:3715-3722 (TdmMNF019.tabEMBARQUENR_EMBARQUEValidate)

Este Número de Embarque não está Cadastrado [MPD010]!​

Causa: O número de embarque informado não existe para a empresa.

Ação: Conferir o número na tela MPD010 ou deixar o campo em branco para gerar um novo embarque.

Fonte: source/MNF019/UdmMNF019.pas:3715-3727 (TdmMNF019.tabEMBARQUENR_EMBARQUEValidate)

A chave de acesso informada é inválida.​

Causa: O dígito verificador da chave de acesso de 44 posições não confere.

Ação: Reconferir a chave impressa no XML/DANFE do fornecedor e digitar novamente.

Fonte: source/MNF019/UfrmChaveAcessoMNF019.pas:151-155 (TfrmChaveAcesso.actionOKExecute)

O campo "Benef. Fiscal" deve ter tamanho igual a 8 ou 10 caracteres. Verifique!​

Causa: O código do benefício fiscal informado no imposto tem tamanho diferente do exigido.

Ação: Digitar o código completo do benefício fiscal com 8 ou 10 dígitos.

Fonte: source/MNF019/UdmMNF019.pas:4675-4677 (TdmMNF019.tabIMPOSTONOTACD_BENEFICIOValidate)

A Nota Fiscal não Possui Valor!​

Causa: O valor líquido total calculado da nota está zerado.

Ação: Conferir se os itens têm valor unitário/total lançados corretamente.

Fonte: source/MNF019/UMNF019.pas:1452-1454 (TfrmMNF019.btnSalvarClick)

A Nota Fiscal não Possui Produtos. Verifique!​

Causa: Nenhum item foi incluído na grade da nota antes de salvar.

Ação: Incluir ao menos um produto na grade de itens da nota.

Fonte: source/MNF019/UMNF019.pas:1456-1459 (TfrmMNF019.btnSalvarClick)

Nâo Há Notas Selecionadas. Verifique!​

Causa: O usuário clicou em Processar sem marcar (status) nenhuma nota de origem na grade.

Ação: Marcar ao menos uma nota de origem na grade antes de processar.

Fonte: source/MNF019/UMNF019.pas:3242-3245 (TfrmMNF019.btnProcessaClick)

A Quantidade para Atender não pode ser Maior que o Saldo do Produto.​

Causa: A quantidade informada para atender no item de origem é maior que o saldo pendente do pedido/nota (fora do tipo mestra Contrato).

Ação: Reduzir a quantidade a atender para no máximo o saldo disponível do item.

Fonte: source/MNF019/UdmMNF019.pas:3518-3522 (TdmMNF019.tabITEMORIGPS_ATENDERValidate)

Não Há Nota Geral/Mestra Selecionada.​

Causa: O usuário clicou em Processar sem que nenhuma nota de origem estivesse marcada com status.

Ação: Marcar (coluna status) ao menos uma nota de origem antes de processar.

Fonte: source/MNF019/UMNF019.pas:712-725 (Consulta_NFOrigem)

Regras de negócio​

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

Perguntas frequentes​

P: Por que aparece a mensagem de que o produto não possui local de armazenagem associado? R: O produto não tem local de estoque cadastrado, ou o usuário não tem acesso liberado a esse local, ou o local não permite faturamento; é preciso ajustar o cadastro do produto (TPO001) ou a permissão do usuário (TOF007). Fonte: source/MNF019/UdmMNF019.pas:3021-3051 (TdmMNF019.tabITEMNOTACD_MOVIMENTACAOValidate)

P: Por que não consigo devolver toda a quantidade do produto? R: O produto tem controle de entrega com saldo agendado ou já entregue maior que o total a devolver; é preciso cancelar esse controle de entrega na tela MNF016 antes da devolução. Fonte: source/MNF019/UMNF019.pas:1489-1541 (TfrmMNF019.btnSalvarClick)

P: Por que a tela pede para preencher a grade do produto (F10) ao salvar? R: O produto selecionado tem grade cadastrada e a movimentação gera estoque, então é obrigatório detalhar a grade antes de salvar a nota. Fonte: source/MNF019/UdmMNF019.pas:1740-1755 (Grava_NotaFiscal)

P: Por que o sistema diz que a nota já foi lançada? R: Já existe outra nota ativa com o mesmo número e série para a empresa (saída), ou já existe nota do fornecedor com mesmo número/série/espécie para a mesma pessoa (entrada). Fonte: source/MNF019/UdmMNF019.pas:3625-3641 (TdmMNF019.tabNOTANR_NOTAFISCALValidate), source/MNF019/UdmMNF019.pas:3288-3311 (TdmMNF019.tabNOTANR_NOTAFORValidate)

P: Por que apareceu uma tela pedindo a chave de acesso ao salvar a nota de entrada? R: Para notas de fornecedor com espécie NF-e ou CT-e, o sistema exige a chave de acesso de 44 dígitos antes de concluir a gravação, validando UF, mês/ano de emissão e CNPJ do emitente. Fonte: source/MNF019/UMNF019.pas:1909-1919 (TfrmMNF019.btnSalvarClick), source/MNF019/UfrmChaveAcessoMNF019.pas:151-191 (TfrmChaveAcesso.actionOKExecute)

P: Por que não consigo clicar em Processar na aba de notas de origem? R: Nenhuma nota está marcada (coluna status) na grade de notas de origem; marque ao menos uma antes de processar. Fonte: source/MNF019/UMNF019.pas:3242-3245 (TfrmMNF019.btnProcessaClick)

P: Por que o botão Excluir não remove um item de produto da nota? R: A exclusão direta de item de produto foi desativada nesta tela (a pedido de um chamado); o botão Excluir só remove notas de origem inteiras na aba Nota Geral/Mestra. Fonte: source/MNF019/UMNF019.pas:2485-2521 (TfrmMNF019.btnExcluirClick)

P: Por que o campo Benef. Fiscal não aceita o código digitado? R: O código de benefício fiscal do imposto precisa ter exatamente 8 ou 10 caracteres. Fonte: source/MNF019/UdmMNF019.pas:4675-4677 (TdmMNF019.tabIMPOSTONOTACD_BENEFICIOValidate)

P: Por que apareceu 'O lançamento selecionado já está na lista'? R: A mesma nota de origem já foi adicionada na grade de múltiplas notas; escolha outra nota. Fonte: source/MNF019/UdmMNF019.pas:4117-4119 (TdmMNF019.tabORIGEMNR_NOTAValidate)

P: Por que a tela exige o Motivo da devolução? R: O motivo é obrigatório sempre que o tipo de nota selecionado for Devolução, antes de processar as notas de origem. Fonte: source/MNF019/UMNF019.pas:736-740 (Consulta_NFOrigem)

P: Por que na devolução a nota de compra ganhou um número esquisito de nota do fornecedor? R: Ao responder 'Não' para a pergunta se a devolução veio acompanhada de outra nota fiscal, o sistema gera automaticamente um número fictício (data+hora) para a nota do fornecedor. Fonte: source/MNF019/UMNF019.pas:1387-1396 (TfrmMNF019.btnSalvarClick)

P: Por que a conferência de seriais não deixa concluir a devolução? R: A quantidade de números de série marcados na tela precisa ser exatamente igual à quantidade do item na nota; marque a quantidade correta antes de confirmar. Fonte: source/MNF019/UMNF019SERIAL.pas:123-133 (TfrmMNF019SERIAL.btnOKClick)

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

  • Quais são exatamente os significados de negócio dos valores 'S', 'P', 'H' e 'T' do parâmetro PARMFATUR.ST_ENTREGA (além dos comentários no código: Nota Fiscal / Pedido Atendido / Pedido Não Atendido / Pedido+Nota)? — O parâmetro muda o join usado para filtrar notas de origem e a rotina usada para validar saldo de devolução, mas o significado de negócio completo de cada valor não está documentado fora dos comentários no código.
  • Qual o efeito completo de PARMFATUR.TP_MOVCONTENTREGA = 'M' além de mostrar/esconder colunas e o campo de observação na tela de itens de origem (UMNF019ITEMNOTA)? — O único uso encontrado no módulo é para alternar a visibilidade de colunas/campo de observação; não fica claro se há efeito em regras de gravação.
  • Qual é a regra completa de negócio por trás de PARMFATUR.ST_VARIOSITENSCONTRATO e ST_VARIOSVENDEDORES além de gerar observação de contrato e gravar múltiplos vendedores por item? — O código apenas usa esses parâmetros como chave S/N para dois comportamentos pontuais (observação da nota e rateio de comissão entre vendedores); não há explicação de quando a empresa deve ativá-los.
  • O comportamento comentado do botão Excluir para itens de produto (removido a pedido do chamado 86856) ainda é uma decisão vigente, ou deveria ser reabilitado? — O código da exclusão de item permanece comentado no fonte, o que pode confundir analistas que recebem pedidos para excluir apenas um item da nota.