FJFrigo · Lançamentos › 1-Moedas (Câmbio) · 21

Moedas (Câmbio)

A cotação diária de cada moeda — o câmbio que os lançamentos usam, o contábil de compra e venda, o de desconto e o IFRS —, a reescrita do câmbio dos lançamentos do dia, a autorização contábil e a importação por planilha. Cada regra traz a mensagem exata, quando dispara, onde conferir e o confronto com o sistema antigo.

Tabela: moeda_valores (chave moeda + data) Usada por: todo lançamento em moeda estrangeira Programa antigo: menu21.prg · ceif: MoedaCambioGrid / MoedaCambioImportDialog

🇵🇾 Versión en español: validacoes-cotacao-moedas-21-es.html

Bloqueia

Não grava. statuscode 400 com a frase abaixo, que a tela mostra como está.

Aviso

Passa, mas com um comportamento que surpreende quem está conferindo — ou é conferido só na tela.

Português ou espanhol

O servidor devolve a frase do sistema antigo, e várias eram em espanhol lá. Não é tradução faltando.

A

Ao gravar

Na ordem em que o servidor confere
Bloqueia

Campo [Moeda] em Branco !

QuandoSem moeda. Se a requisição chega sem o campo, a frase vem com o prefixo do campo: "idMoeda: Campo [Moeda] em Branco !" — a tela já exige.

Sistema antigoA mesma frase (:649).

Todos
Bloqueia

Campo [Data] em Branco !

QuandoSem data (sem o campo: "data: Campo [Data] em Branco !").

Sistema antigoA mesma frase (:654).

Todos
Bloqueia

Campo [Valor] em Branco !

QuandoO câmbio (Valor) é zero ou vazio e o grupo do usuário não é da contabilidade. A mensagem diz "em branco" e dispara também com zero. Nova em 11/09/2026.

Sistema antigoA mesma frase (:659).

PermissãoTipo de grupo CON ou GCO grava sem valor — a contabilidade lança só o câmbio contábil.

Todos
Aviso

(sem mensagem) — câmbio de desconto vazio recebe o próprio valor

QuandoO câmbio de desconto chega zero ou vazio: o servidor grava nele o valor da cotação, para todo grupo. Desde 12/09/2026 — até então era recusado com "Campo [Cambio Desconto] em Branco !", menos em filial com HOTEL na razão social.

Sistema antigoA recusa foi comentada (:674) e o preenchimento entrou logo abaixo (:680).

Todos
Bloqueia

Ano da data Incorreto !

QuandoA data é anterior a 2000 ou posterior a 2050. Conferida junto com o mês fechado, nos mesmos casos. Nova em 11/09/2026.

Sistema antigoO validaData (funcoes.prg:225).

Todos
Bloqueia

Período já fechado: a data precisa ser posterior a 2026-07-01.

QuandoA data é igual ou anterior à U.D.F. da filial. Na inclusão, sempre; na alteração, só fora do Brasil e para quem não é da contabilidade (é a precedência do .AND. sobre o .OR. no sistema antigo, :669). Nova em 11/09/2026.

Conferirparametros.udf (a U.D.F. geral da filial — Manutenção › Data de Fechamento (U.D.F.), 421).

Sistema antigo"Essa data já esta fechada !" (validaData, :670).

PermissãoNa alteração, tipo de grupo CON/GCO — ou estar no Brasil — passa.

Todos
Bloqueia

Não é permitido pular data ! A última cotação desta moeda é de 2022-03-31.

QuandoMoeda de id 112 ou maior e a data nova cai mais de um dia depois da última cotação dela. Lance os dias em sequência. Nova em 11/09/2026.

ConferirA grade, filtrada pela moeda — a última linha é a data da frase.

Sistema antigo"Não é permitido pular data !" (:689), sem a data.

Todos
Bloqueia

Já existe valor de cambio lancado para esta data !

QuandoNa inclusão, a data é a da última cotação da moeda — ou a moeda já tem cotação naquela data. Nova em 11/09/2026.

AtençãoEm central a última cotação da moeda local está em 10/09/2029 (digitada adiante).

Sistema antigoA mesma frase (:696). O porte dizia "Já existe câmbio lançado para esta moeda nesta data."

Todos
Bloqueia

Câmbio compra/venda contábil só se altera com a regra HABILITA_CAMPOS_VALORES_COMPRA_VENDA_MOEDA_CAMBIO (ou no grupo ADM).

QuandoO câmbio compra contábil ou o câmbio venda contábil chegou diferente do gravado (na inclusão, diferente de zero) e o usuário não tem a regra. Na tela os dois campos já nascem cinzas para quem não a tem; a frase só aparece se a requisição vier por fora da tela. Nova em 11/09/2026.

ConferirOs dois campos da janela de incluir/alterar.

Sistema antigoOs dois campos desabilitados sem a regra (:636). O legado ainda trava por grupo no Paraguai (fora de IGNIS) — não portado, por decisão: vale só a regra.

