MNF001 — Recebimento de Notas Fiscais de Compra (enriquecimento)
Menu: Faturamento > Movimentações > Notas Fiscais > Recebimento de Notas Fiscais de Compra
Objetivo
A tela MNF001 (Recebimento de Notas Fiscais de Compra) registra a entrada de notas fiscais de fornecedores no ERP, seja por digitação manual ou por importação do XML de NF-e/CT-e/NFS-e. Ao salvar, a tela grava a nota e seus itens, calcula os impostos (ICMS, IPI, PIS/COFINS, ICMS-ST/Difal, IBS/CBS), atualiza o estoque, gera contas a pagar e baixa o saldo de pedidos de compra vinculados. A tela também trata casos especiais do dia a dia de compras: produtos com grade, controle de lote de produção, números de série, rateio de frete/despesas entre notas e itens, notas complementares, notas referenciadas/de produtor rural, e bloqueia devoluções (que devem ser feitas na MNF007).
Fluxo principal
- Informar Série/Espécie/Número da Nota Fiscal do Fornecedor e Data de Emissão/Recebimento; o sistema verifica se já existe nota igual lançada para a mesma pessoa (mesmo número/série/espécie), a menos que a pessoa permita mesmo número em data diferente. (Aba Nota) —
source/MNF001/UMNF001.pas:3489-3561 (TfrmMNF001.edtCD_ESPECIEFORExit) - Alternativa: importar o XML da NF-e/CT-e clicando em Importar XML; o sistema carrega fornecedor e itens em grids auxiliares (cdsFORNECEDOR/cdsITEMFORNEC) para conferência antes de gravar. (Tela de Dados da Importação de XML) —
source/MNF001/UMNF001DadosXML.pas:472-533 (TfrmMNF001DadosXml.btnIMPORTARClick) - Se a nota tiver CFOP de devolução, o sistema pergunta se deseja informar a Chave de Acesso da nota de origem e não permite salvar sem essa informação (quando não há nota referenciada already vinculada). (Aba Dados Adicionais — Notas Referenciadas) —
source/MNF001/UdmMNF001.pas:9982-10022 (TdmMNF001.VerificaNotaDevolucao)
Campos obrigatórios
| Campo | Condição | Mensagem | Fonte |
|---|---|---|---|
| Data de Emissão (recebimento) / Data do Fornecedor (emissão da NF) | sempre, ao salvar (BeforePost da NOTA) | É Obrigatório informar a Data de Recebimento da Nota Fiscal! / É Obrigatório informar a Data de Emissão da Nota Fiscal! | source/MNF001/UdmMNF001.pas:3758-3769 (TdmMNF001.tabNOTABeforePost) |
| Pessoa (fornecedor) e Endereço | sempre, ao salvar | É Obrigatório informar a Pessoa Física / Jurídica! / É Obrigatório informar o Endereço da Pessoa Física / Jurídica! | source/MNF001/UdmMNF001.pas:3771-3783 (TdmMNF001.tabNOTABeforePost) |
| Condição de Pagamento e Forma de Pagamento | sempre, ao salvar | É Obrigatório informar a Condição de Pagamento! / É Obrigatório informar a Forma de Pagamento! | source/MNF001/UdmMNF001.pas:3784-3789 (TdmMNF001.tabNOTABeforePost) |
| Data de Vencimento | quando a Condição de Pagamento é do tipo 'Vencto Digitado' (D) e a nota não veio de importação de XML (cdsFORNECEDOR vazio) | É Obrigatório informar a Data de Vencimento para a Condição de Pagamento do Tipo Vencto Digitado! | source/MNF001/UdmMNF001.pas:3790-3797 (TdmMNF001.tabNOTABeforePost) |
| Valor da Nota Fiscal | sempre, ao salvar | É Obrigatório informar o Valor da Nota Fiscal! | source/MNF001/UdmMNF001.pas:3816-3820 (TdmMNF001.tabNOTABeforePost) |
| Produto, Movimentação, Peso, Quantidade, Valor Unitário e Valor Total do item | para cada linha da grade de itens, ao sair da linha (BeforePost do ITEMNOTA); Peso/Quantidade dispensados quando o item é complementar (ST_COMPLEMENTAR='C') | É Obrigatório informar o Produto/a Movimentação/o Peso/a Quantidade/o Valor Unitário/o Valor Total do Produto na Nota Fiscal! | source/MNF001/UdmMNF001.pas:3846-3881 (TdmMNF001.tabITEMNOTABeforePost) |
| Série e Espécie da Nota Fiscal do Fornecedor | sempre, ao clicar em Salvar | É Obrigatório informar a Série da Nota Fiscal do Fornecedor! / É Obrigatório informar a Espécie da Nota Fiscal do Fornecedor! | source/MNF001/UMNF001.pas:1644-1655 (TfrmMNF001.btnSalvarClick) |
| Número da Nota Fiscal do Fornecedor | quando a operação é 'Recebimento' (rdoRecebimento) e não há numeração sequencial automática configurada | É Obrigatório informar o Número da Nota Fiscal do Fornecedor! | source/MNF001/UMNF001.pas:1634-1642 (TfrmMNF001.btnSalvarClick) |
| Ao menos um produto na nota | sempre, ao salvar | A Nota Fiscal não possui Produtos. Verifique! | source/MNF001/UMNF001.pas:1657-1663 (TfrmMNF001.btnSalvarClick) |
Mensagens: causa e ação
A chave de acesso deve ser informada.
Causa: O usuário tentou confirmar a tela de Chave de Acesso sem digitar nenhum valor no campo.
Ação: Digitar a chave de acesso de 44 dígitos da nota fiscal de origem antes de confirmar.
Fonte: source/MNF001/UformChaveAcessoMNF001.pas:147-152 (TformChaveAcesso.actionOKExecute)
A chave de acesso informada é inválida.
Causa: A chave digitada tem menos de 44 caracteres ou não passa na validação do dígito verificador (módulo 11).
Ação: Conferir a chave copiada/digitada e reinserir o valor completo e correto de 44 dígitos.
Fonte: source/MNF001/UMNF001.pas:6173-6187 (TfrmMNF001.edtNR_CHAVEACESSOExit), source/MNF001/UformChaveAcessoMNF001.pas:154-159 (TformChaveAcesso.actionOKExecute)
A Nota Fiscal já está Lançada para esta Pessoa! ...
Causa: Já existe uma NOTA gravada com o mesmo Número/Série/Espécie para a mesma pessoa e mesma inscrição estadual do endereço.
Ação: Verificar se a nota já não foi lançada anteriormente; se o mesmo número for legítimo em data diferente, isso só é aceito se o cadastro da pessoa (TFA001) permitir número repetido em data diferente.
Fonte: source/MNF001/UMNF001.pas:3552-3561 (TfrmMNF001.edtCD_ESPECIEFORExit)
A Nota Fiscal não possui Produtos. Verifique!
Causa: O usuário tentou salvar a nota sem ter incluído nenhum item no grid de produtos.
Ação: Incluir ao menos um produto na nota antes de salvar.
Fonte: source/MNF001/UMNF001.pas:1658-1663 (TfrmMNF001.btnSalvarClick)
A quantidade selecionada do Item ... é maior que no XML.(Quantidade do XML ...). Verifique!
Causa: Na vinculação de itens de pedido de compra a uma nota importada de XML, foi selecionada mais quantidade de pedido do que a quantidade restante do mesmo item no XML.
Ação: Reduzir a quantidade do pedido selecionada até não ultrapassar o saldo do item no XML.
Fonte: source/MNF001/UPEDIDOE.pas:239-243 (TfrmPEDIDOE.btnOKClick)
A Quatidade de Volumes Adicionais da Nota deve ser Maior ou igual que Zero!
Causa: O campo de Volumes Adicionais foi preenchido com valor negativo.
Ação: Informar um valor de volumes adicionais maior ou igual a zero.
Fonte: source/MNF001/UdmMNF001.pas:8149-8155 (TdmMNF001.tabNOTAQT_VOLUMEADICValidate)
Atenção. O Valor Total de rateio do Frete é diferente do Conhecimento de Frete.
Causa: A soma do frete rateado entre as notas vinculadas ao Conhecimento de Frete não coincide com o valor do próprio conhecimento.
Ação: Revisar os valores de frete rateados por nota fiscal; a mensagem é apenas um aviso e não impede a gravação.
Fonte: source/MNF001/UFRETENF.pas:204-207 (TfrmFRETENF.btnOKClick)
Atenção! Para realizar a devolução de documentos fiscais, utilizar a tela MNF007.
Causa: O CFOP associado à movimentação escolhida para o item está marcado como devolução (CFO.ST_DEVOLUCAO='S').
Ação: Se o lançamento for realmente uma devolução, cancelar aqui e realizar o processo na tela MNF007; caso contrário, revisar a movimentação/CFOP selecionado.
Fonte: source/MNF001/UdmMNF001.pas:4617-4633 (TdmMNF001.tabITEMNOTACD_MOVIMENTACAOValidate)
Atenção! As alterações na nota atual não serão salvas, será iniciada uma nova nota fiscal! Deseja realmente alterar a série da empresa?
Causa: O usuário clicou para trocar a Série da empresa enquanto havia uma nota em edição na tela.
Ação: Confirmar apenas se aceitar perder as alterações não salvas da nota atual; caso contrário, salvar a nota antes de trocar a série.
Fonte: source/MNF001/UMNF001.pas:6158-6170 (TfrmMNF001.btnAtualizarSerieEmpClick)
Regras de negócio
MNF001.R001(verregras/MNF001/MNF001.R001.md)MNF001.R002(verregras/MNF001/MNF001.R002.md)MNF001.R003(verregras/MNF001/MNF001.R003.md)MNF001.R004(verregras/MNF001/MNF001.R004.md)MNF001.R005(verregras/MNF001/MNF001.R005.md)MNF001.R006(verregras/MNF001/MNF001.R006.md)MNF001.R007(verregras/MNF001/MNF001.R007.md)MNF001.R008(verregras/MNF001/MNF001.R008.md)MNF001.R009(verregras/MNF001/MNF001.R009.md)MNF001.R010(verregras/MNF001/MNF001.R010.md)MNF001.R011(verregras/MNF001/MNF001.R011.md)MNF001.R012(verregras/MNF001/MNF001.R012.md)MNF001.R013(verregras/MNF001/MNF001.R013.md)MNF001.R014(verregras/MNF001/MNF001.R014.md)MNF001.R015(verregras/MNF001/MNF001.R015.md)MNF001.R016(verregras/MNF001/MNF001.R016.md)MNF001.R017(verregras/MNF001/MNF001.R017.md)MNF001.R018(verregras/MNF001/MNF001.R018.md)MNF001.R019(verregras/MNF001/MNF001.R019.md)MNF001.R020(verregras/MNF001/MNF001.R020.md)
Perguntas frequentes
P: Por que não consigo salvar e aparece 'A Movimentação Gera Estoque e o Produto ... não possui Local de Armazenagem Associado'?
R: A movimentação selecionada está configurada para gerar estoque, mas o produto não tem local de armazenagem cadastrado (ou o usuário não tem acesso a ele/não permite faturamento). Cadastre o local de armazenagem do produto em TPO001 (locais do produto) e confira o acesso do usuário em TOF007.
Fonte: source/MNF001/UdmMNF001.pas:4659-4706 (TdmMNF001.tabITEMNOTACD_MOVIMENTACAOValidate)
P: Por que não consigo lançar uma devolução de nota nesta tela?
R: O MNF001 bloqueia movimentações marcadas como devolução/retorno (ST_DEVOLUCAO); esse tipo de lançamento deve ser feito na tela MNF007 (Devolução/Retorno de Notas Fiscais).
Fonte: source/MNF001/UdmMNF001.pas:4612-4633 (TdmMNF001.tabITEMNOTACD_MOVIMENTACAOValidate)
P: Deu a mensagem 'A Nota Fiscal já está Lançada para esta Pessoa!'. O que fazer?
R: Já existe uma nota com o mesmo Número/Série/Espécie para esse fornecedor (mesma inscrição estadual do endereço). Confira se a nota já não foi digitada anteriormente; se a pessoa permitir (parâmetro ST_NFENTRADAMESMONUMERODTDIF), o mesmo número só é aceito com data de emissão diferente.
Fonte: source/MNF001/UMNF001.pas:3489-3561 (TfrmMNF001.edtCD_ESPECIEFORExit)
P: Por que a Data de Vencimento fica bloqueada/cinza e não deixa digitar?
R: O campo só fica editável quando a Condição de Pagamento cadastrada é do tipo 'Vencto Digitado' (D); para as demais, o sistema calcula a data automaticamente (ex.: maior prazo das parcelas) e desabilita o campo.
Fonte: source/MNF001/UdmMNF001.pas:4308-4331 (TdmMNF001.tabNOTACD_CONDPAGTOValidate)
P: Deu a mensagem 'Soma das despesas dos produtos é diferente do total de despesas informado'. Como corrijo?
R: O valor de despesa lançado por item não fecha com o campo de Despesa total da nota. Ajuste os valores de despesa em cada item (ou o total da nota) até que a soma bata; o sistema só divide automaticamente a diferença no último item quando o total dos itens está zerado.
Fonte: source/MNF001/UdmMNF001.pas:2195-2237 (Grava_NotaFiscal)
P: Por que apareceu 'A Quantidade informada está fora da Faixa permitida de Peso Mínimo e Máximo'?
R: O produto tem Peso Mínimo/Máximo cadastrados (ITEM) e o parâmetro PARMFATUR.ST_VALIDAPESO está ligado; a razão peso/quantidade lançada ficou fora dessa faixa. Ajuste o peso ou a quantidade do item, ou revise o cadastro de peso mínimo/máximo do produto.
Fonte: source/MNF001/UdmMNF001.pas:10939-11026 (TdmMNF001.ValidaPeso)
P: Por que não consigo alterar a Movimentação de um item que veio da importação do XML?
R: Itens importados do XML têm a movimentação travada; para mudar, é preciso refazer a importação do XML e escolher a movimentação correta na tela de Importação de XML.
Fonte: source/MNF001/UdmMNF001.pas:4591-4594 (TdmMNF001.tabITEMNOTACD_MOVIMENTACAOValidate)
P: Deu a mensagem 'Código de Barras Já Cadastrado para o Item'. O que significa?
R: O código de barras que o sistema geraria (ou que foi digitado) para o produto/grade já está associado a outro item. É necessário revisar o cadastro de código de barras do produto/grade em TPO001/TPO027.
Fonte: source/MNF001/UdmMNF001.pas:2974-2982 (Grava_NotaFiscal)
P: Por que o sistema exige Pedido de Compra vinculado para salvar a nota?
R: A série de nota utilizada está parametrizada em PARMNOTA com obrigatoriedade de pedido vinculado; sem um pedido associado (digitado, via XML ou já existente), a gravação é bloqueada.
Fonte: source/MNF001/UMNF001.pas:1949-1969 (TfrmMNF001.btnSalvarClick)
P: Por que aparece o aviso 'Atenção! Para realizar a devolução de documentos fiscais, utilizar a tela MNF007' mesmo eu não achando que é uma devolução?
R: O CFOP (dentro ou fora do estado) associado à movimentação do item está marcado como devolução na TFI002 (CFO.ST_DEVOLUCAO='S'). Revise a movimentação/CFOP selecionado; se realmente for devolução, use a MNF007.
Fonte: source/MNF001/UdmMNF001.pas:4617-4633 (TdmMNF001.tabITEMNOTACD_MOVIMENTACAOValidate)
P: Deu erro pedindo a Chave de Acesso ao salvar uma nota com CFOP de devolução. O que fazer?
R: Informe a chave de acesso da nota de origem na aba de Notas Referenciadas antes de salvar; o sistema não permite gravar nota com CFOP de devolução sem essa referência.
Fonte: source/MNF001/UdmMNF001.pas:10003-10022 (TdmMNF001.VerificaNotaDevolucao)
Dúvidas em aberto (o código não responde)
- Qual o efeito completo do parâmetro PARMFATUR.ST_MODALIDADECALCULOFRETE além do rateio proporcional ao peso visto em UFRETENF (RN de atualização de custo de estoque)? — Só foi lida a ramificação 'S' (rateio por peso) em UFRETENF.pas; não foi possível confirmar o comportamento do valor alternativo dentro do escopo desta sessão.
- Qual o efeito de PARMFATUR.ST_CONFNOTAENTRADA, ST_CONSOLPED, ST_IMPORTACFOCTE, ST_IMPORTADADOSDI, ST_ATUALIZATABPRECO, ST_CODIGOBARRA e ST_ALTERAICMS no módulo MNF001? — Esses parâmetros estão listados no briefing como lidos pelo módulo, mas seu uso não apareceu nos trechos efetivamente lidos (arquivos muito extensos, ex. UdmMNF001.pas com quase 13 mil linhas); não há citação de código para sustentar uma regra.
- Qual o efeito de PARMFATUR.QT_CASASDECIMAISPRECOVENDA neste módulo? — Não localizado nos trechos lidos.
- Quais são todas as condições internas de 'verificaNotaComplementar' (unit jFaturamento.NotaOrigem.pas) que fazem a associação de nota complementar ser cancelada? — A função é chamada em UMNF001.pas:1927-1931, mas sua implementação está em source/jFaturamento/NotaOrigem/jFaturamento.NotaOrigem.pas, fora dos arquivos do módulo MNF001 listados no briefing; não foi lida nesta sessão.
- Quais valores possíveis de PARMSISTEMA.TP_FORMATOCODBARRA além de 'P' e 'S' existem, e o que cada um faz? — Só foram lidos os ramos 'P' (monta código com dígitos fixos) e 'S' (gera sequencial); não há certeza se existem outros valores tratados em outro ponto do sistema.