VL_FRETE - Frete por Pedido
Tela de configuração: MFA001 — Parâmetros de Faturamento Localização: Aba Pedidos / O.S. → sub-aba Opção 3 → grupo "Frete por Pedido" Tabela:
PARMFATUR.VL_FRETE·NUMERIC(15,2)Componente:edtVL_FRETE(TDBEdit) Valor padrão: Nenhum (campo nulo ao criar nova empresa)
Resumo
Define o valor padrão do frete que será automaticamente rateado entre os itens de pedidos de venda e notas fiscais, desde que a cobrança automática de frete esteja ativa. O valor pode ser fixo (R$) ou percentual (%) sobre o faturamento, conforme definido em TP_VALORFRETE.
Campos envolvidos
| Campo | Tabela | Tipo | Descrição |
|---|---|---|---|
VL_FRETE | PARMFATUR | NUMERIC(15,2) | Valor ou percentual do frete padrão da empresa |
TP_VALORFRETE | PARMFATUR | CHAR(1) | Define se VL_FRETE é valor fixo (V) ou percentual (P) |
ST_COBRANCAAUTOFRETE | PARMFATUR | CHAR(1) | Ativa/desativa a cobrança automática de frete (S/N) |
VL_FRETEISENTO | PARMFATUR | NUMERIC(15,2) | Valor de isenção — pedidos abaixo deste valor pagam frete |
VL_FRETE | PESSOA | NUMERIC(15,2) | Sobrepõe o valor da empresa para um cliente específico |
TP_VALORFRETE | PESSOA | CHAR(1) | Sobrepõe o tipo de frete para um cliente específico |
VL_FRETEISENTO | PESSOA | NUMERIC(15,2) | Sobrepõe o valor de isenção para um cliente específico |
Telas impactadas
| Tela | Arquivo | Uso |
|---|---|---|
| MFA001 — Parâmetros de Faturamento | UMFA001.dfm / UdmMFA001.pas | Configuração do valor |
| MNF002 — Nota Fiscal de Saída | UdmMNF002.pas | Lê VL_FRETE e rateia automaticamente na nota |
| MPD002 — Pedido de Venda | UMPD002.pas / UdmMPD002.pas | Lê VL_FRETE e calcula frete no pedido |
| TFA001 — Terminal de Faturamento | UTFA001.pas | Verifica cobrança automática de frete |
Opções disponíveis
VL_FRETE é um campo numérico livre. Seu comportamento depende da combinação com os parâmetros da mesma seção:
| O que faz | Detalhe |
|---|---|
Cobrança Automática (ST_COBRANCAAUTOFRETE) | Deve ser S (Sim) para que o frete seja cobrado automaticamente. Se N, VL_FRETE é ignorado. |
Tipo Valor Frete (TP_VALORFRETE) | V = Valor fixo em R$. P = Percentual sobre o faturamento. Padrão: V. |
Valor Isenção (VL_FRETEISENTO) | Pedidos com valor líquido (sem frete) abaixo ou igual a este valor não geram frete. |
| Sobreposição por cliente | Se o cadastro da pessoa (PESSOA) tiver VL_FRETE preenchido, ele sobrepõe o da empresa. |
Cenário 1 — Valor Fixo (TP_VALORFRETE = V)
| O que faz | Detalhe |
|---|---|
VL_FRETE é editável | Sim, digite o valor em reais (ex: R$ 15,00) |
| Restrição de valor | Se TP_VALORFRETE = P, o valor não pode ultrapassar 100 (validação no BeforePost) |
Simulação passo a passo
- Acesse MFA001 — Parâmetros de Faturamento.
- Vá para a aba Pedidos / O.S., sub-aba Opção 3.
- No grupo Frete por Pedido, selecione Cobrança Automática = Sim.
- Selecione Tipo Valor Frete = Valor Fixo.
- No campo Valor, digite
15,00. - No campo Isento a partir de, digite
200,00(opcional). - Salve os parâmetros.
- Abra um novo pedido de venda (MPD002) ou nota fiscal (MNF002) para um cliente que não tenha frete configurado no próprio cadastro.
- Adicione itens totalizando R$ 250,00 (acima de R$ 200,00 da isenção).
- Confirme o pedido/nota.
Resultado esperado: O sistema rateia automaticamente R$ 15,00 de frete entre os itens do pedido/nota e exibe a mensagem informativa "I-1820" (pedido) ou "I-1821" (nota) com o valor do frete calculado.
Exceção / Importante: Se o cliente tiver
VL_FRETEpreenchido em seu cadastro (PESSOA), esse valor sobrepõe o parâmetro da empresa. A precedência é: cadastro do cliente → parâmetro da empresa.
Cenário 2 — Percentual sobre Faturamento (TP_VALORFRETE = P)
| O que faz | Detalhe |
|---|---|
VL_FRETE é editável | Sim, digite o percentual (ex: 5 para 5%) |
| Restrição | Valor não pode ser maior que 100 (validação W-1818 no BeforePost do MFA001) |
Simulação passo a passo
- Acesse MFA001 — Parâmetros de Faturamento.
- Vá para a aba Pedidos / O.S., sub-aba Opção 3.
- No grupo Frete por Pedido, selecione Cobrança Automática = Sim.
- Selecione Tipo Valor Frete = % s/ Faturamento.
- No campo Valor, digite
5,00(5%). - No campo Isento a partir de, digite
100,00(opcional). - Salve os parâmetros.
- Abra um novo pedido de venda (MPD002) para um cliente sem frete individual.
- Adicione itens totalizando R$ 500,00 líquidos (sem frete e sem IPI), acima de R$ 100,00 da isenção.
- Confirme o pedido.
Resultado esperado: O sistema calcula o frete como R$ 500,00 × 5% = R$ 25,00, rateia esse valor entre os itens e exibe a mensagem informativa com o valor R$ 25,00.
Exceção / Importante: Se tentar salvar
VL_FRETEcom valor acima de 100 quandoTP_VALORFRETE = P, o sistema bloqueia com o erro W-1818 e posiciona o foco no campo Valor.
Regra de Precedência Completa
A lógica de cobrança automática de frete segue esta ordem ao confirmar um pedido ou nota:
- Verifica se
ST_COBRANCAAUTOFRETE = S. SeN, não aplica frete automático. - Verifica isenção: busca
VL_FRETEISENTOdo cadastro do cliente; se vazio, usaVL_FRETEISENTOda empresa. - Se o valor líquido do pedido (sem frete e sem IPI) for maior que o valor de isenção, aplica frete. Caso contrário, o frete é zero.
- Busca
VL_FRETEeTP_VALORFRETEdo cadastro do cliente; se vazio, usa os da empresa (PARMFATUR). - Se
TP_VALORFRETE = P, calcula:frete = valor líquido × (VL_FRETE / 100). - Se
TP_VALORFRETE = V, usa diretamente o valor deVL_FRETE. - Rateia o frete entre os itens do pedido/nota.
Parâmetros Relacionados
| Parâmetro | Descrição | Configurado em |
|---|---|---|
ST_COBRANCAAUTOFRETE | Ativa/desativa cobrança automática de frete | MFA001 — aba Pedidos / O.S., sub-aba Opção 3 |
TP_VALORFRETE | Tipo do valor: V (fixo) ou P (percentual) | MFA001 — aba Pedidos / O.S., sub-aba Opção 3 |
VL_FRETEISENTO | Valor mínimo de isenção de frete | MFA001 — aba Pedidos / O.S., sub-aba Opção 3 |
Procedures impactadas
Rotinas Delphi com referência direta ao campo
| Rotina | Arquivo | Descrição |
|---|---|---|
TdmMFA001.tabPARMFATURBeforePost | source/MFA001/UdmMFA001.pas | Valida que VL_FRETE ≤ 100 quando TP_VALORFRETE = P (erro W-1818) |
TdmMFA001.tabPARMFATURNewRecord | source/MFA001/UdmMFA001.pas | Inicializa TP_VALORFRETE como V (Valor Fixo) |
TdmMNF002.<calculaFrete> | source/MNF002/UdmMNF002.pas | Lê VL_FRETE do parâmetro ou do cadastro do cliente para rateio automático na nota fiscal |
TfrmMPD002.<confirmaPedido> | source/MPD002/UMPD002.pas | Lê VL_FRETE para cálculo automático do frete no pedido de venda |
Referências SQL diretas ao campo
Não foi encontrada referência direta a PARMFATUR.VL_FRETE em Scripts/. As procedures que utilizam a tabela PARMFATUR (como CALCULA_FRETE, CALCULA_IMPOSTOPEDIDO, GERA_NOTAFISCAL, etc.) referenciam VL_FRETE de tabelas como ITEMPEDIDO, ITEMNOTA e NOTA (valores já calculados), e não o campo de parâmetro.
Candidatas por uso da tabela
Estas procedures utilizam PARMFATUR mas não referenciam VL_FRETE diretamente — o impacto indireto ocorre apenas se a rotina ler parâmetros de frete via lista ParmFatur em tempo de execução:
CALCULA_COMISSAO/CALCULA_COMISSAO_V2CALCULA_CENTRORESULT/CALCULA_CENTRORESULTITEMGERA_NOTAFISCAL/GERA_ESTOQUE_NOTAFISCALCANCELA_NOTAFISCALGERA_INTEGRACAO/GERA_INTEGRACAOFISCAL