Pular para o conteúdo principal

Parâmetro de Exibição da Observação do Cliente

Tela de configuração: MFA001 - Parâmetros de Faturamento Localização: Parâmetros → Ambos → Opção 1 (campo "Mostrar Obs Cliente") Tabela: PARMFATUR.ST_OBSCLIENTE Valor padrão: N (Não exibe observação)

Controla qual observação do cadastro da pessoa (cliente) será exibida automaticamente em telas de pedidos, notas fiscais, ordens de serviço, ordens de produção e laudos, quando o cliente for selecionado. Atua somente como gatilho de exibição — não bloqueia nenhuma operação, apenas abre uma janela modal (ou ajusta a visibilidade de um grupo) mostrando a observação correspondente cadastrada em PESSOA.

Telas impactadas​

MóduloCódigoDescriçãoObservação exibida (comportamento)
NF de SaídaMNF002Emissão de NF de saídaAbre TfrmUMNF002OBSCLIENTE no AfterPost da pessoa
Pedido de VendaMPD020Pedidos de vendaAbre TfrmUMPD020OBSCLIENTE ao selecionar cliente
Ordem de ServiçoMOF001Ordens de serviçoAbre TfrmUMOF001OBSCLIENTE ao selecionar cliente
Ordem de Serviço (Oficina)MPD005OS/OficinaMostra obs ao selecionar cliente
Recap - Pedido de PneuMRC001Pedido de recapagemChama formObsClienteMRC001.selecionaObsCliente
Recap - Laudo TécnicoMRC048Laudo técnicoAltera grpOBSCLIENTE.Caption / .Visible
Recap - NF OrdemMRC020NF de ordem de produçãoExibe observação conforme opção
NF Fiscal/OutrosMNF017Emissão NFCarrega parâmetro para uso interno
Manutenção ConferênciaMCO006ConferênciaCarrega parâmetro via join em PARMFATUR
NF EntregaMNF008NF de entregaCarrega parâmetro via join

Campos envolvidos​

TabelaCampoDescrição
PESSOADS_OBSCLIENTEObservação específica do cliente (Pessoa Física)
PESSOADS_OBSFINANCEIROObservação financeira do cliente
PESSOADS_OBSERVACAO / DS_OBSERVACAOPESSOA / DS_OBSPESSOAObservação geral do cadastro
PEDIDO / NOTA / ORDEMSERVICODS_OBSCLIENTE, DS_OBSFINANCEIRO, DS_OBSPESSOACópias herdadas do cadastro da pessoa no momento da gravação

O sistema só exibe a observação se o campo estiver preenchido (Trim(...) <> ''). Se o cliente não tiver a observação correspondente cadastrada, nenhuma janela abre, mesmo com o parâmetro ativo.


Opções disponíveis​

S - Pessoa Física (Obs. do Cliente)​

O que fazDetalhe
OrigemCampo DS_OBSCLIENTE do cadastro da pessoa
Quando é exibidaAo confirmar/selecionar o cliente na tela de pedido, NF ou OS
Título da janelaObservação do Cliente
Visibilidade do grupomemDS_OBSCLIENTE.Visible := true (demais false)

Simulação passo a passo​

  1. Vá em MFA001 → Parâmetros → Ambos → Opção 1 → Mostrar Obs Cliente = "Pessoa Física"
  2. Salve os parâmetros (F6)
  3. Cadastre no TFA001 uma observação no campo "Obs. Cliente" da pessoa (DS_OBSCLIENTE = "Cliente VIP, liberar preço especial")
  4. Abra uma NF de Saída (MNF002)
  5. Informe esta pessoa como cliente
  6. Confirme a seleção do cliente

Resultado esperado: Ao confirmar o cliente, abre uma janela modal intitulada "Observação do Cliente" exibindo o texto "Cliente VIP, liberar preço especial". O fluxo só prossegue após o usuário fechar a janela.


O - Observação Financeira​

