DANFe PDF pela SEFAZ Class

Fórum sobre desenvolvimento de software para atender as exigências da legislação fiscal e tributária (NFe, NFCe, NFSe, SPEED, Projeto ACBr, TEF, ECD, EFD, etc.)

Moderador: Moderadores

gilbertosilverio
Usuário Nível 3
Usuário Nível 3
Mensagens: 339
Registrado em: 18 Jan 2009 10:39
Localização: Ribeirao Pires - SP

DANFe PDF pela SEFAZ Class

Mensagem por gilbertosilverio »

Ola,

Eu faço assim...

Código: Selecionar todos

FUNCTION IMPRIMIR_DANFE(cDESTINO)
   LOCAL oDanfe, oFile, oFileList, cFilePdf
   oFileList := Directory( ALLTRIM(cDESTINO)+[\*.XML], [D] )
   FOR EACH oFile IN oFileList
      oDanfe   := hbNfeDaGeral():New()
      cFilePdf := Substr( oFile[ F_NAME ], 1, At( ".", oFile[ F_NAME ] ) ) + "PDF"
      fErase( cFilePdf )
      oDanfe:cDesenvolvedor := "J.Quintas"
      oDanfe:ToPDF( ALLTRIM(cDESTINO)+[\]+oFile[ F_NAME ], ALLTRIM(cDESTINO)+[\]+cFilePdf )
   NEXT
RETURN NIL

GilbertoSilverio
gilbertosilverio@gmail.com
gilbertosilverio2003@yahoo.com.br
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

DANFe PDF pela SEFAZ Class

Mensagem por JoséQuintas »

Veja no programa exemplo.

https://github.com/JoseQuintas/sefazcla ... #L238#L254

Uma possibilidade de não pegar os dados é um XML inválido.

Por acaso não aceita "#" em link?

https://github.com/JoseQuintas/sefazcla ... s/test.prg
Linhas 238 a 254

Se usar o link anterior, vém o bloco das linhas marcado, mas o fórum não aceitou o endereço.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

DANFe PDF pela SEFAZ Class

Mensagem por JoséQuintas »

É que os PDFs começaram pelo da NFE, depois entraram os demais.
Pra facilitar, o DAGeral já identifica e chama o módulo correspondente, e acaba adicionando algum recurso que apareceu depois.

DA = Documento Auxiliar.
DANFE = Documento Auxiliar NFE
DACTE = Documento Auxiliar CTE
DAMDFE = Documento Auxiliar MDFE
DAEvento = Documento Auxiliar de Evento - este nome acabei tendo que inventar, é o único não oficial... rs
Este último atende todos os eventos, não apenas carta de correção.

As DLLs são Microsoft.
Capicom pode ser baixada, mas MSXML5 não faz parte do Windows, e só saiu com Office.
As duas são necessárias pra assinatura digital.

tem pasta de exemplos e pasta de rascunhos (drafts).
Esses não entram na LIB.

No geral é: include, source e na raiz tem hbp, hbc pra gerar e usar a LIB.
É exatamente do jeito que uso aqui.
Apenas criei um HBMK.HBC contendo indicação da pasta sefazclass.

Na hora de usar, acrescento no projeto sefazclass.hbc
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

DANFe PDF pela SEFAZ Class

Mensagem por JoséQuintas »

Meu hbmk.hbc

Código: Selecionar todos

mt=yes
gui=yes
strip=yes
compr=yes
prgflags=-n -m -w3 -es2
libpaths=d:/cdrom/fontes/integra/sefazclass
libpaths=d:/cdrom/fontes/integra/josequintas
libpaths=d:/github/allgui/hmg3
libpaths=d:/github/allgui/hmge
libpaths=d:/github/allgui/hwgui
libpaths=d:/github/allgui/oohg
a pasta .../sefazclass é exatamente o que está aqui:

https://github.com/JoseQuintas/sefazclass

A pasta .../josequintas é exatamente o que está aqui:

https://github.com/JoseQuintas/JoseQuintas

E o meu projeto apenas adiciona as duas (ao adicionar josequintas.hbc já adiciona sefazclass)

Código: Selecionar todos

josequintas\main\jpa.prg
josequintas\source\jpa_menu.prg
*.prg
josequintas\prg\*.prg

-ojpa
jpa.rc

josequintas.hbc
hbnetio.hbc

-workdir=c:\temp
-m
-n
-es2
-w3
-compr
-inc
-strip
-mt
-quiet
-jobs={NUMBER_OF_PROCESSORS}
-ge1
-i.
-i..\build
-beep
A josequintas já inclui a sefazclass.hbc, por isso não tem no projeto

Código: Selecionar todos

Description=any
libs=josequintas sefazclass.hbc
libs=sefazclass.hbc hbhpdf.hbc hbwin.hbc hbzebra.hbc gtwvg.hbc hbct.hbc hbtip.hbc hbnetio.hbc hbziparc.hbc hbmisc.hbc
libpaths=${hb_install_prefix}/addons/josequintas/lib/${hb_plat}/${hb_comp}
incpaths=include
incpaths=..\..\build
A josequintas não tem a ver com a sefazclass, apenas aproveitei pra mostrar que as duas são direto do meu aplicativo.
Pode acontecer de eu não salvar alterações no mesmo dia, mas assim que atualizar, vai ser exatamente o que está no meu aplicativo.
As duas pastas ficam vinculadas ao GitHub, SEMPRE, o GitHub de onde todo mundo baixa, acaba sendo o meu backup.
O restante fica no bitbucket, particular, onde as subpastas sefazclass e josequintas já são desprezadas por serem parte de subprojetos.
Uso assim faz tempo.... mas cada um vai salvar como quiser, na pasta que quiser, só alterar o hbmk.hbc para indicar a pasta que escolher.

