Pular para o conteúdo principal

TP_PRECOSERVICO - Parâmetro de Preço de Serviço

Tela de configuração: OFI001 - Parâmetros de Oficina
Localização: Parâmetros → Aba Parâmetros
Tabela: PARMOFICINA.TP_PRECOSERVICO
Tipo: CHAR(1)
Valor padrão: T (Tabela de Preço)

Descrição Geral​

Define como o sistema determina o preço de serviços em Ordens de Serviço e Orçamentos. Controla se o preço é obtido de uma tabela de preço padrão ou por plataforma de veículo específica.

Telas impactadas​

TelaDescriçãoImpacto
MOF001Ordem de ServiçoDetermina fonte do preço de serviço ao adicionar itens
MOF005OrçamentoMesma lógica de precificação de serviços
MOF006Consulta de VeículosCarrega parâmetro para validações
MOF008Reprocessamento de Tabela de PreçoConsidera tipo de preço ao reprocessar
jPesquisa (ListaPeca)Pesquisa de ItensFiltra busca de serviços conforme tipo

Campos envolvidos​

TabelaCampoTipoDescrição
PARMOFICINATP_PRECOSERVICOCHAR(1)Tipo de precificação de serviço
SERVICOPLATAFORMA(tabela completa)-Preços por plataforma (usado quando = 'P')
TABPRECOITEM(tabela completa)-Tabela de preço padrão (usado quando = 'T')

Opções disponíveis​

T - Tabela de Preço​

Utiliza a tabela de preço padrão do sistema para definir o preço dos serviços.

O que fazDetalhe
EditávelPreço do serviço pode ser alterado se ST_ALTERAPRECO = 'S'
Fonte do preçoTabela de preço vinculada ao serviço (TABPRECOITEM)
BloqueioSe ST_ALTERAPRECO = 'N', o preço fica bloqueado

Simulação passo a passo​

  1. Acesse OFI001 → aba Parâmetros
  2. No campo "Preço do Serviço por", selecione "Tabela de Preço"
  3. Salve a configuração
  4. Acesse MOF001 (Ordem de Serviço) e abra uma OS
  5. Adicione um serviço ao item da OS
  6. O sistema buscará automaticamente o preço da tabela de preço vinculada ao serviço
  7. Se ST_ALTERAPRECO = 'N', o campo VL_SERVICO ficará bloqueado para edição

Resultado esperado: O preço do serviço é preenchido conforme a tabela de preço padrão do serviço cadastrado. Usuários sem permissão de alteração não conseguem modificar o valor.

Exceção / Importante: Quando ST_ALTERAPRECO = 'S' ou o usuário possui perfil de autorizador, o preço pode ser alterado manualmente mesmo com este parâmetro.


P - Plataforma de Veículo​

Utiliza preços específicos por plataforma de veículo, permitindo precificação diferenciada conforme o modelo/plataforma do veículo atendido.

O que fazDetalhe
EditávelPreço é buscado da tabela SERVICOPLATAFORMA
Fonte do preçoTabela SERVICOPLATAFORMA (preço por plataforma)
RestriçãoServiço deve ter preço cadastrado para a plataforma do veículo

Simulação passo a passo​

  1. Acesse OFI001 → aba Parâmetros
  2. No campo "Preço do Serviço por", selecione "Plataforma de Veículo"
  3. Salve a configuração
  4. Acesse MOF001 (Ordem de Serviço) e abra uma OS informando um veículo
  5. Adicione um serviço ao item da OS
  6. O sistema buscará o preço na tabela SERVICOPLATAFORMA usando a plataforma do veículo da OS
  7. O campo VL_SERVICO será preenchido com o valor da plataforma

Resultado esperado: O preço do serviço varia conforme a plataforma do veículo vinculado à OS. Se o serviço não possuir preço para aquela plataforma, o sistema pode solicitar cadastro ou bloquear a inclusão.

Exceção / Importante: A tabela SERVICOPLATAFORMA deve estar previamente cadastrada com os preços por plataforma. Em MOF005 (Orçamento), a lógica é a mesma: o preço é buscado por plataforma do veículo informado.

Regra Geral de Autorização​

