Pular para o conteúdo principal

Solicita Fator na Duplicação / Impressão de Pedido

Tela de configuração: MFA001 - Parâmetros de Faturamento Localização: Parâmetros → Pedidos → Opção 2 → Duplicação de Pedido [MPD002] Label na tela: Solicita Fator Tabela: PARMFATUR.ST_SOLICITAFATOR Valor padrão: N (Não - não solicita fator)

Resumo​

Quando ativado, o sistema abre uma janela modal solicitando um fator (valor absoluto ou percentual) que é aplicado ao preço unitário e descontos dos itens em três cenários distintos:

  1. Duplicação de Pedido (MPD002) - aplica o fator ao copiar os itens do pedido origem para o pedido destino.
  2. Impressão do Pedido (LPD128) - gera uma segunda via do pedido com preços recalculados pelo fator (layout LPD128_F).
  3. Impressão do Orçamento (LOR044) - gera o orçamento com preços recalculados pelo fator (layout <LAYOUT>_F).

Também é consultado em TFA077 (Formação de Preço de Venda) para decidir se o PC_FATORGERAL é tratado como valor ou percentual na procedure CALCULA_IMPOSTOPEDIDOLPD128.

Telas impactadas​

MóduloCódigoPapel
Duplicação de Pedido de VendaMPD002Solicita fator ao duplicar pedido e aplica em VL_UNITARIO, VL_DESCONTO e VL_TOTAL dos itens
Formulário Fator PedidoUMPD002FrmFator.pasTela modal que troca rótulo e DataField entre VL_FATOR e PC_FATOR
Layout PedidoLPD128Solicita fator na impressão; usa tabPEDIDOFATOR e layout alternativo LPD128_F
Formulário Fator LayoutUfrmFATOR.pasTela modal usada pelo LPD128
Layout OrçamentoLOR044Solicita fator na impressão do orçamento; usa layout <LAYOUT>_F
Formulário Fator OrçamentoUfrmFATOR_ORCAMENTO.pasTela modal usada pelo LOR044
Formação de Preço de VendaTFA077Usa o valor para decidir se PC_FATORGERAL é passado como valor (V) ou percentual (P) para CALCULA_IMPOSTOPEDIDOLPD128

Campos envolvidos​

CampoDescrição
PEDIDO.VL_FATORValor absoluto do fator informado (usado quando opção = 'V')
PEDIDO.PC_FATORPercentual do fator informado (usado quando opção = 'P')
ITEMPEDIDO.VL_UNITARIOValor unitário ajustado pelo fator
ITEMPEDIDO.VL_DESCONTODesconto ajustado pelo fator
ITEMPEDIDO.VL_TOTALTotal recalculado com base no novo unitário
FORMACAOPRECOVENDA.PC_FATORGERALPercentual geral passado à procedure de cálculo em TFA077

Procedures impactadas​

ProcedureUso
CALCULA_IMPOSTOPEDIDOLPD128Recebe dois parâmetros: VL_FATOR e PC_FATOR. Em TFA077, quando ST_SOLICITAFATOR = 'V' envia NULL, PC_FATORGERAL (como valor); caso contrário envia PC_FATORGERAL, NULL (como percentual).

Opções disponíveis​

V - Sim (Valor)​

O que fazDetalhe
Solicita fator?SIM
Tipo de fatorValor absoluto (divisor)
Campo alimentadoPEDIDO.VL_FATOR
Label da janela modalInforme o Valor Do Fator
Cálculo aplicado no MPD002VL_UNITARIO_NOVO = RoundTo(VL_UNITARIO / VL_FATOR, -2)
Layout de impressãoLPD128_F / <LAYOUT>_F

