Pular para o conteúdo principal

ST_OBRIGAPEDIDO - Obrigatoriedade de Pedido Vinculado à Nota Fiscal

Tela de configuração: MFA002 — Parâmetros de Nota Fiscal por Série Tabela: PARMNOTA.ST_OBRIGAPEDIDO Valor padrão: N (Não)

Telas impactadas​

TelaRotinaEfeito
MNF001 — Entrada de Nota FiscalbtnSalvarClick, tabITEMNOTANewRecordImpede emissão/salvamento sem pedido; impede inserção de itens avulsa
MNF002 — Emissão de Nota Fiscal (Saída)btnSalvarClick, tabITEMNOTANewRecordImpede emissão sem pedido; impede inserção de itens avulsa; valida itens contra pedido
MNF026 — Devolução de Nota FiscaltabFiltroCD_SERIEDEVValidate, tabNOTACD_SERIENFValidateCarrega o parâmetro ao selecionar a série

Campos envolvidos​

CampoTabelaUso
ST_OBRIGAPEDIDOPARMNOTACampo origem do parâmetro (por série + empresa + tipo de nota)
NR_PEDIDOPEDIDONOTAVerifica existência de pedido vinculado ao lançamento
NR_PEDIDO (XML)Via cdsPEDIDOXMLVerifica pedido importado de XML (MNF001)

Opções disponíveis​

S — Sim (Obriga Pedido Vinculado)​

O que fazDetalhe
Bloqueia inserção de itens avulsaO usuário não pode adicionar itens manualmente — apenas via importação de pedido
Bloqueia emissão sem pedidoAo salvar a nota, o sistema verifica se existe pedido associado
Valida itens contra o pedidoAo gravar, verifica se cada item da nota existe no pedido vinculado
Não se aplica a Nota ComplementarNotas complementares são isentas da obrigatoriedade

Simulação passo a passo​

  1. Acesse MFA002 → Parâmetros de Nota Fiscal por Série e selecione a série desejada.
  2. No campo correspondente, escolha "S" (Sim) para ST_OBRIGAPEDIDO.
  3. Salve o parâmetro.
  4. Abra MNF002 — Emissão de Nota Fiscal e selecione a mesma série.
  5. Tente inserir um item manualmente (sem vincular um pedido).
  6. O sistema cancela a inserção e exibe a mensagem: "Não é Permitido inserir itens para a série [X] pois a mesma obriga ter pedido associado. Verifique! [MFA002]".
  7. Vincule um pedido à nota e adicione os itens a partir dele.
  8. Ao salvar a nota, o sistema verifica se todos os itens da nota constam no pedido vinculado. Itens fora do pedido são listados para correção.

Resultado esperado: Notas fiscais dessa série só podem ser emitidas com um pedido previamente associado, e os itens devem corresponder aos do pedido.

Exceção / Importante:

  • Notas do tipo Complementar (ehComplementar = True) são isentas dessa obrigatoriedade (verificado em MNF002).
  • No MNF001, a importação de XML (ImportouXML) e o carregamento de pedido (flagCarregandoPedido) bypassam o bloqueio de inserção de itens.
  • A validação ao salvar (MNF001) verifica pedido vinculado em três fontes: campo NR_PEDIDO da nota, tabela PEDIDONOTA e pedido do XML (cdsPEDIDOXML).

N — Não (Sem Obrigatoriedade)​

O que fazDetalhe
Libera inserção de itens avulsaO usuário pode adicionar itens manualmente sem pedido
Libera emissão sem pedidoA nota pode ser salva e emitida normalmente sem pedido vinculado

Simulação passo a passo​

  1. Acesse MFA002 → Parâmetros de Nota Fiscal por Série e selecione a série desejada.
  2. No campo correspondente, confirme "N" (Não) para ST_OBRIGAPEDIDO.
  3. Salve o parâmetro.
  4. Abra MNF002 — Emissão de Nota Fiscal e selecione a mesma série.
  5. Adicione itens manualmente, sem vincular pedido.
  6. Salve e emita a nota normalmente.