O que fazDetalhe
OrigemCampo DS_OBSFINANCEIRO do cadastro da pessoa
Quando é exibidaAo confirmar/selecionar o cliente
Título da janelaObservação Financeira do Cliente
Visibilidade do grupomemDS_OBSFINANCEIRO.Visible := true (demais false)
Uso típicoAlertar sobre restrições financeiras, inadimplência, limite

Simulação passo a passo​

  1. MFA001 → Mostrar Obs Cliente = "Financeiro"
  2. Salve os parâmetros (F6)
  3. Cadastre no TFA001 a observação financeira do cliente (DS_OBSFINANCEIRO = "Atraso de 15 dias, verificar com o financeiro antes de liberar")
  4. Abra um Pedido de Venda (MPD020)
  5. Informe este cliente no pedido

Resultado esperado: Ao selecionar o cliente abre a janela "Observação Financeira do Cliente" com o texto cadastrado. Cumpre função de alerta ao atendente/vendedor antes de continuar o pedido.


B - Observação Geral (Pessoa)​

O que fazDetalhe
OrigemCampo DS_OBSERVACAO / DS_OBSPESSOA (observação geral do cadastro da pessoa)
Quando é exibidaAo confirmar/selecionar o cliente
Título da janelaObservação Geral do Cliente
Visibilidade do grupomemDS_OBSERVACOAPESSOA.Visible := true / memDS_OBSPESSOA.Visible := true
Uso típicoLembretes gerais, dados complementares do cadastro

Simulação passo a passo​

  1. MFA001 → Mostrar Obs Cliente = "Observação"
  2. Salve os parâmetros (F6)
  3. No cadastro da pessoa (TFA001), preencha o campo de observação geral (DS_OBSERVACAO = "Entregar somente de segunda a quinta, antes das 14h")
  4. Abra uma Ordem de Serviço (MOF001)
  5. Selecione a pessoa como cliente

Resultado esperado: Abre a janela "Observação Geral do Cliente" exibindo o lembrete cadastrado. Serve como memória operacional do relacionamento com o cliente.


N - Não (desabilitado)​

O que fazDetalhe
ExibiçãoNenhuma janela é aberta em nenhuma tela
ComportamentoTodos os if que comparam ST_OBSCLIENTE contra 'S'/'O'/'B' falham e pulam o bloco
Em MRC048O grupo grpOBSCLIENTE fica invisível (Visible := False)

Simulação passo a passo​

  1. MFA001 → Mostrar Obs Cliente = "Não"
  2. Salve os parâmetros (F6)
  3. Abra qualquer tela da lista de impactadas (MPD020, MNF002, MOF001)
  4. Selecione um cliente que tenha todas as observações preenchidas no cadastro

Resultado esperado: Nenhuma janela modal aparece. O fluxo segue direto sem interrupção. No MRC048 o grupo de observação nem sequer é desenhado na tela.

Este é o valor padrão ao criar um novo registro no MFA001 (UdmMFA001.pas:486 - tabPARMFATURST_OBSCLIENTE.AsString := 'N').


Regras e Observações Complementares​

  • Exibição condicionada ao preenchimento: todos os blocos exigem que a observação cadastrada esteja preenchida (Trim(...) <> ''). Parâmetro ativo + campo vazio = janela não aparece.
  • Modal bloqueante: nas telas MPD020, MNF002, MOF001 a janela é criada com Application.CreateForm + ShowModal, travando o fluxo até o usuário fechá-la (tipo alerta).
  • Sem bloqueio de gravação: este parâmetro não impede salvar pedido/NF/OS — é exclusivamente um mecanismo de aviso visual.
  • Opções mutuamente exclusivas: só uma observação por vez é exibida (S, O ou B). Não há modo combinado.
  • MRC048 (Laudo): diferente das demais, não abre janela modal; apenas controla a visibilidade/caption do grupo grpOBSCLIENTE na própria tela.
  • Herança para documentos: os campos DS_OBSCLIENTE, DS_OBSFINANCEIRO e DS_OBSPESSOA em PEDIDO/NOTA/ORDEMSERVICO são cópias tiradas do cadastro da pessoa no momento da geração do documento — o que é exibido vem do próprio documento (já copiado), não do cadastro em tempo real.
  • Nenhuma procedure Firebird no diretório Scripts/ referencia ST_OBSCLIENTE. A lógica está 100% no código Delphi.