PermissãoRegra HABILITA_CAMPOS_VALORES_COMPRA_VENDA_MOEDA_CAMBIO, grupo do tipo ADM (desde 14/09/2026, menu21.prg:636), ou usuário master.

Todos
B

Depois de gravar — o câmbio dos lançamentos do dia

A cascata do sistema antigo (atualizaLancamentos)
Aviso

Câmbio gravado nos lançamentos do dia: 37 linha(s) reescrita(s).

QuandoGravada a cotação, o câmbio de todo lançamento daquele dia e daquela moeda com o câmbio aberto é reescrito com o valor novo, e a coluna Atualizou vira Sim. Roda quando o câmbio contábil não mudou (na inclusão: compra e venda zeradas) e quem grava não é da contabilidade. É na mesma transação: ou a cotação e a reescrita ficam, ou nada. Nova em 11/09/2026.

ConferirSão onze passadas, nesta ordem: compra de almoxarifado (câmbio aberto); itens das saídas de almoxarifado; compra de carne (câmbio aberto) e o câmbio do frete dela; venda (câmbio aberto); faturamento de transportadora; títulos (câmbio aberto); baixas dos títulos da moeda (a diferença cambial vai a zero); a diferença cambial de cada baixa, recalculada; lançamentos bancários fora de transferência; frete de carne.

Atenção"Câmbio aberto" é cambio_fechado = 'F'. Lançamento com câmbio fechado não é tocado. Em central só a moeda local tem cotação (valor 1), então ali a reescrita não muda número.

Sistema antigoO mesmo atualizaLancamentos (:862), com a mesma condição (:767).

Todos
Aviso

Cotação gravada. Os lançamentos não foram reescritos (câmbio contábil alterado, ou gravado pela contabilidade).

QuandoA gravação mexeu no câmbio compra/venda contábil, ou o usuário é de grupo CON/GCO. É o "não faz nada, mudança de câmbio contábil" do sistema antigo. Para reescrever depois, use Atualizar lançamentos. Nova em 11/09/2026.

Sistema antigoO mesmo desvio (:767-769).

Todos
C

Autorizar contábil e Atualizar lançamentos

Os dois botões da grade, sobre a linha escolhida
Bloqueia

Usuário não tem permissão [AUTORIZAR_CONTAB_MOEDA_CAMBIO]!

QuandoAutorizar contábil ou Atualizar lançamentos sem a regra e fora do grupo ADM. Na tela os dois botões ficam cinzas para quem não pode. Nova em 11/09/2026; o grupo ADM e o nome da regra na frase entraram em 14/09/2026, com o sistema antigo.

Sistema antigoA mesma frase no "Autorizar" (:460). O "Atualizar lançamentos" é do ceif, que usa a mesma regra.

PermissãoRegra AUTORIZAR_CONTAB_MOEDA_CAMBIO, grupo do tipo ADM, ou usuário master.

Todos
Bloqueia

O câmbio precisa estar autorizado para atualizar os lançamentos.

QuandoAtualizar lançamentos numa cotação com Aut. contáb. = Não. Autorize primeiro. Nova em 11/09/2026.

ConferirA coluna Aut. contáb. da grade.

Sistema antigoNão existe no Harbour: é a trava do ceif (MoedaCambioGrid).

Todos
Bloqueia

Cotação não encontrada.

QuandoA cotação foi excluída (ou alterada) por outra pessoa depois de a grade carregar. Atualize a grade.

Todos
Aviso

Câmbio R$ — 2026-09-10 autorizado.

QuandoGrava aut_contab = 'T'. Só liga: não há como desautorizar pela tela (o ceif alterna; o legado só liga, e vale o legado). Nova em 11/09/2026.

Sistema antigoO mesmo UPDATE (:471).

Todos
D

Importar planilha

O botão "Importar" — o diálogo do ceif
Bloqueia

Usuário não tem permissão [IMPORTAR_PLANILHA_PARA_INSERIR_MOEDA_CAMBIO]!

QuandoLer ou gravar a planilha sem a regra (o grupo ADM não dispensa: só a regra ou o master). O botão só aparece para quem a tem. Nova em 11/09/2026.

Sistema antigoNo Harbour o botão pede só a permissão de incluir da tela (:415); a regra é a do ceif.

PermissãoRegra IMPORTAR_PLANILHA_PARA_INSERIR_MOEDA_CAMBIO, ou usuário master.

Todos
Bloqueia

Arquivo inválido ou vazio.

QuandoO arquivo não é uma planilha que o sistema leia (xls/xlsx), ou não tem nenhuma linha com data e moeda. Linhas sem data ou sem moeda são puladas, como no ceif e no legado. Nova em 11/09/2026.

ConferirLeiaute do ceif: linha 1 de cabeçalho e, da linha 2, Data · Id moeda · Sigla · Valor · Desconto · Compra · Venda · IFR. O modelo antigo (imp_moeda na A1, dados da linha 3, sem a sigla) também é aceito.