Resultado esperado: Notas fiscais dessa série podem ser emitidas livremente, com ou sem pedido associado.

Regra Geral​

O parâmetro é armazenado por série + empresa + tipo de nota (chave primária de PARMNOTA). Isso significa que a obrigatoriedade pode ser configurada de forma independente para cada combinação de série e tipo (entrada/saída).

O fluxo de validação quando ST_OBRIGAPEDIDO = 'S' ocorre em três pontos:

  1. Inserção de item (tabITEMNOTANewRecord): bloqueia a inclusão manual de itens se não houver pedido carregado.
  2. Gravação da nota (Grava_NotaFiscal / btnSalvarClick): verifica se cada item da nota existe no pedido vinculado.
  3. Salvamento final (btnSalvarClick): verifica se a nota possui pedido associado antes de emitir.

Tabela Comparativa Resumida​

ValorDescriçãoInsere item avulso?Emite sem pedido?Nota Complementar
NNão✅ Sim✅ SimSem restrição
SSim❌ Não❌ Não✅ Isenta

Procedures impactadas​

Rotinas Delphi com referência direta ao campo​

RotinaArquivoLinhaEfeito
TdmMFA002.tabPARMNOTAAfterInsertUdmMFA002.pas92Inicializa campo com 'N' ao criar novo registro
TfrmMNF001.btnSalvarClickUMNF001.pas1941–1958Consulta ST_OBRIGAPEDIDO e bloqueia emissão sem pedido
TdmMNF001.tabITEMNOTANewRecordUdmMNF001.pas11916–11931Consulta ST_OBRIGAPEDIDO e bloqueia inserção de item avulsa
TfrmMNF002.btnSalvarClickUMNF002.pas3611–3612Bloqueia emissão se sem pedido e ST_OBRIGAPEDIDO = 'S' (exceto complementar)
TdmMNF002.tabITEMNOTANewRecordUdmMNF002.pas10676–10680Bloqueia inserção de item se sem pedido carregado
Grava_NotaFiscalUdmMNF002.pas1728–1744Valida se cada item da nota existe no pedido vinculado
TdmMNF002.tabNOTACD_SERIENFValidateUdmMNF002.pas7904–7943Carrega valor do parâmetro ao selecionar série
TdmMNF026.tabFiltroCD_SERIEDEVValidateUdmMNF026.pas4467Carrega parâmetro ao selecionar série de devolução
TdmMNF026.tabNOTACD_SERIENFValidateUdmMNF026.pas4883Carrega parâmetro ao selecionar série na devolução

Referências SQL diretas ao campo​

Não foi encontrada referência direta ao campo ST_OBRIGAPEDIDO em Scripts/. As procedures que utilizam a tabela PARMNOTA acessam outros campos da tabela, não este parâmetro especificamente.

Candidatas por uso da tabela (sem referência direta ao campo)​

As procedures abaixo utilizam a tabela PARMNOTA, mas não referenciam ST_OBRIGAPEDIDO diretamente:

Procedure/ViewArquivo
CALCULA_IMPOSTONOTAScripts/CALCULA_IMPOSTONOTA.sql
GERA_NFEScripts/GERA_NFE.sql
GERA_NOTAFISCALScripts/GERA_NOTAFISCAL.sql
GERA_ESTOQUE_NOTAFISCALScripts/GERA_ESTOQUE_NOTAFISCAL.sql
GERA_IMPOSTONOTAScripts/GERA_IMPOSTONOTA.sql
GERA_IMPOSTONOTA_INDIVIDUALScripts/GERA_IMPOSTONOTA_INDIVIDUAL.sql
GERA_NOTAPEDIDOScripts/GERA_NOTAPEDIDO.sql
RETORNA_NFSEQUENCIAScripts/RETORNA_NFSEQUENCIA.sql