Pular para o conteúdo principal

ST_DESCONTOPRODUCAO - Permitir Desconto Para Produto em Promoção

Tela de configuração: OFI001 - Parâmetros da Oficina Localização: Aba "Ordem 1" Tabela: PARMOFICINA.ST_DESCONTOPRODUCAO Tipo: Checkbox (S / N) Valor padrão: S (Marcado — permite desconto)

Descrição​

Controla se produtos/serviços que possuem preço promocional vigente na tabela de preço (ITEMTABPRECODATA com DT_INICIAL <= CURRENT_DATE e DT_FINAL >= CURRENT_DATE) podem receber desconto e ter seus valores editados na Ordem de Serviço.

  • Marcado (S): os campos de valor e desconto ficam editáveis normalmente, mesmo que o item esteja em promoção.
  • Desmarcado (N): ao selecionar um item que exista na tabela de preço vigente, os campos VL_UNITARIO, VL_TOTAL e VL_DESCONTO (Serviços/Peças) ou VL_UNITARIO e VL_TOTAL (Itens de Consumo) ficam bloqueados (read-only).

Telas impactadas​

TelaEfeito
MOF001 — Ordem de Serviço (Cadastro)Bloqueia/desbloqueia campos de valor e desconto nos grids de Serviço e Item de Consumo
MOF002 — Ordem de Serviço (Consulta)Mesmo comportamento ao aplicar percentual de desconto
MOF005 — Orçamento de OficinaMesmo comportamento nos grids de Serviço e Item

Campos envolvidos​

TabelaCampos afetados
ORDEMSERVITEMVL_UNITARIO, VL_TOTAL, VL_DESCONTO
SERVICOITEMVL_UNITARIO, VL_TOTAL, VL_DESCONTO
ITEMCONSUMOVL_UNITARIO, VL_TOTAL

O sistema consulta a tabela ITEMTABPRECODATA para verificar se o item possui preço promocional vigente.

Opções disponíveis​

S - Marcado (Permitir Desconto em Promoção)​

O que fazDetalhe
Campos de valor/descontoEditáveis normalmente, mesmo para itens em promoção
Tabela de preço vigenteDesconsiderada para fins de bloqueio

Simulação passo a passo​

  1. Acesse OFI001 → aba Ordem 1.
  2. Certifique-se de que o checkbox "Permitir Desconto Para Produto em Promoção" esteja marcado.
  3. Salve o parâmetro.
  4. Abra uma Ordem de Serviço em MOF001.
  5. Adicione um serviço/produto que tenha preço promocional vigente na tabela de preço.
  6. Clique no campo VL_UNITARIO ou VL_DESCONTO do item.

Resultado esperado: Os campos VL_UNITARIO, VL_TOTAL e VL_DESCONTO ficam editáveis. O usuário pode alterar valores e aplicar descontos livremente.


N - Desmarcado (Bloquear Desconto em Promoção)​

O que fazDetalhe
Campos de valor/descontoBloqueados (read-only) quando o item estiver em promoção vigente
Tabela de preço vigenteVerificada via ITEMTABPRECODATA; se o item existir com vigência atual, campos são travados
Itens sem promoçãoCampos ficam editáveis normalmente

Simulação passo a passo​

  1. Acesse OFI001 → aba Ordem 1.
  2. Desmarque o checkbox "Permitir Desconto Para Produto em Promoção".
  3. Salve o parâmetro.
  4. Abra uma Ordem de Serviço em MOF001.
  5. Adicione um serviço/produto que tenha preço promocional vigente na tabela de preço (ITEMTABPRECODATA).
  6. Observe os campos VL_UNITARIO, VL_TOTAL e VL_DESCONTO do item inserido.
  7. Tente alterar o valor unitário ou aplicar um desconto.

Resultado esperado: Os campos VL_UNITARIO, VL_TOTAL e VL_DESCONTO ficam bloqueados (read-only). O sistema impede a edição de valores e descontos para itens com preço promocional vigente.

  1. Agora adicione um item que não esteja na tabela de preço vigente.

Resultado esperado: Os campos ficam editáveis normalmente, permitindo alteração de valores e aplicação de desconto.

Excecao / Importante: O bloqueio é aplicado em tempo real ao selecionar/navegar pelo item (eventos AfterScroll e Validate). A mesma regra vale para operações de aplicar percentual de desconto — ao aplicar desconto via PC_DESCONTOSERV ou PC_DESCONTOPECA, o sistema filtra itens em promoção e os exclui do cálculo em massa quando o parâmetro está desmarcado.

Regra Geral de Autorização​

Sem impacto direto identificado no codigo. Não há controle de autorizador vinculado a este parâmetro.

Procedures impactadas​

Rotinas Delphi com referência direta ao campo​

RotinaArquivoLinhaContexto
TdmMOF001.tabORDEMSERVITEMAfterScrollsource/MOF001/UdmMOF001.pas2321Ao navegar no grid de serviços — bloqueia/desbloqueia VL_UNITARIO, VL_TOTAL, VL_DESCONTO
TdmMOF001.tabORDEMSERVITEMCD_SERVICOValidatesource/MOF001/UdmMOF001.pas2729Ao validar código do serviço — mesma lógica de bloqueio
TdmMOF001.tabSERVICOITEMCD_ITEMValidatesource/MOF001/UdmMOF001.pas3031Ao validar item de serviço — mesma lógica
TdmMOF001.tabSERVICOITEMAfterScrollsource/MOF001/UdmMOF001.pas3593Ao navegar no grid de itens de serviço
TdmMOF001.tabORDEMSERVICOPC_DESCONTOSERVValidatesource/MOF001/UdmMOF001.pas4860Ao aplicar % desconto em serviços — filtra itens em promoção
TdmMOF001.tabORDEMSERVICOPC_DESCONTOPECAValidatesource/MOF001/UdmMOF001.pas4900Ao aplicar % desconto em peças — filtra itens em promoção
TdmMOF001.tabITEMCONSUMOAfterScrollsource/MOF001/UdmMOF001.pas5051Ao navegar no grid de itens de consumo
TdmMOF001.tabITEMCONSUMOCD_ITEMValidatesource/MOF001/UdmMOF001.pas5424Ao validar item de consumo
TdmMOF002.tabORDEMSERVITEMAfterScrollsource/MOF002/UdmMOF002.pas708MOF002 — navegação no grid de serviços
TdmMOF002.tabORDEMSERVITEMCD_SERVICOValidatesource/MOF002/UdmMOF002.pas862MOF002 — validação de serviço
TdmMOF002.tabSERVICOITEMCD_ITEMValidatesource/MOF002/UdmMOF002.pas1037MOF002 — validação de item
TdmMOF002.tabSERVICOITEMAfterScrollsource/MOF002/UdmMOF002.pas1479MOF002 — navegação no grid de itens
TdmMOF005.tabITEMCD_ITEMValidatesource/MOF005/UdmMOF005.pas825MOF005 — validação de item no orçamento
TdmMOF005.tabITEMAfterScrollsource/MOF005/UdmMOF005.pas1026MOF005 — navegação no grid de itens
TdmMOF005.tabSERVICOAfterScrollsource/MOF005/UdmMOF005.pas1358MOF005 — navegação no grid de serviços
TdmMOF005.tabSERVICOCD_ITEMValidatesource/MOF005/UdmMOF005.pas1816MOF005 — validação de serviço no orçamento
TdmOFI001.tabPARMOFICINAAfterInsertsource/OFI001/UdmOFI001.pas367Valor padrão S ao inserir novo registro

Referências SQL diretas ao campo​

Não foram encontradas referências diretas ao campo ST_DESCONTOPRODUCAO em procedures/views SQL. O campo é consultado exclusivamente via código Delphi através de ParmOficina.Values['ST_DESCONTOPRODUCAO'].

Candidatas por uso da tabela (sem referência direta ao campo)​

Procedures/views que acessam a tabela PARMOFICINA mas não citam o campo ST_DESCONTOPRODUCAO — sem impacto funcional direto identificado:

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_ROF004B_V2Scripts/VIEW_ROF004B_V2.sql
VIEW_ROF008Scripts/VIEW_ROF008.sql

Tabela Comparativa Resumida​

ValorCheckboxValor/Desconto em item em promoçãoItens sem promoçãoAplicação de % desconto em massa
SMarcadoEditávelEditávelAplica a todos os itens
NDesmarcadoBloqueado (read-only)EditávelExclui itens em promoção do cálculo