Página 1 de 2

DANFe PDF pela SEFAZ Class

Enviado: 17 Abr 2018 13:53
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


DANFe PDF pela SEFAZ Class

Enviado: 17 Abr 2018 18:06
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.

DANFe PDF pela SEFAZ Class

Enviado: 18 Abr 2018 10:42
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

DANFe PDF pela SEFAZ Class

Enviado: 18 Abr 2018 11:11
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.

DANFe PDF pela SEFAZ Class

Enviado: 09 Mai 2018 22:01
por JoséQuintas
A única possibilidade é os XMLs não estarem no formato correto.
Primeiro faça testes com os XMLs, por exemplo validar.

DANFe PDF pela SEFAZ Class

Enviado: 10 Mai 2018 10:21
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

DANFe PDF pela SEFAZ Class

Enviado: 10 Mai 2018 10:32
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.

DANFe PDF pela SEFAZ Class

Enviado: 10 Mai 2018 11:23
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 176 vezes
NREF_XML.pdf
(30.78 KiB) Baixado 152 vezes
NREF_PRODUTOR.xml
(6.33 KiB) Baixado 151 vezes
NREF_PRODUTOR.pdf
(30.65 KiB) Baixado 161 vezes

DANFe PDF pela SEFAZ Class

Enviado: 11 Mai 2018 10:19
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.

DANFe PDF pela SEFAZ Class

Enviado: 15 Mai 2018 17:02
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.

DANFe PDF pela SEFAZ Class

Enviado: 15 Mai 2018 18:16
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.

DANFe PDF pela SEFAZ Class

Enviado: 11 Set 2018 16:36
por JoséQuintas
Coloquei na pasta tests e rodei o test.exe.
Gerou normal.
danfe.png

DANFe PDF pela SEFAZ Class

Enviado: 16 Set 2018 01:28
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!!!

DANFe PDF pela SEFAZ Class

Enviado: 16 Set 2018 08:32
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Í?

DANFe PDF pela SEFAZ Class

Enviado: 16 Set 2018 08:42
por JoséQuintas
Tá velhinho já....
Usa as memórias velhas, que são mais lentas....
i5.png