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_CONDPAGTOTipo: INTEGER (opcional) Valor padrão: Vazio (nulo — aceita qualquer condição de pagamento) Chave estrangeira:CONDPAGTO (CD_CONDPAGTO)viaRPARMTABPRECO_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 tela | DataField | DataSource | Descrição |
|---|---|---|---|
edtCD_CONDPAGTO | CD_CONDPAGTO | dmMFA006.dsPARMTABPRECO | Có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ério | Peso |
|---|---|
CD_ITEM (produto) | 20 |
CD_PESSOA (pessoa/cliente) | 10 |
CD_CONDPAGTO | 1 |
CD_TIPOPESSOA | 1 |
CD_CONDFISCAL | 1 |
CD_VENDEDOR | 1 |
CD_GRUPO / CD_SUBGRUPO / CD_SECAO | 1 |
CD_REGIAOCOMERCIAL | 1 |
SG_ESTADO | 1 |
QT_MINIMA / QT_MAXIMA | 1 |
CD_TELA / CD_PERFIL | 1 |
Uma regra com CD_CONDPAGTO preenchido tem peso 1 a mais que uma regra sem esse filtro, tudo o mais sendo igual.
Telas impactadas
| Tela | Impacto |
|---|---|
| MFA006 | Tela 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 faz | Detalhe |
|---|---|
| Comportamento | Aceita qualquer condição de pagamento do pedido |
| Editável | Sim |
| Exige | Nenhuma condição específica |
| Restrição | Nenhuma |
Simulação passo a passo
- Acesse a tela MFA006 (Parâmetros de Tabela de Preço).
- Cadastre uma nova regra ou edite uma existente.
- No campo Condição de Pagamento, não informe nenhum valor (deixe vazio).
- Preencha os demais campos da regra conforme necessário (empresa, tabela de preço, item, etc.).
- Salve o registro.
- 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_CONDPAGTOvazio 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 faz | Detalhe |
|---|---|
| Comportamento | Restringe a regra à condição de pagamento informada |
| Editável | Sim |
| Exige | Código válido existente na tabela CONDPAGTO |
| Restrição | FK para CONDPAGTO |
Simulação passo a passo
- Acesse a tela MFA006 (Parâmetros de Tabela de Preço).
- Cadastre uma nova regra ou edite uma existente.
- No campo Condição de Pagamento, pressione
<F9>para abrir a pesquisa de condições de pagamento. - Selecione a condição desejada (ex.: código 1 — "À Vista").
- Preencha os demais campos da regra conforme necessário.
- Salve o registro.
- Ao gerar um pedido com a condição de pagamento 1 (À Vista), esta regra será considerada.
- 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 faz | Detalhe |
|---|---|
| Comportamento | Permite digitar diretamente o código da condição de pagamento |
| Editável | Sim |
| Exige | Código válido na tabela CONDPAGTO |
| Restrição | Se o código não existir, o sistema não aceitará o registro (validação de FK) |
Simulação passo a passo
- Acesse a tela MFA006 (Parâmetros de Tabela de Preço).
- Cadastre ou edite uma regra.
- No campo Condição de Pagamento, digite diretamente o código desejado (ex.: 5).
- Pressione
<Tab>para sair do campo. - O sistema preencherá automaticamente a descrição da condição de pagamento ao lado.
- 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).
| Rotina | Arquivo | Evidência |
|---|---|---|
edtCD_CONDPAGTOKeyDown | source/MFA006/UMFA006.pas:417 | Abre pesquisa de CONDPAGTO ao pressionar <F9> e atribui Resultado[1] ao campo |
edtCD_CONDPAGTOExit | source/MFA006/UMFA006.dfm:490 | Evento OnExit do componente (validação ao sair do campo) |
Referências SQL diretas ao campo
| Procedure/View | Arquivo | Evidência |
|---|---|---|
RETORNA_TABPRECO | Scripts/RETORNA_TABPRECO.sql:90 | Filtra P.CD_CONDPAGTO com lógica COALESCE — se nulo aceita qualquer valor, se preenchido exige correspondência |
RETORNA_PRECOITEM | Scripts/RETORNA_PRECOITEM.sql:107 | Consulta 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/View | Arquivo | Evidência |
|---|---|---|
ATUALIZA_PESSOA | Scripts/ATUALIZA_PESSOA.sql:302 | update PARMTABPRECO P |
ATUALIZA_PRECOVENDA | Scripts/ATUALIZA_PRECOVENDA.sql:79 | FROM PARMTABPRECO PP |
INSERE_ITEMPEDIDO_SERVCANALETA | Scripts/INSERE_ITEMPEDIDO_SERVCANALETA.sql:58 | FROM PARMTABPRECO P |
TRGAD_PARMTABPRECO | Scripts/TRGAD_PARMTABPRECO.sql:5 | Trigger FOR PARMTABPRECO |
VERIFICA_BLOQUEIO | Scripts/VERIFICA_BLOQUEIO.sql:1115 | FROM PARMTABPRECO P |
VIEW_TFA006 | Scripts/VIEW_TFA006.sql:84 | INNER JOIN PARMTABPRECO PT |
Tabela Comparativa Resumida
| Aspecto | Vazio (nulo) | Preenchido |
|---|---|---|
| Aceita qualquer condição de pagamento? | Sim | Não — só a informada |
| Prioridade no desempate | Peso 0 | Peso 1 |
Exige código válido em CONDPAGTO? | Não | Sim (FK) |
| Caso de uso típico | Regra geral, aplicável a todos os pedidos | Regra 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_TABPRECOavalia todas as regras compatíveis e retorna a mais específica (maior soma de pesos). Uma regra comCD_CONDPAGTO+CD_ITEMpreenchidos (peso 1 + 20 = 21) vence uma regra com apenasCD_CONDPAGTO(peso 1), se os demais critérios forem iguais.