hazael escreveu:Agora faz algo e uma semana depois já pode parar de funcionar.
Pois é...
É governo, é Windows, é antivírus.... tudo pode acontecer...
hazael escreveu:Até que era bem prático, tinha inclusive um instalador, associava os XML automaticamente, abria os XML já gerando PDF da DANFe e mostrando na tela, era muito bom mesmo.
Se associar o XML ao teste.exe da Sefazclass, vai fazer isso.
Mas às vezes podemos querer abrir o XML mesmo, e não o PDF, não vi vantagem.
E já tenho esse recurso direto no aplicativo, pode ser no estoque, financeiro, pedidos, notas, etc. já abrir o PDF, então dispensa a associação.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

DANFe PDF pela SEFAZ Class

Mensagem por JoséQuintas »

A única possibilidade é os XMLs não estarem no formato correto.
Primeiro faça testes com os XMLs, por exemplo validar.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

DANFe PDF pela SEFAZ Class

Mensagem por rubens »

Bom dia JoséQuintas...

Eu não baixei a versão mais atual do sefazclass.
Na versão que tenho não imprime documentos referenciados.
Isso depende de alguma configuração ou ainda não foi implementado?

Obrigado
Rubens
"Eu e minha casa servimos ao Senhor e você ???"
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

DANFe PDF pela SEFAZ Class

Mensagem por JoséQuintas »

Provavelmente não foi implementado.
Tem algum exemplo de Danfe com isso, pra servir como referência?


Neste momento estava resolvendo a mensagem de nota denegada.
Por algum motivo, com certeza pela posição, com o traço não saia o texto, retirado o traço ok.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

DANFe PDF pela SEFAZ Class

Mensagem por rubens »

Ok.. .

Segue em anexo dois exemplos. Um com Referência por Xml e um com referência por NF Produtor.
Uma sugestão seria até que cada referência ficasse em uma linha, melhor organizado. Tipo:
Nf REf: 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
Obrigado
NREF_XML.xml
(6.35 KiB) Baixado 175 vezes
NREF_XML.pdf
(30.78 KiB) Baixado 151 vezes
NREF_PRODUTOR.xml
(6.33 KiB) Baixado 150 vezes
NREF_PRODUTOR.pdf
(30.65 KiB) Baixado 160 vezes
"Eu e minha casa servimos ao Senhor e você ???"
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

DANFe PDF pela SEFAZ Class

Mensagem por JoséQuintas »

rubens escreveu:Uma sugestão seria até que cada referência ficasse em uma linha, melhor organizado
Nesse caso será só colocar um ponto e vírgula e será considerada mudança de linha.
Trata-se apenas de extrair as chaves do XML e somar em informações adicionais.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

DANFe PDF pela SEFAZ Class

Mensagem por JoséQuintas »

Tive que apelar pro debug... rs
nfe.png
Na análise usa um espaço em branco depois de <NFe, e no XML não tem.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

DANFe PDF pela SEFAZ Class

Mensagem por JoséQuintas »

Só essas notas estão assim, o normal é:

Código: Selecionar todos

<NFe xmlns="http://www.portalfiscal.inf.br/nfe">
Alterei pra aceitar das duas formas, mas é esquisito.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

DANFe PDF pela SEFAZ Class

Mensagem por JoséQuintas »

Coloquei na pasta tests e rodei o test.exe.
Gerou normal.
danfe.png
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
Nascimento
Usuário Nível 4
Usuário Nível 4
Mensagens: 763
Registrado em: 19 Jul 2008 12:11
Localização: OLINDA-PE

DANFe PDF pela SEFAZ Class

Mensagem por Nascimento »

me passou hj pela cabeça uma coisa digamos interessante, já que essa parte fiscal muda a cada " meia hora" , teria como criar-nos a partir da sefazclass uma dll a partir de um .prg pra toda parte fiscal?
porque não precisaríamos ta recompilando todos os módulos do sistema, só atualizaríamos a dll e pronto!
e se alguém já fez essa parte parte do cancelamento de NFC-e contingencia com o citado por nosso amigo aqui: viewtopic.php?f=54&t=18807&hilit=+manual#p122217
e se sim seria fácil fazer um exemplo pratico?

desde já agradeço a Todos!!!
A arte de programar é simplesmente fazer seus pensamentos serem interpretados por uma maquina :) clipper 5.3 /harbour/minigui
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

DANFe PDF pela SEFAZ Class

Mensagem por JoséQuintas »

Nascimento escreveu: só atualizaríamos a dll e pronto!
Cada um pode ter uma versão diferente, de Harbour 3.2, 3.4 ou XHarbour.
Cada um pode usar uma versão de compilador C.
Tem também 32 e 64 bits.

Compilando sefazclass do zero: 8 segundos
sefazclass.png
Compilando a JoseQuintas do zero, também no github: 42 segundos
josequintas.png
Finalmente, compilando o aplicativo, incluindo compactar e assinatura: 56 segundos
jpa.png
Total geral pra compilar TUDO DO ZERO, LIBs e aplicativo, o que não é normal: 1 minuto e 46 segundos, ou 106 segundos
Minha máquina é velha... e uso mingw que muitos não usam por ser lento.

Tá demorando quanto pra compilar aÍ?
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

DANFe PDF pela SEFAZ Class

Mensagem por JoséQuintas »

Tá velhinho já....
Usa as memórias velhas, que são mais lentas....
i5.png
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder