Pular para o conteúdo principal

Parâmetro de Moeda Estrangeira

Tela de configuração: MFA001 - Parâmetros de Faturamento Localização: Parâmetros → Faturamento → Opção 1 → rótulo "Moeda Estrangeira" Tabela: PARMFATUR.ST_MOEDA Valor padrão: N (Não)

Telas impactadas​

MóduloCódigoDescrição
Confirmação do Pedido (PDV/Pré‑Venda)MNF017Diálogo de confirmação/finalização de pedido onde é exibido o grid de moedas estrangeiras

O parâmetro PARMFATUR.ST_MOEDA é lido apenas pelo módulo MNF017 (Confirmação de Pedido / PDV). Nas demais telas de configuração ele é somente persistido (SELECT/UPDATE em PARMFATUR). Não há uso em stored procedures/views (procura em Scripts/ retornou zero ocorrências).

Observação: existe um parâmetro homônimo em PARMREST.ST_MOEDA (tela MRE001) e um campo em EMPRESA.ST_MOEDA_QUEBRA usado pelo relatório RPD007. Esses não são este parâmetro — a documentação abaixo refere‑se exclusivamente a PARMFATUR.ST_MOEDA.

Campos envolvidos​

CampoDescrição
PARMFATUR.ST_MOEDAFlag 'S'/'N' — habilita o recebimento em moeda estrangeira no MNF017
tabMoeda (query FD)Dataset que lista moedas de MOEDA + cotação de COTACAOMOEDA (UdmMNF017.dfm:880-970)
tabCABECALHO.VL_RECEBIDOValor total recebido — quando ST_MOEDA='N' ignora a validação cruzada com a grid de moedas
tabMoeda.VL_RECEBIDOMOEDAValor recebido em cada moeda estrangeira (só editável com ST_MOEDA='S')
tabMoeda.VL_MOEDACotação da moeda (COTACAOMOEDA.VL_MOEDA) usada para converter para reais
tabMoeda.VL_TROCOREALTroco em reais calculado a partir do recebimento em moeda estrangeira

Opções disponíveis​

S - Sim​

O que fazDetalhe
Exibe o gridMoeda no MNF017?Sim — o grid de moedas estrangeiras fica visível no diálogo de confirmação de pedido
Permite informar valor recebido em moeda estrangeira?Sim — o operador preenche VL_RECEBIDOMOEDA por moeda, que é convertido via VL_MOEDA (cotação) para reais em VL_TROCOREAL
Validação de Valor Recebido < Valor LíquidoExecutada (bloco em tabCABECALHOVL_RECEBIDOValidate, UdmMNF017.pas:2420-2437) — porém o Raise está comentado, apenas entra no fluxo
Layout do formulárioPadrão (altura/posicionamento originais de botões e campos)

Simulação passo a passo​

  1. Vá em MFA001 → Parâmetros → Faturamento → Opção 1 → "Moeda Estrangeira" = Sim.
  2. Salve os parâmetros (F6).
  3. Abra o PDV / Confirmação de Pedido (MNF017) e confirme um pedido.
  4. No diálogo de finalização, observe que o grid de moedas (gridMoeda) aparece listando as moedas cadastradas em MOEDA com cotação corrente (COTACAOMOEDA.VL_MOEDA).
  5. Digite, por exemplo, um valor em Dólar no campo VL_RECEBIDOMOEDA da linha da moeda → o sistema recalcula VL_RECEBIDO (em reais) e VL_TROCOREAL usando a cotação (UdmMNF017.pas:2439-2459).
  6. Confirme o recebimento.

Resultado esperado: o operador pode receber valores em moedas estrangeiras além do real; o sistema converte pelo VL_MOEDA cadastrado em COTACAOMOEDA para a data atual e compõe o VL_RECEBIDO total.


N - Não​

O que fazDetalhe
Exibe o gridMoeda no MNF017?Não — gridMoeda.visible := false (uMNF017ConfPedido.pas:730)
Ajusta o layout do formulárioSim — reposiciona botões/campos e reduz a altura do formulário para 550 (vide uMNF017ConfPedido.pas:731-752)
Permite informar moeda estrangeira?Não — o grid e os campos relacionados ficam ocultos
Validação de Valor Recebido < Valor LíquidoDesliga o bloco específico — em tabCABECALHOVL_RECEBIDOValidate o if compara com 'S'; como está 'N', não entra no ramo (UdmMNF017.pas:2424)