Simulação passo a passo (Duplicação - MPD002)​

  1. Em MFA001 → Parâmetros → Pedidos → Opção 2 → Solicita Fator = "Sim (Valor)".
  2. Salve os parâmetros (F6).
  3. Acesse MPD002 e duplique um pedido existente que possua itens (por exemplo, pedido com VL_UNITARIO = 100,00 e VL_DESCONTO = 10,00).
  4. Após confirmar a duplicação, aparece a janela modal "Informe o Valor Do Fator" com o campo vinculado a VL_FATOR.
  5. Informe, por exemplo, VL_FATOR = 2 e confirme (F3 / OK).
  6. O sistema percorre cada item do novo pedido e atualiza:
    • VL_UNITARIO = 100 / 2 = 50,00
    • VL_DESCONTO = 10 / 2 = 5,00 (ou valor ajustado se desconto = total)
    • VL_TOTAL = VL_UNITARIO * QT_PEDIDO

Resultado esperado: Todos os itens do pedido duplicado ficam com preço dividido pelo fator informado. O campo PEDIDO.VL_FATOR fica preenchido com 2 e PEDIDO.PC_FATOR permanece nulo.

Simulação passo a passo (Impressão - LPD128)​

  1. Parâmetro configurado como "Sim (Valor)".
  2. Imprima um pedido via LPD128 (confirma mensagem C-1363).
  3. Surge a janela modal "Informe o Valor Do Fator".
  4. Informe o valor e confirme; o layout impresso passa a ser LPD128_F, que utiliza a query tabPEDIDOFATOR parametrizada com V_VL_FATOR.
  5. Se cancelar a janela (temfator = False), cai no layout padrão LPD128.

Resultado esperado: A segunda via do pedido é impressa com preços recalculados; a primeira via (sem fator) continua inalterada no banco.


P - Sim (Percentual)​

O que fazDetalhe
Solicita fator?SIM
Tipo de fatorPercentual
Campo alimentadoPEDIDO.PC_FATOR
Label da janela modalInforme o % Do Fator
Cálculo aplicado no MPD002Usa PEDIDO.PC_FATOR para recalcular VL_UNITARIO, VL_DESCONTO e VL_TOTAL
Layout de impressãoLPD128_F / <LAYOUT>_F (mesmo layout alternativo da opção V)

Simulação passo a passo (Duplicação - MPD002)​

  1. Em MFA001 → Parâmetros → Pedidos → Opção 2 → Solicita Fator = "Sim (Percentual)".
  2. Salve os parâmetros (F6).
  3. Em MPD002, duplique um pedido.
  4. Aparece a janela modal "Informe o % Do Fator" (campo vinculado a PC_FATOR).
  5. Informe, por exemplo, PC_FATOR = 10 e confirme.
  6. O sistema aplica o percentual em todos os itens do pedido duplicado (campo PEDIDO.PC_FATOR é preenchido e PEDIDO.VL_FATOR permanece nulo).

Resultado esperado: Todos os itens do pedido duplicado têm seus valores recalculados em função do percentual informado.

Simulação passo a passo (Impressão de Orçamento - LOR044)​

  1. Parâmetro configurado como "Sim (Percentual)".
  2. No MPD002 acione a impressão do orçamento (layout LOR044); confirma a mensagem C-1385 e depois C-1363.
  3. Surge a janela modal "Informe o % Do Fator".
  4. Ao confirmar, é utilizada a query tabPEDIDOFATOR e o layout <LAYOUT>_F.
  5. Ao cancelar, cai no layout padrão sem fator.

Resultado esperado: Orçamento impresso com preços recalculados pelo percentual informado.


N - Não​

O que fazDetalhe
Solicita fator?NÃO
Janela modalNão aparece
Cálculo no MPD002Itens são duplicados com os valores originais, sem qualquer recalculo
Layout LPD128Sempre usa o layout padrão LPD128 (sem sufixo _F)
Layout LOR044Sempre usa o layout padrão <LAYOUT> (sem sufixo _F)
TFA077PC_FATORGERAL é passado como percentual (PC_FATORGERAL, NULL) à procedure CALCULA_IMPOSTOPEDIDOLPD128

Simulação passo a passo​

  1. Em MFA001 → Solicita Fator = "Não".
  2. Salve os parâmetros (F6).
  3. Em MPD002, duplique um pedido → nenhuma janela é aberta, os itens são copiados com valores originais.
  4. Imprima o pedido via LPD128 → saída usa o layout LPD128 padrão.
  5. Imprima o orçamento via LOR044 → saída usa o layout padrão.

