Pular para o conteúdo principal

CD_CONDPAGTO — Condição de Pagamento (Parâmetro de Tabela de Preço)

Tela de configuração: MFA006 — Parâmetros de Tabela de Preço Tabela: PARMTABPRECO.CD_CONDPAGTO Tipo: INTEGER (opcional) Valor padrão: Vazio (nulo — aceita qualquer condição de pagamento) Chave estrangeira: CONDPAGTO (CD_CONDPAGTO) via RPARMTABPRECO_CONDPAGTO


O que este parâmetro faz​

Define, dentro de uma regra de tabela de preço cadastrada na tela MFA006, qual condição de pagamento deve estar presente no pedido/venda para que a regra se aplique. Funciona como um filtro opcional: quando preenchido, a tabela de preço só será aplicada se a condição de pagamento do documento coincidir; quando vazio, qualquer condição de pagamento é aceita.

A busca de tabela de preço ocorre na rotina RETORNA_TABPRECO (Scripts/RETORNA_TABPRECO.sql), que avalia todos os campos da PARMTABPRECO e retorna a tabela mais específica que atende aos critérios informados (empresa, pessoa, item, condição de pagamento, tipo de pessoa, estado, quantidade, etc.).


Campos envolvidos​

Campo na telaDataFieldDataSourceDescrição
edtCD_CONDPAGTOCD_CONDPAGTOdmMFA006.dsPARMTABPRECOCódigo da condição de pagamento
edtDS_CONDPAGTO(lookup)—Descrição da condição (campo auxiliar, somente leitura)

Regra de negócio​

Quando o campo está vazio (nulo)​

A regra de tabela de preço se aplica independentemente da condição de pagamento do pedido. Qualquer condição é aceita.

Quando o campo está preenchido​

A regra só se aplica se o pedido/venda possuir exatamente a condição de pagamento informada. Se o pedido tiver outra condição, esta regra é ignorada.

Prioridade na busca de tabela​

Na procedure RETORNA_TABPRECO, os critérios possuem pesos para desempate (quanto maior o peso, mais específica a regra):

CritérioPeso
CD_ITEM (produto)20
CD_PESSOA (pessoa/cliente)10
CD_CONDPAGTO1
CD_TIPOPESSOA1
CD_CONDFISCAL1
CD_VENDEDOR1
CD_GRUPO / CD_SUBGRUPO / CD_SECAO1
CD_REGIAOCOMERCIAL1
SG_ESTADO1
QT_MINIMA / QT_MAXIMA1
CD_TELA / CD_PERFIL1

Uma regra com CD_CONDPAGTO preenchido tem peso 1 a mais que uma regra sem esse filtro, tudo o mais sendo igual.


Telas impactadas​

TelaImpacto
MFA006Tela de cadastro/manutenção das regras em PARMTABPRECO

Opções disponíveis​

O campo não possui valores fixos enumerados. Aceita qualquer código válido de CONDPAGTO ou vazio (nulo).

Vazio — Sem restrição de condição de pagamento​

O que fazDetalhe
ComportamentoAceita qualquer condição de pagamento do pedido
EditávelSim
ExigeNenhuma condição específica
RestriçãoNenhuma

Simulação passo a passo​

  1. Acesse a tela MFA006 (Parâmetros de Tabela de Preço).
  2. Cadastre uma nova regra ou edite uma existente.
  3. No campo Condição de Pagamento, não informe nenhum valor (deixe vazio).
  4. Preencha os demais campos da regra conforme necessário (empresa, tabela de preço, item, etc.).
  5. Salve o registro.
  6. Ao gerar um pedido com qualquer condição de pagamento (ex.: à vista, 30/60/90 dias), esta regra será considerada na busca de tabela de preço.

Resultado esperado: A tabela de preço associada será aplicada independentemente da condição de pagamento do pedido.

Importante: Regras com CD_CONDPAGTO vazio servem como "coringa" e têm prioridade inferior a regras que tenham o campo preenchido (tudo o mais sendo igual).


Preenchido — Restrição a uma condição de pagamento específica​

O que fazDetalhe
ComportamentoRestringe a regra à condição de pagamento informada
EditávelSim
ExigeCódigo válido existente na tabela CONDPAGTO
RestriçãoFK para CONDPAGTO

Simulação passo a passo​

  1. Acesse a tela MFA006 (Parâmetros de Tabela de Preço).
  2. Cadastre uma nova regra ou edite uma existente.
  3. No campo Condição de Pagamento, pressione <F9> para abrir a pesquisa de condições de pagamento.
  4. Selecione a condição desejada (ex.: código 1 — "À Vista").
  5. Preencha os demais campos da regra conforme necessário.
  6. Salve o registro.
  7. Ao gerar um pedido com a condição de pagamento 1 (À Vista), esta regra será considerada.
  8. Ao gerar um pedido com outra condição (ex.: código 2 — "30/60/90 dias"), esta regra não será aplicada.

