API para geração de DANFE a partir do XML ou Chave de Acesso

58 views
Skip to first unread message

William Gustavo Marquetti

unread,
Aug 21, 2018, 4:03:29 PM8/21/18
to NFePHP
Boa tarde pessoal!
Estou desenvolvendo uma ferramenta interna e preciso gerar a DANFE para impressão/abrir diretamente no navegador.
Vou integrar isso com o ERP. Eu tenho 2 opções para fazer a consulta:

1 - Através do XML
2 - Através da Chave de Acesso.

Existe alguma maneira meio "pronta" para isso nesse framework?
Eu preciso somente disso mesmo, todo o resto quem faz é o TOTVS Protheus, e eu queria gerar a DANFE sem ser por ele (a nota já terá sido validada e emitida no SEFAZ, eu pego o xml e/ou a chave de acesso gerada diretamente no banco de dados do ERP)

Alguém pode me dar umas dicas?

Davi Fonseca

unread,
Aug 21, 2018, 4:05:39 PM8/21/18
to nfe...@googlegroups.com
Veja o projeto sped-da, é simples o uso.


--
--
Você recebeu esta mensagem porque está inscrito no Grupo "NFePHP".
Para Postar: nfe...@googlegroups.com
Para Sair do Grupo: nfephp+un...@googlegroups.com
Link: http://groups.google.com.br/group/nfephp?hl=pt-BR
-------
Repositórios: https://github.com/nfephp-org
---
Você recebeu essa mensagem porque está inscrito no grupo "NFePHP" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para nfephp+un...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.

William Gustavo Marquetti

unread,
Aug 21, 2018, 4:08:20 PM8/21/18
to nfe...@googlegroups.com
Obrigado @Davi!

Vou dar uma boa estudada nesta opção.

Em 21 de agosto de 2018 17:05, Davi Fonseca <ivad...@gmail.com> escreveu:
Veja o projeto sped-da, é simples o uso.

Em ter, 21 de ago de 2018 às 17:03, William Gustavo Marquetti <william....@gmail.com> escreveu:
Boa tarde pessoal!
Estou desenvolvendo uma ferramenta interna e preciso gerar a DANFE para impressão/abrir diretamente no navegador.
Vou integrar isso com o ERP. Eu tenho 2 opções para fazer a consulta:

1 - Através do XML
2 - Através da Chave de Acesso.

Existe alguma maneira meio "pronta" para isso nesse framework?
Eu preciso somente disso mesmo, todo o resto quem faz é o TOTVS Protheus, e eu queria gerar a DANFE sem ser por ele (a nota já terá sido validada e emitida no SEFAZ, eu pego o xml e/ou a chave de acesso gerada diretamente no banco de dados do ERP)

Alguém pode me dar umas dicas?

--
--
Você recebeu esta mensagem porque está inscrito no Grupo "NFePHP".
Para Postar: nfe...@googlegroups.com

Link: http://groups.google.com.br/group/nfephp?hl=pt-BR
-------
Repositórios: https://github.com/nfephp-org
---
Você recebeu essa mensagem porque está inscrito no grupo "NFePHP" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para nfephp+unsubscribe@googlegroups.com.

Para mais opções, acesse https://groups.google.com/d/optout.

--
--
Você recebeu esta mensagem porque está inscrito no Grupo "NFePHP".
Para Postar: nfe...@googlegroups.com

Link: http://groups.google.com.br/group/nfephp?hl=pt-BR
-------
Repositórios: https://github.com/nfephp-org
---
Você recebeu essa mensagem porque está inscrito no grupo "NFePHP" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para nfephp+unsubscribe@googlegroups.com.

Carlos Domingues

unread,
Aug 21, 2018, 7:22:44 PM8/21/18
to nfe...@googlegroups.com
Boa noite, terminei de implementar o cancelamento completo hoje, relativamente simples se seguir os seguintes passos:

1 - Pesquisar por NF-e emitidas e selecionar uma ou mais;
2 - Nessa pesquisa eu retorno os campos obrigatórios: chave e protocolo; também o número de série sequencial e único de cada NF-e (para depois utilizar na geração dos arquivos XML e PDF, os quais eu zipo como NFe_NUMERO-SERIE_cencelada.zip);
3 - Instancio a classe Tools para usar o método sefazCancela($chave, $justificativa, $protocolo);
4 - Instancio a classe $obj = Standarlize para usar o método toStd($retornoDoMetodoAcima);
5 - Faço a checagem in_array($obj->retEvento->infEvento->cStat, [155, 135, 101]);
6 - Se OK, executo os demais passos:
6.1 - Protocolar a autorização do cancelamento (retorno do sefazCancela) na requisição inicial feita para tal ($objTools->lastRequest);
6.2 - Salvar o XML da autorização do cancelamento na pasta arquivos-temp específica;
6.3 - Abro o XML da NF-e original que fora cancelada e marco como tal, usando a string desse XML aberto o retorno do sefazCancela como parâmetros do método Complements::cancelRegister($conteudoXmlOriginalNfe, $retSefaz);
6.4 - Gerar o PDF da DANFE de cancelamento utilizando o sped-da, com base no XML que acabei de gerar no retorno do método executado no passo anterior;
6.5 - Adicionar o XML e PDF no ZIP padrão NFe_numero-serie_cancelada.zip (é uma particularidade do nosso sistema, algo que veio "de cima" e eu fiz assim);
6.6 - Persistir no banco os dados da NF-e gerada (INSERT de um novo registro na tabela que armazeno as NF-e, com o mesmo número de série da NF-e original, porém status "C" - cancelada (outra particularidade do nosso sistema)).

Dessa forma não há necessidade de consultas futuras pois tenho tudo: informação persistida, DANFE da NF-e cancelada, XML que originou essa DANFE, XML da autorização criado e protocolado com o retorno do sefazCancela.

Em ter, 21 de ago de 2018 às 17:03, William Gustavo Marquetti <william....@gmail.com> escreveu:
--
--
Você recebeu esta mensagem porque está inscrito no Grupo "NFePHP".
Para Postar: nfe...@googlegroups.com
Para Sair do Grupo: nfephp+un...@googlegroups.com

Link: http://groups.google.com.br/group/nfephp?hl=pt-BR
-------
Repositórios: https://github.com/nfephp-org
---
Você recebeu essa mensagem porque está inscrito no grupo "NFePHP" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para nfephp+un...@googlegroups.com.

Para mais opções, acesse https://groups.google.com/d/optout.


--
-------------------------------------------------------------------------------------------------------------------------------------------
Carlos Domingues
Analista / Desenvolvedor WEB
cel.: (48) 8500-1777

jose carlos Silva

unread,
Aug 22, 2018, 8:39:00 AM8/22/18
to NFePHP
Wiliam, Bom Dia.

Eu uso exatamente dessa forma.
Emito a NFe/NFCe por um sistema em JAVA e Gero/Imprimo a DANFE pelo NFEPHP.

Instalei o XAMP/ApachePHP no servidor apenas para gerar a DANFE e eu passo como parametro o CAMINHO DO XML.

Se o XML autorizado estiver gravado no BancoDeDados, vc salva em arquivo e passa o CAMINHO DO XML.

Existe tambem esse servico online, que voce pode integrar com o seu sistema:

Sds

JCARLOS
Maceio/AL


Reply all
Reply to author
Forward
0 new messages