Pular para o conteúdo principal

ST_DESCONTOTERCEIROS — Permitir Desconto em Serviços de Terceiros

Tela de configuração: OFI001 — Parâmetros de Oficina Localização: Aba Ordem 1 Componente: chkST_DESCONTOTERCEIROS (checkbox) Tabela / Campo: PARMOFICINA.ST_DESCONTOTERCEIROS Tipo: CHAR(1) — valores S / N Valor padrão: S (permitir desconto)


Telas impactadas​

TelaDescrição
MOF001 — Orçamento / Ordem de ServiçoControla edição e aplicação de desconto em serviços e peças de terceiros no grid de itens da OS
MOF002 — Atendimento RápidoControla edição de campos e exclusão de produtos de terceiros
MPD002 — Pedido de VendaControla edição de campos de itens de terceiros e distribuição de desconto rateado

Campos envolvidos​

Campo (tela)Quando afetado
VL_DESCONTO (serviço e peça)Campo fica ReadOnly quando N e item é de terceiro (ST_TERCEIRO = S)
PC_DESCONTOSERV (OS)Desconto percentual do serviço ignora itens de terceiros quando N
PC_DESCONTOPECA (OS)Desconto percentual da peça ignora itens de terceiros quando N
QT_SERVICOITEM, PS_SERVICOITEM, VL_UNITARIO, VL_TOTAL (MOF002)Ficam ReadOnly quando N e item é de terceiro
QT_PEDIDA, PS_PEDIDO, CD_MOVIMENTACAO (MPD002)Ficam ReadOnly quando N e item é de terceiro

Opções disponíveis​

S — Permitir desconto em serviços de terceiros (padrão)​

O que fazDetalhe
Campo VL_DESCONTOEditável em serviços e peças de terceiros na OS
Desconto percentual da OSAplicado a todos os itens, inclusive terceiros
Atendimento Rápido (MOF002)Campos de quantidade, valor e desconto editáveis em itens de terceiros
Pedido de Venda (MPD002)Campos de quantidade, valor e desconto editáveis em itens de terceiros

Simulação passo a passo​

  1. Acesse OFI001 (Parâmetros de Oficina).
  2. Na aba Ordem 1, marque o checkbox "Permitir Desconto em Serviços de Terceiros".
  3. Salve o parâmetro.
  4. Abra uma Ordem de Serviço em MOF001 com um serviço de terceiro adicionado (ST_TERCEIRO = S).
  5. Navegue até o grid de serviços e localize o campo VL_DESCONTO do item de terceiro.
  6. Informe um valor de desconto (ex: R$ 10,00) e confirme.
  7. O sistema aceita o desconto sem bloqueio.

Resultado esperado: O desconto é aplicado normalmente ao serviço/peça de terceiro, exatamente como em itens próprios.


N — Não permitir desconto em serviços de terceiros​

O que fazDetalhe
Campo VL_DESCONTOBloqueado (ReadOnly) em serviços e peças de terceiros
Desconto percentual da OSItens de terceiros são ignorados pela aplicação de desconto percentual (PC_DESCONTOSERV e PC_DESCONTOPECA)
Tentativa forçada de descontoExceção: "Não é permitido conceder desconto para serviços de terceiros. Verifique!"
Atendimento Rápido (MOF002)Campos QT_SERVICOITEM, PS_SERVICOITEM, VL_UNITARIO, VL_TOTAL, VL_DESCONTO ficam ReadOnly para terceiros; exclusão de produto de terceiro é bloqueada
Pedido de Venda (MPD002)Campos de quantidade, valor e desconto ficam ReadOnly para terceiros; itens de terceiro são excluídos da distribuição de desconto rateado

Simulação passo a passo​

  1. Acesse OFI001 (Parâmetros de Oficina).
  2. Na aba Ordem 1, desmarque o checkbox "Permitir Desconto em Serviços de Terceiros".
  3. Salve o parâmetro.
  4. Abra uma Ordem de Serviço em MOF001 com um serviço de terceiro adicionado (ST_TERCEIRO = S).
  5. Navegue até o grid de serviços e observe que o campo VL_DESCONTO do item de terceiro está travado (não permite digitação).
  6. No cabeçalho da OS, informe um percentual de desconto no campo PC_DESCONTOSERV (ex: 10%).
  7. O desconto percentual é aplicado apenas nos serviços próprios; os serviços de terceiros permanecem sem desconto.
  8. Tente excluir um produto de terceiro no MOF002 (Atendimento Rápido). O sistema exibe: "Não é permitido excluir produtos de terceiros. Verifique!"

Resultado esperado: Nenhum desconto é aplicado a itens de terceiros. Os campos de desconto e quantidade ficam travados para esses itens.

Excecao / Importante: O bloqueio só se aplica a itens marcados como terceiros (ST_TERCEIRO = S). Itens próprios da oficina continuam recebendo desconto normalmente.


Regra Geral​

O parâmetro controla exclusivamente a permissão de desconto sobre itens de terceiros. Quando desmarcado (N):

  • Em MOF001, o campo VL_DESCONTO do grid de serviços e peças fica ReadOnly para terceiros, e os campos de desconto percentual (PC_DESCONTOSERV / PC_DESCONTOPECA) filtram terceiros ao aplicar o desconto em massa.
  • Em MOF002, além do desconto, os campos de quantidade e valor unitário também ficam travados, e a exclusão de itens de terceiros é impedida.
  • Em MPD002, o mesmo bloqueio de campos se aplica, e itens de terceiros são desconsiderados na distribuição/rateio de desconto.

