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
- 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) - 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) - 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) - 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) - Se necessário, alterar impostos manualmente (Alterar/Confirmar) antes de salvar. (Aba Impostos) —
source/MNF019/UMNF019.pas:2776-2840 (TfrmMNF019.btnAlterarClick) - 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) - 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
| Campo | Condição | Mensagem | Fonte |
|---|---|---|---|
| Data de Emissão da Nota | sempre, ao salvar (tabNOTABeforePost) | source/MNF019/UdmMNF019.pas:2474-2479 (TdmMNF019.tabNOTABeforePost) | |
| Pessoa Física/Jurídica e Endereço da nota | sempre, ao salvar | source/MNF019/UdmMNF019.pas:2481-2493 (TdmMNF019.tabNOTABeforePost) | |
| Condição de Pagamento | sempre, ao salvar | source/MNF019/UdmMNF019.pas:2495-2500 (TdmMNF019.tabNOTABeforePost) | |
| Data de Vencimento | quando a condição de pagamento é do tipo 'Vencto Digitado' (ST_CONDPAGTO = 'D') | source/MNF019/UdmMNF019.pas:2502-2507 (TdmMNF019.tabNOTABeforePost) | |
| Forma de Pagamento | sempre, ao salvar | source/MNF019/UdmMNF019.pas:2517-2522 (TdmMNF019.tabNOTABeforePost) | |
| Valor da Nota Fiscal | quando a operação é Entrada (compra/devolução de venda) | source/MNF019/UdmMNF019.pas:2524-2530 (TdmMNF019.tabNOTABeforePost) | |
| Número da Nota Fiscal | quando a série não usa sequência automática e a operação não é Entrada | source/MNF019/UMNF019.pas:1444-1449 (TfrmMNF019.btnSalvarClick) | |
| Produto e Movimentação do item da nota | sempre, para cada linha da grade de itens | source/MNF019/UdmMNF019.pas:2554-2566 (TdmMNF019.tabITEMNOTABeforePost) | |
| Peso e Quantidade do item | quando ValidaRegistro=True e o campo não está bloqueado por Habilita_PesoQtde | source/MNF019/UdmMNF019.pas:2568-2581 (TdmMNF019.tabITEMNOTABeforePost) | |
| Valor Unitário e Valor Total do item | sempre, para cada item | source/MNF019/UdmMNF019.pas:2583-2592 (TdmMNF019.tabITEMNOTABeforePost) | |
| Local de Armazenagem do item | quando 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 Fornecedor | quando a operação é Entrada | source/MNF019/UMNF019.pas:1406-1426 (TfrmMNF019.btnSalvarClick) | |
| Motivo da Devolução | quando o tipo de nota (cmbTP_NOTA) é Devolução | source/MNF019/UMNF019.pas:736-740 (Consulta_NFOrigem) | |
| Data de Embarque | quando os dados de embarque da nota são preenchidos | source/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(verregras/MNF019/MNF019.R001.md)MNF019.R002(verregras/MNF019/MNF019.R002.md)MNF019.R003(verregras/MNF019/MNF019.R003.md)MNF019.R004(verregras/MNF019/MNF019.R004.md)MNF019.R005(verregras/MNF019/MNF019.R005.md)MNF019.R006(verregras/MNF019/MNF019.R006.md)MNF019.R007(verregras/MNF019/MNF019.R007.md)MNF019.R008(verregras/MNF019/MNF019.R008.md)MNF019.R009(verregras/MNF019/MNF019.R009.md)MNF019.R010(verregras/MNF019/MNF019.R010.md)MNF019.R011(verregras/MNF019/MNF019.R011.md)MNF019.R012(verregras/MNF019/MNF019.R012.md)MNF019.R013(verregras/MNF019/MNF019.R013.md)MNF019.R014(verregras/MNF019/MNF019.R014.md)MNF019.R015(verregras/MNF019/MNF019.R015.md)MNF019.R016(verregras/MNF019/MNF019.R016.md)MNF019.R017(verregras/MNF019/MNF019.R017.md)MNF019.R018(verregras/MNF019/MNF019.R018.md)MNF019.R019(verregras/MNF019/MNF019.R019.md)MNF019.R020(verregras/MNF019/MNF019.R020.md)MNF019.R021(verregras/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.