Pular para o conteúdo principal

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_TIPOPESSOA Tipo: 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​

TelaComo impacta
MFA006Tela de configuração — onde o parâmetro é cadastrado

Campos envolvidos​

CampoTabelaDescrição
CD_TIPOPESSOAPARMTABPRECOCódigo do tipo de pessoa ao qual a regra se aplica
CD_TIPOPESSOATIPOPESSOATabela de domínio — classifica cadastros como Cliente, Fornecedor, Transportador, etc.
DS_TIPOPESSOATIPOPESSOADescriçã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 fazDetalhe
EditávelSim — limpe o campo ou deixe sem preenchimento
ExigeNenhum campo obrigatório adicional
RestriçãoNenhuma — aplica-se a todos os tipos de pessoa

Simulação passo a passo​

  1. Acesse a tela MFA006 — Parâmetros de Tabela de Preço.
  2. Crie ou edite um registro de parâmetro de tabela de preço.
  3. Preencha os demais campos desejados (empresa, tabela de preço, etc.).
  4. Não preencha o campo Tipo de Pessoa (CD_TIPOPESSOA).
  5. 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 fazDetalhe
EditávelSim — preencha diretamente ou use <F9> para pesquisar
ExigeCódigo válido existente na tabela TIPOPESSOA
RestriçãoA regra só se aplica a pessoas classificadas com o tipo informado

Simulação passo a passo​

  1. Acesse a tela MFA006 — Parâmetros de Tabela de Preço.
  2. Crie ou edite um registro de parâmetro de tabela de preço.
  3. No campo Tipo de Pessoa, pressione <F9> para abrir a pesquisa.
  4. Selecione o tipo desejado (ex: "Cliente" — código 1).
  5. O campo será preenchido com o código selecionado e a descrição será exibida ao lado.
  6. Preencha os demais campos desejados (empresa, tabela de preço, etc.).
  7. 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 campo CD_TIPOPESSOA tem 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 sem CD_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_TIPOPESSOA for NULL na regra: a regra aceita qualquer tipo de pessoa (condição COALESCE(P.CD_TIPOPESSOA, -1) = -1 é verdadeira e ignora o filtro).
  • Se CD_TIPOPESSOA tiver 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érioPeso
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 Quantidade1
Estado (SG_ESTADO)1
Perfil (CD_PERFIL)1

Procedures impactadas​

Scripts SQL — Referência direta ao campo CD_TIPOPESSOA em PARMTABPRECO​

Procedure/ViewArquivoEvidência
RETORNA_TABPRECOScripts/RETORNA_TABPRECO.sqlParâmetro I_CD_TIPOPESSOA e filtro P.CD_TIPOPESSOA na consulta dinâmica
GERA_COMISSAOTABPRECOScripts/GERA_COMISSAOTABPRECO.sqlFiltro 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/ViewArquivo
ATUALIZA_PESSOAScripts/ATUALIZA_PESSOA.sql
ATUALIZA_PRECOVENDAScripts/ATUALIZA_PRECOVENDA.sql
CALCULA_MAQUINAScripts/CALCULA_MAQUINA.sql
CALCULA_MAQUINAFICHAScripts/CALCULA_MAQUINAFICHA.sql
RETORNA_PRECOITEMScripts/RETORNA_PRECOITEM.sql
VIEW_TFA006Scripts/VIEW_TFA006.sql