Sistema antigo"Arquivo incorreto !" (:1672).

Todos
Bloqueia

Moeda 999 não cadastrada.

QuandoA linha traz um id de moeda (ou, sem id, uma sigla) que não existe no cadastro. Aparece na coluna Situação da prévia, em vermelho, e o Gravar fica desabilitado. Nova em 11/09/2026.

ConferirCadastros › Moedas (12).

Todos
Bloqueia

Moeda e data repetidas na planilha.

QuandoA mesma moeda aparece duas vezes na mesma data. Deixe uma linha. Nova em 11/09/2026.

Todos
Bloqueia

Linha 7: Moeda 999 não cadastrada.

QuandoAo gravar, o servidor confere tudo de novo; havendo uma linha com erro, nada é gravado — a planilha entra inteira ou não entra. Nova em 11/09/2026.

Todos
Aviso

Importação gravada: 20 nova(s), 3 substituída(s).

QuandoCotação que já existia na data é substituída (valores trocados); a nova é incluída. As duas entram autorizadas e com Atualizou = Não: a importação não reescreve lançamento nenhum — para isso, Atualizar lançamentos em cada cotação. Nova em 11/09/2026.

AtençãoA importação não confere mês fechado nem "pular data", como no ceif e no legado.

Sistema antigoO legado só INSERT (uma data repetida derrubava a linha); o ceif substitui e autoriza — vale o ceif.

Todos
E

Ao alterar e ao excluir

O que a tela trava e o que não confere
Aviso

(sem mensagem) — moeda e data não se trocam

QuandoNa alteração os dois campos ficam travados: são a chave da cotação. O servidor usa os do registro aberto, qualquer que seja o valor enviado.

Sistema antigoOs dois campos desabilitados (:627).

Todos
Aviso

(sem mensagem) — excluir apaga a cotação sem conferir uso

QuandoA exclusão é física e não confere se algum lançamento usou aquela cotação — como no sistema antigo (:796).

Todos
F

Permissões

Quem pode passar
OndeQuem passaComo conceder
câmbio compra/venda contábilregra HABILITA_CAMPOS_VALORES_COMPRA_VENDA_MOEDA_CAMBIO, grupo ADM ou masterAcesso dos Grupos (444) ou no usuário
Autorizar contábil · Atualizar lançamentosregra AUTORIZAR_CONTAB_MOEDA_CAMBIO, grupo ADM ou masterAcesso dos Grupos (444) ou no usuário
Importarregra IMPORTAR_PLANILHA_PARA_INSERIR_MOEDA_CAMBIO ou masterAcesso dos Grupos (444) ou no usuário
valor e câmbio de desconto zerados; sem a reescritatipo de grupo CON ou GCOGrupos de Usuário (442)
mês fechado na alteraçãoCON/GCO, ou qualquer um no BrasilGrupos de Usuário (442)

Em central as três regras estão concedidas direto no usuário (sistema CEIF): 20 usuários com HABILITA_CAMPOS_…, 19 com AUTORIZAR_CONTAB_… e 18 com IMPORTAR_PLANILHA_… — nenhuma por grupo — e há 9 usuários master. Quem não as tem vê os campos contábeis cinzas e não vê o botão Importar; é esperado.

G

Como o erro chega na tela

Para o QA reproduzir e reportar

Recusa de regra: HTTP 200 com statuscode 400 e a frase, que a tela mostra no rodapé da janela. Pergunta do servidor: statuscode 409 com o campo a reenviar como true. As mensagens que só a tela confere (marcadas como Aviso, "conferido só na tela") não chegam ao servidor. Erro inesperado traz o código de ocorrência de 8 caracteres — copie-o no chamado.

H

Regras chumbadas no código

Esperadas — não abrir como defeito
O queValor
"pular data" vale paramoedas de id 112 ou maior (a moeda local fica de fora)
faixa de ano aceita2000 a 2050
I

Diferenças e decisões pendentes

O que muda em relação ao sistema antigo
PontoSituação
travas do Paraguaifora de IGNIS, o legado trava o contábil para quem não é CON/GCO/ADM e o valor para CON (:641). Não portado: vale só a regra (decisão do usuário, 11/09/2026)
datas da reescritatoda data comparada como o dia inteiro; o legado compara o frete da compra de carne e a data da baixa com a data pura, e o que foi gravado com hora ficava de fora
diferença cambialcalculada com a cotação inteira; o legado a escreve com STR(), que corta em duas casas
transportadorareescrita uma vez; o legado repete o mesmo UPDATE no fim
Autorizar contábilsó liga, como o legado; o ceif alterna
Atualizar lançamentosdo ceif; aqui liga o Atualizou (o ceif alterna) e exige a mesma regra do Autorizar
importaçãoa do ceif: substitui a cotação do dia e a grava autorizada; o legado só inclui

Nenhuma regra bate com essa busca. Tente um trecho menor da mensagem, ou limpe os filtros.