Atualizando informações do Danfe

Projeto hbNFe (Nota Fiscal Eletronica/Danfe) para [x]Harbour

Moderador: Moderadores

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

Atualizando informações do Danfe

Mensagem por JoséQuintas »

Mudanças nos Documentos Auxiliares:

Antes o método pra gerar o PDF era Execute(), mas cada documento tinha uma ordem diferente.
A fim de evitar problemas, foi gerado um novo método, igual pra todos, e na mesma ordem.
Adicionalmente, tudo foi centralizado em DaGeral.

O uso agora é assim:

Código: Selecionar todos

LOCAL oDanfe, cLogoFile, cXmlEmissao, cFilePDF, cXmlCancelamento

cLogoFile := "JPEGLogotipo" // pode ser arquivo.jpg ou MemoRead( "arquivo.jpg" ) ou equivalente
cXmlEmissao := "XMLEmissao" // pode ser arquivo.xml ou MemoRead( "emissao.xml" ) ou equivalente
cXmlCancelamento := "XMLCancelamento" // pode ser arquivo.xml ou MemoRead( "cancelamento.xml" ) ou equivalente
cFilePdf := "arquivo.pdf" // aqui é nome mesmo

oDanfe := hbNFeDaGeral():New()
oDanfe:cLogoFile := cLogoFile
oDanfe:cDesenvolvedor := "JoseQuintas"
oDanfe:ToPDF( cXmlEmissao, cFilePDF, cXmlCancelamento )
o primeiro parâmetro é sempre o documento que será gerado PDF: pode ser NFE, CTE, MDFE ou um xml de evento

O segundo parâmetro é o nome do PDF

o terceiro parâmetro é opcional, será usado pra complementar informações.

- Se é uma emissão, o complemento poderá ser um xml de cancelamento, pra imprimir a tarja de cancelamento

- Se é um evento, o complemento será o XML de emissão, pra poder pegar as informações da nota e preencher todo PDF de evento


Nota:
Poderá ser usada a chamada direta de cada tipo de documento auxiliar, mas neste caso não vai haver a opção de usar nome de arquivo para XMLs.
É só pra informação. Mas pra que usar diferente, se dá pra usar sempre a mesma coisa?

Código: Selecionar todos

oDanfe := hbNfeDaNfe():New()
oDanfe := hbNfeDaCte():New()
oDanfe := hbNFeDaMDFe():New()
oDanfe := hbNfeDaEvento():New()


// não precisa mais usar as classes acima, basta usar:

oDanfe := hbNFeDaGeral():New()
O opcional de arquivo ou conteúdo é pra atender quem usa MySQL ou base de dados pra guardar os XMLs, assim não precisa criar arquivo temporário.
Esta foi a forma inicial criada, mas como muitos ainda usam arquivos em disco, passou a permitir os dois tipos de uso.

Será considerado arquivo quando o tamanho do texto for inferior a 100 caracteres.
Acho difícil alguém usar um nome de arquivo ( incluindo diretório + nome ) com 100 caracteres.
E também nenhum XML é menor que 100 caracteres.
Então acredito que desta forma seja suficiente pra detectar nome de arquivo ou texto.
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

Atualizando informações do Danfe

Mensagem por JoséQuintas »

Faltou dizer:
Todo projeto da classe Sefaz continua aqui:

https://github.com/JoseQuintas/sefazclass


Cheguei a rascunhar uma classe em VB6 equivalente, só por curiosidade.
Quem também ficar curioso, está aqui:

https://github.com/JoseQuintas/vbsefazclass

Nota:
Faz falta no VB6 os recursos do Harbour de testar NIL, a compilação -w3 -es2, e os nomes de propriedades mais específicos dentro do fonte da classe, sem confundir com variável comum.
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/
malcarli
Usuário Nível 3
Usuário Nível 3
Mensagens: 239
Registrado em: 20 Ago 2015 18:14
Localização: marilia/sp

Atualizando informações do Danfe

Mensagem por malcarli »

Bom dia, mestre. Grande trabalho. obrigado
Responder