Pular para o conteúdo principal

ST_CONSOLPED - Consolida Pedidos na Emissão de NF (Comportamento)

Tela de configuração: MFA001 - Parâmetros de Faturamento Localização: Parâmetros → Notas Fiscais → Parâmetros de Notas (Label "Consolida Pedidos na Emissão de NF", UMFA001.dfm:5986) Tabela: PARMFATUR.ST_CONSOLPED Valor padrão: S (Sim) - definido no AfterInsert do dataset (UdmMFA001.pas:456)

Telas impactadas​

MóduloCódigoDescriçãoUso do parâmetro
NF EntradaMNF001Emissão de NF de entradaDefine se os pedidos trazidos para a nota podem ser de múltiplas empresas ou apenas da empresa logada
NF SaídaMNF002Emissão de NF de saídaIdêntico ao MNF001 (consolidação por cliente ou por empresa)
NF Saída (variante)MNF008Emissão de NF de saída (variante)Consolidação de pedidos durante vínculo na nota
NF Saída (variante)MNF013Emissão de NF de saídaCarrega iST_CONSOLPED para lógica interna
NF Saída (variante)MNF014Emissão de NF de saídaCarrega iST_CONSOLPED para lógica interna
Histórico/AuditoriaMCO006Lê ST_CONSOLPED no SELECT de PARMFATURSomente leitura
Parâmetros (captação)CPD009Edita campos de PARMFATUR via UPDATE PARMFATUR SET ST_CONSOLPED = :ST_CONSOLPEDPersistência

Campos envolvidos​

CampoDescrição
PEDIDO.CD_EMPRESAEmpresa do pedido (filtro-chave controlado pelo parâmetro)
PEDIDO.NR_PEDIDONúmero do pedido informado na NF
PEDIDO.CD_PESSOACliente/fornecedor do pedido
NOTA.CD_EMPRPEDIDOEmpresa do pedido vinculado à nota (só faz sentido quando consolida)
NOTA.NR_PEDIDONúmero do pedido vinculado à nota

Opções disponíveis​

S - Sim (consolida pedidos de outras empresas)​

O que fazDetalhe
Busca de pedidos por clienteFiltra apenas por CD_PESSOA (sem exigir CD_EMPRESA)
Pedidos de outras empresasAparecem na seleção / podem ser vinculados à nota
Campo "Empresa do Pedido" (CD_EMPRPEDIDO)Se informado, restringe manualmente a uma empresa; se vazio, aceita qualquer uma
Quando há mais de um pedido com mesmo número em empresas diferentesAbre TfrmPedEmpresas / TfrmPedidoEmpresas para o usuário escolher a empresa
Validação NR_PEDIDO (MNF001)Pula o filtro P.CD_EMPRESA = <empresa logada> na consulta base (UdmMNF001.pas:5968)
XML / Importação de pedidoCampo CD_EMPRESA do pedido XML fica editável (não trava na empresa logada)

Simulação passo a passo​

  1. MFA001 → Parâmetros → Ambos → Opção 1 → "Consolida Pedidos na Emissão de NF" = Sim
  2. Salve os parâmetros (F6)
  3. Supondo que a Empresa 1 e a Empresa 2 tenham pedidos para o cliente X (NR 100 e NR 200)
  4. Abra uma NF de Saída (MNF002) emitida pela Empresa 1
  5. Informe o cliente X → ao carregar pedidos, aparecem tanto o pedido 100 (Empresa 1) quanto o 200 (Empresa 2)
  6. Se existir mais de um pedido com o mesmo número em empresas diferentes, o sistema abre uma janela de seleção de empresa antes de trazer o pedido
  7. No importador XML (MNF001 → DadosXML), o campo "Empresa" do pedido fica editável (pode importar pedido de outra empresa)

Resultado esperado: A empresa logada não restringe os pedidos; qualquer pedido do cliente/fornecedor pode ser usado na nota, independentemente da empresa de origem.


N - Não (apenas pedidos da empresa logada)​

O que fazDetalhe
Busca de pedidos por clienteFiltra por CD_PESSOA E CD_EMPRESA = sessao.empresa.cd_Empresa
Pedidos de outras empresasNão aparecem (filtrados fora da consulta)
Validação NR_PEDIDOAcrescenta AND P.CD_EMPRESA = <empresa logada> à query base (UdmMNF001.pas:5969, UdmMNF002.pas:8290)
XML / Importação de pedidoCampo CD_EMPRESA é preenchido automaticamente com a empresa logada e marcado como ReadOnly (UdmMNF001.pas:10129-10133)
Seleção manual de empresa do pedidoSe o usuário informar CD_EMPRPEDIDO diferente da empresa logada, a consulta passa a usar esse valor como filtro único (UdmMNF001.pas:5977, UdmMNF002.pas:8296)

Simulação passo a passo​

  1. MFA001 → "Consolida Pedidos na Emissão de NF" = Não
  2. Salve os parâmetros (F6)
  3. Logue na Empresa 1 e abra uma NF de Saída (MNF002)
  4. Informe o cliente X → a busca de pedidos traz apenas os pedidos da Empresa 1
  5. Pedidos do cliente X feitos na Empresa 2 não aparecem na lista
  6. No importador XML (MNF001 → DadosXML), o campo "Empresa" do pedido vem preenchido com a empresa logada e não pode ser trocado
  7. Se tentar informar manualmente um NR_PEDIDO que existe apenas em outra empresa, o sistema responde que o pedido não foi encontrado

