Jump to content

Delphi Enterprise 
pela METADE DO PREÇO

botao_delphi.png

 

 

tp_550_logo.png Homologação ACBr Apresenta:
Nova  Impressora
TP-550

botao_saibamais.png

 

 

Curso Dominando o ACBrMonitor
Novo Módulo Soluções de Varejo
Assine o SAC ACBr em qualquer plano e tenha acesso

Saiba Mais

Balança SM100 performance surpreendente

Tecnologia Japonesa   Teclado e Visor resistentes a água
Consumo inteligente de etiquetas   Baixo custo de manutenção
Comunicação Ethernet e WIFI independentes

Saiba Mais

Impressora de Etiquetas ELGIN - L42 PRO

Protocolos PPLA, PPLB, ZPL, EPL (automático)
Porta USB padrão Opcionais: Ethernet, Serial, Paralela
Sensor de Etiquetas Móvel Garantia de 18 meses

Saiba mais

jorge andrade

ANSWERED ACBrLibSat - Demo e Classe em HARBOUR e xHARBOUR

  • Este tópico foi criado há 223 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui

Recommended Posts

Pessoal boa tarde

 

O @Rafael Dias, desenvolveu uma classe e demo da lib acima para HARBOUR, a qual estou testando e fazendo ajustes para xHARBOUR, o empenho que ele dispôs nesse projeto,  é algo imensurável em termos de dedicação e conhecimento.

Com isso, acredito que esta classe , deva alavancar a adesão e migração de muitos assinantes FREE para SAC, pois o uso da DLL, trará muitas vantagens para todos, com maior controle dos seus aplicativos, sombreamento de suas aplicações e quiçá ,  independência em relação ao MONITOR, sem contar a economia, da não necessidade de assinaturas  de DLL's de terceiros por CNPJ.

Logo devo repassar ao Rafael os testes e os ajustes que fiz, a fim de atender também ao xHARBOUR, que passará pelo crivo dos seus conhecimentos para análise e demais ajustes que se fizerem necessários.

Estarei envolvendo usuários em geral dos grupos/fóruns de HARBOUR, xHARBOUR  e FIVEWIN, assinantes ou não do ACBR no intuito da difusão desta facilidade e de agregar colaboradores.

Obs: Está a caminho as demais classes de HARBOUR/xHARBOUR para ACBREMAIL, NFE e etc...

  • Like 7
  • Thanks 1

Jorge Andrade

 

"Quem tem medo de perguntar, está fadado a eternizar-se na dúvida - [Jorge Andrade]";
 

"A soberba,  é o sentimento caracterizado pela pretensão de superioridade sobre as demais pessoas, levando a manifestações ostensivas de arrogância, por vezes sem fundamento algum em fatos ou variáveis reais - [Desconhecido";
 

"Aquele  que pesquisa antes de indagar, tem a grande chance de dirimir as suas dúvidas, fixar o aprendizado da pesquisa e evoluir para outros conhecimentos inesperados - [Jorge Andrade]";
 

"Os políticos e as fraldas devem ser trocados frequentemente e pela mesma razão - [Éça de Queiroz]".

Share this post


Link to post
Share on other sites

Bom dia Jorge,

Que legal sua animação e contribuir com esse novo projeto, parabéns.

Att.

  • Like 2

Consultora SAC ACBr

Juliana Tamizou
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

Share this post


Link to post
Share on other sites

Ola Jorge, 

Ótima noticia, desenvolvo em Harbour, já consegui compilar os exemplos do SAT mas não estou conseguindo inicializar a LIB, podeira me ajudar

Share this post


Link to post
Share on other sites

Boa tarde amigo,

 

Vc está usando a CLASSE desenvolvida pelo Rafael ou a DLL direta? Se for a CLASSE , além do exemplo que ele disponibilizou, para o formato INI, eu fiz alguns exemplos xHarbour usando a CLASSE,  só que eu gero o XML e não arquivo INI, mas de qualquer forma vou disponibilizar alguma coisa aqui, segue abaixo:

 

Exemplos de comando e  configuração

 

   sat := ACBrSat():New("", "")
   sat:ConfigGravarValor("Principal", "LogNivel", "4")
   sat:ConfigGravarValor("SAT", "Modelo", "2")

   sat:ConfigGravarValor("SAT", "ArqLog", "C:\windows\temp\satlog")
   sat:ConfigGravarValor("SAT", "NomeDLL", "C:\ACBrMonitorPLUS\SAT\elgin\dllsat.dll")
   sat:ConfigGravarValor("SAT", "CodigoDeAtivacao", "123456789")
   sat:ConfigGravarValor("SAT", "SignAC", "SGR-SAT SISTEMA DE GESTAO E RETAGUARDA DO SAT")
   sat:ConfigGravarValor("SATConfig", "ide_numeroCaixa", "3") //ide_numeroCaixa Define o numero de caixa padrão da CFe.
   sat:ConfigGravarValor("SATConfig", "ide_tpAmb", "0") //ide_tpAmb  taProducao = 0  taHomologacao = 1
   sat:ConfigGravarValor("SATConfig", "EhUTF8", "") //EhUTF8 Define se devemos utilizar codificação UTF8 ao se comunicar com o SAT.
   sat:ConfigGravarValor("SATConfig", "infCFe_versaoDadosEnt", "0,07") //infCFe_versaoDadosEnt Define qual será a versão do CFe utilizada.Ex.: 0,07 ou 0,08
   sat:ConfigGravarValor("SATConfig", "PaginaDeCodigo", "0") //PaginaDeCodigo Define a pagina de código que se deve utilizar ao se comunicar com o SAT.

   sat:ConfigGravarValor("SATConfigArquivos", "PastaCFeVenda", "X:\acbr\NFESAI\AUTORIZA\59") //PastaCFeVenda Define o caminho onde será salvos os arquivos de venda.
   sat:ConfigGravarValor("SATConfigArquivos", "SalvarCFe","0" ) //SalvarCFe Define se será salvo o arquivo de venda.
   sat:ConfigGravarValor("SATConfigArquivos", "SalvarCFeCanc", "0") //SalvarCFeCanc Define se será salvo o arquivo de cancelamento.
   sat:ConfigGravarValor("SATConfigArquivos", "SalvarEnvio", "0") //SalvarEnvio Define se será salvo o arquivo de envio para o sat.

  //sat:ConfigGravarValor("SATConfigArquivos", "SepararPorCNPJ", "0") //SepararPorCNPJ Define se deverá separar os arquivos por CNPJ.
  //sat:ConfigGravarValor("SATConfigArquivos", "SepararPorModelo", "0") //SepararPorModelo Define se deverá separar os arquivos por modelo.
  //sat:ConfigGravarValor("SATConfigArquivos", "SepararPorAno", "0") //SepararPorAno Define se deverá separar os arquivos por ano.
  //sat:ConfigGravarValor("SATConfigArquivos", "SepararPorMes", "0") //SepararPorMes Define se deverá separar os arquivos por mês.
  //sat:ConfigGravarValor("SATConfigArquivos", "SepararPorDia", "0") //SepararPorDia Define se deverá separar os arquivos por dia.

   sat:ConfigGravarValor("SATConfig", "ide_CNPJ", "14200166000166") //ide_CNPJ Exemplo da elgin: 16716114000172 Define o padrão CNPJ do emitente da CFe.
   sat:ConfigGravarValor("SATConfig", "emit_IE", "144842258111") //emit_IE Define o IE padrão do emitente do CFe.
   //sat:ConfigGravarValor("SATConfig", "emit_IM", "inscricao municipal do emitente") //emit_IM Define o IM padrão do emitente do CFe.
   sat:ConfigGravarValor("SATConfig", "emit_cRegTrib","0") //emit_cRegTrib RTSimplesNacional = 0 RTRegimeNormal = 1
   sat:ConfigGravarValor("SATConfig", "emit_cRegTribISSQN", "6") //emit_cRegTribISSQN RTISS MicroempresaMunicipal = 0
   sat:ConfigGravarValor("SATConfig", "emit_indRatISSQN", "0") //emit_indRatISSQN  Define indicador de rateio do desconto sobre subtotal entre itens sujeitos a

   sat:ConfigGravarValor("SATConfig", "emit_CNPJ", "16716114000172") //emit_CNPJ Exemplo da elgin: 14200166000166 Define o CNPJ padrão do emitente da CFe.

   sat:ConfigGravarValor("SATRede", "tipoInter", "0") //0 = infETHE
   sat:ConfigGravarValor("SATRede", "tipoLan", "0")  
   
   sat:ConfigGravarValor("Extrato", "LarguraBobina", "302") //LarguraBobina Define a largura da bobina.
    sat:ConfigGravarValor("Extrato", "MargemSuperior", "2") //MargemSuperior Define a margem superior da impressão.
   sat:ConfigGravarValor("Extrato", "MargemInferior", "4") //MargemInferior Define a margem inferior da impressão.
    sat:ConfigGravarValor("Extrato", "MargemEsquerda", "2") //MargemEsquerda Define a margem esquerda da impressão.
    sat:ConfigGravarValor("Extrato", "MargemDireita", "2") //MargemDireita Define a margem direita da impressão.
   sat:ConfigGravarValor("Extrato", "Tipo", "0") //TipoDefine o tipo de impressão a ser utilizada.tpFortes = 0 tpEscPos = 1
   //sat:ConfigGravarValor("Extrato", "Impressora", "nome a impressora para emissão do cupom") //Impressora Define o nome da impressora padrão a ser utilizada pela impressão.
   sat:ConfigGravarValor("Extrato", "ImprimeChaveEmUmaLinha", "0") //ImprimeChaveEmUma Define se deve imprimir a chave do CFe em apenas uma linha.

 

 

 

