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_DESCONTOTERCEIROSTipo:CHAR(1)— valoresS/NValor padrão:S(permitir desconto)
Telas impactadas
| Tela | Descrição |
|---|---|
| MOF001 — Orçamento / Ordem de Serviço | Controla edição e aplicação de desconto em serviços e peças de terceiros no grid de itens da OS |
| MOF002 — Atendimento Rápido | Controla edição de campos e exclusão de produtos de terceiros |
| MPD002 — Pedido de Venda | Controla 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 faz | Detalhe |
|---|---|
Campo VL_DESCONTO | Editável em serviços e peças de terceiros na OS |
| Desconto percentual da OS | Aplicado 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
- Acesse OFI001 (Parâmetros de Oficina).
- Na aba Ordem 1, marque o checkbox "Permitir Desconto em Serviços de Terceiros".
- Salve o parâmetro.
- Abra uma Ordem de Serviço em MOF001 com um serviço de terceiro adicionado (
ST_TERCEIRO = S). - Navegue até o grid de serviços e localize o campo VL_DESCONTO do item de terceiro.
- Informe um valor de desconto (ex: R$ 10,00) e confirme.
- 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 faz | Detalhe |
|---|---|
Campo VL_DESCONTO | Bloqueado (ReadOnly) em serviços e peças de terceiros |
| Desconto percentual da OS | Itens de terceiros são ignorados pela aplicação de desconto percentual (PC_DESCONTOSERV e PC_DESCONTOPECA) |
| Tentativa forçada de desconto | Exceçã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
- Acesse OFI001 (Parâmetros de Oficina).
- Na aba Ordem 1, desmarque o checkbox "Permitir Desconto em Serviços de Terceiros".
- Salve o parâmetro.
- Abra uma Ordem de Serviço em MOF001 com um serviço de terceiro adicionado (
ST_TERCEIRO = S). - 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).
- No cabeçalho da OS, informe um percentual de desconto no campo PC_DESCONTOSERV (ex: 10%).
- O desconto percentual é aplicado apenas nos serviços próprios; os serviços de terceiros permanecem sem desconto.
- 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_DESCONTOdo 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
| Aspecto | S (Marcado) | N (Desmarcado) |
|---|---|---|
| Desconto em serviço de terceiro (OS) | Permitido | Bloqueado |
| Desconto percentual aplica terceiros? | Sim | Não — ignora terceiros |
| Campos editáveis no MOF002 para terceiros | Sim | Bloqueados |
| Exclusão de terceiro no MOF002 | Permitida | Bloqueada |
| Campos editáveis no MPD002 para terceiros | Sim | Bloqueados |
| Rateio de desconto no MPD002 inclui terceiros | Sim | Não — exclui terceiros |
Procedures impactadas
Rotinas Delphi com referência direta ao campo
| Rotina | Arquivo | Linha | Comportamento |
|---|---|---|---|
TdmMOF001.tabORDEMSERVITEMAfterScroll | source/MOF001/UdmMOF001.pas | 2356 | Se S, libera VL_DESCONTO ReadOnly para serviços de terceiro; se N, trava |
TdmMOF001.tabSERVICOITEMAfterScroll | source/MOF001/UdmMOF001.pas | 3628 | Se S, libera VL_DESCONTO ReadOnly para peças de terceiro; se N, trava |
TdmMOF001.tabORDEMSERVICOPC_DESCONTOSERVValidate | source/MOF001/UdmMOF001.pas | 4844 | Se N, adiciona filtro AND OSI.ST_TERCEIRO = 'N' ao atualizar desconto percentual de serviços |
TdmMOF001.tabORDEMSERVICOPC_DESCONTOPECAValidate | source/MOF001/UdmMOF001.pas | 4887 | Se N, adiciona filtro AND ST_TERCEIRO = 'N' ao atualizar desconto percentual de peças |
TdmMOF001.tabORDEMSERVITEMVL_DESCONTOValidate | source/MOF001/UdmMOF001.pas | 4992 | Se N e item terceiro com valor informado, lança exceção |
TfrmMOF001.edtPC_DESCONTOExit | source/MOF001/UMOF001.pas | 5497 | Se S, permite aplicação de desconto percentual |
TfrmMOF001.edtVL_DESCONTOExit | source/MOF001/UMOF001.pas | 5709 | Se S, permite aplicação de desconto por valor |
Busca_Parametros | source/MOF001/UdmMOF001.pas | 669 | Carrega iST_DESCONTOTERCEIROS da tabela PARMOFICINA |
TdmMOF001.tabPARMOFICINAAfterInsert | source/OFI001/UdmOFI001.pas | 347 | Define valor padrão S ao inserir novo registro |
TdmMOF002.tabSERVICOITEMAfterScroll | source/MOF002/UdmMOF002.pas | 1449 | Se N, trava quantidade, valor unitário, total e desconto de peças de terceiro |
TfrmMOF002.btnExcluirClick | source/MOF002/UMOF002.pas | 925 | Se N, bloqueia exclusão de produto de terceiro |
iniciar | source/MOF002/UMOF002.pas | 202 | Carrega parâmetro via ParmOficina.Values['ST_DESCONTOTERCEIROS'] |
Busca_Parametros | source/MOF006/UdmMOF006.pas | 270 | Carrega iST_DESCONTOTERCEIROS para tela MOF006 |
TfrmMPD002.btnExcluirClick | source/MPD002/UMPD002.pas | 1780 | Se N, bloqueia exclusão (validação adicional) |
TfrmMPD002.edtVL_DESCONTOExit | source/MPD002/UMPD002.pas | 5160 | Se N, exclui itens de terceiro do cálculo de desconto |
TdmMPD002.tabITEMPEDIDOAfterScroll | source/MPD002/UdmMPD002.pas | 3723 | Se N, trava campos de quantidade, valor e desconto para terceiros |
Busca_Parametros | source/MPD002/UdmMPD002.pas | 771 | Carrega 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/View | Arquivo |
|---|---|
PARCELA_FINANC_MNF017 | Scripts/PARCELA_FINANC_MNF017.sql |
PARCELA_FINANCIAMENTO | Scripts/PARCELA_FINANCIAMENTO.sql |
REABRE_OS | Scripts/REABRE_OS.sql |
RETORNA_MOTIVOBLOQUEIO | Scripts/RETORNA_MOTIVOBLOQUEIO.sql |
RETORNA_PRECOITEM | Scripts/RETORNA_PRECOITEM.sql |
VERIFICA_BLOQUEIO | Scripts/VERIFICA_BLOQUEIO.sql |
VIEW_DOCUMENTOSBLOQUEADOS | Scripts/VIEW_DOCUMENTOSBLOQUEADOS.sql |
VIEW_ROF004 | Scripts/VIEW_ROF004.sql |
VIEW_ROF004B | Scripts/VIEW_ROF004B.sql |
VIEW_ROF008 | Scripts/VIEW_ROF008.sql |