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ódulo | Código | Descrição |
|---|
| Confirmação do Pedido (PDV/Pré‑Venda) | MNF017 | Diá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
| Campo | Descrição |
|---|
PARMFATUR.ST_MOEDA | Flag '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_RECEBIDO | Valor total recebido — quando ST_MOEDA='N' ignora a validação cruzada com a grid de moedas |
tabMoeda.VL_RECEBIDOMOEDA | Valor recebido em cada moeda estrangeira (só editável com ST_MOEDA='S') |
tabMoeda.VL_MOEDA | Cotação da moeda (COTACAOMOEDA.VL_MOEDA) usada para converter para reais |
tabMoeda.VL_TROCOREAL | Troco em reais calculado a partir do recebimento em moeda estrangeira |
Opções disponíveis
S - Sim
| O que faz | Detalhe |
|---|
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íquido | Executada (bloco em tabCABECALHOVL_RECEBIDOValidate, UdmMNF017.pas:2420-2437) — porém o Raise está comentado, apenas entra no fluxo |
| Layout do formulário | Padrão (altura/posicionamento originais de botões e campos) |
Simulação passo a passo
- Vá em MFA001 → Parâmetros → Faturamento → Opção 1 → "Moeda Estrangeira" = Sim.
- Salve os parâmetros (F6).
- Abra o PDV / Confirmação de Pedido (MNF017) e confirme um pedido.
- 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).
- 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).
- 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 faz | Detalhe |
|---|
Exibe o gridMoeda no MNF017? | Não — gridMoeda.visible := false (uMNF017ConfPedido.pas:730) |
| Ajusta o layout do formulário | Sim — 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íquido | Desliga 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
- Vá em MFA001 → Parâmetros → Faturamento → Opção 1 → "Moeda Estrangeira" = Não.
- Salve os parâmetros (F6).
- Abra o PDV / Confirmação de Pedido (MNF017) e confirme um pedido.
- 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).
- 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ção | gridMoeda visível? | Permite receber em moeda estrangeira? | Altera layout (altura/top dos botões)? | Validação VL_RECEBIDO < VL_LIQUIDO ativa? |
|---|
| S | Sim | Sim | Não (padrão) | Sim (bloco entra; Raise está comentado) |
| N | Não | Não | Sim (compacta p/ 550) | Não |
Referências no Código Fonte
Definição (tela de configuração MFA001)
| Arquivo | Linha | Trecho |
|---|
source/MFA001/UMFA001.dfm | 2362‑2376 | TLabel lbl46.Caption = 'Moeda Estrangeira'; FocusControl = cmbST_MOEDA |
source/MFA001/UMFA001.dfm | 3042‑3068 | object cmbST_MOEDA: TwwDBComboBox ... DataField = 'ST_MOEDA' + Items.Strings = ('Sim'#9'S' / 'Não'#9'N') |
source/MFA001/UMFA001.pas | 236 | cmbST_MOEDA: TwwDBComboBox; |
source/MFA001/UdmMFA001.pas | 114 | tabPARMFATURST_MOEDA: TStringField; |
source/MFA001/UdmMFA001.pas | 471 | tabPARMFATURST_MOEDA.AsString := 'N'; (valor padrão no AfterInsert) |
source/MFA001/UdmMFA001.dfm | 57, 1023‑1024, 2366, 2714, 2937 | SELECT/UPDATE/INSERT de PARMFATUR.ST_MOEDA |
Uso (consome o parâmetro)
| Arquivo | Linha | Trecho |
|---|
source/MNF017/UMNF017.pas | 162 | SELECT inclui P.ST_MOEDA (P = PARMFATUR) |
source/MNF017/UMNF017.pas | 191 | dmMNF017.iST_MOEDA := Resultado[17]; (leitura do parâmetro) |
source/MNF017/UdmMNF017.pas | 281 | Declaração da variável iST_MOEDA: string em TdmMNF017 |
source/MNF017/UdmMNF017.pas | 2420‑2437 | tabCABECALHOVL_RECEBIDOValidate — se iST_MOEDA <> 'S' ignora bloco de comparação |
source/MNF017/uMNF017ConfPedido.pas | 728‑752 | if (dmMNF017.iST_MOEDA = 'N') then begin gridMoeda.visible := false; ... Height := 550; end |
Outras telas que apenas persistem PARMFATUR.ST_MOEDA (não consomem)
| Arquivo | Linha | Observação |
|---|
source/CPD009/UdmCPD009.dfm | 307, 372, 460, 510 | SELECT/INSERT/UPDATE de PARMFATUR.ST_MOEDA (clonagem/replicação de parâmetros) |
source/RCA006/UdmRCA006.dfm | 3056, 3121, 3209, 3259 | SELECT/INSERT/UPDATE de PARMFATUR.ST_MOEDA (clonagem/replicação de parâmetros) |
Homônimos (NÃO são este parâmetro)
| Arquivo | Linha | Observação |
|---|
source/MRE001/UdmMRE001.* e source/MRE001/UMRE001.* | 59, 446‑447, 652, 687, 745, 773 / 104, 122, 161 / 1421, 1956, 1965 | Refere‑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 / 879 | Refere‑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).