Dll's Necessárias , a quais podem ser baixadas por qualquer usuário Sac do Acbr.

ACBrSAT32.dll
ACBrSAT64.dll

libeay32.dll
libexslt.dll
libiconv.dll
libxml2.dll
libxslt.dll
msvcr120.dll
ssleay32.dll

 

 

Espero que seja útil.

 

[]s,

  • Like 4

Jorge Andrade

 

"Quem tem medo de perguntar, está fadado a eternizar-se na dúvida - [Jorge Andrade]";
 

"A soberba,  é o sentimento caracterizado pela pretensão de superioridade sobre as demais pessoas, levando a manifestações ostensivas de arrogância, por vezes sem fundamento algum em fatos ou variáveis reais - [Desconhecido";
 

"Aquele  que pesquisa antes de indagar, tem a grande chance de dirimir as suas dúvidas, fixar o aprendizado da pesquisa e evoluir para outros conhecimentos inesperados - [Jorge Andrade]";
 

"Os políticos e as fraldas devem ser trocados frequentemente e pela mesma razão - [Éça de Queiroz]".

Share this post


Link to post
Share on other sites

Obrigado Jorge, o erro era meu, fiz pela classe mas não coloquei estas dlls na pasta do executavel:

libeay32.dll
libexslt.dll
libiconv.dll
libxml2.dll
libxslt.dll
msvcr120.dll
ssleay32.dll

 

Só tinha colocado esta ACBrSAT32.dll.

Já conseguir criar o ini, agora vamos prosseguir o projeto

  • Like 1

Share this post


Link to post
Share on other sites
14 horas atrás, BRIZOLLA disse:

Obrigado Jorge, o erro era meu, fiz pela classe mas não coloquei estas dlls na pasta do executavel:

libeay32.dll
libexslt.dll
libiconv.dll
libxml2.dll
libxslt.dll
msvcr120.dll
ssleay32.dll

 

Só tinha colocado esta ACBrSAT32.dll.

Já conseguir criar o ini, agora vamos prosseguir o projeto

Amigo bom dia. Maravilha, por favor, documente aqui a evolução, possíveis problemas e soluções para que sirvam de apoio para os demais colegas do fórum e qeum sabe possíveis melhorias na CLASSE criada pelo Rafael.

[],

  • Like 1

Jorge Andrade

 

"Quem tem medo de perguntar, está fadado a eternizar-se na dúvida - [Jorge Andrade]";
 

