Clipper On Line • Ver Tópico - DANFe PDF pela SEFAZ Class

DANFe PDF pela SEFAZ Class

Discussão sobre desenvolvimento de software para atender as exigências da legislação fiscal e tributária (ECF, TEF, SINTEGRA, NF-e, ECD, EFD, etc.)

Moderador: Moderadores

 

DANFe PDF pela SEFAZ Class

Mensagempor gilbertosilverio » 17 Abr 2018 13:53

Ola,

Eu faço assim...
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
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 332
Data de registro: 18 Jan 2009 09:39
Cidade/Estado: Ribeirao Pires - SP
Curtiu: 1 vez
Mens.Curtidas: 23 vezes

DANFe PDF pela SEFAZ Class

Mensagempor JoséQuintas » 17 Abr 2018 18:06

Veja no programa exemplo.

[url]https://github.com/JoseQuintas/sefazclass/blob/master/tests/test.prg#L238#L254[/url]

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

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

https://github.com/JoseQuintas/sefazclass/blob/master/tests/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, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

DANFe PDF pela SEFAZ Class

Mensagempor JoséQuintas » 18 Abr 2018 10:42

É 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, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

DANFe PDF pela SEFAZ Class

Mensagempor JoséQuintas » 18 Abr 2018 11:11

Meu hbmk.hbc

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)

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

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, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

DANFe PDF pela SEFAZ Class

Mensagempor JoséQuintas » 09 Mai 2018 22:01

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, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

DANFe PDF pela SEFAZ Class

Mensagempor rubens » 10 Mai 2018 10:21

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 de usuário

rubens
Colaborador

Colaborador
 
Mensagens: 1518
Data de registro: 16 Ago 2003 09:05
Cidade/Estado: Nova Xavantina - MT
Curtiu: 77 vezes
Mens.Curtidas: 104 vezes

DANFe PDF pela SEFAZ Class

Mensagempor JoséQuintas » 10 Mai 2018 10:32

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, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

DANFe PDF pela SEFAZ Class

Mensagempor rubens » 10 Mai 2018 11:23

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 148 vezes
NREF_XML.pdf
(30.78 KiB) Baixado 126 vezes


NREF_PRODUTOR.xml
(6.33 KiB) Baixado 120 vezes
NREF_PRODUTOR.pdf
(30.65 KiB) Baixado 132 vezes
"Eu e minha casa servimos ao Senhor e você ???"
Avatar de usuário

rubens
Colaborador

Colaborador
 
Mensagens: 1518
Data de registro: 16 Ago 2003 09:05
Cidade/Estado: Nova Xavantina - MT
Curtiu: 77 vezes
Mens.Curtidas: 104 vezes

DANFe PDF pela SEFAZ Class

Mensagempor JoséQuintas » 11 Mai 2018 10:19

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, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

DANFe PDF pela SEFAZ Class

Mensagempor JoséQuintas » 15 Mai 2018 17:02

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, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

DANFe PDF pela SEFAZ Class

Mensagempor JoséQuintas » 15 Mai 2018 18:16

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

<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, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

DANFe PDF pela SEFAZ Class

Mensagempor JoséQuintas » 11 Set 2018 16:36

Coloquei na pasta tests e rodei o test.exe.
Gerou normal.

danfe.png
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

DANFe PDF pela SEFAZ Class

Mensagempor Nascimento » 16 Set 2018 01:28

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 de usuário

Nascimento
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 711
Data de registro: 19 Jul 2008 12:11
Cidade/Estado: OLINDA-PE
Curtiu: 110 vezes
Mens.Curtidas: 76 vezes

DANFe PDF pela SEFAZ Class

Mensagempor JoséQuintas » 16 Set 2018 08:32

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, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

DANFe PDF pela SEFAZ Class

Mensagempor JoséQuintas » 16 Set 2018 08:42

Tá velhinho já....
Usa as memórias velhas, que são mais lentas....

i5.png
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Próximo



Retornar para Legislação Fiscal e Tributária

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 6 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro