Pular para o conteúdo principal

Parâmetro de Tabela de Venda

Tela de configuração: MFA001 - Parâmetros de Faturamento Localização: Parâmetros → Ambos → Opção 1 Tabela: PARMFATUR.ST_TABPRECO Valor padrão: N (Não Obrigatória)

Telas impactadas​

MóduloCódigoDescrição
Pedido de VendaMPD002Pedidos de venda
Nota Fiscal SaídaMNF002Emissão de NF de saída
OrçamentoMPD018Orçamentos
Ordem de ServiçoMOF001Ordens de serviço
Recap NFMRC020Notas fiscais recap
Pedido de CompraMPD001Pedidos de compra (opções F/U)
NF EntradaMNF001NF de entrada (opções F/U)
Ordem de ProduçãoMRC047Produção

Campos envolvidos​

CampoDescrição
CD_TABPRECOCódigo da tabela de preço vinculada ao item
VL_UNITARIOValor unitário do item
VL_TOTALValor total do item

Opções disponíveis​

T - Obrigatória para Todos os Produtos​

O que fazDetalhe
Exige tabela?SIM, para TODOS os produtos
Pode trocar tabela? (F9)Sim
Pode alterar preço?Sim
RestriçãoSe não informar CD_TABPRECO, bloqueia salvamento com erro

Simulação passo a passo​

  1. Vá em MFA001 → Parâmetros → Ambos → Opção 1 → ST_TABPRECO = "Obrigatória p/ Todos"
  2. Informe a Tabela de Venda padrão (CD_TABPRECO)
  3. Salve os parâmetros (F6)
  4. Abra um Pedido de Venda (MPD002)
  5. Adicione qualquer produto no pedido
  6. Tente salvar sem informar tabela de preço no item → Erro: tabela obrigatória
  7. Informe a tabela → Salva normalmente

Resultado esperado: Todo item DEVE ter uma tabela de preço vinculada, senão o sistema impede o salvamento.


S - Obrigatória para Produtos com Tabela​

O que fazDetalhe
Exige tabela?Condicional - só se o produto tiver preço cadastrado em alguma tabela (ITEMTABPRECO)
Pode trocar tabela? (F9)Sim
Pode alterar preço?Sim
RestriçãoSe o produto TEM preço em tabela mas não foi informado → bloqueia

Simulação passo a passo​

  1. MFA001 → ST_TABPRECO = "Obrigatória p/ Produtos com Tabela"
  2. Salve os parâmetros (F6)
  3. Cadastre um produto A que TEM preço na tabela de venda (TFA006)
  4. Cadastre um produto B que NÃO TEM preço em nenhuma tabela
  5. Abra um Pedido de Venda
  6. Adicione produto A → Sistema exige informar tabela (obrigatório)
  7. Adicione produto B → Sistema NÃO exige tabela (permite sem tabela)

Resultado esperado: Só obriga tabela para produtos que possuem preço cadastrado em alguma tabela de venda.


B - Tabela Bloqueada (Tudo Travado)​

O que fazDetalhe
Campo CD_TABPRECOReadOnly (não edita, não troca)
Campo VL_UNITARIOReadOnly (não altera preço)
Campo VL_TOTALReadOnly (não altera total)
F9 (Pesquisa tabela)BLOQUEADO
Pode alterar algo?Não, nada de preço pode ser mexido

Simulação passo a passo​

  1. MFA001 → ST_TABPRECO = "Tabela Bloqueada"
  2. Salve os parâmetros (F6)
  3. Abra um Pedido de Venda
  4. Adicione um produto
  5. Tente clicar no campo de tabela de preço → Campo fica cinza/bloqueado
  6. Tente clicar no valor unitário → Campo fica cinza/bloqueado
  7. Tente clicar no valor total → Campo fica cinza/bloqueado
  8. Tente pressionar F9 na tabela → Pesquisa não abre

Resultado esperado: Nenhum campo de preço pode ser alterado. O preço vem automático da tabela e fica travado.

Exceção: Usuários com permissão de autorizador (St_AlteraPreco = True) desbloqueiam tudo.


F - Preço Última Nota Fiscal da Pessoa​

O que fazDetalhe
Origem do preçoBusca o preço da última NF de venda para aquele cliente específico
Query executadaSELECT FIRST 1 VL_UNITARIO FROM NOTA/ITEMNOTA WHERE CD_PESSOA=[CLIENTE] AND CD_ITEM=[ITEM] ORDER BY DT_EMISSAO DESC
Pode trocar tabela?Sim
Pode alterar preço?Sim
Módulos de venda (MPD002, MNF002, etc.)Busca TP_NOTA = 'S' (saída)
Módulos de compra (MPD001, MNF001)Busca TP_NOTA = 'E' (entrada)

Simulação passo a passo​

  1. MFA001 → ST_TABPRECO = "Preço Última NF Pessoa"
  2. Salve os parâmetros (F6)
  3. Certifique-se que o cliente X já comprou o produto Y antes (tem NF emitida)
  4. Abra um Pedido de Venda para o cliente X
  5. Adicione o produto Y
  6. O valor unitário vem automático como o preço da última NF vendida para este cliente

Resultado esperado: Se o cliente já comprou este produto, o preço volta automaticamente. Se nunca comprou, cai na lógica padrão de tabela.


U - Preço Última Nota Fiscal (Geral)​

O que fazDetalhe
Origem do preçoBusca o preço da última NF de venda para QUALQUER cliente
Query executadaSELECT FIRST 1 VL_UNITARIO FROM NOTA/ITEMNOTA WHERE CD_ITEM=[ITEM] ORDER BY DT_EMISSAO DESC
Diferença de 'F'Não filtra por cliente, pega o último preço vendido no geral
Pode trocar tabela?Sim
Pode alterar preço?Sim

