Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Correção da captura do TimeZone para preencher a tag dhCont, para não utilizar o fuso horário do servidor #1059

Open
1 of 3 tasks
Emerson-Gabriel opened this issue Jun 7, 2024 · 0 comments

Comments

@Emerson-Gabriel
Copy link

  • Estou enviando um ...
    • bug
    • requisição de funcionalidade
    • requisição de suporte => Por favor, não envie solicitação de suporte aqui, veja a nota no topo deste modelo.

Comportamento esperado

Ao realizar a geração de uma NF-e em contingência para a UF MT (fuso horário -04:00), a data/hora capturada no arquivo ContingencyNFe.php linha 49. Nesta linha é capturado o fuso horário -03:00, desconsiderando o TimeZone informado, o problema ocorre porque a função date("Y-m-d H:i:sP") usa o fuso horário do servidor ao gerar a string de data e hora.

Com isso o fuso horário informado pelo DateTimeZone é desconsiderado, ficando incoerente o XML, veja:
Capturar

Ao avaliar o dhCont da tag infProt do retorno da sefaz está correto, veja:
image

Ou seja, o componente desconsidera o TimeZone informado.

Solução possível

Para corrigir isso e assegurar que o DateTime devemos utilizar o offset correto de -04:00, deve-se criar a data e hora diretamente no fuso horário de Cuiabá. Isso evita problemas com offsets incorretos.

Possível implementação

No arquivo ContingencyNFe.php linha 49, devemos alterar a forma de captura da data e hora atual:

$tz = TimeZoneByUF::get(UFList::getUFByCode((int)$cUF));
$dt = new \DateTime('now', new \DateTimeZone($tz));

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant