Pular para o conteúdo principal

ST_LIMITAPRECOCOMPRA — Bloqueia Preço de Compra Maior que Preço de Venda na Requisição

Tela de configuração: OFI001 — Parâmetros da Oficina Localização na UI: Aba Ordem 3 → checkbox "Bloqueia Preço Compra maior que Preço Venda na Requisição [MOF004]" Tabela / Campo: PARMOFICINA.ST_LIMITAPRECOCOMPRA — CHAR(1), valor padrão 'N'


Telas impactadas​

TelaMóduloImpacto
MOF004Requisição de OficinaValidação no BeforePost do item da requisição: impede que o preço de compra unitário seja superior ao preço de venda unitário.

Campos envolvidos​

CampoTabelaFunção
ST_LIMITAPRECOCOMPRAPARMOFICINAFlag S/N que ativa o bloqueio
VL_UNITARIOCOMPRAITEMREQUISICAOOFICINAPreço de compra digitado pelo usuário no item
VL_UNITARIOVENDAITEMREQUISICAOOFICINAPreço de venda sugerido automaticamente a partir da tabela de preço padrão (configurada em TP_PRECOSERVICO em MFA001 — Parâmetros de Faturamento)

Opções disponíveis​

S — Bloqueio Ativo​

O que fazDetalhe
Bloqueio de preçoO sistema não permite que o valor unitário de compra digitado seja maior que o valor unitário de venda do item na requisição de oficina.
Sugestão automáticaAo inserir um item na requisição, o campo Preço de Venda é preenchido automaticamente com o valor da tabela de preço padrão (definida em MFA001). O usuário pode alterar livremente esse valor de venda.
Exceção / RestriçãoO bloqueio só é avaliado quando o campo VL_UNITARIOVENDA está preenchido (não vazio).

Simulação passo a passo​

  1. Acesse OFI001 (Parâmetros da Oficina).
  2. Vá até a aba Ordem 3.
  3. Marque o checkbox "Bloqueia Preço Compra maior que Preço Venda na Requisição [MOF004]".
  4. Salve o registro.
  5. Abra MOF004 (Requisição de Oficina) e inclua uma nova requisição.
  6. Insira um item cujo preço de tabela (venda) seja, por exemplo, R$ 10,00.
  7. No campo Valor Unitário de Compra, digite R$ 12,00 (valor superior ao preço de venda).
  8. Tente salvar o item.

Resultado esperado: O sistema exibe a mensagem de erro "O Valor Unitário de Compra não pode ser Maior que o Preço Unitário de Venda! Verifique." e move o foco para o campo de preço de venda. O registro não é salvo até que o preço de compra seja igual ou inferior ao preço de venda.

Exceção / Importante: O preço de venda sugerido vem da tabela de preço padrão configurada em TP_PRECOSERVICO na tela MFA001 — Parâmetros de Faturamento. Se o usuário alterar o preço de venda para um valor menor que o preço de compra, o bloqueio também será acionado.


N — Bloqueio Inativo (padrão)​

O que fazDetalhe
Sem restriçãoO valor unitário de compra pode ser digitado livremente, sem comparação com o preço de venda.
Valor padrãoEste é o valor atribuído automaticamente ao criar um novo registro de parâmetros da oficina.

Simulação passo a passo​

  1. Acesse OFI001 (Parâmetros da Oficina).
  2. Vá até a aba Ordem 3.
  3. Certifique-se de que o checkbox "Bloqueia Preço Compra maior que Preço Venda na Requisição [MOF004]" esteja desmarcado.
  4. Salve o registro.
  5. Abra MOF004 e insira um item na requisição.
  6. No campo Valor Unitário de Compra, digite um valor superior ao preço de venda (ex.: compra R$ 15,00, venda R$ 10,00).
  7. Tente salvar o item.

Resultado esperado: O sistema salva o item normalmente, sem exibir nenhum alerta ou bloqueio relacionado à comparação de preços.


Procedures impactadas​

Rotinas Delphi com referência direta ao campo​

RotinaArquivoLinhaDescrição
TdmMOF004.cdsITEMREQUISICAOOFICINABeforePostsource/MOF004/UdmMOF004.pas296Verifica ParmOficina.Values['ST_LIMITAPRECOCOMPRA'] = 'S' e aplica a validação de preço compra ≤ venda
TdmOFI001.tabPARMOFICINAAfterInsertsource/OFI001/UdmOFI001.pas393Atribui valor padrão 'N' ao criar novo registro
TfrmOFI001.chkST_LIMITAPRECOCOMPRAMouseMovesource/OFI001/UOFI001.pas916Hint/status bar ao posicionar mouse sobre o checkbox

Referências SQL diretas ao campo em Scripts/​

Nenhuma referência direta a ST_LIMITAPRECOCOMPRA foi encontrada em procedures/views SQL.

Candidatas por uso da tabela PARMOFICINA​

As seguintes procedures/views acessam a tabela PARMOFICINA mas não citam o campo ST_LIMITAPRECOCOMPRA diretamente. Não há impacto funcional confirmado:

  • RETORNA_PRECOITEM (Scripts/RETORNA_PRECOITEM.sql:68)
  • REABRE_OS (Scripts/REABRE_OS.sql:90)
  • VERIFICA_BLOQUEIO (Scripts/VERIFICA_BLOQUEIO.sql:160)
  • VIEW_ROF004 (Scripts/VIEW_ROF004.sql:41)
  • VIEW_ROF008 (Scripts/VIEW_ROF008.sql:41)
  • Outras (ver seção completa no inventário)