VL_FRETEISENTO - Valor de Isenção de Frete por Pedido
Tela de configuração: MFA001 - Parâmetros de Faturamento
Localização: Aba Pedidos / O.S. → seção "Frete por Pedido"
Tabela:PARMFATUR.VL_FRETEISENTO
Tipo:NUMERIC(15,2)— campo editável, valor monetário
Valor padrão: Nenhum (campo vazio)
Telas impactadas
| Tela | Rotina | Efeito |
|---|---|---|
| MNF002 (Notas Fiscais) | CalculaFreteAutomatico | Define se a nota terá frete cobrado automaticamente conforme valor mínimo de isenção |
| MPD002 (Pedidos de Venda) | btnSalvarClick | Ao salvar o pedido, calcula frete automático usando o mesmo critério de isenção |
| TFA001 (Frente de Caixa) | iniciar / ValidaCNPJCPF / VerificaEnderecos | Carrega e exibe campo VL_FRETEISENTO da pessoa; libera edição via autorizador |
Campos envolvidos
| Campo | Tabela | Descrição |
|---|---|---|
VL_FRETEISENTO | PARMFATUR | Valor mínimo de isenção de frete (parâmetro global da empresa) |
VL_FRETEISENTO | PESSOA | Valor mínimo de isenção de frete (sobrescreve o parâmetro por pessoa) |
Parâmetros relacionados
| Parâmetro | Tela | Descrição |
|---|---|---|
ST_COBRANCAAUTOFRETE | MFA001 — aba Pedidos / O.S. | Habilita/desabilita a cobrança automática de frete (S = Sim, N = Não) |
TP_VALORFRETE | MFA001 — aba Pedidos / O.S. | Tipo do valor do frete: P = Percentual s/ Faturamento, V = Valor Fixo |
VL_FRETE | MFA001 — aba Pedidos / O.S. | Valor ou percentual do frete a ser cobrado |
Opções disponíveis
Este é um campo numérico (valor monetário), não possui opções de lista. O comportamento depende do valor informado:
| O que faz | Detalhe |
|---|---|
| Vazio/não preenchido | Se não houver valor na pessoa (PESSOA.VL_FRETEISENTO), todos os pedidos/notas terão frete cobrado automaticamente (quando ST_COBRANCAAUTOFRETE = S) |
| Valor preenchido (ex: R$ 100,00) | Pedidos/notas cujo valor líquido (sem frete e sem IPI) for menor ou igual a esse valor terão frete cobrado; acima desse valor, o frete é isentado (zerado) |
| Sobrescrita por pessoa | Se PESSOA.VL_FRETEISENTO estiver preenchido, esse valor individual tem precedência sobre o parâmetro global |
Atenção: O campo serve como valor de isenção — ou seja, é o valor mínimo do pedido para que o cliente não pague frete. Abaixo desse valor, o frete é cobrado.
Lógica de cálculo
1. Verifica se ST_COBRANCAAUTOFRETE = 'S'
2. Busca VL_FRETEISENTO (primeiro da PESSOA, depois do PARMFATUR)
3. Se vazio → vlIsentoFrete = -1 (sempre cobra frete)
4. Compara vlIsentoFrete com vlLiqSemFrete (total líquido sem frete e IPI)
5. Se vlIsentoFrete = -1 OU vlIsentoFrete > vlLiqSemFrete → COBRA frete
6. Se vlIsentoFrete <= vlLiqSemFrete → ISENTA frete (zera)
Simulação passo a passo — Cenário 1: Frete isento (valor alto)
- Acesse MFA001 → aba Pedidos / O.S..
- Configure
ST_COBRANCAAUTOFRETEcomo Sim. - Informe
VL_FRETEISENTOcom R$ 100,00. - Informe
VL_FRETEcom R$ 15,00 eTP_VALORFRETEcomo Valor Fixo. - Salve os parâmetros.
- Abra um pedido de venda (MPD002) para um cliente qualquer.
- Adicione itens totalizando R$ 200,00 (líquido sem frete e IPI).
- Salve o pedido.
Resultado esperado: O frete será zerado (isento), pois R$ 200,00 é maior que R$ 100,00 (valor de isenção).
Simulação passo a passo — Cenário 2: Frete cobrado (valor baixo)
- Mantenha a mesma configuração acima (
VL_FRETEISENTO= R$ 100,00,VL_FRETE= R$ 15,00). - Abra um pedido de venda (MPD002).
- Adicione itens totalizando R$ 80,00 (líquido sem frete e IPI).
- Salve o pedido.
Resultado esperado: O frete de R$ 15,00 será cobrado automaticamente, pois R$ 80,00 é menor que R$ 100,00 (valor de isenção).
Simulação passo a passo — Cenário 3: Isenção por pessoa (sobrescrita)
- Na tela TFA001 (Frente de Caixa / Cadastro de Pessoas), abra o cadastro de um cliente específico.
- Informe no campo
VL_FRETEISENTOda pessoa o valor R$ 50,00 (diferente do parâmetro global). - Salve o cadastro da pessoa.
- Abra uma nota fiscal (MNF002) para esse cliente.
- Adicione itens totalizando R$ 60,00.
- Confirme a nota.
Resultado esperado: O frete será zerado (isento), pois R$ 60,00 é maior que R$ 50,00 (valor de isenção da pessoa, que sobrescreve o parâmetro global). O valor de R$ 100,00 do PARMFATUR será ignorado para este cliente.
Exceção / Importante:
- O cálculo automático de frete só ocorre quando
ST_COBRANCAAUTOFRETE=S(configurado em MFA001, aba Pedidos / O.S.).- Na tela de notas fiscais (MNF002), a cobrança automática só se aplica quando o documento vem de um pedido (
iPedido = 'S').- Se tanto
PESSOA.VL_FRETEISENTOquantoPARMFATUR.VL_FRETEISENTOestiverem vazios, o sistema assumevlIsentoFrete = -1, o que significa que o frete sempre será cobrado para todos os clientes.
Tabela Comparativa Resumida
| Situação | PESSOA.VL_FRETEISENTO | PARMFATUR.VL_FRETEISENTO | Resultado |
|---|---|---|---|
| Valores preenchidos | R$ 50,00 | R$ 100,00 | Usa R$ 50,00 da pessoa (precedência) |
| Só parâmetro global | vazio | R$ 100,00 | Usa R$ 100,00 do parâmetro |
| Só pessoa | R$ 50,00 | vazio | Usa R$ 50,00 da pessoa |
| Ambos vazios | vazio | vazio | vlIsentoFrete = -1 → sempre cobra frete |
Procedures impactadas
Rotinas Delphi com referência direta ao campo
| Rotina | Arquivo | Descrição |
|---|---|---|
TdmMNF002.CalculaFreteAutomatico | source/MNF002/UdmMNF002.pas | Calcula frete automático na nota fiscal; usa VL_FRETEISENTO para decidir se cobra ou isenta |
TdmMNF002.tabNOTACD_PESSOAValidate | source/MNF002/UdmMNF002.pas | Ao selecionar pessoa na nota, carrega VL_FRETEISENTO da pessoa |
TdmMNF002.BuscaParametros_MNF002 | source/MNF002/UdmMNF002.pas | Carrega parâmetros de faturamento incluindo VL_FRETEISENTO |
TfrmMPD002.btnSalvarClick | source/MPD002/UMPD002.pas | Ao salvar pedido, calcula frete automático usando VL_FRETEISENTO |
TdmMPD002.tabPEDIDOCD_PESSOAValidate | source/MPD002/UdmMPD002.pas | Ao selecionar pessoa no pedido, carrega VL_FRETEISENTO da pessoa |
TdmMPD002.BuscaParametros_MPD002 | source/MPD002/UdmMPD002.pas | Carrega parâmetros de faturamento incluindo VL_FRETEISENTO |
TfrmTFA001.iniciar | source/TFA001/UTFA001.pas | Oculta label VL_FRETEISENTO na inicialização da tela |
ValidaCNPJCPF | source/TFA001/UdmTFA001.pas | Carrega VL_FRETEISENTO da pessoa durante validação de CPF/CNPJ |
TdmTFA001.bloqueiaCamposAutorizador | source/TFA001/UdmTFA001.pas | Libera campo VL_FRETEISENTO para edição quando usuário tem autorização |
TdmTFA001.VerificaEnderecos | source/TFA001/UdmTFA001.pas | Carrega VL_FRETEISENTO da pessoa ao verificar endereços |
Scripts SQL
Não foi encontrada referência direta ao campo VL_FRETEISENTO em scripts SQL (Scripts/). As procedures listadas na seção de candidatas por uso da tabela acessam PARMFATUR mas não referenciam este campo especificamente.