Pular para o conteúdo principal

Parâmetro de Habilitação de Custo e Valor Mínimo no Pedido

Tela de configuração: MFA001 - Parâmetros de Faturamento Localização: Parâmetros → Pedidos / O.S. → Opção 2 → campo "Habilita Custo e Valor Mínimo [MPD002]" Tabela: PARMFATUR.ST_HABILITACUSTOMINIMO Valor padrão: N (Não)

Telas impactadas​

MóduloCódigoDescrição
Pedido de VendaMPD002Única tela que consome o parâmetro: exibe o rótulo-atalho "Custo e Valor Mínimo <CTRL+F3>" e libera o formulário TfrmUMPD002CUSTOMINIMO (consulta de custo/preço mínimo do item)

Observação: Nenhuma stored procedure em Scripts/ referencia ST_HABILITACUSTOMINIMO. A regra é 100% aplicada em Delphi, dentro do MPD002.

Procedures impactadas​

Nenhuma. Toda a lógica é executada no client (Delphi).

Campos envolvidos​

CampoDescrição
PARMFATUR.ST_HABILITACUSTOMINIMOArmazena a opção configurada (S / N)
ITEM.VL_CUSTOValor de custo do item, exibido no formulário de consulta TfrmUMPD002CUSTOMINIMO
TABPRECO.VL_PRECO / TABPRECO.VL_MINIMOPreço de venda e preço mínimo da tabela de preço, exibidos no mesmo formulário
ESTOQUE.O_QT_SALDO / ESTOQUE.O_QT_RECEBERSaldo em estoque e saldo em trânsito, exibidos no formulário auxiliar

Opções disponíveis​

S - Sim (Habilita)​

O que fazDetalhe
Rótulo-atalhoNo carregamento do pedido (MPD002), o TLabel lblCUSTO com a legenda "Custo e Valor Mínimo <CTRL + F3>" fica visível, informando ao operador que o atalho está ativo
Atalho Ctrl+F3Quando pressionado no MPD002, salva o item em edição (se estiver em dsInsert/dsEdit), e abre o formulário TfrmUMPD002CUSTOMINIMO como janela modal
Formulário abertoExibe, para o produto corrente do pedido: dados cadastrais do item, VL_CUSTO, saldo de estoque por empresa e todas as tabelas de preço com VL_PRECO e VL_MINIMO. Também permite acionar btnCUSTO para alterar custo (via TfrmUMPD002CUSTOPEDIDO) mediante autorização de usuário autorizador
Pré-condiçãoO pedido precisa ter pelo menos 1 item (tabITEMPEDIDO.RecordCount > 0). Se não houver item, a tecla é ignorada
Quem acionaVendedor/operador do pedido, para consultar custo e preço mínimo antes de confirmar o valor de venda

Simulação passo a passo​

  1. Vá em MFA001 → Parâmetros → Pedidos / O.S. → Opção 2 → Habilita Custo e Valor Mínimo [MPD002] = "Sim"
  2. Salve os parâmetros (F6)
  3. Entre em MPD002 para incluir um novo pedido
  4. Observe, no rodapé da aba do item, o rótulo "Custo e Valor Mínimo <CTRL + F3>" visível
  5. Adicione um item ao pedido (por exemplo, produto X)
  6. Pressione Ctrl + F3
  7. O sistema grava o item em edição e abre a janela frmUMPD002CUSTOMINIMO exibindo:
    • Código e descrição do produto
    • VL_CUSTO atual do item
    • Saldo em estoque por empresa
    • Todas as tabelas de preço com VL_PRECO e VL_MINIMO
  8. Botão "Alterar Custo" (btnCUSTO): exige usuário autorizador ativo ou informar credenciais de autorização em TfrmAUTORIZACAO; após liberação, abre TfrmUMPD002CUSTOPEDIDO
  9. Feche a janela (Esc ou botão Fechar) para voltar ao pedido

Resultado esperado: Operador consegue consultar custo e preços mínimos do item selecionado no pedido, sem sair da tela do pedido, via atalho Ctrl+F3.


N - Não (Padrão)​

O que fazDetalhe
Rótulo-atalholblCUSTO fica invisível no MPD002; o operador não recebe indicação visual do atalho
Atalho Ctrl+F3Ignorado: o case Key of vk_F3 do MPD002 só abre a consulta de custo/valor mínimo quando ParmFatur.Values['ST_HABILITACUSTOMINIMO'] = 'S'. Caso contrário, F3 puro continua acionando btnProcurar.Click (busca padrão), mas Ctrl+F3 não executa nenhuma ação
Formulário TfrmUMPD002CUSTOMINIMONunca é instanciado

Simulação passo a passo​

  1. Vá em MFA001 → Parâmetros → Pedidos / O.S. → Opção 2 → Habilita Custo e Valor Mínimo [MPD002] = "Não"
  2. Salve os parâmetros (F6)
  3. Entre em MPD002 e abra um pedido com itens
  4. Observe que o rótulo "Custo e Valor Mínimo <CTRL + F3>" está oculto
  5. Pressione Ctrl + F3 → nada acontece
  6. Pressione F3 isolado → o botão Procurar (btnProcurar) é acionado normalmente

Resultado esperado: A consulta rápida de custo e valor mínimo do item não fica disponível ao operador do pedido.

Este é o valor padrão ao criar um novo registro no MFA001 (definido em TdmMFA001.tabPARMFATURAfterInsert, UdmMFA001.pas:546).


Interação com ST_AVISACUSTO / ST_CUSTOREPOSICAO​

Apesar de todos os três parâmetros girarem em torno do conceito de "custo do produto", cada um age em um ponto distinto do fluxo e não se condicionam entre si no código - são ortogonais:

ParâmetroTela onde atuaO que fazMomento
ST_HABILITACUSTOMINIMOMPD002Habilita o atalho Ctrl+F3 e o formulário auxiliar de consulta de custo/preço mínimo do item no pedidoPedido de venda - apenas visualização/consulta
ST_AVISACUSTOMNF002Valida se o valor unitário digitado é menor ou igual ao custo de estoque e exige confirmação do operadorNF de saída - BeforePost do item
ST_CUSTOREPOSICAOMNF001, MNF002Define como o custo do item é atualizado/considerado (tabela de compra, OS, manual) e como o CMV é contabilizadoNF de entrada/saída e contabilização
  • Combinação prática: ativar ST_HABILITACUSTOMINIMO = 'S' no MPD002 dá ao vendedor a informação do custo antes do pedido virar nota. Se o usuário baixar o preço abaixo do custo e, posteriormente, ST_AVISACUSTO = 'S' estiver ativo na emissão da NF, o alerta aparece de novo no BeforePost do item da nota. Os dois parâmetros não se substituem - atuam em fases diferentes do fluxo.
  • Nenhum dos três parâmetros é lido pelo outro: no código não há if ST_HABILITACUSTOMINIMO = 'S' and ST_AVISACUSTO .... Cada um é consumido independentemente pelo respectivo módulo.

Tabela Comparativa Resumida​

OpçãoDescriçãoRótulo lblCUSTOAtalho Ctrl+F3Formulário de consulta
SSimVisívelAbre TfrmUMPD002CUSTOMINIMOSim
NNão (padrão)OcultoIgnoradoNunca abre

Referências no Código Fonte​

Tela MFA001 (configuração do parâmetro)​

  • source/MFA001/UMFA001.dfm (linhas 9973-10001) - cmbST_TROCAPRODCARREG2: TwwDBComboBox com DataField = 'ST_HABILITACUSTOMINIMO' e Items.Strings = ('Sim'#9'S', 'Não'#9'N'). Está posicionado na aba pagPedidoOp2 ("Opção 2") dentro de pagPedidos ("Pedidos / O.S.") em PageParm
  • source/MFA001/UMFA001.dfm (linhas 9324-9337) - lbl67: TLabel com Caption = 'Habilita Custo e Valor Mínimo [MPD002]' (rótulo visível ao usuário)
  • source/MFA001/UdmMFA001.pas (linha 250) - Declaração tabPARMFATURST_HABILITACUSTOMINIMO: TStringField
  • source/MFA001/UdmMFA001.pas (linha 546) - AfterInsert define valor padrão 'N': tabPARMFATURST_HABILITACUSTOMINIMO.AsString := 'N'
  • source/MFA001/UdmMFA001.dfm (linhas 263, 1786-1788, 2427, 2599, 2844, 3143) - Campo incluído em SELECT, INSERT e UPDATE de PARMFATUR e nas definições de TStringField

Uso funcional do parâmetro (MPD002)​

  • source/MPD002/UdmMPD002.pas (linha 5753) - SELECT ... P.ST_HABILITACUSTOMINIMO ... dentro da montagem de TStringList parmfatur de TdmMPD002.retornaParmFatur
  • source/MPD002/UMPD002.pas (linhas 747-750) - No carregamento do pedido (carregaParametros/FormShow): if (Trim(ParmFatur.Values['ST_HABILITACUSTOMINIMO']) = 'S') then frmMPD002.lblCUSTO.Visible := True else frmMPD002.lblCUSTO.Visible := False;
  • source/MPD002/UMPD002.pas (linhas 1083-1105) - Tratamento do vk_F3 no FormKeyDown: quando Shift = [ssCtrl] e ST_HABILITACUSTOMINIMO = 'S', posta o item em edição e abre TfrmUMPD002CUSTOMINIMO.ShowModal. Caso contrário, F3 chama btnProcurar.Click
  • source/MPD002/UMPD002.dfm (linhas 955-960) - lblCUSTO: TLabel com Caption = 'Custo e Valor Mínimo <CTRL + F3>' - rótulo que é mostrado/escondido conforme o parâmetro
  • source/MPD002/UMPD002CUSTOMINIMO.pas (arquivo completo) - Implementação do formulário auxiliar TfrmUMPD002CUSTOMINIMO com os datasets tabITEM (cadastro/custo do item), tabESTOQUE (saldos por empresa) e tabPRECO (tabelas de preço com VL_PRECO/VL_MINIMO). Botão btnCUSTO aciona autorização e abre TfrmUMPD002CUSTOPEDIDO para alteração de custo

Scripts SQL (stored procedures)​

  • Nenhuma procedure em Scripts/ referencia diretamente ST_HABILITACUSTOMINIMO. A regra é totalmente aplicada em Delphi no módulo MPD002.