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

SUPORTE A V2 - LOTE GNRE #38

Closed
marabesi opened this issue May 16, 2019 · 30 comments · Fixed by #52
Closed

SUPORTE A V2 - LOTE GNRE #38

marabesi opened this issue May 16, 2019 · 30 comments · Fixed by #52

Comments

@marabesi
Copy link
Member

Até o momento a lib suporta somente a v1, caso alguém se interesse em ajudar na atualização é só manter essa thread atualizada.

Notícia oficial (http://www.gnre.pe.gov.br/gnre/portal/todasNoticias.jsp):

Portal GNRE - Atualização da Versão para 2.0

Prezado Contribuinte,

Informamos que a partir do dia 01/04/2019, o Portal GNRE terá sua versão atualizada para 2.0.

A versão 2.0 contemplará três opções para geração das guias:

  1. GNRE Simples - esta opção equivale à geração da GNRE atual, ou seja, geração de guia para apenas um pagamento.

  2. GNRE com Múltiplos Documentos de Origem - nesta opção poderão ser adicionados múltiplos documentos de origem, desde que mantida a mesma UF destinatária, o mesmo Contribuinte Emitente, o mesmo Código de Receita e o mesmo Tipo de Documento de Origem.

  3. GNRE com Múltiplas Receitas - nesta opção poderão ser adicionados diversos códigos de receitas, desde que se mantenha a mesma UF destinatária e o mesmo Contribuinte Emitente. Nesta opção serão aceitos vários códigos de receita, inclusive podendo repetir o mesmo código de receita.

Para os contribuintes que utilizam os serviços (webservices) de automação que o Portal disponibiliza, será necessário adequar suas aplicações para a nova estrutura do XML versão 2.0.

Haverá um período em que o Portal da GNRE aceitará as duas versões simultaneamente. Este período será para que as UFs e os contribuintes possam fazer os ajustes necessários para utilização desta versão. Ao fim deste período só serão aceitas requisições, via webservice, na nova versão.

O período final da versão 1.0 será informado no Portal GNRE (Testes/Homologação e Produção) em momento posterior.

Para maiores detalhes, acessar o Portal GNRE no ambiente de Testes/Homologação (http://www.testegnre.pe.gov.br) e clicar no menu Automação.

Neste link, você encontrará:

• Manual para Preenchimento do Lote:
o Formato do arquivo (versão 1.0 e 2.0)
o Dicionário de dados do arquivo XML (versão 1.0 e 2.0)
o Regras de Preenchimento
• Anexos
• Links para as empresas solicitarem a utilização dos webservices
• Manual de Integração do Contribuinte (versão 2.0)
• Endereço dos serviços (webservices)

Em caso de dúvidas encaminhar e-mail para [email protected].

Atenciosamente,
Gestor Nacional do GNRE
Secretaria da Fazenda do Estado de Pernambuco

@marabesi marabesi pinned this issue Jun 13, 2019
@renandelmonico
Copy link
Contributor

Bora fazer essa atualização?

@marabesi
Copy link
Member Author

marabesi commented Aug 28, 2019

Seria uma boa, eu particularmente não comecei nenhum trabalho ainda, me falta o certificado pra testar e não tenho nenhuma lista do que realmente mudou. Mas vamos usando essa thread pra traquear as mudanças.

@renandelmonico
Copy link
Contributor

Eu tenho uma ideia do que mudou, porém também não tenho certificado. A principal mudança foi somente no nome das tags.

@felipeparente
Copy link

Galera, isso foi feito?
Conheci a biblioteca a pouco e vi que ainda está na v1

@renandelmonico
Copy link
Contributor

Bom dia @felipeparente, acredito que não. Eu não tenho certificado pra desenvolver e testar 😞

@marabesi
Copy link
Member Author

ainda esta pendente : /

@marabesi
Copy link
Member Author

@felipeparente @renandelmonico se tiver alguma forma de compartilharmos um certificado eu dedico um tempo pra atualizar pra v2

@felipeparente
Copy link

Vamos tocar?
Até pq, creio que iremos precisar.

Eu tenho certificado de cliente, que eu posso utilizar para os testes, homologação.

@felipeparente
Copy link

INFO DO PORTAL
A versão 1.00 do XML será aceita até o dia 30/11/2020 e até este período o portal estará apto a receber as duas versões.

@renandelmonico
Copy link
Contributor

@felipeparente @marabesi se tem um certificado pra testar acho que podemos tocar, acredito que eu consiga disponibilizar um tempo pra atualizar também

@felipeparente
Copy link

Vamos nos organizar.
Temos até o dia 30/11/2020.... provavelmente prorrogado, como tudo no Brasil.
Não deve ser tão complicado, pois utilizaríamos a mesma base.

Que tal um grupo no Whatsapp para conversarmos?

@renandelmonico
Copy link
Contributor

Vamos nos organizar.
Temos até o dia 30/11/2020.... provavelmente prorrogado, como tudo no Brasil.
Não deve ser tão complicado, pois utilizaríamos a mesma base.

Que tal um grupo no Whatsapp para conversarmos?

Pode-se pensar em algo. Pelo que eu já estudei sobre (faz alguns meses já) essa alteração basicamente muda praticamente apenas o prefixo das tags

@felipeparente
Copy link

Pode ser, mas acho que seria interessante colocar alguma configuração, para utilizar o v1 ou v2.

@marabesi
Copy link
Member Author

marabesi commented Nov 4, 2020

@felipeparente vc está no grupo gnre? (https://groups.google.com/g/gnrephp) de la podemos criar um grupo nosso pra toca a atualização (obs: o @renandelmonico eu sei que está)

@felipeparente
Copy link

Não... como faço para entrar?

@marabesi
Copy link
Member Author

marabesi commented Nov 5, 2020

@felipeparente
Copy link

Olha o que aparece para mim quando acesso o LINK.

Captura de Tela 2020-11-05 às 10 53 13

@marabesi
Copy link
Member Author

@felipeparente chegou algum invite?

@felipeparente
Copy link

Chegou...

@jone22e
Copy link

jone22e commented Mar 24, 2021

Talvez vocês já tenham desenvolvido mas não está atualizado, então criei uma classe que interpreta o código da V1.00 e gera o xml para V2.00. Pelo menos temporariamente até ter a classe atualizada.

Substituir:

$lote = new Sped\Gnre\Sefaz\Lote()

Por:

$lote = new LoteV2()
$lote->setAmbienteDeTesteV2(true); // caso homologação

Em anexo.

LoteV2.zip

@marabesi
Copy link
Member Author

obrigado pela contribuição @jone22e vou incluir essa classe no pacote :)

@marabesi
Copy link
Member Author

@jone22e notei que na linha 82 tem um comentário "não sei"

            $identificadorGuia = $gnre->createElement('identificadorGuia', "1"); //ainda nao sei

Seria essa uma tag que requer maior atenção?

marabesi added a commit that referenced this issue Mar 28, 2021
@jone22e
Copy link

jone22e commented Mar 28, 2021

@jone22e notei que na linha 82 tem um comentário "não sei"

            $identificadorGuia = $gnre->createElement('identificadorGuia', "1"); //ainda nao sei

Seria essa uma tag que requer maior atenção?

Se não me engano é apenas um id para guia, se emitisse mais do que uma no mesmo lote teria que seguir em sequência... 1,2,3...

@marabesi
Copy link
Member Author

Entendi, pelo que vi a implementação ainda não esta completa? Tem um switch case para cada estado, mas para isso tem as classes de configuração (cada estado tem a sua).

Me diz se essa classe funciona, como ela está que ai eu refatoro pra usar essas configurações.

@jone22e
Copy link

jone22e commented Mar 28, 2021

Entendi, pelo que vi a implementação ainda não esta completa? Tem um switch case para cada estado, mas para isso tem as classes de configuração (cada estado tem a sua).

Me diz se essa classe funciona, como ela está que ai eu refatoro pra usar essas configurações.

Aquele case ajuda a passar o número da nfe ou chave da nfe, tem estados que agora esperam a chave. Está funcionando, já emitimos diversas guias.

@jone22e
Copy link

jone22e commented Mar 29, 2021

Bom dia, ainda sobre o switch case:

É necessário passar o tipo de documento de origem e o número. Na V1 eu sempre passava código 10 e o número da nota fiscal.

Como na empresa que trabalho emitimos guias GNRE da DIFA (100102) e de ST (100099), e pode haver diferença entre elas, eu criei 2 funções que auxiliam no que passar para a classe da guia:

getCodigoDoc($uf, $difa = false); //retorna o tipo de doc //10, 22, 24... dependendo do estado de destino
getNumDoc($uf); //retorna o campo que devo buscar no banco de dados: //numero ou chave da nf

Essas informações eu busquei diretamente no site da GNRE na parte de documentos de origem: http://www.gnre.pe.gov.br/gnre/portal/consultarTabelas.jsp

$guia->c28_tipoDocOrigem = $lote->getCodigoDoc($gnre['uf_favorecida'], $gnre['receita']=="100102"?true:false); //(se DIFA true, se ST false.)
$guia->c04_docOrigem = $nota[$lote->getNumDoc($gnre['uf_favorecida'])];

Mas logicamente existe vários outros códigos além da ST e DIFA, então essas funções deveriam ser copiadas pelo programador e ajustadas.

Eu fiz essa adaptação para V2 rapidamente, pois aqui emitimos várias guias diariamente, e supostamente dia 01/04/2021 está previsto que a GNRE V1 seja descontinuada, então eu precisava resolver a situação o quanto antes.

Mas se achar interessante posso com mais tempo desenvolver uma nova classe dedicada a V2, eu faria modificações como:

  • Deixar a classe mais clara na declaração dos campos, tirar esse código do campo da V1 c01_UfFavorecida para setUfFavorecida();
  • trabalhar melhor a parte de RJ pois tem que somar e declarar o FCP (fundo de combate a pobreza);
  • Criar métodos para auxiliar o preenchimento, exemplo:

$guia->setTipoIdentificacaoEmitente($guia->EmitenteCNPJ);

Um Abraço!

@marabesi marabesi linked a pull request Mar 29, 2021 that will close this issue
@marabesi
Copy link
Member Author

marabesi commented Mar 29, 2021

@jone22e eu fiz um merge request com o arquivo que você enviou, e a ideia é ir comitando as mudanças la, vou atualizando essa issue conforme avanço no processo.

@jone22e você conseguiria mandar um XML de uma gnre enviada a sefaz válida? Com o XML eu vou criar o caso de teste e ir trabalhando em cima dele (já que eu não tenho o certificado).

@jone22e
Copy link

jone22e commented Apr 1, 2021

Bom dia, segue o XML.

xml-gnre.zip

image

@marabesi
Copy link
Member Author

marabesi commented Apr 3, 2021

Valeu!

@marabesi
Copy link
Member Author

marabesi commented Apr 3, 2021

@jone22e sabe me dizer se a consulta de GNRE mudou para a versão 2 também? Ou só o lote?

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

Successfully merging a pull request may close this issue.

4 participants