Pular para o conteúdo principal

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_DATASCPC Valor padrão: N (Não Mostrar)

Telas impactadas​

MóduloCódigoEfeito
Nota Fiscal SaídaMNF002Ú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ídaMNF008Apenas lê a coluna ST_DATASCPC em SELECT ... FROM PARMFATUR (linha 654 e 759 de UdmMNF008.pas); não aplica lógica
Comissão / BônusMCO006Apenas carrega a coluna em SELECT de PARMFATUR (linha 2103 de UdmMCO006.pas); não aplica lógica
Cadastro de Parâmetros (CRM / Pedido Mobile)CPD009Apenas grava/lê a coluna no formulário de parâmetros duplicado; sem lógica de comportamento
Replicação Parâmetros por EmpresaRCA006Apenas 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​

CampoDescrição
PESSOA.DT_CADASTROData em que o cliente foi cadastrado
PESSOA.DT_SCPCData da última consulta registrada ao SCPC/SEPROC
ENDERECOPESSOA.DT_REGISTROData 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 fazDetalhe
Quando dispara?Evento edtCD_PESSOAExit em MNF002 — ao sair do campo de cliente da Nota Fiscal
AçãoExecuta Application.CreateForm(TfrmDatas, frmDatas); frmDatas.ShowModal; frmDatas.Free;
Consulta executadaSELECT 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 exibidoTfrmDatas (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"
ModalidadeShowModal — exige clique em OK (ou Esc) para prosseguir com a emissão da nota

Simulação passo a passo​

  1. Vá em MFA001 → Parâmetros → Ambos → Opção 1 → "Data Consulta SCPC" = "Mostrar"
  2. Salve os parâmetros (F6)
  3. Abra MNF002 (Nota Fiscal de Saída) e inicie a emissão de uma nova NF
  4. No campo Cliente (CD_PESSOA) informe um cliente qualquer e pressione TAB (saída do campo)
  5. 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
  6. 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 fazDetalhe
Quando dispara?Nunca — o bloco condicional if (parmfatur.values['ST_DATASCPC'] = 'S') then avalia falso e não executa
AçãoNenhuma 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​

  1. MFA001 → "Data Consulta SCPC" = "Não Mostrar"
  2. Salve os parâmetros (F6)
  3. Abra MNF002 e inicie nova NF
  4. Informe qualquer cliente no campo CD_PESSOA e saia do campo
  5. Nenhuma janela "Informações do Cliente" é aberta
  6. Nenhuma consulta extra às tabelas PESSOA / ENDERECOPESSOA é realizada por conta deste parâmetro
  7. 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:

  1. PARMFATUR.ST_DATASCPC = 'S'
  2. O evento edtCD_PESSOAExit foi disparado (usuário informou/alterou o cliente na NF e saiu do campo)
  3. A variável dmMNF002.iST_PESSOA = 'S' e tabNOTACD_PESSOA está preenchido (condição do if externo 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âmetroInteração
ST_MOSTRARDEVENDOEm 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çãoDescriçãoTela modal TfrmDatasConsulta PESSOA+ENDERECOPESSOAMódulo que aplica
SMostrarSim (ShowModal)SimMNF002
NNão MostrarNãoNão—

Referências no Código Fonte​

Tela de configuração (MFA001):

  • source/MFA001/UMFA001.pas:224 — declaração cmbST_DATASCPC: TwwDBComboBox
  • source/MFA001/UMFA001.dfm:2202-2203 — rótulo "Data Consulta SCPC" (FocusControl = cmbST_DATASCPC)
  • source/MFA001/UMFA001.dfm:2690-2716 — componente cmbST_DATASCPC (DataField = 'ST_DATASCPC', Items.Strings = ('Mostrar'#9'S', 'Não Mostrar'#9'N'))
  • source/MFA001/UdmMFA001.pas:81 — tabPARMFATURST_DATASCPC: TStringField
  • source/MFA001/UdmMFA001.pas:459 — valor padrão em AfterInsert: tabPARMFATURST_DATASCPC.AsString := 'N'
  • source/MFA001/UdmMFA001.dfm:863-866 — campo persistente tabPARMFATURST_DATASCPC (FieldName = 'ST_DATASCPC', Origin = '"PARMFATUR"."ST_DATASCPC"')
  • source/MFA001/UdmMFA001.dfm:96, 2344, 2492, 2708, 2976 — SELECT, INSERT, UPDATE e refresh do tabPARMFATUR

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 condicional if (parmfatur.values['ST_DATASCPC'] = 'S') que cria e exibe TfrmDatas
  • source/MNF002/UDATAS.pas — unit completa do formulário modal TfrmDatas (componentes DT_CADASTRO, DT_REGISTRO, DT_SCPC, botão OK)
  • source/MNF002/UDATAS.pas:72-82 — TfrmDatas.FormShow monta e executa a consulta 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 e preenche os TStaticText
  • source/MNF002/UDATAS.dfm — layout do modal "Informações do Cliente"

Carga da coluna (sem lógica condicional):

  • source/MNF008/UdmMNF008.pas:654, 759 — SELECT em PARMFATUR incluindo ST_DATASCPC
  • source/MCO006/UdmMCO006.pas:2103 — SELECT em PARMFATUR incluindo P.ST_DATASCPC
  • source/CPD009/UdmCPD009.dfm:303, 369, 454, 550 — SELECT/INSERT/UPDATE de PARMFATUR
  • source/RCA006/UdmRCA006.dfm:3052, 3118, 3203 — SELECT/INSERT/UPDATE de PARMFATUR (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.