Tabela Comparativa Resumida​

OpçãoDescriçãoCampo origemTítulo da janelaPré-condição
SPessoa FísicaDS_OBSCLIENTEObservação do ClienteCampo preenchido
OFinanceiroDS_OBSFINANCEIROObservação Financeira do ClienteCampo preenchido
BObservaçãoDS_OBSERVACAO / DS_OBSPESSOAObservação Geral do ClienteCampo preenchido
NNão—(nenhuma)—

Referências no Código Fonte​

Tela de configuração (MFA001)​

ArquivoLinhaDescrição
source/MFA001/UMFA001.dfm2526Caption do rótulo: Mostrar Obs Cliente
source/MFA001/UMFA001.dfm3297-3325ComboBox wwDBComboBox2 / DataField ST_OBSCLIENTE com Items S/O/B/N
source/MFA001/UdmMFA001.dfm142, 1148-1153, 2380, 2537, 2752, 3022Select, Insert e Update do parâmetro na query tabPARMFATUR
source/MFA001/UdmMFA001.pas138Declaração tabPARMFATURST_OBSCLIENTE: TStringField
source/MFA001/UdmMFA001.pas486Valor padrão no AfterInsert: := 'N'

Consumo do parâmetro em outras telas​

ArquivoLinha(s)Uso
source/MNF002/UdmMNF002.pas4279, 4290, 4301Abre TfrmUMNF002OBSCLIENTE conforme opção S/O/B
source/MNF002/UdmMNF002.pas10497SELECT lendo P.ST_OBSCLIENTE do PARMFATUR
source/MPD020/UdmMPD020.pas240, 323, 364, 1110, 1120, 1130Carrega em iST_OBSCLIENTE e abre TfrmUMPD020OBSCLIENTE
source/MPD005/UdmMPD005.pas246, 376, 401, 725, 736, 747Carrega e testa opções S/O/B em Oficina
source/MOF001/UdmMOF001.pas446, 727, 754, 1174, 1185, 1196Carrega e abre TfrmUMOF001OBSCLIENTE
source/MNF017/UMNF017.pas165, 205Carrega parâmetro para uso interno
source/MNF017/UdmMNF017.pas288, 1546, 1558, 1569Testa opções S/O/B
source/MRC001/UdmMRC001.pas369, 374, 379Chama formObsClienteMRC001.selecionaObsCliente conforme opção
source/MRC020/UdmMRC020NFORDEM.pas432, 566, 589, 3464, 3478, 3490, 3502Carrega e aplica opções
source/MRC048/UMRC048.pas257, 259Ajusta grpOBSCLIENTE.Caption e .Visible
source/MRC048/UMRC048.pas1044SELECT com CASE PF.ST_OBSCLIENTE WHEN 'S' THEN PEF.DS_OBSERVACAO
source/MRC015/UMRC015.pas1163Testa opção 'O' no ORDEMPRODUCAO
source/MRC015/UdmMRC015.pas198, 237, 244Carrega parâmetro
source/MRC014/UMRC014.pas2210Testa opção 'O'
source/MRC014/UdmMRC014.pas226, 266, 271Carrega parâmetro
source/MRC023/UdmMRC023.pas104, 125, 130Carrega parâmetro
source/MRC007/UdmMRC007.pas240Variável de carregamento
source/MRC039/UdmMRC039.pas81, 110, 115Carrega parâmetro
source/MCO006/UdmMCO006.pas2106JOIN em PARMFATUR lendo ST_OBSCLIENTE
source/MNF008/UdmMNF008.pas762JOIN em PARMFATUR lendo ST_OBSCLIENTE

Procedures SQL​

Nenhuma procedure em Scripts/ referencia ST_OBSCLIENTE — toda a lógica de exibição é tratada no código Delphi.