Este é o valor padrão ao criar um novo registro no MFA001 (UdmMFA001.pas:471).

Simulação passo a passo​

  1. Vá em MFA001 → Parâmetros → Faturamento → Opção 1 → "Moeda Estrangeira" = Não.
  2. Salve os parâmetros (F6).
  3. Abra o PDV / Confirmação de Pedido (MNF017) e confirme um pedido.
  4. No diálogo de finalização observe que não há grid de moedas; os botões Confirma/Cancela/Pedido aparecem deslocados e a janela fica mais compacta (altura 550).
  5. Informe o valor recebido em reais no campo VL_RECEBIDO e confirme.

Resultado esperado: o recebimento é feito apenas em real; a tela de confirmação não exibe a área de moedas estrangeiras.


Tabela Comparativa Resumida​

OpçãogridMoeda visível?Permite receber em moeda estrangeira?Altera layout (altura/top dos botões)?Validação VL_RECEBIDO < VL_LIQUIDO ativa?
SSimSimNão (padrão)Sim (bloco entra; Raise está comentado)
NNãoNãoSim (compacta p/ 550)Não

Referências no Código Fonte​

Definição (tela de configuração MFA001)​

ArquivoLinhaTrecho
source/MFA001/UMFA001.dfm2362‑2376TLabel lbl46.Caption = 'Moeda Estrangeira'; FocusControl = cmbST_MOEDA
source/MFA001/UMFA001.dfm3042‑3068object cmbST_MOEDA: TwwDBComboBox ... DataField = 'ST_MOEDA' + Items.Strings = ('Sim'#9'S' / 'Não'#9'N')
source/MFA001/UMFA001.pas236cmbST_MOEDA: TwwDBComboBox;
source/MFA001/UdmMFA001.pas114tabPARMFATURST_MOEDA: TStringField;
source/MFA001/UdmMFA001.pas471tabPARMFATURST_MOEDA.AsString := 'N'; (valor padrão no AfterInsert)
source/MFA001/UdmMFA001.dfm57, 1023‑1024, 2366, 2714, 2937SELECT/UPDATE/INSERT de PARMFATUR.ST_MOEDA

Uso (consome o parâmetro)​

ArquivoLinhaTrecho
source/MNF017/UMNF017.pas162SELECT inclui P.ST_MOEDA (P = PARMFATUR)
source/MNF017/UMNF017.pas191dmMNF017.iST_MOEDA := Resultado[17]; (leitura do parâmetro)
source/MNF017/UdmMNF017.pas281Declaração da variável iST_MOEDA: string em TdmMNF017
source/MNF017/UdmMNF017.pas2420‑2437tabCABECALHOVL_RECEBIDOValidate — se iST_MOEDA <> 'S' ignora bloco de comparação
source/MNF017/uMNF017ConfPedido.pas728‑752if (dmMNF017.iST_MOEDA = 'N') then begin gridMoeda.visible := false; ... Height := 550; end

Outras telas que apenas persistem PARMFATUR.ST_MOEDA (não consomem)​

ArquivoLinhaObservação
source/CPD009/UdmCPD009.dfm307, 372, 460, 510SELECT/INSERT/UPDATE de PARMFATUR.ST_MOEDA (clonagem/replicação de parâmetros)
source/RCA006/UdmRCA006.dfm3056, 3121, 3209, 3259SELECT/INSERT/UPDATE de PARMFATUR.ST_MOEDA (clonagem/replicação de parâmetros)

Homônimos (NÃO são este parâmetro)​

ArquivoLinhaObservação
source/MRE001/UdmMRE001.* e source/MRE001/UMRE001.*59, 446‑447, 652, 687, 745, 773 / 104, 122, 161 / 1421, 1956, 1965Refere‑se a PARMREST.ST_MOEDA (Parâmetros do Restaurante — MRE001), não PARMFATUR
source/RPD007/UdmRPD007.* e source/RPD007/URPD007.*160, 385‑386 / 152 / 2425 / 879Refere‑se a EMPRESA.ST_MOEDA_QUEBRA (quebra de relatório por moeda no RPD007), não PARMFATUR

Procedures / Views​

Não foram encontradas referências a ST_MOEDA (PARMFATUR) em Scripts/ — o parâmetro é 100% lado‑cliente (Delphi).