ST_ALTERAVLTFA006 - Atualizar Preço Promocional Vigente (TFA006)
Tela de configuração: MFA001 - Parâmetros de Faturamento Localização: Parâmetros Comum a Notas Fiscais / Pedido → Opção 1 Tabela:
PARMFATUR.ST_ALTERAVLTFA006Valor padrão:S(Sim)
Telas impactadas
| Tela | Descrição | Impacto |
|---|---|---|
| TFA006 | Tabela de Preço | Ao alterar o valor unitário de um item na tabela de preço, propaga o novo valor para os registros promocionais vigentes (ITEMTABPRECODATA) |
Campos envolvidos
| Campo | Tabela | Descrição |
|---|---|---|
VL_PRECO | ITEMTABPRECO | Valor unitário do item na tabela de preço |
VL_PRECO | ITEMTABPRECODATA | Valor promocional do item por período |
PC_DESCONTO | ITEMTABPRECODATA | Percentual de desconto promocional |
DT_FINAL | ITEMTABPRECODATA | Data final de vigência da promoção |
Opções disponíveis
S - Sim (atualização habilitada)
| O que faz | Detalhe |
|---|---|
| Permite propagar alteração de preço | Quando o valor unitário de um item é alterado na TFA006, os registros promocionais vigentes de ITEMTABPRECODATA são recalculados automaticamente |
| Aplica desconto promocional | O novo preço promocional = novo valor unitário − (novo valor unitário × percentual de desconto / 100) |
| Exige vigência ativa | Somente registros com DT_FINAL >= data atual são atualizados |
Simulação passo a passo
- Acesse a tela TFA006 - Tabela de Preço.
- Abra uma tabela de preço que contenha itens com promoções vigentes.
- Altere o valor unitário de um item (ex.: de R$ 10,00 para R$ 12,00).
- O sistema percorre todos os registros de
ITEMTABPRECODATAcomDT_FINAL >= hojepara esse item. - Para cada registro promocional vigente, recalcula:
VL_PRECO = novo valor − (novo valor × PC_DESCONTO / 100).- Exemplo: se
PC_DESCONTO= 10%, o novo preço promocional será R$ 12,00 − R$ 1,20 = R$ 10,80.
- Exemplo: se
- Salve a alteração.
- A trigger
ITEMTABPRECO_AU0também executa a mesma lógica no banco, atualizando os registros deITEMTABPRECODATAque possuem desconto e vigência ativa.
Resultado esperado: Os preços promocionais vigentes do item são recalculados automaticamente com base no novo valor unitário e no percentual de desconto de cada promoção.
N - Não (atualização desabilitada)
| O que faz | Detalhe |
|---|---|
| Bloqueia propagação | Alterações no valor unitário do item na TFA006 não afetam os registros promocionais vigentes |
| Promoções mantidas | Os valores em ITEMTABPRECODATA permanecem inalterados, preservando o preço promocional cadastrado manualmente |
Simulação passo a passo
- Acesse a tela TFA006 - Tabela de Preço.
- Altere o valor unitário de um item (ex.: de R$ 10,00 para R$ 12,00).
- Salve a alteração.
- Os registros promocionais vigentes (
ITEMTABPRECODATA) não são alterados — o preço promocional permanece o que foi cadastrado manualmente.
Resultado esperado: Os preços promocionais vigentes permanecem inalterados, independentemente da mudança no valor unitário da tabela de preço.
Exceção / Importante: A trigger
ITEMTABPRECO_AU0também verifica esse parâmetro. QuandoST_ALTERAVLTFA006 = 'N', a trigger pula completamente o bloco de atualização deITEMTABPRECODATA, mas ainda executa a atualização deDT_REGISTROno cadastro do item (ITEM).
Regra geral
O parâmetro controla se a alteração do valor unitário de um item na tabela de preço (TFA006) deve ou não recalcular automaticamente os preços promocionais vigentes. O cálculo aplica o percentual de desconto (PC_DESCONTO) sobre o novo valor unitário, atualizando o campo VL_PRECO de ITEMTABPRECODATA.
Procedures impactadas
Rotinas Delphi com referência direta
| Rotina | Arquivo | Linha | Evidência |
|---|---|---|---|
TdmMFA001.tabPARMFATURAfterInsert | source/MFA001/UdmMFA001.pas | 575 | Inicializa campo com 'S' |
TdmTFA006.tabITEMTABPRECOVL_PRECOValidate | source/TFA006/UdmTFA006.pas | 1253 | Verifica ST_ALTERAVLTFA006 = 'S' para propagar preço |
Referências SQL diretas ao campo
| Procedure/Trigger | Arquivo | Linha | Evidência |
|---|---|---|---|
ITEMTABPRECO_AU0 | Scripts/ITEMTABPRECO_AU0.sql | 15, 25–73 | Declara variável, lê de PARMFATUR e condicionalmente atualiza ITEMTABPRECODATA |
Candidatas por uso da tabela
As procedures abaixo referenciam a tabela PARMFATUR mas não citam o campo ST_ALTERAVLTFA006 diretamente — sem impacto funcional direto comprovado:
ATUALIZA_PESSOA, ATUALIZA_PRECOVENDA, BUSCAPRECORECAP, CALCULA_CENTRORESULT, CALCULA_CENTRORESULTITEM, CALCULA_COMISSAO, CALCULA_COMISSAO_V2, CALCULA_JUROVENDA, CALCULA_MAQUINA, CALCULA_MAQUINAFICHA, CANCELA_MESTRA, CANCELA_NOTAFISCAL, CONFIRMA_ORDEMSERVICO, CONFIRMA_ORDEMSERVICOMETAL, CONSOME_LOTEMATERIAPRIMA, CREDITOPERIODICO_AI0, CREDITOPERIODICOGRUPO_AI0, EXPORTACAO_ALLABOR, EXPORTACAO_DOMINIOCADASTROS, EXPORTACAO_DOMINIOCUPOM