Clipper On Line • Ver Tópico - Repositório e Continuidade do projeto

Repositório e Continuidade do projeto

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

Moderador: Moderadores

 

Repositório e Continuidade do projeto

Mensagempor Wanderlei » 01 Dez 2015 06:52

Bom dia Pessoal,
Também tenho interesse em ajudar com o hbnfe.
Wanderlei Cardoso
Analista / Programador
XHarbour + GtWvW + FiveWin + HwGui + Firebird
Skype: cwanderlei
cwanderlei@yahoo.com.br
(62)98171-3059 - whatsapp

Imagem
Avatar de usuário

Wanderlei
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 183
Data de registro: 25 Jan 2008 12:19
Cidade/Estado: Goiânia - GO
Curtiu: 13 vezes
Mens.Curtidas: 5 vezes

Repositório e Continuidade do projeto

Mensagempor Ricardo C. Freitas » 14 Jan 2016 17:49

Boa noite,

Sou novato aqui neste fórum, recentemente tive a necessidade de utilizar NF-e e NFC-e.
Gostaria de saber se o projeto do hbNFe será levado a frente e qual fonte será continuado?
Tenho interesse em ajudar no desenvolvimento e teste.
Já é possível utilizar para emissão de NF-e e NFC-e em produção?
Ricardo C. Freitas
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 4
Data de registro: 14 Jan 2016 16:33
Cidade/Estado: Vila Velha
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Repositório e Continuidade do projeto

Mensagempor JoséQuintas » 14 Jan 2016 18:25

Tenho interesse em ajudar no desenvolvimento e teste.
Já é possível utilizar para emissão de NF-e e NFC-e em produção?


Isso tá meio contraditório.
É algo como dizer: vou ajudar a desenvolver, mas desde que esteja pronto, vou ajudar a testar mas desde já esteja testado e funcionando.

recentemente tive a necessidade de utilizar NF-e e NFC-e


Não existe solução mágica.
Não é uma biblioteca que vai facilitar seu trabalho.
Terá que desenvolver no mínimo o TXT ou o XML, seguindo os manuais da Secretaria da Fazenda.
Só depois disso é que vai poder testar alguma coisa, qualquer que seja a biblioteca.

De um modo geral é só testar.
Tem UF que cisma de fazer diferente, então pode estar 100% pronto pra uma UF e pra outra não.
O único jeito de descobrir é testando.
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: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Repositório e Continuidade do projeto

Mensagempor rubens » 14 Jan 2016 23:16

Boa noite José Quintas....

Então... nós estamos precisando de uma ajudinha para ajudar alavancar esse negócio...

Tá meio confuso o conceito de usar o hbnfe...

Por exemplo uso o acbrmonitor, gero o txt envio para o acbrmonitor ele gera o xml e envia para sefaz, pego o retorno e verifico se foi autorizado ou não e mando imprimir o danfe.
Ah, não trabalha com o txt do acbrmonitor, beleza vamos usar o xml então, para testes posso pegar o xml que o acbrmonitor gerou para mim e usar esse xml no hbnfe?

Se sim como faço isso? O que preciso estar instalado? Tem um exe um exemplo do hbnfe? Vou ter que compilar o hbnfe?

É isso que tá confuso pelo menos para mim, não sei se para o resto do pessoal também.

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

Repositório e Continuidade do projeto

Mensagempor Ricardo C. Freitas » 15 Jan 2016 11:26

Bom dia,

Realmente não estou entendendo se a hbnfe está funcional para emissão de nf-e e qual código devo utilizar.
Se eu verifico o projeto no Git tem um arquivo compactado "hbNFeSefaz-2014-12-09.zip" postado pelo José Quintas com fontes, além dos fontes que já estão lá.
Estou utilizando o Uninfe e gostaria de integrar uma solução dentro da minha aplicação.
Pensei que pudesse utilizar o hbnfe para o básico de emissão da nf-e e ajudar nos outros pontos que estejam faltando.
Estou no ES e poderia fazer os testes com a SEFAZ daqui.
De qualquer forma obrigado.

At+
Ricardo C. Freitas
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 4
Data de registro: 14 Jan 2016 16:33
Cidade/Estado: Vila Velha
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Repositório e Continuidade do projeto

Mensagempor JoséQuintas » 15 Jan 2016 11:49

Vamos a um recomeço então.
Vou preparar o github pra isso.

