CD_TIPOPESSOA — Tipo de Pessoa (Parâmetro de Tabela de Preço)
Tela de configuração: MFA006 — Parâmetros de Tabela de Preço Tabela:
PARMTABPRECO.CD_TIPOPESSOATipo: INTEGER (opcional, nullable) Foreign Key:RPARMTABPRECO_TIPOPESSOA→TIPOPESSOA (CD_TIPOPESSOA)Valor padrão: Nenhum (campo fica em branco)
Visão Geral
O parâmetro CD_TIPOPESSOA restringe uma regra de tabela de preço a um tipo de pessoa específico (Cliente, Fornecedor, Transportador, etc.). Quando preenchido, a regra de preço só se aplica a pessoas classificadas com aquele tipo. Quando deixado em branco, a regra vale para qualquer tipo de pessoa.
Este campo atua como um dos filtros de granulidade da tabela PARMTABPRECO, junto com empresa, condição de pagamento, estado, vendedor, região comercial, pessoa, item, entre outros.
Telas impactadas
| Tela | Como impacta |
|---|---|
| MFA006 | Tela de configuração — onde o parâmetro é cadastrado |
Campos envolvidos
| Campo | Tabela | Descrição |
|---|---|---|
CD_TIPOPESSOA | PARMTABPRECO | Código do tipo de pessoa ao qual a regra se aplica |
CD_TIPOPESSOA | TIPOPESSOA | Tabela de domínio — classifica cadastros como Cliente, Fornecedor, Transportador, etc. |
DS_TIPOPESSOA | TIPOPESSOA | Descrição legível do tipo (usada na pesquisa F9) |
Opções disponíveis
O campo aceita qualquer código válido de TIPOPESSOA.CD_TIPOPESSOA ou pode ficar em branco (NULL).
Em branco (NULL) — Regra vale para qualquer tipo de pessoa
| O que faz | Detalhe |
|---|---|
| Editável | Sim — limpe o campo ou deixe sem preenchimento |
| Exige | Nenhum campo obrigatório adicional |
| Restrição | Nenhuma — aplica-se a todos os tipos de pessoa |
Simulação passo a passo
- Acesse a tela MFA006 — Parâmetros de Tabela de Preço.
- Crie ou edite um registro de parâmetro de tabela de preço.
- Preencha os demais campos desejados (empresa, tabela de preço, etc.).
- Não preencha o campo Tipo de Pessoa (
CD_TIPOPESSOA). - Salve o registro.
Resultado esperado: A regra de tabela de preço será aplicada a pessoas de qualquer tipo (Cliente, Fornecedor, Transportador, etc.) durante a resolução de preço via RETORNA_TABPRECO.
Código específico de Tipo de Pessoa — Regra vale apenas para aquele tipo
| O que faz | Detalhe |
|---|---|
| Editável | Sim — preencha diretamente ou use <F9> para pesquisar |
| Exige | Código válido existente na tabela TIPOPESSOA |
| Restrição | A regra só se aplica a pessoas classificadas com o tipo informado |
Simulação passo a passo
- Acesse a tela MFA006 — Parâmetros de Tabela de Preço.
- Crie ou edite um registro de parâmetro de tabela de preço.
- No campo Tipo de Pessoa, pressione
<F9>para abrir a pesquisa. - Selecione o tipo desejado (ex: "Cliente" — código 1).
- O campo será preenchido com o código selecionado e a descrição será exibida ao lado.
- Preencha os demais campos desejados (empresa, tabela de preço, etc.).
- Salve o registro.
Resultado esperado: A regra de tabela de preço será aplicada apenas a pessoas classificadas com o tipo selecionado. Pessoas de outros tipos não utilizarão esta regra na resolução de preço.
Excecao / Importante: Na procedure
RETORNA_TABPRECO, o campoCD_TIPOPESSOAtem peso de 1 ponto no critério de ordenação (ORDER BY), juntamente com condição de pagamento, vendedor, grupo, subgrupo e seção. Regras mais específicas (com mais campos preenchidos) têm prioridade sobre regras genéricas. Uma regra semCD_TIPOPESSOA(NULL) só será escolhida se não existir outra regra mais específica que combine com o tipo de pessoa do cadastro.
Regra de Resolução de Preço
A procedure RETORNA_TABPRECO (Scripts/RETORNA_TABPRECO.sql) é responsável por localizar a tabela de preço aplicável. O campo CD_TIPOPESSOA participa da lógica da seguinte forma:
- Se
CD_TIPOPESSOAfor NULL na regra: a regra aceita qualquer tipo de pessoa (condiçãoCOALESCE(P.CD_TIPOPESSOA, -1) = -1é verdadeira e ignora o filtro). - Se
CD_TIPOPESSOAtiver valor na regra: o tipo de pessoa do cadastro deve corresponder exatamente ao valor configurado.
A ordenação de prioridade (ORDER BY com soma de pesos) garante que regras mais específicas prevaleçam:
| Critério | Peso |
|---|---|
Item (CD_ITEM) | 20 |
Pessoa (CD_PESSOA) | 10 |
Condição de Pagamento (CD_CONDPAGTO) | 1 |
Tipo de Pessoa (CD_TIPOPESSOA) | 1 |
Condição Fiscal (CD_CONDFISCAL) | 1 |
Vendedor (CD_VENDEDOR) | 1 |
Grupo (CD_GRUPO) | 1 |
Subgrupo (CD_SUBGRUPO) | 1 |
Seção (CD_SECAO) | 1 |
Tela (CD_TELA) | 1 |
Região Comercial (CD_REGIAOCOMERCIAL) | 1 |
| Faixa de Quantidade | 1 |
Estado (SG_ESTADO) | 1 |
Perfil (CD_PERFIL) | 1 |
Procedures impactadas
Scripts SQL — Referência direta ao campo CD_TIPOPESSOA em PARMTABPRECO
| Procedure/View | Arquivo | Evidência |
|---|---|---|
RETORNA_TABPRECO | Scripts/RETORNA_TABPRECO.sql | Parâmetro I_CD_TIPOPESSOA e filtro P.CD_TIPOPESSOA na consulta dinâmica |
GERA_COMISSAOTABPRECO | Scripts/GERA_COMISSAOTABPRECO.sql | Filtro CD_TIPOPESSOA is null para buscar tabela por pessoa do vendedor |
Candidatas por uso da tabela PARMTABPRECO
Estas procedures/views referenciam a tabela PARMTABPRECO mas não citam CD_TIPOPESSOA literalmente. O impacto é indireto — caso a regra com CD_TIPOPESSOA definido seja a única aplicável, elas serão afetadas via resultado de RETORNA_TABPRECO.
| Procedure/View | Arquivo |
|---|---|
ATUALIZA_PESSOA | Scripts/ATUALIZA_PESSOA.sql |
ATUALIZA_PRECOVENDA | Scripts/ATUALIZA_PRECOVENDA.sql |
CALCULA_MAQUINA | Scripts/CALCULA_MAQUINA.sql |
CALCULA_MAQUINAFICHA | Scripts/CALCULA_MAQUINAFICHA.sql |
RETORNA_PRECOITEM | Scripts/RETORNA_PRECOITEM.sql |
VIEW_TFA006 | Scripts/VIEW_TFA006.sql |