Simulação passo a passo​

  1. MFA001 → ST_TABPRECO = "Preço Última NF"
  2. Salve os parâmetros (F6)
  3. Certifique-se que o produto Y já foi vendido para alguém
  4. Abra um Pedido de Venda para qualquer cliente
  5. Adicione o produto Y
  6. O valor vem do último preço praticado para este produto, independente de quem comprou

Resultado esperado: O preço sugerido é sempre o último preço que este produto foi vendido, para qualquer cliente.


N - Não Obrigatória (Livre)​

O que fazDetalhe
Exige tabela?Não
Pode trocar tabela?Sim
Pode alterar preço?Sim
Auto-atribuição de tabelaPULADA - o sistema não tenta preencher tabela automaticamente

Simulação passo a passo​

  1. MFA001 → ST_TABPRECO = "Não Obrigatória"
  2. Salve os parâmetros (F6)
  3. Abra um Pedido de Venda
  4. Adicione um produto
  5. Não informe nenhuma tabela → Salva normalmente
  6. Informe uma tabela → Salva normalmente
  7. Digite qualquer preço → Salva normalmente

Resultado esperado: Total liberdade. Não exige tabela, não sugere preço, deixa o usuário colocar o que quiser.

Este é o valor padrão ao criar um novo registro no MFA001.


V - Valor Unitário Bloqueado / Tabela Liberada​

O que fazDetalhe
Campo CD_TABPRECOEditável (pode trocar a tabela via F9)
Campo VL_UNITARIOReadOnly (preço vem da tabela, não edita)
Campo VL_TOTALReadOnly (calculado automático)
Exige tabela?Sim (como se fosse 'T')
PromoçãoNão bloqueia desconto promocional (exceção especial no MNF002)

Simulação passo a passo​

  1. MFA001 → ST_TABPRECO = "Valor Unit. Bloqueado/Tabela Liberada"
  2. Salve os parâmetros (F6)
  3. Abra um Pedido de Venda
  4. Adicione um produto
  5. Pressione F9 no campo de tabela → Abre pesquisa, pode trocar a tabela
  6. Ao trocar a tabela → O preço atualiza automaticamente conforme a nova tabela
  7. Tente clicar no valor unitário → Campo fica bloqueado
  8. Tente digitar um preço → Não consegue

Resultado esperado: Pode escolher QUAL tabela usar, mas NÃO pode digitar preço manualmente. O preço sempre vem da tabela selecionada.


L - Tabela Bloqueada / Valor Acima Liberado​

O que fazDetalhe
Campo CD_TABPRECOReadOnly (não troca tabela)
Campo VL_UNITARIOEditável (pode digitar preço)
F9 tabelaBLOQUEADO
Restrição de preçoPreço digitado deve ser ≥ (maior ou igual) ao preço da tabela
Se preço < tabelaErro: bloqueia salvamento

Simulação passo a passo​

  1. MFA001 → ST_TABPRECO = "Tab. Bloqueada e Valor Acima Liberado"
  2. Salve os parâmetros (F6)
  3. Suponha produto X com preço R$ 10,00 na tabela
  4. Abra um Pedido de Venda
  5. Adicione o produto X → Tabela vem preenchida automaticamente
  6. Tente trocar a tabela (F9) → Bloqueado, campo fica cinza
  7. Tente digitar preço R$ 15,00 → Permitido (15 ≥ 10)
  8. Tente digitar preço R$ 8,00 → ERRO: Valor unitário não pode ser menor que o preço da tabela

Resultado esperado: Pode vender mais caro que a tabela, mas nunca mais barato. A tabela fica fixa e não pode ser trocada.


A - Tabela Liberada / Valor Acima Liberado​

O que fazDetalhe
Campo CD_TABPRECOEditável (pode trocar tabela)
Campo VL_UNITARIOEditável (pode digitar preço)
F9 tabelaLiberado
Restrição de preçoPreço digitado deve ser ≥ (maior ou igual) ao preço da tabela
Se preço < tabelaErro: bloqueia salvamento

Simulação passo a passo​

  1. MFA001 → ST_TABPRECO = "Tab. Liberada e Valor Acima Liberado"
  2. Salve os parâmetros (F6)
  3. Suponha produto X com preço R$ 10,00 na tabela padrão
  4. Abra um Pedido de Venda
  5. Adicione o produto X → Tabela vem preenchida automaticamente
  6. Troque a tabela (F9) → Permitido, pode selecionar outra tabela
  7. Digite preço R$ 15,00 → Permitido (15 ≥ 10)
  8. Digite preço R$ 8,00 → ERRO: Valor não pode ser menor que preço da tabela

Resultado esperado: Pode trocar tabela E digitar preço, mas nunca permite vender abaixo do preço tabelado.


Regra Geral de Autorização​

Todos os bloqueios (opções B, V, L) podem ser ignorados se o usuário logado tiver permissão de autorizador com St_AlteraPreco = True. Nesse caso, todos os campos ficam editáveis independente do parâmetro configurado.


Tabela Comparativa Resumida​

OpçãoDescriçãoTabela editável?Preço editável?Exige tabela?Pode vender abaixo da tabela?
TObrigatória p/ TodosSimSimSim (sempre)Sim
SObrigatória p/ Produtos com TabelaSimSimSim (se tem preço)Sim
BTabela BloqueadaNãoNão--
FÚltima NF da PessoaSimSimNãoSim
UÚltima NF (Geral)SimSimNãoSim
NNão ObrigatóriaSimSimNãoSim
VValor Bloq. / Tabela LiberadaSimNãoSim-
LTabela Bloq. / Valor Acima LiberadoNãoSim-Não
ATabela Liberada / Valor Acima LiberadoSimSim-Não