Apesar de estar nesse ZIP, ele contém muito mais fontes do que vão ser utilizados, e por isso confunde.
Vamos por em prática.
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: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Repositório e Continuidade do projeto

Mensagempor rubens » 15 Jan 2016 12:15

:-Y
"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

Repositório e Continuidade do projeto

Mensagempor ciacpd » 21 Jan 2016 13:46

Boa tarde José,
Eu estou disposto a ajudar, uso o hbnfe que fiz as alterações do meu jeito e um projeto novo deixará todos no mesmo padrão, suas classes que baixei a algum tempo atras me ajudaram muito nas alterações.
Daniel Segura
ciacpd@hotmail.com
clipper/FW - xharbour/hwgui
ciacpd
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 37
Data de registro: 24 Set 2007 11:23
Cidade/Estado: Mairinque - SP
Curtiu: 2 vezes
Mens.Curtidas: 2 vezes

Repositório e Continuidade do projeto

Mensagempor JoséQuintas » 21 Jan 2016 16:40

Opa. finalmente alguém que diz que usa.

Usa do jeito dela, igual ACBR, ou modificou essa parte também?
Só pra entender se alguém configura tudo aquilo, e se interessa compatibilidade.

Na prática a classe sempre foi o ponto de partida, e estava completamente funcional no ano passado, pra todo processo.
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: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Repositório e Continuidade do projeto

Mensagempor fladimir » 21 Jan 2016 20:09

Boa noite José Quintas....

Então... nós estamos precisando de uma ajudinha para ajudar alavancar esse negócio...

Tá meio confuso o conceito de usar o hbnfe...

Por exemplo uso o acbrmonitor, gero o txt envio para o acbrmonitor ele gera o xml e envia para sefaz, pego o retorno e verifico se foi autorizado ou não e mando imprimir o danfe.
Ah, não trabalha com o txt do acbrmonitor, beleza vamos usar o xml então, para testes posso pegar o xml que o acbrmonitor gerou para mim e usar esse xml no hbnfe?

Se sim como faço isso? O que preciso estar instalado? Tem um exe um exemplo do hbnfe? Vou ter que compilar o hbnfe?

É isso que tá confuso pelo menos para mim, não sei se para o resto do pessoal também.

Rubens


O ponto inicial é baixar o projeto anexar ao teu sistema e fazer compilar sem erros

depois vc chama a rotina de exemplo (se for o caso renomeia ela pra Main_TesteHBNFe) e cada item da rotina de exemplo testa uma parte da HBNFe, exemplo Consultar Status de Serviço, vai chamar o método para isso, ai vc analisa como esta fazendo no exemplo e verá q é simples.

Em relação ao ACBr, vc monta o TXT q é lido pelo monitor e devolvido o retorno

Na HBNFe vc instancia a Classe e chama o método e trabalha o retorno...

Basicamente, se vc olhar o arquivo testes.prg q acompanha o projeto verá q tem a parte q carrega as informações do INI

   hIniData         := HB_ReadIni( "teste.ini" )
   cPastaSchemas    := hIniData['Principais']['cPastaSchemas']
   cSerialCert      := hIniData['Principais']['cSerialCert']
   cUFWS            := hIniData['Principais']['cUFWS']
   tpAmb            := hIniData['Principais']['tpAmb']
   versaoDados      := hIniData['Principais']['versaoDados']
   cUF              := hIniData['Principais']['cUF']
   cMun             := hIniData['Principais']['cMun']
   tpImp            := hIniData['Principais']['tpImp']
   versaoSistema    := hIniData['Principais']['versaoSistema']

   cXMLFileAssinado := hIniData['Envio']['cXMLFileAssinado']
   idLote           := hIniData['Envio']['idLote']
   tpEmis           := hIniData['Envio']['tpEmis']

   nRecibo          := hIniData['Retorno']['nRecibo']

   cChaveNFe        := hIniData['Consulta']['cChaveNFe']

   xUF              := hIniData['Cadastro']['xUF']
   CNPJ             := hIniData['Cadastro']['CNPJ']

   cXMLFileSemAssinatura := hIniData['Assinatura']['cXMLFileSemAssinatura']

   cChaveNfeCanc         := hIniData['Cancelamento']['cChaveNfeCanc']
   xJustificativa        := hIniData['Cancelamento']['xJustificativa']

   cXMLFileDanfe         := hIniData['Danfe']['cXMLFileDanfe']
   cLogoFile             := hIniData['Danfe']['cLogoFile']
   nLogoStyle            := val( hIniData['Danfe']['nLogoStyle'] )
                                 
   cXMLFileCCe           := hIniData['CCe']['cXMLFileCCe']
   
   cIniAcbr              := hIniData['IniToXML']['cIniAcbr']
               
   ArquivoEmail          := hIniData['Email']['ArquivoEmail']


