NR_QUILOMETRAGEM - KM para cálculo Data Retorno Tele Vendas/Pós Vendas
Tela de configuração: OFI001 — Parâmetros da Oficina
Localização: Aba Garantia
Tabela:PARMOFICINA.NR_QUILOMETRAGEM
Tipo:NUMERIC(15,2)
Componente:DBEdit2(campo editável)
Label: KM p/cálc. Data Retorno Tele Vendas/Pós Vendas [MOF001]
O que faz
Define uma quilometragem adicional que será somada à quilometragem atual do veículo (NR_KILOMETRAGEM da OS) para calcular a KM final de garantia (KM_GARANTIA / KM_FINALGARANTIA). Quando preenchido, também ativa o flag de validação de garantia por quilometragem (flagGarantiaKm = True).
Telas impactadas
| Tela | Nome | Impacto |
|---|---|---|
MOF001 | Cadastro/Atendimento de Ordem de Serviço | Calcula KM final de garantia; valida se garantia por KM está válida ou vencida |
LOF000 | Layout de impressão da OS | Exibe KM_GARANTIA = NR_KILOMETRAGEM da OS + NR_QUILOMETRAGEM do parâmetro |
Campos envolvidos
| Campo | Tabela | Tipo | Descrição |
|---|---|---|---|
NR_QUILOMETRAGEM | PARMOFICINA | NUMERIC(15,2) | Quilometragem adicional configurada como parâmetro da oficina |
NR_KILOMETRAGEM | ORDEMSERVICO | integer | Quilometragem atual do veículo registrada na OS |
DS_GARANTIAKM | ORDEMSERVICO | string | Status da garantia por KM: "Válida" ou "Vencida" |
Procedures impactadas
Rotinas Delphi com referência direta ao campo
| Rotina | Arquivo | Linha | Uso |
|---|---|---|---|
ExecLayout | source/LOF000/ULOF000.pas | 203 | Calcula KM_GARANTIA no layout: OS.NR_KILOMETRAGEM + COALESCE(POF.NR_QUILOMETRAGEM, 0) |
iniciar | source/MOF001/UMOF001.pas | 727 | Define dmMOF001.flagGarantiaKm := True quando NR_QUILOMETRAGEM <> vazio |
ValidaGarantia | source/MOF001/UdmMOF001.pas | 6326, 6364 | Calcula KM_FINALGARANTIA e compara com KM atual — define DS_GARANTIAKM como "Válida" ou "Vencida" |
Referências SQL indiretas (candidatas por uso da tabela PARMOFICINA)
As procedures abaixo fazem JOIN com PARMOFICINA mas não citam NR_QUILOMETRAGEM diretamente. Sem impacto funcional direto identificado ao campo nesses pontos:
PARCELA_FINANC_MNF017PARCELA_FINANCIAMENTOREABRE_OSRETORNA_MOTIVOBLOQUEIORETORNA_PRECOITEMVERIFICA_BLOQUEIOVIEW_DOCUMENTOSBLOQUEADOSVIEW_ROF004VIEW_ROF004BVIEW_ROF004B_V2VIEW_ROF008
Opções disponíveis
Este campo é editável e numérico, sem opções discretas. A presença ou ausência de valor define o comportamento:
| O que faz | Detalhe |
|---|---|
Campo preenchido (NR_QUILOMETRAGEM > 0) | Ativa validação por KM (flagGarantiaKm = True) e soma ao calcular KM final de garantia |
Campo vazio (NR_QUILOMETRAGEM nulo/vazio) | flagGarantiaKm = False; o cálculo de KM_GARANTIA resulta apenas na KM atual da OS (COALESCE(..., 0) retorna zero) |
Valor preenchido — Garantia por KM ativada
Simulação passo a passo
- Acesse OFI001 — Parâmetros da Oficina.
- Selecione a aba Garantia.
- No campo KM p/cálc. Data Retorno Tele Vendas/Pós Vendas, digite um valor (ex.:
5000para 5.000 km de tolerância). - Clique em Salvar.
- Abra MOF001 — Ordem de Serviço e registre uma OS para um veículo com KM atual = 50.000.
- Finalize a OS (status
F). - Abra uma nova OS para o mesmo veículo com KM atual = 53.000.
- Observe o campo de status de garantia por quilometragem.
Resultado esperado: O sistema calcula KM_FINALGARANTIA = 50.000 + 5.000 = 55.000. Como 53.000 < 55.000, DS_GARANTIAKM exibe "Válida". Se a nova OS fosse registrada com KM = 56.000, DS_GARANTIAKM exibiria "Vencida".
No layout de impressão (LOF000), a variável KM_GARANTIA mostrará 55.000.
Exceção / Importante: Se
NR_QUILOMETRAGEMestiver vazio,flagGarantiaKmseráFalsee o cálculoCOALESCE(P.NR_QUILOMETRAGEM, 0)retornará zero — ou seja,KM_FINALGARANTIAserá igual à KM da OS de referência.
Valor vazio — Garantia por KM desativada
Simulação passo a passo
- Acesse OFI001 — Parâmetros da Oficina.
- Selecione a aba Garantia.
- Deixe o campo KM p/cálc. Data Retorno Tele Vendas/Pós Vendas em branco.
- Clique em Salvar.
- Abra MOF001 — Ordem de Serviço e registre uma OS com KM = 50.000.
- Finalize a OS (status
F). - Abra uma nova OS para o mesmo veículo com KM = 53.000.
- Observe o campo de status de garantia por quilometragem.
Resultado esperado: Como NR_QUILOMETRAGEM está vazio, flagGarantiaKm = False. O cálculo retorna KM_FINALGARANTIA = 50.000 + 0 = 50.000. Como 53.000 > 50.000, DS_GARANTIAKM exibirá "Vencida".
Regra de cálculo da garantia por KM
A rotina ValidaGarantia (UdmMOF001.pas) determina a KM final de garantia com a fórmula:
KM_FINALGARANTIA = NR_KILOMETRAGEM(OS_referência) + COALESCE(PARMOFICINA.NR_QUILOMETRAGEM, 0)
A OS de referência é a última OS finalizada (ST_ORDEMSERVICO = 'F') para o mesmo veículo (mesma NR_PLACA), ordenada por DT_EMISSAO DESC, NR_ORDEMSERVICO DESC.
A comparação depende do contexto:
| Cenário | Condição | Status |
|---|---|---|
| Mesmo cliente da OS referência | KM_atual >= KM_FINALGARANTIA | Vencida |
| Mesmo cliente da OS referência | KM_atual < KM_FINALGARANTIA | Válida |
| Cliente diferente (só placa bate) | KM_atual > KM_FINALGARANTIA | Vencida |
| Cliente diferente (só placa bate) | KM_atual <= KM_FINALGARANTIA | Válida |
Importante: Não há OS finalizada anterior para a placa → garantia por KM é considerada "Vencida".
Parâmetros relacionados
| Parâmetro | Tela | Função |
|---|---|---|
NR_DIASGARANTIA | OFI001 — Aba Garantia | Quantidade de dias adicionais para garantia por data (funciona em paralelo com este parâmetro) |
ST_OBRIGAKM | OFI001 — Aba Garantia | Exige preenchimento da quilometragem na OS |
ST_OBRIGAORCAMENTOOS | OFI001 — Aba Garantia | Exige orçamento vinculado à OS |
Tabela comparativa resumida
| Condição | flagGarantiaKm | KM_GARANTIA (LOF000) | Validação MOF001 |
|---|---|---|---|
NR_QUILOMETRAGEM = 5000 | True | KM_OS + 5000 | Compara KM atual com KM final |
NR_QUILOMETRAGEM = vazio | False | KM_OS + 0 | Sem tolerância adicional |