Tabela Comparativa​

AspectoS (Marcado)N (Desmarcado)
Desconto em serviço de terceiro (OS)PermitidoBloqueado
Desconto percentual aplica terceiros?SimNão — ignora terceiros
Campos editáveis no MOF002 para terceirosSimBloqueados
Exclusão de terceiro no MOF002PermitidaBloqueada
Campos editáveis no MPD002 para terceirosSimBloqueados
Rateio de desconto no MPD002 inclui terceirosSimNão — exclui terceiros

Procedures impactadas​

Rotinas Delphi com referência direta ao campo​

RotinaArquivoLinhaComportamento
TdmMOF001.tabORDEMSERVITEMAfterScrollsource/MOF001/UdmMOF001.pas2356Se S, libera VL_DESCONTO ReadOnly para serviços de terceiro; se N, trava
TdmMOF001.tabSERVICOITEMAfterScrollsource/MOF001/UdmMOF001.pas3628Se S, libera VL_DESCONTO ReadOnly para peças de terceiro; se N, trava
TdmMOF001.tabORDEMSERVICOPC_DESCONTOSERVValidatesource/MOF001/UdmMOF001.pas4844Se N, adiciona filtro AND OSI.ST_TERCEIRO = 'N' ao atualizar desconto percentual de serviços
TdmMOF001.tabORDEMSERVICOPC_DESCONTOPECAValidatesource/MOF001/UdmMOF001.pas4887Se N, adiciona filtro AND ST_TERCEIRO = 'N' ao atualizar desconto percentual de peças
TdmMOF001.tabORDEMSERVITEMVL_DESCONTOValidatesource/MOF001/UdmMOF001.pas4992Se N e item terceiro com valor informado, lança exceção
TfrmMOF001.edtPC_DESCONTOExitsource/MOF001/UMOF001.pas5497Se S, permite aplicação de desconto percentual
TfrmMOF001.edtVL_DESCONTOExitsource/MOF001/UMOF001.pas5709Se S, permite aplicação de desconto por valor
Busca_Parametrossource/MOF001/UdmMOF001.pas669Carrega iST_DESCONTOTERCEIROS da tabela PARMOFICINA
TdmMOF001.tabPARMOFICINAAfterInsertsource/OFI001/UdmOFI001.pas347Define valor padrão S ao inserir novo registro
TdmMOF002.tabSERVICOITEMAfterScrollsource/MOF002/UdmMOF002.pas1449Se N, trava quantidade, valor unitário, total e desconto de peças de terceiro
TfrmMOF002.btnExcluirClicksource/MOF002/UMOF002.pas925Se N, bloqueia exclusão de produto de terceiro
iniciarsource/MOF002/UMOF002.pas202Carrega parâmetro via ParmOficina.Values['ST_DESCONTOTERCEIROS']
Busca_Parametrossource/MOF006/UdmMOF006.pas270Carrega iST_DESCONTOTERCEIROS para tela MOF006
TfrmMPD002.btnExcluirClicksource/MPD002/UMPD002.pas1780Se N, bloqueia exclusão (validação adicional)
TfrmMPD002.edtVL_DESCONTOExitsource/MPD002/UMPD002.pas5160Se N, exclui itens de terceiro do cálculo de desconto
TdmMPD002.tabITEMPEDIDOAfterScrollsource/MPD002/UdmMPD002.pas3723Se N, trava campos de quantidade, valor e desconto para terceiros
Busca_Parametrossource/MPD002/UdmMPD002.pas771Carrega iST_DESCONTOTERCEIROS da tabela PARMOFICINA

Referências SQL diretas ao campo​

Não foram encontradas referências SQL diretas ao campo ST_DESCONTOTERCEIROS em scripts da pasta Scripts/. O campo é lido exclusivamente via queries Delphi (Busca_Parametros).

Candidatas por uso da tabela PARMOFICINA​

As seguintes procedures/views fazem JOIN ou leitura da tabela PARMOFICINA, mas não citam o campo ST_DESCONTOTERCEIROS diretamente. Não há impacto funcional comprovado:

Procedure/ViewArquivo
PARCELA_FINANC_MNF017Scripts/PARCELA_FINANC_MNF017.sql
PARCELA_FINANCIAMENTOScripts/PARCELA_FINANCIAMENTO.sql
REABRE_OSScripts/REABRE_OS.sql
RETORNA_MOTIVOBLOQUEIOScripts/RETORNA_MOTIVOBLOQUEIO.sql
RETORNA_PRECOITEMScripts/RETORNA_PRECOITEM.sql
VERIFICA_BLOQUEIOScripts/VERIFICA_BLOQUEIO.sql
VIEW_DOCUMENTOSBLOQUEADOSScripts/VIEW_DOCUMENTOSBLOQUEADOS.sql
VIEW_ROF004Scripts/VIEW_ROF004.sql
VIEW_ROF004BScripts/VIEW_ROF004B.sql
VIEW_ROF008Scripts/VIEW_ROF008.sql