Depois Instancia a Classe em uma variável, no caso do exemplo chamamos de oNFe e atribui as propriedades da classe o conteúdo do INI:

   oNfe                   := hbNfe()
   oNfe:cPastaSchemas     := cPastaSchemas
   oNFe:cSerialCert       := cSerialCert
   oNFe:nSOAP             := HBNFE_MXML
   oNFe:cUFWS             := cUFWS // UF WebService
   oNFe:tpAmb             := tpAmb // Tipo de Ambiente
   oNFe:versaoDados       := versaoDados // Versao
   oNFe:versaoDadosCCe    := '1.00'
   oNFe:tpEmis            := tpEmis //normal/scan/dpec/fs/fsda
   oNFe:empresa_UF        := cUF
   oNFe:empresa_cMun      := cMun
   oNFe:empresa_tpImp     := tpImp
   oNFe:versaoSistema     := versaoSistema
   oNFe:pastaNFe          := "nfe"
   oNFe:pastaCancelamento := "canc"
   oNFe:pastaPDF          := "pdf"
   oNFe:pastaInutilizacao := "inut"
   oNFe:pastaDPEC         := "dpec"
   oNFe:pastaEnvRes       := "envresp"
   oNFe:cEmailEmitente    := "construcao@construcao.com.br"
   oNFe:cSiteEmitente     := "www.construcao.com.br"
   oNFe:cDesenvolvedor    := "Desenvolvido por FJ Sistemas  +55 18 3652 0559  http://www.fjsistemas.com.br"
   oNFe:cCertPFX          := hIniData['Principais']['cCertPFX']
   oNFe:cCertFilePub      := hIniData['Principais']['cCertFilePub']
   oNFe:cCertFileKey      := hIniData['Principais']['cCertFileKey']
   oNFe:cCertPass         := hIniData['Principais']['cCertPass']

   oNFe:cEmail_Subject  := hIniData['Email']['email_assunto']
   oNFe:cEmail_MsgTexto := hIniData['Email']['email_txt']
   oNFe:cEmail_MsgHTML  := hIniData['Email']['email_html']
   oNFe:cEmail_ServerIP := hIniData['Email']['email_smtp']
   oNFe:cEmail_From     := hIniData['Email']['email_from']
   oNFe:cEmail_User     := hIniData['Email']['email_usuario']
   oNFe:cEmail_Pass     := hIniData['Email']['email_senha']
   oNFe:nEmail_PortSMTP := VAL( hIniData['Email']['email_porta'] )
   oNFe:lEmail_Conf     := IF( hIniData['Email']['email_confirmacao'] == '.T.',.T.,.F.)
   oNFe:lEmail_SSL      := IF( hIniData['Email']['email_SSL'] == '.T.',.T.,.F.)
   oNFe:lEmail_Aut      := IF( hIniData['Email']['email_aut'] == '.T.',.T.,.F.)


Ai analisando o exemplo na parte de Consultar Status de Serviço foi criado uma variável oStatus pra conter outra classe do projeto chamada hbNFeStatus, nesta classe tem uma propriedade (tipo variável) q irá conter o oNFe q carregamos acima q contém informações relativas ao certificado, e-mail, tipo parâmetros/configurações.

Ai chama o método q quer, exemplo Consultar Status do Serviço:

obs: as informações abaixo foram extraidas do arquivo testes.prg q acompanha o projeto.

...
      ? "4) Status do Serviço (capicom,curl)"

...
      ELSEIF nOption == Asc( "4" )
        oStatus := hbNFeStatus()
        oStatus:ohbNFe := oNfe // Objeto hbNFe
        oStatus:tpAmb := '1' // Normal
        oStatus:cUF := cUF // UF
        aRetorno := oStatus:execute()
        oStatus := Nil


Ai qdo é chamado o método :Execute() da classe hbNFeStatus() vai devolver o retorno da Consulta q será trabalhado (tipo retorno do ACBr)

        IF aRetorno['OK'] == .F.
           ? aRetorno['MsgErro']
        ELSE
           ? aRetorno['tpAmb']
           ? aRetorno['verAplic']
           ? aRetorno['cStat']
           ? aRetorno['xMotivo']
           ? aRetorno['cUF']
           ? aRetorno['dhRecbto']
           ? aRetorno['tMed']
        ENDIF
