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
| Tela | Módulo | Impacto |
|---|---|---|
| MOF004 | Requisição de Oficina | Validaçã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
| Campo | Tabela | Função |
|---|---|---|
ST_LIMITAPRECOCOMPRA | PARMOFICINA | Flag S/N que ativa o bloqueio |
VL_UNITARIOCOMPRA | ITEMREQUISICAOOFICINA | Preço de compra digitado pelo usuário no item |
VL_UNITARIOVENDA | ITEMREQUISICAOOFICINA | Preç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 faz | Detalhe |
|---|---|
| Bloqueio de preço | O 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ática | Ao 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ção | O bloqueio só é avaliado quando o campo VL_UNITARIOVENDA está preenchido (não vazio). |
Simulação passo a passo
- Acesse OFI001 (Parâmetros da Oficina).
- Vá até a aba Ordem 3.
- Marque o checkbox "Bloqueia Preço Compra maior que Preço Venda na Requisição [MOF004]".
- Salve o registro.
- Abra MOF004 (Requisição de Oficina) e inclua uma nova requisição.
- Insira um item cujo preço de tabela (venda) seja, por exemplo, R$ 10,00.
- No campo Valor Unitário de Compra, digite R$ 12,00 (valor superior ao preço de venda).
- 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_PRECOSERVICOna 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 faz | Detalhe |
|---|---|
| Sem restrição | O valor unitário de compra pode ser digitado livremente, sem comparação com o preço de venda. |
| Valor padrão | Este é o valor atribuído automaticamente ao criar um novo registro de parâmetros da oficina. |
Simulação passo a passo
- Acesse OFI001 (Parâmetros da Oficina).
- Vá até a aba Ordem 3.
- Certifique-se de que o checkbox "Bloqueia Preço Compra maior que Preço Venda na Requisição [MOF004]" esteja desmarcado.
- Salve o registro.
- Abra MOF004 e insira um item na requisição.
- 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).
- 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
| Rotina | Arquivo | Linha | Descrição |
|---|---|---|---|
TdmMOF004.cdsITEMREQUISICAOOFICINABeforePost | source/MOF004/UdmMOF004.pas | 296 | Verifica ParmOficina.Values['ST_LIMITAPRECOCOMPRA'] = 'S' e aplica a validação de preço compra ≤ venda |
TdmOFI001.tabPARMOFICINAAfterInsert | source/OFI001/UdmOFI001.pas | 393 | Atribui valor padrão 'N' ao criar novo registro |
TfrmOFI001.chkST_LIMITAPRECOCOMPRAMouseMove | source/OFI001/UOFI001.pas | 916 | Hint/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)