"A soberba,  é o sentimento caracterizado pela pretensão de superioridade sobre as demais pessoas, levando a manifestações ostensivas de arrogância, por vezes sem fundamento algum em fatos ou variáveis reais - [Desconhecido";
 

"Aquele  que pesquisa antes de indagar, tem a grande chance de dirimir as suas dúvidas, fixar o aprendizado da pesquisa e evoluir para outros conhecimentos inesperados - [Jorge Andrade]";
 

"Os políticos e as fraldas devem ser trocados frequentemente e pela mesma razão - [Éça de Queiroz]".

Share this post


Link to post
Share on other sites

Bom dia,

preciso de mais uma ajuda, como postei consegui rodar a lib, mas estou com um erro no comando DesInicializar(), não gera retorno, percebi que gera um log de erro mas não descobri o problema, segue erro:

14/10/19 10:45:58:834 - TLibNFeConfig.AplicarConfiguracoes: C:\mgi\ACBrLib.ini
14/10/19 10:45:58:839 - Travar
14/10/19 10:45:58:845 - TLibNFeConfig.AplicarConfiguracoes - Feito
14/10/19 10:45:58:850 - Destravar
14/10/19 10:45:59:036 - TLibNFeConfig.Ler - Feito
14/10/19 10:45:59:041 - Destravar
14/10/19 10:45:59:047 - LIB_Inicializar( ,  )
14/10/19 10:45:59:053 -    ACBrLibNFe - 0.1.1
14/10/19 10:45:59:058 -    SetRetorno(0, )
14/10/19 10:45:59:063 - TACBrLibNFe.Inicializar
14/10/19 10:45:59:069 - TACBrLibNFe.Inicializar - Feito
14/10/19 10:45:59:075 - Travar
14/10/19 10:45:59:080 - TLibNFeConfig.Ler: C:\mgi\ACBrLib.ini
14/10/19 10:45:59:086 - TLibNFeConfig.AplicarConfiguracoes: C:\mgi\ACBrLib.ini
14/10/19 10:45:59:144 - Travar
14/10/19 10:45:59:150 - TLibNFeConfig.AplicarConfiguracoes - Feito
14/10/19 10:45:59:155 - Destravar
14/10/19 10:45:59:160 - TLibNFeConfig.Ler - Feito
14/10/19 10:45:59:164 - Destravar
14/10/19 10:45:59:170 - LIB_Inicializar( , *** )
14/10/19 10:45:59:174 -    ACBrLibNFe - 0.1.1
14/10/19 10:45:59:179 -    SetRetorno(0, )
14/10/19 10:46:00:966 - Finalizar
 

a unica coisa que percebi foi nesta linha:

14/10/19 11:00:05:012 - LIB_Inicializar( , *** )
tem ***

 

este é o código:

//---------------------------------------------

Function ACBrLibConfig()
   local nfe
   nfe := ACBrNFe():New( "", "" )

   // Salvando configurações
   nfe:ConfigGravar("")
   nfe:Inicializar()
   nfe:DesInicializar()
   nfe:Destroy()
   nfe := nil
return NIL

//--------------------------------------------

a classe não fiz nenhuma alteração, é a mesmo da demonstração somente o nome dos comandos de SAT_ para NFE_.

se puderam me dar uma luz, agradeço

Share this post


Link to post
Share on other sites
3 horas atrás, BRIZOLLA disse:

Bom dia,

preciso de mais uma ajuda, como postei consegui rodar a lib, mas estou com um erro no comando DesInicializar(), não gera retorno, percebi que gera um log de erro mas não descobri o problema, segue erro:

14/10/19 10:45:58:834 - TLibNFeConfig.AplicarConfiguracoes: C:\mgi\ACBrLib.ini
14/10/19 10:45:58:839 - Travar
14/10/19 10:45:58:845 - TLibNFeConfig.AplicarConfiguracoes - Feito
14/10/19 10:45:58:850 - Destravar
14/10/19 10:45:59:036 - TLibNFeConfig.Ler - Feito
14/10/19 10:45:59:041 - Destravar
14/10/19 10:45:59:047 - LIB_Inicializar( ,  )
14/10/19 10:45:59:053 -    ACBrLibNFe - 0.1.1
14/10/19 10:45:59:058 -    SetRetorno(0, )
14/10/19 10:45:59:063 - TACBrLibNFe.Inicializar
14/10/19 10:45:59:069 - TACBrLibNFe.Inicializar - Feito
14/10/19 10:45:59:075 - Travar
14/10/19 10:45:59:080 - TLibNFeConfig.Ler: C:\mgi\ACBrLib.ini
14/10/19 10:45:59:086 - TLibNFeConfig.AplicarConfiguracoes: C:\mgi\ACBrLib.ini
14/10/19 10:45:59:144 - Travar
14/10/19 10:45:59:150 - TLibNFeConfig.AplicarConfiguracoes - Feito
14/10/19 10:45:59:155 - Destravar
14/10/19 10:45:59:160 - TLibNFeConfig.Ler - Feito
14/10/19 10:45:59:164 - Destravar
14/10/19 10:45:59:170 - LIB_Inicializar( , *** )
14/10/19 10:45:59:174 -    ACBrLibNFe - 0.1.1
14/10/19 10:45:59:179 -    SetRetorno(0, )
14/10/19 10:46:00:966 - Finalizar
 

a unica coisa que percebi foi nesta linha:

14/10/19 11:00:05:012 - LIB_Inicializar( , *** )
tem ***

 

este é o código:

//---------------------------------------------

Function ACBrLibConfig()
   local nfe
   nfe := ACBrNFe():New( "", "" )

   // Salvando configurações
   nfe:ConfigGravar("")
   nfe:Inicializar()
   nfe:DesInicializar()
   nfe:Destroy()
   nfe := nil
return NIL

//--------------------------------------------

a classe não fiz nenhuma alteração, é a mesmo da demonstração somente o nome dos comandos de SAT_ para NFE_.

se puderam me dar uma luz, agradeço

Não entendi?  Pq vc não usa CFe que é o documento do Sat ao invés de nfe? Vc quer dizer o retorno do comando? Experimente enviar este comando:   nfe:ConfigGravarValor("SAT", "ArqLog", "path do log") e nfe:ExtrairLogs("nome do arquivo). De qualquer forma vou testar este trecho que vc postou, mas seria interessante vc postar todo o processo..


Jorge Andrade

 

"Quem tem medo de perguntar, está fadado a eternizar-se na dúvida - [Jorge Andrade]";
 

"A soberba,  é o sentimento caracterizado pela pretensão de superioridade sobre as demais pessoas, levando a manifestações ostensivas de arrogância, por vezes sem fundamento algum em fatos ou variáveis reais - [Desconhecido";
 

"Aquele  que pesquisa antes de indagar, tem a grande chance de dirimir as suas dúvidas, fixar o aprendizado da pesquisa e evoluir para outros conhecimentos inesperados - [Jorge Andrade]";
 

"Os políticos e as fraldas devem ser trocados frequentemente e pela mesma razão - [Éça de Queiroz]".

Share this post


Link to post
Share on other sites

O meu projeto é NFe, não o Sat, usei o exemplo do Sat porque é só esse que tem em Harbour, fiz somente as correções do nome do comando, porque é só que muda

Share this post


Link to post
Share on other sites

consegui pegar o retorno;

CStat=103
CUF=11
DhRecbto=14/10/2019 17:23:29
Msg=Lote recebido com sucesso
NRec=113065074417529
TMed=1
VerAplic=SVRSnfce201908091113
Versao=4.00
XMotivo=Lote recebido com sucesso
tpAmb=2

[Retorno]
CStat=104
CUF=11
ChaveDFe=11191021894569000118650030000004661000019818
Msg=Nota(s) não confirmadas:
466->704-Rejeicao: NFC-e com Data-Hora de emissao atrasada
Protocolo=
VerAplic=SVRSnfce201910020838
Versao=4.00
XMotivo=Lote processado
cMsg=0
nRec=113065074417529
tpAmb=2
xMsg=

[NFe466]
Id=
XML=<protNFe versao="4.00"><infProt><tpAmb>2</tpAmb><verAplic>SVRSnfce201910020838</verAplic><chNFe>11191021894569000118650030000004661000019818</chNFe><dhRecbto>2019-10-14T16:23:29-04:00</dhRecbto><digVal>kzO9skh8eyp15RlJ3sFvJUp7rWY=</digVal><cStat>704</cStat><xMotivo>Rejeicao: NFC-e com Data-Hora de emissao atrasada</xMotivo></infProt></protNFe>
cStat=704
chNFe=11191021894569000118650030000004661000019818
dhRecbto=14/10/2019 16:23:29
digVal=kzO9skh8eyp15RlJ3sFvJUp7rWY=
nProt=
tpAmb=2
verAplic=SVRSnfce201910020838
xMotivo=Rejeicao: NFC-e com Data-Hora de emissao atrasada
)
14/10/19 16:23:30:227 - Destravar
 