...


A proposta do Quintas q ao meu ver é muito válida.
Tenho o projeto remodelado funcionando (menos a parte do DFe q devido a urgência fiz no projeto antigo, mas no evoluir deste tópico podemos adequar/contribuir com o novo)
Até onde entendi / usei simplificou várias coisas, pq ao se trabalhar com o hbNFe na forma q foi concebida, dá pra perceber q muitas coisas podem ser simplificadas e/ou remodeladas... exemplo o Consulta Status não precisa ser uma outra classe pode ser um método... outro exemplo, ao invés de ter um INI carregar ele nas propriedades da classe hbNFe() e depois usar este objeto em outras classes igual demonstrada acima (hbNFeStatus) poderiamos já setar direto as propriedades e chamar o método NFeStatus...

Enfim da forma q esta o projeto original se baixar e fazer compilar e estudar o testes.prg item a item já dá pra se familiarizar...

No caso do pessoal q trabalha com ACBr pode pegar uma das funções q usa tipo Consultar Status de Serviço e fazer via hbNFe pra ir pegando a manha sem conflitar com o ACBr, eu por exemplo aki tenho o HBNFe e o ACBr juntos... qdo for sobrando tempo vou migrando do ACBr para o hbNFe.

Agora se for partir de algo novo ai convém aguardar o Quintas criar o GIT ai baixa o dele e já começa no exemplo dele q já será a classe remodelada.

[]´s
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar de usuário

fladimir
Colaborador

Colaborador
 
Mensagens: 2434
Data de registro: 15 Nov 2006 19:21
Curtiu: 28 vezes
Mens.Curtidas: 157 vezes

Repositório e Continuidade do projeto

Mensagempor JoséQuintas » 21 Jan 2016 22:14

Pronto, só verificar o post.
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: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Repositório e Continuidade do projeto

Mensagempor ciacpd » 22 Jan 2016 13:44

José, estou usando configurando tudo

JoséQuintas escreveu:Opa. finalmente alguém que diz que usa.

Usa do jeito dela, igual ACBR, ou modificou essa parte também?
Só pra entender se alguém configura tudo aquilo, e se interessa compatibilidade.

Na prática a classe sempre foi o ponto de partida, e estava completamente funcional no ano passado, pra todo processo.


Um pequeno exemplo, a rotina para consultar a NF-e, preparada para acbr e hbnfe, afinal nunca se sabe...
// -------------------------------------------------------------------------- //
function nfe_consulta_op(f_cFileXmlName)
   if lacbrnfe
      nfe_consulta_acbr(f_cFileXmlName)
   else
      nfe_consulta_hbnfe(f_cFileXmlName)
   endif
return .t.
// -------------------------------------------------------------------------- //
function nfe_consulta_acbr(f_cFileXmlName)

   Local oAcbrNfeMonitor, lConsulta := .F.

   oAcbrNfeMonitor := AcbrNFeMonitor():New()
   lConsulta := oAcbrNfeMonitor:AcbrNFe_ConsultarNFe(f_cFileXmlName)
   if lConsulta
      nmsgbox( oAcbrNfeMonitor:cRetornoTxt ,"Atenção.")
   else
      msginfo( oAcbrNfeMonitor:cRetornoTxt ,"Atenção.")
   endif
   oAcbrNfeMonitor:End()

return .t.
// -------------------------------------------------------------------------- //
function nfe_consulta_hbnfe(f_cFileXmlName)
         private oNfe, oDanfe, aRetorno , oFuncoes

         oNfe                := hbNfe()
         Seta_Schemas_Nfe(oNfe) ; Seta_Pastas_Nfe(oNfe) ; Seta_Email_Nfe(oNfe)

         oNFe:pastaPDF       := cdirlocal + "PDF"
         oNFe:cDesenvolvedor := "Desenvolvido por CIACPD - http://www.ciacpd.com.br"
         oFuncoes            := hbNFeFuncoes()

         mensagem("Consultando NF-e: "+f_cFileXmlName)
         
         oConsulta           := hbNFeConsulta()
         oConsulta:ohbNFe    := oNfe // Objeto hbNFe
         oConsulta:cNFeFile  := f_cFileXmlName // Chave ou pode ser um arquivo xml com o parametro cNFeFile
         aRetorno            := oConsulta:execute()
         
         cChNFe              := oConsulta:cChaveNFe
         
         oConsulta           := Nil
         
         mensagem("")

         IF aRetorno['OK'] == .F.
            msginfo( aRetorno['MsgErro'] , "Falha na consulta da NFe.")
            return .f.
         ELSE
            msginfo( "Retorno: "         + HB_OEMTOANSI( aRetorno['xMotivo'] ) + CRLF +;
                     "Chave da Nota: "   + cChNFe                              + CRLF +;
                     "Nota recebida em:" + aRetorno['dhRecbto']                + CRLF +;
                     "Nº do Protocolo:"  + aRetorno['nProt']                   + CRLF +;
                     "Digito da Nota:"   + aRetorno['digVal'], "Resultado da Consulta.")
         ENDIF
       
