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_OBSCLIENTEValor 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ódulo | Código | Descrição | Observação exibida (comportamento) |
|---|---|---|---|
| NF de Saída | MNF002 | Emissão de NF de saída | Abre TfrmUMNF002OBSCLIENTE no AfterPost da pessoa |
| Pedido de Venda | MPD020 | Pedidos de venda | Abre TfrmUMPD020OBSCLIENTE ao selecionar cliente |
| Ordem de Serviço | MOF001 | Ordens de serviço | Abre TfrmUMOF001OBSCLIENTE ao selecionar cliente |
| Ordem de Serviço (Oficina) | MPD005 | OS/Oficina | Mostra obs ao selecionar cliente |
| Recap - Pedido de Pneu | MRC001 | Pedido de recapagem | Chama formObsClienteMRC001.selecionaObsCliente |
| Recap - Laudo Técnico | MRC048 | Laudo técnico | Altera grpOBSCLIENTE.Caption / .Visible |
| Recap - NF Ordem | MRC020 | NF de ordem de produção | Exibe observação conforme opção |
| NF Fiscal/Outros | MNF017 | Emissão NF | Carrega parâmetro para uso interno |
| Manutenção Conferência | MCO006 | Conferência | Carrega parâmetro via join em PARMFATUR |
| NF Entrega | MNF008 | NF de entrega | Carrega parâmetro via join |
Campos envolvidos
| Tabela | Campo | Descrição |
|---|---|---|
PESSOA | DS_OBSCLIENTE | Observação específica do cliente (Pessoa Física) |
PESSOA | DS_OBSFINANCEIRO | Observação financeira do cliente |
PESSOA | DS_OBSERVACAO / DS_OBSERVACAOPESSOA / DS_OBSPESSOA | Observação geral do cadastro |
PEDIDO / NOTA / ORDEMSERVICO | DS_OBSCLIENTE, DS_OBSFINANCEIRO, DS_OBSPESSOA | Có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 faz | Detalhe |
|---|---|
| Origem | Campo DS_OBSCLIENTE do cadastro da pessoa |
| Quando é exibida | Ao confirmar/selecionar o cliente na tela de pedido, NF ou OS |
| Título da janela | Observação do Cliente |
| Visibilidade do grupo | memDS_OBSCLIENTE.Visible := true (demais false) |
Simulação passo a passo
- Vá em MFA001 → Parâmetros → Ambos → Opção 1 → Mostrar Obs Cliente = "Pessoa Física"
- Salve os parâmetros (F6)
- Cadastre no TFA001 uma observação no campo "Obs. Cliente" da pessoa (
DS_OBSCLIENTE= "Cliente VIP, liberar preço especial") - Abra uma NF de Saída (MNF002)
- Informe esta pessoa como cliente
- 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 faz | Detalhe |
|---|---|
| Origem | Campo DS_OBSFINANCEIRO do cadastro da pessoa |
| Quando é exibida | Ao confirmar/selecionar o cliente |
| Título da janela | Observação Financeira do Cliente |
| Visibilidade do grupo | memDS_OBSFINANCEIRO.Visible := true (demais false) |
| Uso típico | Alertar sobre restrições financeiras, inadimplência, limite |
Simulação passo a passo
- MFA001 → Mostrar Obs Cliente = "Financeiro"
- Salve os parâmetros (F6)
- Cadastre no TFA001 a observação financeira do cliente (
DS_OBSFINANCEIRO= "Atraso de 15 dias, verificar com o financeiro antes de liberar") - Abra um Pedido de Venda (MPD020)
- 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 faz | Detalhe |
|---|---|
| Origem | Campo DS_OBSERVACAO / DS_OBSPESSOA (observação geral do cadastro da pessoa) |
| Quando é exibida | Ao confirmar/selecionar o cliente |
| Título da janela | Observação Geral do Cliente |
| Visibilidade do grupo | memDS_OBSERVACOAPESSOA.Visible := true / memDS_OBSPESSOA.Visible := true |
| Uso típico | Lembretes gerais, dados complementares do cadastro |
Simulação passo a passo
- MFA001 → Mostrar Obs Cliente = "Observação"
- Salve os parâmetros (F6)
- No cadastro da pessoa (TFA001), preencha o campo de observação geral (
DS_OBSERVACAO= "Entregar somente de segunda a quinta, antes das 14h") - Abra uma Ordem de Serviço (MOF001)
- 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 faz | Detalhe |
|---|---|
| Exibição | Nenhuma janela é aberta em nenhuma tela |
| Comportamento | Todos os if que comparam ST_OBSCLIENTE contra 'S'/'O'/'B' falham e pulam o bloco |
| Em MRC048 | O grupo grpOBSCLIENTE fica invisível (Visible := False) |
Simulação passo a passo
- MFA001 → Mostrar Obs Cliente = "Não"
- Salve os parâmetros (F6)
- Abra qualquer tela da lista de impactadas (MPD020, MNF002, MOF001)
- 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
grpOBSCLIENTEna própria tela. - Herança para documentos: os campos
DS_OBSCLIENTE,DS_OBSFINANCEIROeDS_OBSPESSOAemPEDIDO/NOTA/ORDEMSERVICOsã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/referenciaST_OBSCLIENTE. A lógica está 100% no código Delphi.
Tabela Comparativa Resumida
| Opção | Descrição | Campo origem | Título da janela | Pré-condição |
|---|---|---|---|---|
| S | Pessoa Física | DS_OBSCLIENTE | Observação do Cliente | Campo preenchido |
| O | Financeiro | DS_OBSFINANCEIRO | Observação Financeira do Cliente | Campo preenchido |
| B | Observação | DS_OBSERVACAO / DS_OBSPESSOA | Observação Geral do Cliente | Campo preenchido |
| N | Não | — | (nenhuma) | — |
Referências no Código Fonte
Tela de configuração (MFA001)
| Arquivo | Linha | Descrição |
|---|---|---|
source/MFA001/UMFA001.dfm | 2526 | Caption do rótulo: Mostrar Obs Cliente |
source/MFA001/UMFA001.dfm | 3297-3325 | ComboBox wwDBComboBox2 / DataField ST_OBSCLIENTE com Items S/O/B/N |
source/MFA001/UdmMFA001.dfm | 142, 1148-1153, 2380, 2537, 2752, 3022 | Select, Insert e Update do parâmetro na query tabPARMFATUR |
source/MFA001/UdmMFA001.pas | 138 | Declaração tabPARMFATURST_OBSCLIENTE: TStringField |
source/MFA001/UdmMFA001.pas | 486 | Valor padrão no AfterInsert: := 'N' |
Consumo do parâmetro em outras telas
| Arquivo | Linha(s) | Uso |
|---|---|---|
source/MNF002/UdmMNF002.pas | 4279, 4290, 4301 | Abre TfrmUMNF002OBSCLIENTE conforme opção S/O/B |
source/MNF002/UdmMNF002.pas | 10497 | SELECT lendo P.ST_OBSCLIENTE do PARMFATUR |
source/MPD020/UdmMPD020.pas | 240, 323, 364, 1110, 1120, 1130 | Carrega em iST_OBSCLIENTE e abre TfrmUMPD020OBSCLIENTE |
source/MPD005/UdmMPD005.pas | 246, 376, 401, 725, 736, 747 | Carrega e testa opções S/O/B em Oficina |
source/MOF001/UdmMOF001.pas | 446, 727, 754, 1174, 1185, 1196 | Carrega e abre TfrmUMOF001OBSCLIENTE |
source/MNF017/UMNF017.pas | 165, 205 | Carrega parâmetro para uso interno |
source/MNF017/UdmMNF017.pas | 288, 1546, 1558, 1569 | Testa opções S/O/B |
source/MRC001/UdmMRC001.pas | 369, 374, 379 | Chama formObsClienteMRC001.selecionaObsCliente conforme opção |
source/MRC020/UdmMRC020NFORDEM.pas | 432, 566, 589, 3464, 3478, 3490, 3502 | Carrega e aplica opções |
source/MRC048/UMRC048.pas | 257, 259 | Ajusta grpOBSCLIENTE.Caption e .Visible |
source/MRC048/UMRC048.pas | 1044 | SELECT com CASE PF.ST_OBSCLIENTE WHEN 'S' THEN PEF.DS_OBSERVACAO |
source/MRC015/UMRC015.pas | 1163 | Testa opção 'O' no ORDEMPRODUCAO |
source/MRC015/UdmMRC015.pas | 198, 237, 244 | Carrega parâmetro |
source/MRC014/UMRC014.pas | 2210 | Testa opção 'O' |
source/MRC014/UdmMRC014.pas | 226, 266, 271 | Carrega parâmetro |
source/MRC023/UdmMRC023.pas | 104, 125, 130 | Carrega parâmetro |
source/MRC007/UdmMRC007.pas | 240 | Variável de carregamento |
source/MRC039/UdmMRC039.pas | 81, 110, 115 | Carrega parâmetro |
source/MCO006/UdmMCO006.pas | 2106 | JOIN em PARMFATUR lendo ST_OBSCLIENTE |
source/MNF008/UdmMNF008.pas | 762 | JOIN 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.