Parâmetro de Exibição de Datas do Cliente (Cadastro / Endereço / SCPC)
Tela de configuração: MFA001 - Parâmetros de Faturamento Localização: Parâmetros → Ambos → Opção 1 → "Data Consulta SCPC" Tabela:
PARMFATUR.ST_DATASCPCValor padrão:N(Não Mostrar)
Telas impactadas
| Módulo | Código | Efeito |
|---|---|---|
| Nota Fiscal Saída | MNF002 | Único módulo que aplica lógica condicional. Ao sair do campo cliente na NF, abre automaticamente a janela TfrmDatas (unit UDATAS.pas) exibindo Data de Cadastro, Data de Registro do Endereço e Data da Última Consulta SCPC/SEPROC |
| NF Devolução / Outra Saída | MNF008 | Apenas lê a coluna ST_DATASCPC em SELECT ... FROM PARMFATUR (linha 654 e 759 de UdmMNF008.pas); não aplica lógica |
| Comissão / Bônus | MCO006 | Apenas carrega a coluna em SELECT de PARMFATUR (linha 2103 de UdmMCO006.pas); não aplica lógica |
| Cadastro de Parâmetros (CRM / Pedido Mobile) | CPD009 | Apenas grava/lê a coluna no formulário de parâmetros duplicado; sem lógica de comportamento |
| Replicação Parâmetros por Empresa | RCA006 | Apenas replica o valor da coluna entre empresas; sem lógica de comportamento |
Os módulos MNF008, MCO006, CPD009 e RCA006 carregam o parâmetro como coluna em
PARMFATUR, mas não executam lógica condicional baseada nele. A tomada de decisão acontece exclusivamente em MNF002.
Campos envolvidos
| Campo | Descrição |
|---|---|
PESSOA.DT_CADASTRO | Data em que o cliente foi cadastrado |
PESSOA.DT_SCPC | Data da última consulta registrada ao SCPC/SEPROC |
ENDERECOPESSOA.DT_REGISTRO | Data em que o endereço do cliente foi registrado/atualizado (CAST AS DATE) |
Estes três campos são exibidos lado a lado na janela modal "Informações do Cliente" aberta quando o parâmetro está ativo.
Opções disponíveis
S - Mostrar
| O que faz | Detalhe |
|---|---|
| Quando dispara? | Evento edtCD_PESSOAExit em MNF002 — ao sair do campo de cliente da Nota Fiscal |
| Ação | Executa Application.CreateForm(TfrmDatas, frmDatas); frmDatas.ShowModal; frmDatas.Free; |
| Consulta executada | SELECT P.DT_CADASTRO, P.DT_SCPC, CAST(E.DT_REGISTRO AS DATE) FROM PESSOA P INNER JOIN ENDERECOPESSOA E ON (E.CD_PESSOA = P.CD_PESSOA) WHERE P.CD_PESSOA = :CD_PESSOA AND E.CD_ENDERECO = :CD_ENDERECO |
| Formulário exibido | TfrmDatas (unit source/MNF002/UDATAS.pas + UDATAS.dfm), título "Informações do Cliente", com três linhas: "Cadastro do Cliente Realizado em", "Endereço do Cliente Atualizado em", "Última consulta Realizada no SCPC/SEPROC em" |
| Modalidade | ShowModal — exige clique em OK (ou Esc) para prosseguir com a emissão da nota |
Simulação passo a passo
- Vá em MFA001 → Parâmetros → Ambos → Opção 1 → "Data Consulta SCPC" = "Mostrar"
- Salve os parâmetros (F6)
- Abra MNF002 (Nota Fiscal de Saída) e inicie a emissão de uma nova NF
- No campo Cliente (CD_PESSOA) informe um cliente qualquer e pressione TAB (saída do campo)
- Após a lógica de verificação de contas devendo (ST_MOSTRARDEVENDO), o sistema abre automaticamente a janela modal "Informações do Cliente" com os três campos preenchidos:
- Cadastro do Cliente Realizado em →
PESSOA.DT_CADASTRO - Endereço do Cliente Atualizado em →
ENDERECOPESSOA.DT_REGISTRO - Última consulta Realizada no SCPC/SEPROC em →
PESSOA.DT_SCPC
- Cadastro do Cliente Realizado em →
- Clique em OK (ou pressione
Esc) para fechar o modal e seguir com a emissão da NF
Resultado esperado: A cada seleção de cliente na NF de Saída, o operador é obrigado a visualizar as três datas de referência antes de prosseguir, incentivando checagem manual de atualidade cadastral e consulta de crédito.
N - Não Mostrar
| O que faz | Detalhe |
|---|---|
| Quando dispara? | Nunca — o bloco condicional if (parmfatur.values['ST_DATASCPC'] = 'S') then avalia falso e não executa |
| Ação | Nenhuma janela é criada; nenhuma consulta PESSOA/ENDERECOPESSOA extra é feita; o fluxo segue direto após a verificação de histórico financeiro |
Simulação passo a passo
- MFA001 → "Data Consulta SCPC" = "Não Mostrar"
- Salve os parâmetros (F6)
- Abra MNF002 e inicie nova NF
- Informe qualquer cliente no campo
CD_PESSOAe saia do campo - Nenhuma janela "Informações do Cliente" é aberta
- Nenhuma consulta extra às tabelas
PESSOA/ENDERECOPESSOAé realizada por conta deste parâmetro - O fluxo segue para os próximos eventos da emissão da NF
Resultado esperado: Emissão da NF sem interrupção para exibição das datas do cliente.
Este é o valor padrão ao criar um novo registro em MFA001 (
UdmMFA001.pas, linha 459:tabPARMFATURST_DATASCPC.AsString := 'N').
Regra Geral de Disparo
O bloco condicional em UMNF002.pas (linha 5722) só é executado quando todas as condições abaixo são atendidas:
PARMFATUR.ST_DATASCPC = 'S'- O evento
edtCD_PESSOAExitfoi disparado (usuário informou/alterou o cliente na NF e saiu do campo) - A variável
dmMNF002.iST_PESSOA = 'S'etabNOTACD_PESSOAestá preenchido (condição doifexterno que abre o bloco a partir da linha 5653)
O trecho executado é:
// source/MNF002/UMNF002.pas, linha 5721-5727
// Mostra as Datas das Informações do Cliente
if (parmfatur.values['ST_DATASCPC'] = 'S') then
begin
Application.CreateForm(TfrmDatas, frmDatas);
frmDatas.ShowModal;
frmDatas.Free;
end;
Interação com outros parâmetros
| Parâmetro | Interação |
|---|---|
ST_MOSTRARDEVENDO | Em MNF002 é avaliado imediatamente antes de ST_DATASCPC (linhas 5672-5720). Ambos são checagens de risco do cliente ao trocar/informar cliente na NF — primeiro vem a verificação de contas devendo, depois a exibição das datas |
Tabela Comparativa Resumida
| Opção | Descrição | Tela modal TfrmDatas | Consulta PESSOA+ENDERECOPESSOA | Módulo que aplica |
|---|---|---|---|---|
| S | Mostrar | Sim (ShowModal) | Sim | MNF002 |
| N | Não Mostrar | Não | Não | — |
Referências no Código Fonte
Tela de configuração (MFA001):
source/MFA001/UMFA001.pas:224— declaraçãocmbST_DATASCPC: TwwDBComboBoxsource/MFA001/UMFA001.dfm:2202-2203— rótulo "Data Consulta SCPC" (FocusControl = cmbST_DATASCPC)source/MFA001/UMFA001.dfm:2690-2716— componentecmbST_DATASCPC(DataField = 'ST_DATASCPC',Items.Strings = ('Mostrar'#9'S', 'Não Mostrar'#9'N'))source/MFA001/UdmMFA001.pas:81—tabPARMFATURST_DATASCPC: TStringFieldsource/MFA001/UdmMFA001.pas:459— valor padrão emAfterInsert:tabPARMFATURST_DATASCPC.AsString := 'N'source/MFA001/UdmMFA001.dfm:863-866— campo persistentetabPARMFATURST_DATASCPC(FieldName = 'ST_DATASCPC',Origin = '"PARMFATUR"."ST_DATASCPC"')source/MFA001/UdmMFA001.dfm:96, 2344, 2492, 2708, 2976— SELECT, INSERT, UPDATE e refresh dotabPARMFATUR
Lógica de negócio (MNF002):
source/MNF002/UMNF002.pas:5646—procedure TfrmMNF002.edtCD_PESSOAExit(Sender: TObject)(evento disparador)source/MNF002/UMNF002.pas:5721-5727— bloco condicionalif (parmfatur.values['ST_DATASCPC'] = 'S')que cria e exibeTfrmDatassource/MNF002/UDATAS.pas— unit completa do formulário modalTfrmDatas(componentesDT_CADASTRO,DT_REGISTRO,DT_SCPC, botão OK)source/MNF002/UDATAS.pas:72-82—TfrmDatas.FormShowmonta e executa a consultaSELECT P.DT_CADASTRO, P.DT_SCPC, CAST(E.DT_REGISTRO AS DATE) FROM PESSOA P INNER JOIN ENDERECOPESSOA E ON (E.CD_PESSOA = P.CD_PESSOA) WHERE P.CD_PESSOA = :CD_PESSOA AND E.CD_ENDERECO = :CD_ENDERECOe preenche osTStaticTextsource/MNF002/UDATAS.dfm— layout do modal "Informações do Cliente"
Carga da coluna (sem lógica condicional):
source/MNF008/UdmMNF008.pas:654, 759— SELECT emPARMFATURincluindoST_DATASCPCsource/MCO006/UdmMCO006.pas:2103— SELECT emPARMFATURincluindoP.ST_DATASCPCsource/CPD009/UdmCPD009.dfm:303, 369, 454, 550— SELECT/INSERT/UPDATE dePARMFATURsource/RCA006/UdmRCA006.dfm:3052, 3118, 3203— SELECT/INSERT/UPDATE dePARMFATUR(replicação entre empresas)
SQL / Stored Procedures:
Nenhuma ocorrência de ST_DATASCPC foi encontrada em Scripts/. O parâmetro é usado exclusivamente no código Delphi.