return .t.
// -------------------------------------------------------------------------- //
Daniel Segura
ciacpd@hotmail.com
clipper/FW - xharbour/hwgui
ciacpd
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 37
Data de registro: 24 Set 2007 11:23
Cidade/Estado: Mairinque - SP
Curtiu: 2 vezes
Mens.Curtidas: 2 vezes

Repositório e Continuidade do projeto

Mensagempor JoséQuintas » 22 Jan 2016 18:14

Você não vai acreditar... vai ter que alterar muito o aplicativo:
Alterar isto:

function nfe_consulta_hbnfe(f_cFileXmlName)
    private oNfe, oDanfe, aRetorno , oFuncoes

    oNfe        := hbNfe()
    Seta_Schemas_Nfe(oNfe) ; Seta_Pastas_Nfe(oNfe) ; Seta_Email_Nfe(oNfe)

    oNFe:pastaPDF   := cdirlocal + "PDF"
    oNFe:cDesenvolvedor := "Desenvolvido por CIACPD - http://www.ciacpd.com.br"
    oFuncoes      := hbNFeFuncoes()

    mensagem("Consultando NF-e: "+f_cFileXmlName)
   
    oConsulta     := hbNFeConsulta()
    oConsulta:ohbNFe  := oNfe // Objeto hbNFe
    oConsulta:cNFeFile := f_cFileXmlName // Chave ou pode ser um arquivo xml com o parametro cNFeFile
    aRetorno      := oConsulta:execute()
   
    cChNFe       := oConsulta:cChaveNFe
   
    oConsulta     := Nil
   
    mensagem("")

    IF aRetorno['OK'] == .F.
      msginfo( aRetorno['MsgErro'] , "Falha na consulta da NFe.")
      return .f.
    ELSE
      msginfo( "Retorno: "    + HB_OEMTOANSI( aRetorno['xMotivo'] ) + CRLF +;
          "Chave da Nota: " + cChNFe               + CRLF +;
          "Nota recebida em:" + aRetorno['dhRecbto']        + CRLF +;
          "Nº do Protocolo:" + aRetorno['nProt']         + CRLF +;
          "Digito da Nota:" + aRetorno['digVal'], "Resultado da Consulta.")
    ENDIF
   
return .t.


Para algo parecido com isto:

oSefaz := SefazClass():New()
cRetorno := oSefaz:ConsultaNfe( cChave, ... )
IF "*ERRO*" $ cRetorno
   MsgInfo( "Retorno: " + cRetorno
ENDIF


E eliminar de seu fonte a criação desse arquivo XML de consulta recebido por parâmetro, que não vai precisar mais.
Resumindo: vai ter que apagar muuuito fonte.
Vai ficar menor do que com ACBR.
No caso dessa consulta, é só consultar.... rs
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: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Repositório e Continuidade do projeto

Mensagempor alaminojunior » 27 Mai 2016 10:28

Atualmente qual o endereço para baixar este projeto ?

Já adiei várias vezes a migração do ACBrNFeMonitor para HBNFe, e agora quero aproveitar que tenho mais condições para encarar.
Até hoje tem funcionado muito bem o ACBr e me atende perfeitamente. Porém com o aumento de clientes que utilizam NFe, CTe e agora o MDFe, prefiro utilizar uma solução que demande menos ajustes, configurações e etc ...

Com ACBr, utilizo troca de arquivos em formato INI.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Avatar de usuário

alaminojunior
Colaborador

Colaborador
 
Mensagens: 1689
Data de registro: 16 Dez 2005 20:26
Cidade/Estado: Ubatuba - SP
Curtiu: 27 vezes
Mens.Curtidas: 11 vezes

Anterior



Retornar para Projeto hbNFe

Quem está online

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