O parâmetro TP_PRECOSERVICO interage com outros controles de permissão:

  • ST_ALTERAPRECO: Quando 'N' e TP_PRECOSERVICO = 'T', o preço fica totalmente bloqueado
  • ST_AUTORIZADOR: Quando 'N' e TP_PRECOSERVICO = 'T', reforça o bloqueio de preço
  • TP_PRECOSERVICO = 'P': Independente de ST_ALTERAPRECO, o preço vem da plataforma (mas pode ser editável conforme configuração)

Tabela Comparativa Resumida​

AspectoT (Tabela de Preço)P (Plataforma de Veículo)
Fonte do preçoTABPRECOITEMSERVICOPLATAFORMA
Varia por veículoNãoSim (por plataforma)
Exige cadastro prévioTabela de preço padrãoPreços por plataforma
Interação com ST_ALTERAPRECORespeita bloqueioMenos restritivo
Uso típicoOficinas com preço únicoOficinas multi-plataforma

Procedures impactadas​

Rotinas Delphi com referência direta ao parâmetro​

RotinaArquivoLinhaEvidência
Busca_ParametrosUdmMOF001.pas666SELECT TP_ORDEMSERVICO, TP_PRECOSERVICO...
TdmMOF001.tabORDEMSERVITEMCD_SERVICOValidateUdmMOF001.pas2510if (iTP_PRECOSERVICO = 'P') then
TdmMOF001.tabORDEMSERVITEMQT_SERVICOValidateUdmMOF001.pas3920if (dmMOF001.iTP_PRECOSERVICO = 'T') then
TdmMOF001.tabORDEMSERVITEMBeforePostUdmMOF001.pas2172if (dmMOF001.iST_ALTERAPRECO = 'N') and (dmMOF001.iTP_PRECOSERVICO <> 'P')
TdmMOF001.tabORDEMSERVICOCD_CONDPAGTOValidateUdmMOF001.pas1451if (dmMOF001.iTP_PRECOSERVICO = 'P') then
VerificaValidadeOrcamentoUMOF005.pas429if (dmMOF005.iTP_PRECOSERVICO = 'T') then
TfrmMOF005.gridSERVICOKeyDownUMOF005.pas1375if (dmMOF005.iTP_PRECOSERVICO <> 'P')
TfrmMOF005.recalculaValoresUMOF005.pas2785if (dmMOF005.iTP_PRECOSERVICO = 'T')
TdmMOF005.tabSERVICOBeforePostUdmMOF005.pas1427if (iTP_PRECOSERVICO = 'T')
TdmMOF005.tabSERVICOCD_ITEMValidateUdmMOF005.pas1687if (dmMOF005.iTP_PRECOSERVICO = 'T')
TdmMOF008.ReprocessaServicosUdmMOF008.pas654if (tabORDEMSERVICOTP_PRECOSERVICO.AsString = 'P')
TfrmListaPeca.btnProcurarClickUListaPeca.pas244if (ParmOficina.Values['TP_PRECOSERVICO'] <> 'P')
TdmOFI001.tabPARMOFICINAAfterInsertUdmOFI001.pas378tabPARMOFICINATP_PRECOSERVICO.AsString := 'T'

Referências SQL diretas ao campo​

Não foram encontradas referências diretas ao campo TP_PRECOSERVICO em scripts SQL na pasta Scripts/. O campo é consultado apenas via código Delphi.

Candidatas por uso da tabela (PARMOFICINA)​

Estas procedures/views fazem JOIN com a tabela PARMOFICINA, mas não citam o campo TP_PRECOSERVICO diretamente. O impacto funcional depende de validação específica:

Procedure/ViewArquivoObservação
RETORNA_PRECOITEMScripts/RETORNA_PRECOITEM.sqlPode ter lógica indireta de preço
REABRE_OSScripts/REABRE_OS.sqlReabertura de OS
VIEW_ROF004Scripts/VIEW_ROF004.sqlRelatório de OS
VIEW_ROF004BScripts/VIEW_ROF004B.sqlRelatório de OS (variante)
VIEW_ROF008Scripts/VIEW_ROF008.sqlRelatório de OS
VERIFICA_BLOQUEIOScripts/VERIFICA_BLOQUEIO.sqlVerificação de bloqueios
VIEW_DOCUMENTOSBLOQUEADOSScripts/VIEW_DOCUMENTOSBLOQUEADOS.sqlDocumentos bloqueados

Nota: As candidatas acima usam PARMOFICINA para outros campos (ex: TP_ORDEMSERVICO, ST_BLOQUEIO). Não há evidência de uso direto de TP_PRECOSERVICO em SQL puro.