Resultado esperado: Duplicação e impressão funcionam de modo transparente, sem aplicação de fator. Este é o valor padrão ao criar um novo registro no MFA001.


Tabela Comparativa Resumida​

OpçãoPergunta fator?Campo usadoLabel modalLayout LPD128 / LOR044TFA077 passa p/ procedure
VSimVL_FATORInforme o Valor Do Fator<LAYOUT>_FNULL, PC_FATORGERAL (como valor)
PSimPC_FATORInforme o % Do Fator<LAYOUT>_FPC_FATORGERAL, NULL (como percentual)
NNão--<LAYOUT> padrãoPC_FATORGERAL, NULL (como percentual)

Referências no Código Fonte​

Configuração (MFA001)​

ArquivoLinhaTrecho
source/MFA001/UMFA001.dfm9523-9534Label Solicita Fator
source/MFA001/UMFA001.dfm9788-9815ComboBox cmbST_SOLICITAFATOR com Items.Strings = ('Sim (Valor)'#9'V', 'Sim (Percentual)'#9'P', 'Não'#9'N')
source/MFA001/UdmMFA001.dfm1474-1475TStringField tabPARMFATURST_SOLICITAFATOR
source/MFA001/UdmMFA001.dfm207, 2402, 2569, 2795, 3087SELECT, INSERT e UPDATE da PARMFATUR
source/MFA001/UdmMFA001.pas516Valor padrão no AfterInsert: tabPARMFATURST_SOLICITAFATOR.AsString := 'N';

Duplicação de Pedido (MPD002)​

ArquivoLinhaTrecho
source/MPD002/UdmMPD002.pas5756SELECT ... P.ST_SOLICITAFATOR ... FROM PARMFATUR populando ParmFatur
source/MPD002/UMPD002.pas5809if (ParmFatur.Values['ST_SOLICITAFATOR'] <> 'N') then - abre TfrmMPD002Fator
source/MPD002/UMPD002.pas5833, 5867Dois branches de cálculo: usando VL_FATOR (opção V) e usando PC_FATOR (opção P)
source/MPD002/UMPD002FrmFator.pas95-103FormCreate troca rótulo e DataField entre VL_FATOR (opção V) e PC_FATOR (demais)

Impressão do Pedido (LPD128)​

ArquivoLinhaTrecho
source/LPD128/ULPD128.pas34iST_SOLICITAFATOR: string; - variável global do BPL
source/LPD128/ULPD128.pas146-153SELECT ST_SOLICITAFATOR FROM PARMFATUR; se <> 'N', cria TfrmFator
source/LPD128/ULPD128.pas185-209Se usuário confirmou o fator, usa layout LPD128_F e query tabPEDIDOFATOR; senão usa LPD128 padrão
source/LPD128/UfrmFATOR.pas41-45, 59FormCreate e validações trocam rótulo/DataField conforme iST_SOLICITAFATOR = 'V'

Impressão do Orçamento (LOR044)​

ArquivoLinhaTrecho
source/LOR044/ULOR044.pas150iST_SOLICITAFATOR: String; - variável global do BPL
source/LOR044/ULOR044.pas246-253SELECT ST_SOLICITAFATOR; se <> 'N' e C-1363, cria TfrmFATOR_ORCAMENTO
source/LOR044/ULOR044.pas273-298Usa layout <LAYOUT>_F quando há fator, senão layout padrão
source/LOR044/UfrmFATOR_ORCAMENTO.pas41-45, 59FormCreate e validações trocam rótulo/DataField conforme iST_SOLICITAFATOR = 'V'

Formação de Preço de Venda (TFA077)​

ArquivoLinhaTrecho
source/TFA077/UTFA077.pas2650-2663Lê ST_SOLICITAFATOR: se 'V' passa NULL, PC_FATORGERAL; caso contrário, PC_FATORGERAL, NULL à procedure CALCULA_IMPOSTOPEDIDOLPD128