Replicar Preço dos Produtos por Seção
Tela de configuração: MFA001 - Parâmetros de Faturamento Localização: Parâmetros → Pedidos / O.S. → Opção 1 → Campo "Replicar Preço dos Produtos por Seção [MPD002]" Tabela:
PARMFATUR.TP_REPLICAVALORValor padrão:N(Não)
Telas impactadas
| Módulo | Código | Descrição |
|---|---|---|
| Pedido de Venda | MPD002 | Habilita/oculta a aba "Preço por Seção" e o botão "Replicar Preço" |
Campos envolvidos
| Campo | Descrição |
|---|---|
CD_SECAO | Código da seção do item do pedido (tabela ITEMPEDIDO) |
DS_SECAO | Descrição da seção do item (apresentada somente-leitura na aba) |
CD_TABPRECO | Tabela de preço do item de referência, replicada nos demais itens da mesma seção |
VL_UNITARIO | Valor unitário do item de referência, replicado nos demais itens da mesma seção |
Opções disponíveis
M - Manual
| O que faz | Detalhe |
|---|---|
| Aba "Preço por Seção" no MPD002 | Visível (pgcSecao.TabVisible := True) |
| Botão "Replicar Preço" | Habilitado nessa aba |
| Ação | Usuário escolhe manualmente um item de referência e clica em Replicar Preço para copiar CD_TABPRECO e VL_UNITARIO desse item para todos os itens do pedido que estejam na mesma seção (CD_SECAO) |
| Itens de outras seções | Não são alterados |
Simulação passo a passo
- MFA001 → Ambos → Opção 1 → "Replicar Preço dos Produtos por Seção" =
Manual - Salve os parâmetros (F6)
- Abra um Pedido de Venda (MPD002)
- Adicione vários itens — alguns com a mesma
CD_SECAO(ex.: seção 10) e outros em seções diferentes - Navegue até a aba "Preço por Seção" — ela agora está visível
- Posicione-se em um item da seção 10, ajuste o
VL_UNITARIOe/ouCD_TABPRECO - Clique no botão "Replicar Preço"
- Todos os itens do pedido cuja
CD_SECAO = 10recebem o mesmoVL_UNITARIOeCD_TABPRECOdo item atual - Itens de outras seções permanecem inalterados
Resultado esperado: A aba "Preço por Seção" aparece no MPD002 e o botão "Replicar Preço" propaga preço e tabela do item atual para todos os itens da mesma seção.
N - Não (valor padrão)
| O que faz | Detalhe |
|---|---|
| Aba "Preço por Seção" no MPD002 | Oculta (pgcSecao.TabVisible := False) |
| Botão "Replicar Preço" | Indisponível para o usuário |
| Ação | Nenhuma replicação automática ou manual por seção é oferecida; cada item é editado individualmente |
Simulação passo a passo
- MFA001 → Ambos → Opção 1 → "Replicar Preço dos Produtos por Seção" =
Não - Salve os parâmetros (F6)
- Abra um Pedido de Venda (MPD002)
- Adicione vários itens — mesmo que compartilhem
CD_SECAO - Verifique as abas disponíveis no pedido → não há aba "Preço por Seção"
- Para alterar preços, é necessário editar cada item individualmente
Resultado esperado: A aba "Preço por Seção" não é exibida e não há mecanismo de replicação de preço por seção no pedido.
Este é o valor padrão ao criar um novo registro no MFA001 (
AfterInsertatribui'N').
Tabela Comparativa Resumida
| Opção | Descrição | Aba "Preço por Seção" [MPD002] | Botão "Replicar Preço" | Itens afetados |
|---|---|---|---|---|
| M | Manual | Visível | Disponível | Todos os itens com a mesma CD_SECAO do item atual |
| N | Não (padrão) | Oculta | Indisponível | Nenhum |
Referências no Código Fonte
MFA001 - Tela de configuração
source/MFA001/UMFA001.dfm (linhas 9178-9204) — ComboBox cmbTP_REPLICAPRECO com as opções cadastradas no DFM:
object cmbTP_REPLICAPRECO: TwwDBComboBox
Left = 476
Top = 437
DataField = 'TP_REPLICAVALOR'
DataSource = dmMFA001.dsPARMFATUR
Items.Strings = (
'Manual'#9'M'
'Não'#9'N')
end
Label associado (source/MFA001/UMFA001.dfm linha 8235-8247):
object lbl75: TLabel
Left = 234
Top = 440
Caption = 'Replicar Preço dos Produtos por Seção [MPD002]'
end
source/MFA001/UdmMFA001.pas (linha 568) — valor padrão no AfterInsert:
tabPARMFATURTP_REPLICAVALOR.AsString := 'N';
source/MFA001/UdmMFA001.pas (linha 277) — definição do campo:
tabPARMFATURTP_REPLICAVALOR: TStringField;
source/MFA001/UdmMFA001.dfm — campo incluído nos SELECT/INSERT/UPDATE da tabela PARMFATUR (linhas 292, 1939-1941, 2442, 2614, 2870, 3172).
MPD002 - Pedido de Venda (tela impactada)
source/MPD002/UdmMPD002.pas (linhas 604-607) — lógica que habilita/oculta a aba "Preço por Seção" ao abrir o pedido:
if (parmfatur.values['TP_REPLICAVALOR'] = 'M') then
frmMPD002.pgcSecao.TabVisible := True
else
frmMPD002.pgcSecao.TabVisible := False;
source/MPD002/UdmMPD002.pas (linha 5748) — campo retornado no SELECT de parâmetros do pedido, junto com demais flags (ST_ALTERAPEDIDOBLOQ, ST_SCPC, ST_BLOQUEIADESCPROM, etc.).
source/MPD002/UMPD002.dfm (linhas 2522-2523) — aba controlada pelo parâmetro:
object pgcSecao: TTabSheet
Caption = 'Preço por Seção'
source/MPD002/UMPD002.pas (procedure btnReplicarClick, linhas 7689-7720) — ação do botão "Replicar Preço": percorre tabITEMPEDIDO e, para cada item com a mesma CD_SECAO do item atual, atribui o CD_TABPRECO e o VL_UNITARIO do item de referência.
SQL
Nenhuma referência encontrada em Scripts/ (nenhuma stored procedure utiliza TP_REPLICAVALOR). O parâmetro é consumido exclusivamente pelo código Delphi do MPD002.