Jump to content

dev botao

  • Este tópico foi criado há 322 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Posted

Boa tarde

Gostaria de um auxílio para um erro no cancelamento de NFC-e
Desenvolvemos uma API para emissão de NFC-e utilizando o ACBr e estamos fazendo testes com a SEFAZ MG
Ao executá-la local, todas as operações funcionam perfeitamente (autorizar, inutilizar, cancelar)
Ao executá-la no servidor que está hospedado em outro país o envio e inutilização funcionam, mas o cancelamento não aceita a data hora do evento

<dhEvento>2024-01-26T12:46:59+00:00</dhEvento>

Se eu alterar manualmente este valor para "2024-01-26T09:46:59-03:00" a operação é concluída com sucesso
A alteração manual fiz em "ACBrDFeSSL.pas" no método "TDFeSSLHttpClass.Enviar" dando um Replace no valor apenas para teste

Note que as outras operações, como envio de XML, funcionam perfeitamente quando a API está local ou no servidor

Como posso resolver esta questão?
Desde já agradeço

Posted
11 minutos atrás, Juliomar Marchetti disse:

no caso tem que configurar o UTC senão estiver

Desculpe não entendi sua resposta

O servidor está no timezone 0

O componente é alimentado com o código:

infEvento.dhEvento := now;

Existe algo que precise ser configurado?
Por que outros eventos funcionam como a transmissão de um XML?

Vi em um outro fórum pessoas discutindo que esse era um problema que acontecia somente na SEFAZ MG

Posted

Esta é a única solução?

Não existe uma configuração no ACBr que ajuste a data/hora de acordo com um time zone específico?

Reparei que a propriedade "ACBrNFe.Configuracoes.WebServices.TimeZoneConf.ModoDeteccao" altera o time zone mas não ajusta a hora conforme o time zone especificado, ou seja, a hora continua do time zone zero mas o string final fica como de MG "-03:00"

O servidor está hospedado fora do Brasil

 

  • Moderadores
Posted
12 minutos atrás, NathanMgnet disse:

Esta é a única solução?

Não existe uma configuração no ACBr que ajuste a data/hora de acordo com um time zone específico?

Reparei que a propriedade "ACBrNFe.Configuracoes.WebServices.TimeZoneConf.ModoDeteccao" altera o time zone mas não ajusta a hora conforme o time zone especificado, ou seja, a hora continua do time zone zero mas o string final fica como de MG "-03:00"

O servidor está hospedado fora do Brasil

 

então é isso. tu tem que colocar pra setar aqui certo

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

  • Solution
Posted

Após ler diversos pontos do código do componente criei uma solução

Como eu havia dito, TODAS as operações funcionam em qualquer timezone, mesmo no meu servidor hospedado fora do Brasil
Isso porque o ACBr envia os dados com informação de timezone e a SEFAZ as reconhece
O fato é que somente o cancelamento não aceitava timezone diferente (na SEFAZ MG)

Para solucionar isso, no cancelamento mudei duas linhas de código:

ACBrNFe.Configuracoes.WebServices.TimeZoneConf.ModoDeteccao := tzPCN

with ACBrNFe.EventoNFe.Evento.New do begin
  (...)
  infEvento.dhEvento := DataHoraTimeZoneModoDeteccao(ACBrNFe);
end;

ModoDeteccao tzPCN: ajusta apenas o final do string que identifica o timezone dentro da tag dhEvento de acordo com o timezone da UF da operação (-03:00 no meu caso)
A função DataHoraTimeZoneModoDeteccao retorna a data atual convertendo para o time zone indicado em ModoDeteccao
Com isso a tag dhEvento é preenchida corretamente

Fica aqui documentada uma solução mais prática para quem interessar

  • Este tópico foi criado há 322 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.

The popup will be closed in 10 seconds...