CD_TIPOPESSOA — Parâmetro de Tipo de Pessoa (Comportamento)
Tela de configuração: FNC001 — Parâmetros Financeiros Localização: Aba "Financeiro 1" — GroupBox "Dados do Parâmetro" Tabela:
PARMFINANC.CD_TIPOPESSOATabela de referência:TIPOPESSOA(CD_TIPOPESSOA)Componente:edtCD_TIPOPESSOA(TDBEdit) Tipo de controle: edit (campo livre com busca por<F9>) Tipo de dados:INTEGERValor padrão: nenhum (campo opcional)
Telas impactadas
| Tela | Nome | Como é impactada |
|---|---|---|
| FNC001 | Parâmetros Financeiros | Tela de configuração do parâmetro |
| CFC004 | Consulta Financeira | Lê CD_TIPOPESSOA da PARMFINANC para validar restrição de acesso por tipo de pessoa |
| CFC001 | Consulta Financeira | Usa RETORNA_TIPOPESSOA_RESTRITA (que lê PARMFINANC.CD_TIPOPESSOA) para filtrar clientes por tipo |
| CFC008 | Consulta Financeira | Usa RETORNA_TIPOPESSOA_RESTRITA para filtrar clientes por tipo |
| CFC011 | Consulta Financeira | Usa RETORNA_TIPOPESSOA_RESTRITA para filtrar clientes por tipo |
| TFA001 | Cadastro de Pessoas | Vincula o CD_TIPOPESSOA ao cadastro de uma pessoa |
| TFA005 | Cadastro de Tipos de Pessoa | Tela onde os tipos de pessoa são criados/editados |
Campos envolvidos
| Coluna | Tipo | FK |
|---|---|---|
CD_TIPOPESSOA | DOM_INTEGER | TIPOPESSOA(CD_TIPOPESSOA) |
DS_TIPOPESSOA | Calculado em runtime | Preenchido pelo validate ao encontrar o registro em TIPOPESSOA |
Opções disponíveis
Este parâmetro não possui opções predefinidas (A/B/N/etc.). Trata-se de um campo livre que armazena o código de um registro existente na tabela TIPOPESSOA.
| O que faz | Detalhe |
|---|---|
| Armazena CD_TIPOPESSOA | Código do tipo de pessoa que servirá como referência para a empresa nos parâmetros financeiros |
| Busca por F9 | Invoca a rotina de busca padrão da tabela TIPOPESSOA |
| Validação automática | Ao salvar, se o código informado for inválido/inesistente, gera erro W-0000 |
Simulação passo a passo
- Acesse FNC001 — Parâmetros Financeiros.
- Na aba "Financeiro 1", localize o GroupBox "Dados do Parâmetro".
- Posicione o cursor no campo "CD_TIPOPESSOA" (label genérico; o conteúdo exibe o código numérico).
- Pressione
<F9>para abrir a busca de tipos de pessoa ou digite o código diretamente (ex:1). - Selecione um tipo de pessoa existente (ex:
1— "Cliente"). - Salve o registro (
<Ctrl+S>).
Resultado esperado: O código do tipo de pessoa é persistido em PARMFINANC.CD_TIPOPESSOA para a empresa. O campo descritivo DS_TIPOPESSOA é preenchido automaticamente ao lado.
Excecao / Importante: Se o código informado não existir na tabela
TIPOPESSOA, o sistema exibe a mensagem de erro "Tipo de Pessoa não cadastrado! [TFA005]". Acesse a tela TFA005 — Cadastro de Tipos de Pessoa para criar o registro antes de referenciá-lo aqui.
Importante: O campo é opcional — pode permanecer em branco. Contudo, diversos processos de restrição de acesso e filtragem (descritos abaixo) dependem dele.
Efeito funcional — Restrição de acesso por tipo de pessoa
Quando configurado, este parâmetro atua como gatilho de restrição em consultas financeiras, em conjunto com o parâmetro:
ST_RESTRICAOPESSOA— campo na tabelaPARMUSUARIO, por usuário/empresa (configurado em ADM012 — Parâmetros do Usuário).
Quando ST_RESTRICAOPESSOA = 'S' para o usuário logado e o CD_TIPOPESSOA cadastrado em PARMFINANC coincide com o CD_TIPOPESSOA da pessoa consultada, o acesso ao histórico financeiro é negado.
Simulação passo a passo do cenário de restrição
- Acesse FNC001 e configure
CD_TIPOPESSOA=2(ex: "Fornecedor") para a empresa1. Salve. - Acesse ADM012 e habilite a restrição de pessoa (
ST_RESTRICAOPESSOA = 'S') para o usuárioJOAOna empresa1. - O usuário
JOAOabre a tela CFC004 — Consulta Financeira. - No campo de filtro, o usuário digita o código de uma pessoa do tipo
2("Fornecedor") e pressiona<Tab>.
Resultado esperado: O sistema exibe a mensagem "Usuário não Possui Acesso ao Histórico desta Pessoa" e limpa o campo de nome da pessoa, impedindo a consulta.
Importante: A leitura de
CD_TIPOPESSOAdaPARMFINANCé feita por empresa (WHERE CD_EMPRESA = ...). Cada empresa pode ter um tipo de pessoa diferente configurado como restrito.
Procedures impactadas
Rotinas Delphi com referência direta ao parâmetro
| Rotina | Arquivo | Linha | Uso |
|---|---|---|---|
tabPARMFINANCCD_TIPOPESSOAValidate | source/FNC001/UdmFNC001.pas | 697 | Valida existência do tipo na tabela TIPOPESSOA e popula DS_TIPOPESSOA |
edtCD_TIPOPESSOAKeyDown | source/FNC001/UFNC001.pas | 925 | Busca por <F9> na tabela TIPOPESSOA |
tabFILTROCD_PESSOAValidate | source/CFC004/UdmCFC004.pas | 189 | Lê CD_TIPOPESSOA da PARMFINANC para validação de restrição de acesso |
gridDEPSTIPOPESSOAKeyDown | source/FNC001/UFNC001.pas | 1464 | Busca por <F9> para a sub-tabela DEPSSMARTTIPOPESSOA |
tabDEPSSMARTTIPOPESSOACD_TIPOPESSOAValidate | source/FNC001/UdmFNC001.pas | 1315 | Validação do campo na sub-tabela |
tabDEPSSMARTTIPOPESSOABeforePost | source/FNC001/UdmFNC001.pas | 1295 | Verifica preenchimento obrigatório na sub-tabela |
Referências SQL diretas ao campo
| Procedure/View | Arquivo | Uso |
|---|---|---|
RETORNA_TIPOPESSOA_RESTRITA | docs/schema/metadata/procedures/ | Procedure que recebe CD_TIPOPESSOA e retorna bloqueio ou permissão de acesso por tipo de pessoa. Usada em CFC001, CFC008, CFC011 |
VIEW_CUSTOEQUIVALENTE | Scripts/VIEW_CUSTOEQUIVALENTE.sql | 41 |
Candidatas por uso da tabela PARMFINANC
Estas procedures usam a tabela PARMFINANC, mas não citam CD_TIPOPESSOA literalmente. Não foi encontrada referência direta ao campo nessas rotinas:
CALCULA_CAPITAL,CALCULA_JURO,CALCULA_JUROMORA,CALCULA_JUROMORA_RFC019CANCELA_CONTAS,CONTABILIZA_REPARCELAMENTO,CONTROLE_CAIXAESTORNA_MOVTOCAIXA,EXECUTA_PROCESSO,GERA_DUPLICATASGERA_INTEGRACAO,GERA_INTEGRACAOFISCAL,GERA_MOVTOCONTABILGRAVA_CHEQUECARTAO,GRAVA_CONTAS,GRAVA_MOVTOCAIXAGRAVA_MOVTOCAIXAINDIVIDUAL,GRAVA_MOVTOPROCESSO,GRAVA_PROCESSOSMART,PROCESSA_FATURA
Nota: Candidatas por tabela apenas — sem impacto direto do campo
CD_TIPOPESSOAidentificado nestas rotinas.
Comportamentos detectados
- Validação de existência: Ao informar um valor, o sistema executa
SELECT CD_TIPOPESSOA, DS_TIPOPESSOA FROM TIPOPESSOA WHERE CD_TIPOPESSOA = :valor. Se não encontrar, lança exceção"Tipo de Pessoa não cadastrado! [TFA005]". - Busca por
<F9>: O eventoKeyDowninterceptavk_F9e invocaBusca(transaction, 'TIPOPESSOA', nil), que abre a consulta padrão de tipos de pessoa. - Restrição de acesso em CFC004: A rotina compara
CD_TIPOPESSOAdePARMFINANCcom oCD_TIPOPESSOAda pessoa filtrada. Se coincidir e o usuário tiverST_RESTRICAOPESSOA = 'S', o acesso é bloqueado. - Sub-tabela DEPSSMARTTIPOPESSOA: Existe uma tabela secundária com
CD_TIPOPESSOApróprio, onde o campo é obrigatório (BeforePostverificaTrim = EmptyStr).
Tabela comparativa resumida
| Aspecto | Detalhe |
|---|---|
| Função | Vincular um tipo de pessoa como referência para a empresa nos parâmetros financeiros |
| Obrigatoriedade | Opcional em PARMFINANC, obrigatório na sub-tabela DEPSSMARTTIPOPESSOA |
| Validação | Verifica existência em TIPOPESSOA ao salvar |
| Busca | <F9> abre consulta da tabela TIPOPESSOA |
| Impacto de restrição | Combinado com ST_RESTRICAOPESSOA (tabela PARMUSUARIO, tela ADM012) bloqueia acesso ao histórico financeiro de pessoas do tipo configurado |
| Escopo | Por empresa (CD_EMPRESA) |
| Mensagem de erro | "Tipo de Pessoa não cadastrado! [TFA005]" / "Usuário não Possui Acesso ao Histórico desta Pessoa" |