Está travando no fechamento mas é erro de programação, vou descobrir, obrigado..

Share this post


Link to post
Share on other sites
4 minutos atrás, BRIZOLLA disse:

consegui pegar o retorno;

CStat=103
CUF=11
DhRecbto=14/10/2019 17:23:29
Msg=Lote recebido com sucesso
NRec=113065074417529
TMed=1
VerAplic=SVRSnfce201908091113
Versao=4.00
XMotivo=Lote recebido com sucesso
tpAmb=2

[Retorno]
CStat=104
CUF=11
ChaveDFe=11191021894569000118650030000004661000019818
Msg=Nota(s) não confirmadas:
466->704-Rejeicao: NFC-e com Data-Hora de emissao atrasada
Protocolo=
VerAplic=SVRSnfce201910020838
Versao=4.00
XMotivo=Lote processado
cMsg=0
nRec=113065074417529
tpAmb=2
xMsg=

[NFe466]
Id=
XML=<protNFe versao="4.00"><infProt><tpAmb>2</tpAmb><verAplic>SVRSnfce201910020838</verAplic><chNFe>11191021894569000118650030000004661000019818</chNFe><dhRecbto>2019-10-14T16:23:29-04:00</dhRecbto><digVal>kzO9skh8eyp15RlJ3sFvJUp7rWY=</digVal><cStat>704</cStat><xMotivo>Rejeicao: NFC-e com Data-Hora de emissao atrasada</xMotivo></infProt></protNFe>
cStat=704
chNFe=11191021894569000118650030000004661000019818
dhRecbto=14/10/2019 16:23:29
digVal=kzO9skh8eyp15RlJ3sFvJUp7rWY=
nProt=
tpAmb=2
verAplic=SVRSnfce201910020838
xMotivo=Rejeicao: NFC-e com Data-Hora de emissao atrasada
)
14/10/19 16:23:30:227 - Destravar
 

Está travando no fechamento mas é erro de programação, vou descobrir, obrigado..

Creio que pode ser um erro no comando NFE_Enviar porque ele pega o retorno mas o sistema trava e não mostra, se alguém puder me dar uma luz;

METHOD Enviar(   ) CLASS ACBrNFe
    local hResult, buffer, bufferLen
    bufferLen := STR_LEN
    buffer := Space(bufferLen)   
    hResult := DllCall(::hHandle, DLL_OSAPI, "NFE_Enviar",  '1', .t., .t. , .f., '0', '0', @buffer, @bufferLen)
    ::CheckResult(hResult)

    RETURN  ::ProcessResult(buffer, bufferLen)

 

esta função não tem no DEMO da classe Harbour, pode ser que tenha criado errado.

Share this post


Link to post
Share on other sites

Seu método esta implementado errado você colocou parâmetros a mais na chamada

hResult := DllCall(::hHandle, DLL_OSAPI, "NFE_Enviar",  '1', .t., .t. , .f., '0', '0', @buffer, @bufferLen)

os parâmetros destacados estão incorretos.


Consultor SAC ACBr Rafael Dias
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Desenvolvedor ACBrLib.

 

Share this post


Link to post
Share on other sites
  • Este tópico foi criado há 223 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui
Guest
This topic is now closed to further replies.

×
×
  • Create New...