Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

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

Postado
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

Postado

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
Postado
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
Postado

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á 321 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...