Resultado esperado: A tabela de preço associada será aplicada apenas a pedidos com a condição de pagamento selecionada.


Entrada manual do código​

O que fazDetalhe
ComportamentoPermite digitar diretamente o código da condição de pagamento
EditávelSim
ExigeCódigo válido na tabela CONDPAGTO
RestriçãoSe o código não existir, o sistema não aceitará o registro (validação de FK)

Simulação passo a passo​

  1. Acesse a tela MFA006 (Parâmetros de Tabela de Preço).
  2. Cadastre ou edite uma regra.
  3. No campo Condição de Pagamento, digite diretamente o código desejado (ex.: 5).
  4. Pressione <Tab> para sair do campo.
  5. O sistema preencherá automaticamente a descrição da condição de pagamento ao lado.
  6. Salve o registro.

Resultado esperado: Se o código 5 existir na tabela CONDPAGTO, a regra será gravada com essa restrição. Se não existir, o sistema apresentará erro de validação.


Procedures impactadas​

Rotinas Delphi com referência direta ao campo​

Não foram encontradas rotinas Delphi na tela MFA006 que façam referência direta ao campo CD_CONDPAGTO além da atribuição de valor padrão via pesquisa (edtCD_CONDPAGTOKeyDown no UMFA006.pas).

RotinaArquivoEvidência
edtCD_CONDPAGTOKeyDownsource/MFA006/UMFA006.pas:417Abre pesquisa de CONDPAGTO ao pressionar <F9> e atribui Resultado[1] ao campo
edtCD_CONDPAGTOExitsource/MFA006/UMFA006.dfm:490Evento OnExit do componente (validação ao sair do campo)

Referências SQL diretas ao campo​

Procedure/ViewArquivoEvidência
RETORNA_TABPRECOScripts/RETORNA_TABPRECO.sql:90Filtra P.CD_CONDPAGTO com lógica COALESCE — se nulo aceita qualquer valor, se preenchido exige correspondência
RETORNA_PRECOITEMScripts/RETORNA_PRECOITEM.sql:107Consulta PARMTABPRECO filtrando por CD_CONDPAGTO para decidir se calcula juros

Candidatas por uso da tabela (sem referência direta ao campo)​

Estas procedures/views usam a tabela PARMTABPRECO, mas não citam o campo CD_CONDPAGTO diretamente no trecho analisado. Podem ser impactadas indiretamente (ex.: ao alterar uma regra que contenha o campo).

Procedure/ViewArquivoEvidência
ATUALIZA_PESSOAScripts/ATUALIZA_PESSOA.sql:302update PARMTABPRECO P
ATUALIZA_PRECOVENDAScripts/ATUALIZA_PRECOVENDA.sql:79FROM PARMTABPRECO PP
INSERE_ITEMPEDIDO_SERVCANALETAScripts/INSERE_ITEMPEDIDO_SERVCANALETA.sql:58FROM PARMTABPRECO P
TRGAD_PARMTABPRECOScripts/TRGAD_PARMTABPRECO.sql:5Trigger FOR PARMTABPRECO
VERIFICA_BLOQUEIOScripts/VERIFICA_BLOQUEIO.sql:1115FROM PARMTABPRECO P
VIEW_TFA006Scripts/VIEW_TFA006.sql:84INNER JOIN PARMTABPRECO PT

Tabela Comparativa Resumida​

AspectoVazio (nulo)Preenchido
Aceita qualquer condição de pagamento?SimNão — só a informada
Prioridade no desempatePeso 0Peso 1
Exige código válido em CONDPAGTO?NãoSim (FK)
Caso de uso típicoRegra geral, aplicável a todos os pedidosRegra específica para uma forma de pagamento (ex.: à vista, cartão, boleto)

Observações​

  • O campo faz parte de um conjunto de filtros opcionais da PARMTABPRECO. Quando todos os filtros estiverem vazios, a regra se aplica a qualquer combinação de empresa, pessoa, item, condição de pagamento, etc.
  • A procedure RETORNA_TABPRECO avalia todas as regras compatíveis e retorna a mais específica (maior soma de pesos). Uma regra com CD_CONDPAGTO + CD_ITEM preenchidos (peso 1 + 20 = 21) vence uma regra com apenas CD_CONDPAGTO (peso 1), se os demais critérios forem iguais.