Resultado esperado: O sistema isola cada empresa: uma NF emitida pela Empresa 1 só consegue vincular pedidos da Empresa 1.


Observação​

  • Interação com MPD001/MPD002: o parâmetro afeta apenas a etapa de vincular pedidos à NF. A criação de pedidos em si não depende de ST_CONSOLPED.
  • Pedidos com mesmo NR_PEDIDO em empresas diferentes: quando ST_CONSOLPED = 'S', o sistema identifica o conflito e abre TfrmPedEmpresas (MNF001) ou TfrmPedidoEmpresas (MNF008) para o usuário escolher qual empresa (UdmMNF008.pas:3832-3849).
  • MNF001 (entrada) lê ST_CONSOLPED em iST_CONSOLPED (UdmMNF001.pas:1395) e também consulta parmFatur.Values['ST_CONSOLPED'] diretamente em alguns pontos (UdmMNF001.pas:5977, UdmMNF001.pas:10129, UMNF001DadosXML.pas:2113, UMNF001DadosXML.pas:2118).
  • MNF008/MNF013/MNF014 armazenam o valor em iST_CONSOLPED (UdmMNF008.pas:675, UdmMNF013.pas:720, UdmMNF014.pas:343).

Tabela Comparativa Resumida​

OpçãoDescriçãoFiltra por empresa logada?Aceita pedido de outra empresa?CD_EMPRESA do pedido XML
SSim (padrão)NãoSimEditável
NNãoSimNãoReadOnly (empresa logada)

Referências no Código Fonte​

MFA001 (tela de configuração)​

  • source/MFA001/UMFA001.dfm:5986 - Label "Consolida Pedidos na Emissão de NF"
  • source/MFA001/UMFA001.dfm:6603-6629 - ComboBox cmbST_CONSOLPED com Items.Strings = ('Sim'#9'S', 'Não'#9'N')
  • source/MFA001/UMFA001.pas:378 - Declaração cmbST_CONSOLPED: TwwDBComboBox
  • source/MFA001/UdmMFA001.pas:63 - tabPARMFATURST_CONSOLPED: TStringField
  • source/MFA001/UdmMFA001.pas:456 - Valor default 'S' no AfterInsert
  • source/MFA001/UdmMFA001.dfm:87, 730-733, 2343, 2489, 2706, 2967 - SELECT/INSERT/UPDATE de ST_CONSOLPED

MNF001 (NF de entrada)​

  • source/MNF001/UdmMNF001.pas:1108 - Declaração variável iST_CONSOLPED: String
  • source/MNF001/UdmMNF001.pas:1373 - SELECT incluindo ST_CONSOLPED de PARMFATUR
  • source/MNF001/UdmMNF001.pas:1395 - Carrega iST_CONSOLPED := Resultado[8]
  • source/MNF001/UdmMNF001.pas:5968-5969 - Pula filtro CD_EMPRESA quando <> 'S'
  • source/MNF001/UdmMNF001.pas:5977 - Adiciona filtro CD_EMPRESA quando 'N'
  • source/MNF001/UdmMNF001.pas:10129-10135 - cdsPEDIDOXMLAfterInsert: preenche e trava CD_EMPRESA quando 'N'
  • source/MNF001/UMNF001.pas:1197-1211 - Consulta_Pedidos: quando 'S' usa só CD_PESSOA; quando 'N' adiciona CD_EMPRESA
  • source/MNF001/UMNF001DadosXML.pas:2113-2119 - F9 do pedido: travamento de CD_EMPRESA quando 'N'

MNF002 (NF de saída)​

  • source/MNF002/UdmMNF002.pas:8289-8290 - Adiciona filtro CD_EMPRESA quando 'N'
  • source/MNF002/UdmMNF002.pas:8296 - Filtro adicional por CD_EMPRPEDIDO quando 'N'
  • source/MNF002/UdmMNF002.pas:10492 - SELECT PARMFATUR incluindo ST_CONSOLPED
  • source/MNF002/UMNF002.pas:2500-2514 - Consulta_Pedidos: ramifica filtro por empresa conforme valor

MNF008 (NF de saída - variante)​

  • source/MNF008/UdmMNF008.pas:476 - Declaração iST_CONSOLPED: String
  • source/MNF008/UdmMNF008.pas:652, 757 - SELECT PARMFATUR incluindo ST_CONSOLPED
  • source/MNF008/UdmMNF008.pas:675 - iST_CONSOLPED := Resultado[11]
  • source/MNF008/UdmMNF008.pas:3832-3849 - Lógica de seleção de empresa quando há pedidos homônimos (ativa quando 'S')
  • source/MNF008/UMNF008.pas:804-819 - Consulta_Pedidos: ramificação da consulta

MNF013 / MNF014 (variantes)​

  • source/MNF013/UdmMNF013.pas:535, 699, 720 - Declaração, SELECT e carga de iST_CONSOLPED
  • source/MNF014/UdmMNF014.pas:269, 323, 343 - Declaração, SELECT e carga de iST_CONSOLPED

Outras referências (somente leitura do campo)​

  • source/MCO006/UdmMCO006.pas:2101 - SELECT PARMFATUR incluindo ST_CONSOLPED
  • source/CPD009/UdmCPD009.dfm:303, 452, 541 - SELECT/UPDATE em PARMFATUR (persistência)