MNF008 — Emissão Nota Fiscal de Venda - Obras (enriquecimento)
Menu: Faturamento > Movimentações > Notas Fiscais > Emissão Nota Fiscal de Venda - Obras
Objetivo
A tela MNF008 emite Notas Fiscais de Venda vinculadas a contratos de obra (construção civil), permitindo lançar itens manualmente ou importá-los de um Pedido de Venda previamente cadastrado. Além dos dados fiscais e tributários padrão de uma nota de saída (impostos, condição/forma de pagamento, embarque/transportador), a tela adiciona campos específicos de obra — Contrato/Romaneio, Código de Obra e Código de ARG de Construção — usados na emissão de NFS-e do segmento de construção civil. Ao salvar, o sistema valida bloqueios cadastrais e financeiros, gera a nota fiscal via procedure e pode disparar impressão, geração de duplicatas e movimento de caixa.
Fluxo principal
- Abrir uma nova nota: o sistema define empresa, série provisória, tipo Saída, status Vendida, data de emissão do dia e pré-carrega condição/forma de pagamento e consumidor padrão dos parâmetros de faturamento. (Aba Nota) —
source/MNF008/UdmMNF008.pas:2102-2124 (TdmMNF008.tabNOTAAfterInsert) - Selecionar a Série da Nota Fiscal (define espécie, se é NF-e ou NFS-e, layout, tipo de frete e se aceita produto/serviço). (Aba Nota) —
source/MNF008/UdmMNF008.pas:3623-3687 (TdmMNF008.tabNOTACD_SERIENFValidate) - Informar o Cliente (Pessoa): sistema valida cadastro, situação financeira, endereço e pode disparar tela de Histórico do Cliente se houver contas pendentes. (Aba Nota) —
source/MNF008/UdmMNF008.pas:2305-2366 (TdmMNF008.tabNOTACD_PESSOAValidate) - Informar o Contrato da Obra (campo Nº Romaneio/Obra, F9 para pesquisar): vincula a nota a uma obra cadastrada e alimenta os campos de NFS-e de construção civil (Obra/ARG). (Aba Nota) —
source/MNF008/UMNF008.pas:2777-2804 (TfrmMNF008.edtNR_ROMANEIOKeyDown) - Preencher/conferir os itens da nota (produto, movimentação, tabela de preço, peso/quantidade, valores), inclusive seleção de seriais/garantia quando o produto exigir. (Grade de Produtos) —
source/MNF008/UdmMNF008.pas:1206-1284 (Grava_NotaFiscal) - Preencher dados de embarque/transportador quando houver frete (motorista, transportador, placa, valor do frete). (Aba Embarque) —
source/MNF008/UdmMNF008.pas:3441-3481 (TdmMNF008.tabEMBARQUECD_MOTORISTAValidate) - Conferir os impostos calculados na aba de Impostos da Nota (recalculados pelas procedures fiscais ao gravar). (Aba Impostos) —
source/MNF008/UdmMNF008.pas:3968-3993 (TdmMNF008.tabIMPOSTONOTAAfterScroll) - Clicar em Salvar: o sistema valida obrigatórios e produtos, checa bloqueios (VERIFICA_BLOQUEIO), grava a nota, associa nota complementar se aplicável e gera a nota fiscal (GERA_NOTAFISCAL), podendo imprimir automaticamente. (Barra de botões) —
source/MNF008/UMNF008.pas:1300-1374 (TfrmMNF008.btnSalvarClick)
Campos obrigatórios
| Campo | Condição | Mensagem | Fonte |
|---|---|---|---|
| Data de Emissão da NOTA | sempre, ao gravar o cabeçalho | É Obrigatório informar a Data de Emissão da Nota Fiscal! | source/MNF008/UdmMNF008.pas:2162-2166 (TdmMNF008.tabNOTABeforePost) |
| Pessoa Física/Jurídica (Cliente) | sempre, ao salvar a nota | É Obrigatório informar a Pessoa Física / Jurídica! | source/MNF008/UdmMNF008.pas:2181-2185 (TdmMNF008.tabNOTABeforePost) |
| Endereço da Pessoa | sempre, ao salvar a nota | É Obrigatório informar o Endereço da Pessoa Física / Jurídica! | source/MNF008/UdmMNF008.pas:2186-2190 (TdmMNF008.tabNOTABeforePost) |
| Condição de Pagamento | sempre, ao salvar a nota | É Obrigatório informar a Condição de Pagamento! | source/MNF008/UdmMNF008.pas:2191-2195 (TdmMNF008.tabNOTABeforePost) |
| Forma de Pagamento | sempre, ao salvar a nota | É Obrigatório informar a Forma de Pagamento! | source/MNF008/UdmMNF008.pas:2221-2225 (TdmMNF008.tabNOTABeforePost) |
| Série da Nota Fiscal | sempre, ao clicar Salvar | É Obrigatório informar a Série da Nota Fiscal! | source/MNF008/UMNF008.pas:1252-1256 (TfrmMNF008.btnSalvarClick) |
| Número da Nota Fiscal | quando a série não tem numeração sequencial automática (série do tipo simulação) | Para a Série do Tipo Simulação é Obrigatório informar o Número da Nota Fiscal! | source/MNF008/UMNF008.pas:1257-1261 (TfrmMNF008.btnSalvarClick) |
| Produto do item | sempre, para cada linha da grade de itens | É Obrigatório informar o Produto da Nota Fiscal! | source/MNF008/UdmMNF008.pas:2244-2248 (TdmMNF008.tabITEMNOTABeforePost) |
| Movimentação do item | sempre, para cada linha da grade de itens | É Obrigatório informar a Movimentação do Produto na Nota Fiscal! | source/MNF008/UdmMNF008.pas:2249-2253 (TdmMNF008.tabITEMNOTABeforePost) |
| Tabela de Preço do item | item digitado manualmente (não veio de pedido) e parâmetro ST_TABPRECO exige tabela | É Obrigatório informar a Tabela de Preço do Produto na Nota Fiscal! | source/MNF008/UdmMNF008.pas:2254-2261 (TdmMNF008.tabITEMNOTABeforePost) |
| Peso e Quantidade do item | conforme o produto exige peso e/ou quantidade (campo não fica readonly) | É Obrigatório informar o Peso / a Quantidade do Produto na Nota Fiscal! | source/MNF008/UdmMNF008.pas:2262-2273 (TdmMNF008.tabITEMNOTABeforePost) |
| Valor Unitário e Valor Total do item | sempre, para cada linha da grade de itens | É Obrigatório informar o Valor Unitário / Valor Total do Produto na Nota Fiscal! | source/MNF008/UdmMNF008.pas:2274-2283 (TdmMNF008.tabITEMNOTABeforePost) |
| Local de Armazenagem do item | quando a movimentação selecionada gera baixa de estoque (tem CD_OPERACAO) | A Movimentação Gera Estoque e o Produto "%s" não possui Local de Armazenagem Associado ou o Usuário não possui Acesso! Verifique [TPO001, TOF007] | source/MNF008/UdmMNF008.pas:2289-2295 (TdmMNF008.tabITEMNOTABeforePost) |
| Número do RPS de Substituição | tipo de emissão NFS-e = Substituição | É Obrigatório Informar o Número de RPS para Substituição! | source/MNF008/UMNF008.pas:1278-1284 (TfrmMNF008.btnSalvarClick) |
Mensagens: causa e ação
A Pessoa está com Situação Financeira Bloqueada!
Causa: O cliente selecionado está marcado com bloqueio de situação financeira no cadastro de pessoas.
Ação: Regularizar a pendência financeira do cliente (módulo financeiro) ou solicitar liberação do bloqueio antes de emitir a nota.
Fonte: source/MNF008/UdmMNF008.pas:2316-2317 (TdmMNF008.tabNOTACD_PESSOAValidate)
A Pessoa Física / Jurídica não está Ativa [TFA001]!
Causa: O cadastro do cliente está inativo.
Ação: Reativar o cadastro da pessoa em TFA001 antes de usá-la na nota.
Fonte: source/MNF008/UdmMNF008.pas:2318-2319 (TdmMNF008.tabNOTACD_PESSOAValidate)
A Pessoa Física / Jurídica não está Cadastrada [TFA001]!
Causa: O código de pessoa informado não existe no cadastro.
Ação: Cadastrar a pessoa em TFA001 ou corrigir o código informado.
Fonte: source/MNF008/UdmMNF008.pas:2365-2366 (TdmMNF008.tabNOTACD_PESSOAValidate)
O Endereço da Pessoa Física / Jurídica não está Cadastrado [TFA001]!
Causa: O código de endereço informado não está vinculado ao cliente selecionado.
Ação: Cadastrar o endereço para essa pessoa em TFA001 ou escolher um endereço já existente.
Fonte: source/MNF008/UdmMNF008.pas:2469-2470 (TdmMNF008.tabNOTACD_ENDERECOValidate)
A Condição de Pagamento deve ser do tipo Saída [TFC002]!
Causa: A condição de pagamento escolhida está cadastrada como tipo Entrada.
Ação: Selecionar uma condição de pagamento cadastrada como tipo Saída em TFC002.
Fonte: source/MNF008/UdmMNF008.pas:2500-2501 (TdmMNF008.tabNOTACD_CONDPAGTOValidate)
A Movimentação não está Ativa!
Causa: A movimentação de estoque selecionada para o item está marcada como inativa no cadastro.
Ação: Escolher outra movimentação ativa ou reativar a movimentação em TCB001.
Fonte: source/MNF008/UdmMNF008.pas:2915-2916 (TdmMNF008.tabITEMNOTACD_MOVIMENTACAOValidate)
A Movimentação Gera Estoque e o Produto "%s" não possui Local de Armazenagem Associado ou o Usuário não possui Acesso! Verifique [TPO001, TOF007]
Causa: A movimentação exige baixa de estoque, mas o produto não tem local de armazenagem cadastrado ou o usuário logado não tem permissão de acesso a esse local.
Ação: Cadastrar o local de armazenagem do produto em TPO001 ou liberar o acesso do usuário ao local em TOF007.
Fonte: source/MNF008/UdmMNF008.pas:2289-2295 (TdmMNF008.tabITEMNOTABeforePost)
Este Número da Obra não está Cadastrada [MPD026]!
Causa: O número informado no campo Contrato da Obra não corresponde a nenhum romaneio com status Vigente para a empresa.
Ação: Conferir ou cadastrar o contrato de obra em MPD026 (Romaneio) antes de vinculá-lo à nota.
Fonte: source/MNF008/UdmMNF008.pas:4102-4108 (TdmMNF008.tabNOTANR_ROMANEIOValidate)
Nenhum Pedido Pendente foi encontrado. Verifique [CPD001]!
Causa: O número de pedido informado não corresponde a nenhum pedido de venda com status Normal ou Parcial na empresa consultada.
Ação: Conferir o status do pedido em CPD001; se já estiver totalmente atendido ou cancelado, não pode ser importado.
Fonte: source/MNF008/UdmMNF008.pas:3877-3879 (TdmMNF008.tabNOTANR_PEDIDOValidate)
A Nota Fiscal %s Série %s da Empresa %s já foi Lançada. Verifique!
Causa: Já existe outra nota, não excluída, com o mesmo número, série e empresa.
Ação: Informar outro número de nota fiscal ou verificar se essa nota já foi digitada anteriormente no sistema.
Fonte: source/MNF008/UdmMNF008.pas:3372-3375 (TdmMNF008.tabNOTANR_NOTAFISCALValidate)
A Quantidade do Produto da Nota não pode ser Menor que a Selecionada no Pedido.
Causa: O item veio de um pedido de venda e o usuário reduziu a quantidade abaixo do que foi selecionado/atendido no pedido de origem.
Ação: Ajustar a quantidade para ser igual ou maior à do pedido, ou remover/reduzir a quantidade atendida diretamente na tela do pedido.
Fonte: source/MNF008/UdmMNF008.pas:3176-3178 (TdmMNF008.tabITEMNOTAQT_ITEMNOTAValidate)
A Quantidade para Atender não pode ser Maior que o Saldo do Pedido.
Causa: Na grade de importação de pedido, a quantidade informada para atender excede o saldo ainda pendente daquele item no pedido.
Ação: Reduzir a quantidade a atender para não ultrapassar o saldo disponível do pedido.
Fonte: source/MNF008/UdmMNF008.pas:3407-3408 (TdmMNF008.tabPEDIDOQT_ATENDERValidate)
Não foi informado os Dados da Nota Mestra. Pressione o botão Nota Mestra para preencher os dados da Nota!
Causa: O item usa uma movimentação do tipo Geral/Mestra, mas a nota mestra de origem ainda não foi selecionada na tela.
Ação: Clicar no botão "Nota Mestra" e informar a nota de origem antes de continuar lançando o item.
Fonte: source/MNF008/UdmMNF008.pas:2986-2988 (TdmMNF008.tabITEMNOTACD_MOVIMENTACAOValidate)
O Produto %s já foi Informado na Nota Fiscal!
Causa: O produto já existe como outro item já lançado nesta mesma nota.
Ação: Editar a linha já existente do produto em vez de criar um novo item duplicado.
Fonte: source/MNF008/UdmMNF008.pas:2662-2663 (TdmMNF008.tabITEMNOTACD_ITEMValidate)
Este Embarque está com Status/Situação Atendido!
Causa: O número de embarque informado já foi finalizado/atendido em outra nota.
Ação: Informar outro número de embarque ainda em aberto ou deixar o campo em branco para gerar um novo embarque.
Fonte: source/MNF008/UdmMNF008.pas:3803-3804 (TdmMNF008.tabEMBARQUENR_EMBARQUEValidate)
O Motorista não está Cadastrado [TFA001]! / O Transportador não está Cadastrado [TFA001]!
Causa: O código informado no embarque não corresponde a uma pessoa cadastrada.
Ação: Cadastrar a pessoa como motorista/transportador em TFA001 ou corrigir o código informado.
Fonte: source/MNF008/UdmMNF008.pas:3455-3456 (TdmMNF008.tabEMBARQUECD_MOTORISTAValidate), source/MNF008/UdmMNF008.pas:3476-3477 (TdmMNF008.tabEMBARQUECD_TRANSPORTADORValidate)
O RPS não está Cancelado!
Causa: O usuário está tentando gerar uma NFS-e de substituição referenciando um RPS cuja NFS-e de origem ainda não foi cancelada.
Ação: Cancelar a NFS-e/RPS de origem antes de emitir a nota de substituição.
Fonte: source/MNF008/UdmMNF008.pas:4240-4241 (TdmMNF008.tabNOTANR_RPSSUBSTValidate)
O RPS já foi Associado a outra NFS-e para Substituição!
Causa: O RPS informado já está vinculado como origem de outra nota de substituição.
Ação: Verificar qual nota já substituiu esse RPS ou informar outro número.
Fonte: source/MNF008/UdmMNF008.pas:4242-4243 (TdmMNF008.tabNOTANR_RPSSUBSTValidate)
O Contrato da Obra deste Pedido não foi informado. Deseja Gravar o Pedido ?
Causa: A nota está sendo salva sem o campo Contrato da Obra (Romaneio) preenchido, o que é atípico neste módulo voltado a obras.
Ação: Informar o contrato de obra (F9 no campo Nº Romaneio) ou confirmar que realmente deseja gravar a nota sem vínculo com obra.
Fonte: source/MNF008/UMNF008.pas:1263-1268 (TfrmMNF008.btnSalvarClick)
A Nota Fiscal não possui Produtos. Verifique! / A Nota Fiscal não possui Valor!
Causa: A nota está sendo salva sem nenhum item lançado, ou o valor líquido total calculado está vazio.
Ação: Incluir ao menos um item com valor válido antes de salvar a nota.
Fonte: source/MNF008/UMNF008.pas:1300-1306 (TfrmMNF008.btnSalvarClick)
O Cliente Ultrapassou a Quantidade Máxima de Compra do Produto "%s" Qtde Permitida %s Qtde Adquirida %s
Causa: A soma das quantidades já compradas pelo cliente naquele produto no mês corrente, somada à quantidade deste item, ultrapassa o limite cadastrado em Item Controlado.
Ação: É apenas um aviso informativo (não bloqueia o salvamento); avaliar se a venda deve prosseguir ou se o limite do cliente precisa ser revisado.
Fonte: source/MNF008/UdmMNF008.pas:3198-3201 (TdmMNF008.tabITEMNOTAQT_ITEMNOTAValidate)
Frete Incluso no Valor da Nota Fiscal?
Causa: Foi informado um valor de frete maior que zero no embarque vinculado à nota.
Ação: Responder Sim para que o valor do frete seja somado ao total da nota fiscal, ou Não para mantê-lo fora do valor da NF.
Fonte: source/MNF008/UdmMNF008.pas:3757-3763 (TdmMNF008.tabEMBARQUEVL_FRETEValidate)
CNPJ/CPF Inválido
Causa: O número de CNPJ/CPF digitado no cadastro do embarque não passou na validação de dígitos verificadores.
Ação: Conferir e corrigir o número de CNPJ/CPF informado.
Fonte: source/MNF008/UMNF008.pas:2299-2306 (TfrmMNF008.edtNR_CGCCPFExit)
Este Produto está Associado a um Pedido e não pode ser Excluído.
Causa: O usuário tentou excluir da nota um item que tem peso ou quantidade vindos de um pedido de venda vinculado.
Ação: Fazer o ajuste (reduzir/cancelar) diretamente na tela do pedido de origem, não excluindo o item na nota.
Fonte: source/MNF008/UMNF008.pas:1987-1989 (TfrmMNF008.btnExcluirClick)
Não foi Selecionado nenhum Serial para este Produto. Verifique!
Causa: O produto tem controle de número de série e nenhum serial foi marcado na tela de seleção obrigatória.
Ação: Selecionar na tela de seriais os números correspondentes à quantidade lançada do item antes de confirmar.
Fonte: source/MNF008/UMNF008SERIAL2.pas:133-133 (TfrmSERIAL.btnOKClick)
A Quantidade de Produtos da Nota não Confere com a Quantidade de Seriais Selecionados! Qtde NF.: %s Qtde Selecionada.: %s
Causa: A quantidade de seriais marcados na tela é diferente da quantidade lançada no item da nota.
Ação: Selecionar exatamente a mesma quantidade de seriais que foi informada na quantidade do item.
Fonte: source/MNF008/UMNF008SERIAL2.pas:139-139 (TfrmSERIAL.btnOKClick)
Regras de negócio
MNF008.R001(verregras/MNF008/MNF008.R001.md)MNF008.R002(verregras/MNF008/MNF008.R002.md)MNF008.R003(verregras/MNF008/MNF008.R003.md)MNF008.R004(verregras/MNF008/MNF008.R004.md)MNF008.R005(verregras/MNF008/MNF008.R005.md)MNF008.R006(verregras/MNF008/MNF008.R006.md)MNF008.R007(verregras/MNF008/MNF008.R007.md)MNF008.R008(verregras/MNF008/MNF008.R008.md)MNF008.R009(verregras/MNF008/MNF008.R009.md)MNF008.R010(verregras/MNF008/MNF008.R010.md)MNF008.R011(verregras/MNF008/MNF008.R011.md)MNF008.R012(verregras/MNF008/MNF008.R012.md)MNF008.R013(verregras/MNF008/MNF008.R013.md)MNF008.R014(verregras/MNF008/MNF008.R014.md)MNF008.R015(verregras/MNF008/MNF008.R015.md)MNF008.R016(verregras/MNF008/MNF008.R016.md)MNF008.R017(verregras/MNF008/MNF008.R017.md)MNF008.R018(verregras/MNF008/MNF008.R018.md)MNF008.R019(verregras/MNF008/MNF008.R019.md)MNF008.R020(verregras/MNF008/MNF008.R020.md)MNF008.R021(verregras/MNF008/MNF008.R021.md)MNF008.R022(verregras/MNF008/MNF008.R022.md)MNF008.R023(verregras/MNF008/MNF008.R023.md)
Perguntas frequentes
P: Por que não consigo salvar a nota se não informar o cliente ou o endereço dele?
R: A tela exige Pessoa e Endereço preenchidos antes de gravar o cabeçalho da nota; sem eles o sistema recusa o salvamento.
Fonte: source/MNF008/UdmMNF008.pas:2181-2190 (TdmMNF008.tabNOTABeforePost)
P: Deu a mensagem 'A Pessoa está com Situação Financeira Bloqueada!', o que fazer?
R: O cadastro do cliente está com bloqueio financeiro; é preciso regularizar a situação (financeiro/cadastro de pessoas) antes de emitir a nota.
Fonte: source/MNF008/UdmMNF008.pas:2316-2317 (TdmMNF008.tabNOTACD_PESSOAValidate)
P: Por que a tela pede um local de armazenagem para o produto?
R: A movimentação de estoque escolhida gera baixa de estoque; o produto precisa ter um local de armazenagem cadastrado e o usuário precisa ter acesso a esse local.
Fonte: source/MNF008/UdmMNF008.pas:2289-2295 (TdmMNF008.tabITEMNOTABeforePost)
P: Deu 'Este Número da Obra não está Cadastrada [MPD026]!', como resolvo?
R: O número digitado no campo Contrato da Obra não existe como romaneio vigente; cadastre ou selecione (F9) um contrato de obra válido em MPD026.
Fonte: source/MNF008/UdmMNF008.pas:4102-4108 (TdmMNF008.tabNOTANR_ROMANEIOValidate)
P: Por que não consigo lançar uma quantidade menor que a do pedido no item?
R: Quando o item vem de um pedido de venda, o sistema não permite gravar peso/quantidade abaixo do que foi selecionado/atendido no pedido de origem.
Fonte: source/MNF008/UdmMNF008.pas:3176-3178 (TdmMNF008.tabITEMNOTAQT_ITEMNOTAValidate)
P: A nota diz que já foi lançada, mas eu não a vejo na lista. O que houve?
R: Já existe outra nota (não excluída) com o mesmo número, série e empresa; verifique se ela foi digitada em outro lançamento ou por outro usuário.
Fonte: source/MNF008/UdmMNF008.pas:3365-3375 (TdmMNF008.tabNOTANR_NOTAFISCALValidate)
P: Por que o campo Vendedor aparece travado para edição?
R: Quando o endereço do cliente já tem um vendedor vinculado e o parâmetro de faturamento ST_VENDEDOR está configurado como 'A' (após pedido/endereço) ou 'F' (fixo), o campo Vendedor fica somente leitura.
Fonte: source/MNF008/UdmMNF008.pas:2462-2463 (TdmMNF008.tabNOTACD_ENDERECOValidate)
P: Deu 'Não foi informado os Dados da Nota Mestra...', o que preciso fazer?
R: O item usa uma movimentação do tipo Geral/Mestra; é necessário clicar no botão "Nota Mestra" e selecionar a nota de origem antes de continuar lançando esse item.
Fonte: source/MNF008/UdmMNF008.pas:2986-2988 (TdmMNF008.tabITEMNOTACD_MOVIMENTACAOValidate)
P: Por que o sistema abre uma telinha pedindo para escolher os números de série do produto?
R: O produto tem controle de número de série (ou é linha de celular) e a movimentação gera estoque; a seleção dos seriais é obrigatória e a quantidade selecionada precisa bater com a quantidade do item.
Fonte: source/MNF008/UdmMNF008.pas:1206-1263 (Grava_NotaFiscal)
P: Deu 'O RPS não está Cancelado!' ao tentar emitir uma nota de substituição de NFS-e, por quê?
R: Para gerar uma NFS-e de Substituição, o RPS da nota original precisa estar com status Cancelado; cancele a NFS-e de origem antes de emitir a substituta.
Fonte: source/MNF008/UdmMNF008.pas:4240-4241 (TdmMNF008.tabNOTANR_RPSSUBSTValidate)
P: Por que não consigo excluir um item da nota?
R: Se o item tem peso ou quantidade vinda de um pedido de venda vinculado, ele não pode ser excluído diretamente na nota; o ajuste precisa ser feito no pedido de origem.
Fonte: source/MNF008/UMNF008.pas:1987-1989 (TfrmMNF008.btnExcluirClick)
P: A nota foi salva, mas ficou com status Bloqueada. Por quê?
R: Ao salvar, o sistema roda a validação de bloqueio (VERIFICA_BLOQUEIO); se houver algum motivo de bloqueio (ex.: limite de crédito, pedido bloqueado), a nota é gravada mas fica com status Bloqueada e não é impressa automaticamente.
Fonte: source/MNF008/UMNF008.pas:1338-1346 (TfrmMNF008.btnSalvarClick)
P: Alterei a condição de pagamento e os preços dos itens não mudaram. É normal?
R: O reprocessamento automático dos preços depende do parâmetro ST_REPROCESSATABPRECO; se ele não estiver configurado para reprocessar (ou se a nota veio de pedido e ST_ALTERANOTA não permite alterar), os preços não são recalculados.
Fonte: source/MNF008/UMNF008.pas:2913-2931 (TfrmMNF008.edtCD_CONDPAGTOExit)
P: Deu aviso que o cliente ultrapassou a quantidade máxima de compra do produto; a nota é bloqueada?
R: Não, é apenas um aviso informativo sobre o limite mensal cadastrado em Item Controlado; o usuário pode confirmar e seguir com a venda normalmente.
Fonte: source/MNF008/UdmMNF008.pas:3198-3201 (TdmMNF008.tabITEMNOTAQT_ITEMNOTAValidate)
Dúvidas em aberto (o código não responde)
- A licença 'erpObras' indicada para este módulo é verificada em algum ponto do código lido, ou o controle de acesso por licença é feito fora dele (ex.: no menu/sessão)? — Não foi encontrada nenhuma checagem explícita de 'erpObras' nos arquivos .pas do módulo MNF008; o controle pode estar em uma camada de sessão/licenciamento não incluída no briefing.
- Qual a diferença de negócio entre os valores 'S', 'L' e 'V' do parâmetro PARMFATUR.ST_PEDVENDA além do cálculo técnico de extração de IPI observado no código? — O código trata 'L' e 'V' com fórmulas diferentes de extração do IPI embutido ao importar itens do pedido (UMNF008.pas linhas 928-948), mas não há comentário explicando a motivação de negócio de cada modo.
- De onde vêm exatamente os Códigos de Obra (CD_OBRACONSTRUCAO) e de ARG (CD_ARGCONSTRUCAO) digitados manualmente — existe uma tela de cadastro/consulta para eles dentro do sistema? — Os campos são apenas validados quanto a não serem negativos (UdmMNF008.pas 4186-4198) e gravados na tabela NFSE; não há F9/consulta vinculada a esses dois campos nos arquivos lidos.
- Por que existe um bloco de validação de Série/Data de Vencimento duplicado e comentado (morto) em TdmMNF008.tabNOTABeforePost, enquanto a validação equivalente ativa está em TfrmMNF008.btnSalvarClick? É resíduo de manutenção ou intencional? — UdmMNF008.pas linhas 2167-2220 contêm um bloco de comentário Pascal ({...}) que desativa a checagem de Série e de Data de Vencimento; a mesma regra de Série está ativa em UMNF008.pas linhas 1252-1256.