Clipper On Line • Ver Tópico - Complicar pra facilitar

Complicar pra facilitar

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

Moderador: Moderadores

 

Complicar pra facilitar

Mensagempor JoséQuintas » 14 Nov 2017 19:39

Complicar um pouco, mas não muito..... rs
Quem usa como LIB, é só gerar a LIB pelo HBP, nem importa se é Harbour ou XHarbour....
Vou separar os métodos da classe, pra próximas mudanças.

Continua tudo junto, mas separado.... rs

Até inventei uma facilidade para o XHarbour...

#ifdef __XHARBOUR__
   #define ALL_PARAMETERS P1, P2, P3, P4, P5, P6, P7, P8, P9, P10
#else
   #define ALL_PARAMETERS ...
#endif


Por enquanto separei o BPE.

   METHOD BpeConsulta( ALL_PARAMETERS )      INLINE Sefaz_BpeConsulta( SELF, ALL_PARAMETERS )
   METHOD BpeStatusServico( ALL_PARAMETERS ) INLINE Sefaz_BpeStatusServico( SELF, ALL_PARAMETERS )


Aí tem os fontes separados....

#include "Sefazclass.ch"

FUNCTION Sefaz_BpeConsulta( oSefaz, cChave, cCertificado, cAmbiente )

   oSefaz:Setup( oSefaz:UfSigla( Substr( cChave, 1, 2 ) ), cCertificado, cAmbiente, WS_BPE_CONSULTA )
   oSefaz:cXmlEnvio := [<consSitBPe> versao="] + WS_VERSAO_BPE + [" ] + WS_XMLNS_BPE + [>]
   oSefaz:cXmlEnvio +=   XmlTag( "tpAmb", oSefaz:cAmbiente )
   oSefaz:cXmlEnvio +=   XmlTag( "xServ", "CONSULTAR" )
   oSefaz:cXmlEnvio +=   XmlTag( "chBPe", cChave )
   oSefaz:cXmlEnvio += [</conssitBPe>]
   IF Substr( cChave, 21, 2 ) != "63"
      oSefaz:cXmlRetorno := "*ERRO* Chave não se refere a BPE"
   ELSE
      oSefaz:XmlSoapPost()
   ENDIF
   oSefaz:cStatus := XmlNode( oSefaz:cXmlRetorno, "cStat" )
   oSefaz:cMotivo := XmlNode( oSefaz:cXmlRetorno, "xMotivo" )

   RETURN oSefaz:cXmlRetorno



FUNCTION Sefaz_BpeStatusServico( oSefaz, cUF, cCertificado, cAmbiente )

   oSefaz:Setup( cUF, cCertificado, cAmbiente, WS_BPE_STATUSSERVICO )

   oSefaz:cXmlEnvio := [<consStatServBPe versao="] + WS_VERSAO_BPE + [" ] + WS_XMLNS_BPE + [>]
   oSefaz:cXmlEnvio +=    XmlTag( "tpAmb", oSefaz:cAmbiente )
   oSefaz:cXmlEnvio +=    XmlTag( "xServ", "STATUS" )
   oSefaz:cXmlEnvio += [</consStatServBPe>]
   oSefaz:XmlSoapPost()

   RETURN oSefaz:cXmlRetorno


Ou seja, continua igual antes, até mesmo o fonte tá quase igual, só alterou :: pra oSefaz:
E recebe a classe como parâmetro

Vantagens:
Facilita pra expandir opções
A classe fica mais leve pra carregar, porque só tem métodos pequenos

Desvantagens:
Mais arquivos de fontes - o que não é muito problema como LIB
Os nomes das funções vão ficar visíveis externamente, mesmo não sendo usadas diretamente

Já temos NFE, CTE, MDFE, BPE, NFCE... sabe mais o que vai aparecer.
Podemos ter NFSE, e outras coisas mais, sem ter um fonte quilométrico

E também podemos pensar em como facilitar pra XHarbour.
Com certeza a melhor coisa é usar HBMK2 MESMO NO XHARBOUR.
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

Complicar pra facilitar

Mensagempor JoséQuintas » 18 Nov 2017 18:11

Retornei ao anterior, por enquanto.
A intenção vai ser colocar os endereços de webservice junto a cada tipo de transmissão.
Mas pra fazer isso, ou altera todos de uma vez, ou nenhum.
Por isso vou começar a preparar tudo antes de alterar de vez.
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




Retornar para Projeto hbNFe

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 2 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