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_HABILITACUSTOMINIMOValor padrão:N(Não)
Telas impactadas
| Módulo | Código | Descrição |
|---|---|---|
| Pedido de Venda | MPD002 | Ú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/referenciaST_HABILITACUSTOMINIMO. A regra é 100% aplicada em Delphi, dentro do MPD002.
Procedures impactadas
Nenhuma. Toda a lógica é executada no client (Delphi).
Campos envolvidos
| Campo | Descrição |
|---|---|
PARMFATUR.ST_HABILITACUSTOMINIMO | Armazena a opção configurada (S / N) |
ITEM.VL_CUSTO | Valor de custo do item, exibido no formulário de consulta TfrmUMPD002CUSTOMINIMO |
TABPRECO.VL_PRECO / TABPRECO.VL_MINIMO | Preç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_RECEBER | Saldo em estoque e saldo em trânsito, exibidos no formulário auxiliar |
Opções disponíveis
S - Sim (Habilita)
| O que faz | Detalhe |
|---|---|
| Rótulo-atalho | No 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+F3 | Quando 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 aberto | Exibe, 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ção | O pedido precisa ter pelo menos 1 item (tabITEMPEDIDO.RecordCount > 0). Se não houver item, a tecla é ignorada |
| Quem aciona | Vendedor/operador do pedido, para consultar custo e preço mínimo antes de confirmar o valor de venda |
Simulação passo a passo
- Vá em MFA001 → Parâmetros → Pedidos / O.S. → Opção 2 → Habilita Custo e Valor Mínimo [MPD002] = "Sim"
- Salve os parâmetros (F6)
- Entre em MPD002 para incluir um novo pedido
- Observe, no rodapé da aba do item, o rótulo "Custo e Valor Mínimo
<CTRL + F3>" visível - Adicione um item ao pedido (por exemplo, produto X)
- Pressione Ctrl + F3
- O sistema grava o item em edição e abre a janela
frmUMPD002CUSTOMINIMOexibindo:- Código e descrição do produto
VL_CUSTOatual do item- Saldo em estoque por empresa
- Todas as tabelas de preço com
VL_PRECOeVL_MINIMO
- Botão "Alterar Custo" (
btnCUSTO): exige usuário autorizador ativo ou informar credenciais de autorização emTfrmAUTORIZACAO; após liberação, abreTfrmUMPD002CUSTOPEDIDO - 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 faz | Detalhe |
|---|---|
| Rótulo-atalho | lblCUSTO fica invisível no MPD002; o operador não recebe indicação visual do atalho |
Atalho Ctrl+F3 | Ignorado: 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 TfrmUMPD002CUSTOMINIMO | Nunca é instanciado |
Simulação passo a passo
- Vá em MFA001 → Parâmetros → Pedidos / O.S. → Opção 2 → Habilita Custo e Valor Mínimo [MPD002] = "Não"
- Salve os parâmetros (F6)
- Entre em MPD002 e abra um pedido com itens
- Observe que o rótulo "Custo e Valor Mínimo
<CTRL + F3>" está oculto - Pressione Ctrl + F3 → nada acontece
- 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âmetro | Tela onde atua | O que faz | Momento |
|---|---|---|---|
| ST_HABILITACUSTOMINIMO | MPD002 | Habilita o atalho Ctrl+F3 e o formulário auxiliar de consulta de custo/preço mínimo do item no pedido | Pedido de venda - apenas visualização/consulta |
| ST_AVISACUSTO | MNF002 | Valida se o valor unitário digitado é menor ou igual ao custo de estoque e exige confirmação do operador | NF de saída - BeforePost do item |
| ST_CUSTOREPOSICAO | MNF001, MNF002 | Define como o custo do item é atualizado/considerado (tabela de compra, OS, manual) e como o CMV é contabilizado | NF 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 noBeforePostdo 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ção | Descrição | Rótulo lblCUSTO | Atalho Ctrl+F3 | Formulário de consulta |
|---|---|---|---|---|
| S | Sim | Visível | Abre TfrmUMPD002CUSTOMINIMO | Sim |
| N | Não (padrão) | Oculto | Ignorado | Nunca abre |
Referências no Código Fonte
Tela MFA001 (configuração do parâmetro)
source/MFA001/UMFA001.dfm(linhas 9973-10001) -cmbST_TROCAPRODCARREG2: TwwDBComboBoxcomDataField = 'ST_HABILITACUSTOMINIMO'eItems.Strings = ('Sim'#9'S', 'Não'#9'N'). Está posicionado na abapagPedidoOp2("Opção 2") dentro depagPedidos("Pedidos / O.S.") emPageParmsource/MFA001/UMFA001.dfm(linhas 9324-9337) -lbl67: TLabelcomCaption = 'Habilita Custo e Valor Mínimo [MPD002]'(rótulo visível ao usuário)source/MFA001/UdmMFA001.pas(linha 250) - DeclaraçãotabPARMFATURST_HABILITACUSTOMINIMO: TStringFieldsource/MFA001/UdmMFA001.pas(linha 546) -AfterInsertdefine valor padrão'N':tabPARMFATURST_HABILITACUSTOMINIMO.AsString := 'N'source/MFA001/UdmMFA001.dfm(linhas 263, 1786-1788, 2427, 2599, 2844, 3143) - Campo incluído emSELECT,INSERTeUPDATEdePARMFATURe nas definições deTStringField
Uso funcional do parâmetro (MPD002)
source/MPD002/UdmMPD002.pas(linha 5753) -SELECT ... P.ST_HABILITACUSTOMINIMO ...dentro da montagem deTStringList parmfaturdeTdmMPD002.retornaParmFatursource/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 dovk_F3noFormKeyDown: quandoShift = [ssCtrl]eST_HABILITACUSTOMINIMO = 'S', posta o item em edição e abreTfrmUMPD002CUSTOMINIMO.ShowModal. Caso contrário,F3chamabtnProcurar.Clicksource/MPD002/UMPD002.dfm(linhas 955-960) -lblCUSTO: TLabelcomCaption = 'Custo e Valor Mínimo <CTRL + F3>'- rótulo que é mostrado/escondido conforme o parâmetrosource/MPD002/UMPD002CUSTOMINIMO.pas(arquivo completo) - Implementação do formulário auxiliarTfrmUMPD002CUSTOMINIMOcom os datasetstabITEM(cadastro/custo do item),tabESTOQUE(saldos por empresa) etabPRECO(tabelas de preço comVL_PRECO/VL_MINIMO). BotãobtnCUSTOaciona autorização e abreTfrmUMPD002CUSTOPEDIDOpara alteração de custo
Scripts SQL (stored procedures)
- Nenhuma procedure em
Scripts/referencia diretamenteST_HABILITACUSTOMINIMO. A regra é totalmente aplicada em Delphi no módulo MPD002.