Pular para o conteúdo principal

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​

TelaNomeImpacto
MOF001Cadastro/Atendimento de Ordem de ServiçoCalcula KM final de garantia; valida se garantia por KM está válida ou vencida
LOF000Layout de impressão da OSExibe KM_GARANTIA = NR_KILOMETRAGEM da OS + NR_QUILOMETRAGEM do parâmetro

Campos envolvidos​

CampoTabelaTipoDescrição
NR_QUILOMETRAGEMPARMOFICINANUMERIC(15,2)Quilometragem adicional configurada como parâmetro da oficina
NR_KILOMETRAGEMORDEMSERVICOintegerQuilometragem atual do veículo registrada na OS
DS_GARANTIAKMORDEMSERVICOstringStatus da garantia por KM: "Válida" ou "Vencida"

Procedures impactadas​

Rotinas Delphi com referência direta ao campo​

RotinaArquivoLinhaUso
ExecLayoutsource/LOF000/ULOF000.pas203Calcula KM_GARANTIA no layout: OS.NR_KILOMETRAGEM + COALESCE(POF.NR_QUILOMETRAGEM, 0)
iniciarsource/MOF001/UMOF001.pas727Define dmMOF001.flagGarantiaKm := True quando NR_QUILOMETRAGEM <> vazio
ValidaGarantiasource/MOF001/UdmMOF001.pas6326, 6364Calcula 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_MNF017
  • PARCELA_FINANCIAMENTO
  • REABRE_OS
  • RETORNA_MOTIVOBLOQUEIO
  • RETORNA_PRECOITEM
  • VERIFICA_BLOQUEIO
  • VIEW_DOCUMENTOSBLOQUEADOS
  • VIEW_ROF004
  • VIEW_ROF004B
  • VIEW_ROF004B_V2
  • VIEW_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 fazDetalhe
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​

  1. Acesse OFI001 — Parâmetros da Oficina.
  2. Selecione a aba Garantia.
  3. No campo KM p/cálc. Data Retorno Tele Vendas/Pós Vendas, digite um valor (ex.: 5000 para 5.000 km de tolerância).
  4. Clique em Salvar.
  5. Abra MOF001 — Ordem de Serviço e registre uma OS para um veículo com KM atual = 50.000.
  6. Finalize a OS (status F).
  7. Abra uma nova OS para o mesmo veículo com KM atual = 53.000.
  8. 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_QUILOMETRAGEM estiver vazio, flagGarantiaKm será False e o cálculo COALESCE(P.NR_QUILOMETRAGEM, 0) retornará zero — ou seja, KM_FINALGARANTIA será igual à KM da OS de referência.

Valor vazio — Garantia por KM desativada​

Simulação passo a passo​

  1. Acesse OFI001 — Parâmetros da Oficina.
  2. Selecione a aba Garantia.
  3. Deixe o campo KM p/cálc. Data Retorno Tele Vendas/Pós Vendas em branco.
  4. Clique em Salvar.
  5. Abra MOF001 — Ordem de Serviço e registre uma OS com KM = 50.000.
  6. Finalize a OS (status F).
  7. Abra uma nova OS para o mesmo veículo com KM = 53.000.
  8. 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árioCondiçãoStatus
Mesmo cliente da OS referênciaKM_atual >= KM_FINALGARANTIAVencida
Mesmo cliente da OS referênciaKM_atual < KM_FINALGARANTIAVálida
Cliente diferente (só placa bate)KM_atual > KM_FINALGARANTIAVencida
Cliente diferente (só placa bate)KM_atual <= KM_FINALGARANTIAVálida

Importante: Não há OS finalizada anterior para a placa → garantia por KM é considerada "Vencida".

Parâmetros relacionados​

ParâmetroTelaFunção
NR_DIASGARANTIAOFI001 — Aba GarantiaQuantidade de dias adicionais para garantia por data (funciona em paralelo com este parâmetro)
ST_OBRIGAKMOFI001 — Aba GarantiaExige preenchimento da quilometragem na OS
ST_OBRIGAORCAMENTOOSOFI001 — Aba GarantiaExige orçamento vinculado à OS

Tabela comparativa resumida​

CondiçãoflagGarantiaKmKM_GARANTIA (LOF000)Validação MOF001
NR_QUILOMETRAGEM = 5000TrueKM_OS + 5000Compara KM atual com KM final
NR_QUILOMETRAGEM = vazioFalseKM_OS + 0Sem tolerância adicional