Página 2 de 2
Objeto Unidanfe
Enviado: 13 Mai 2022 18:28
por JoséQuintas
Link com falha, mas cheguei na página de instalação.
O manual é de algum sonhador, que partiu de uma máquina já com tudo configurado, ou.... de alguém que não tem a menor idéia do que fez, ou .... alguém que vai receber pra dar suporte.
A parte de Harbour parou aqui, não há mais nada a acrescentar.
Só chamou a atenção o "xharbour (versão paga)", nada demais, apenas chamou a atenção.
O problema é a DLL, vai ter que pedir suporte lá, ou ver com alguém que use.
Objeto Unidanfe
Enviado: 13 Mai 2022 20:34
por Alexandre Silva
Obrigado
Se tiver alguma informacao repasso
Objeto Unidanfe
Enviado: 13 Mai 2022 21:00
por JoséQuintas
Pra mim, o manual deveria ter ao menos referência à instalação do Net Framework.
Ou talvez precise instalar TODO UNIDFE além da DLL.
E talvez a DLL só faça a ponte intermediária entre os dois, e nada mais.
Como o manual não menciona porr.. nenhuma.... por adivinhação fica difícil.
Objeto Unidanfe
Enviado: 13 Mai 2022 21:03
por JoséQuintas
Só lembrando:
uninfe é em NET, o que obriga a instalar NET.
A DLL.... provavelmente é do tipo que fica de intermediária entre win32 e NET, porque isso de CreateObject() não existe pra NET.
Então.... suponho que a DLL seja só uma parte do conjunto, e por isso mencionei do manual ser pra máquina já configurada com algo mais, que não diz lá.
Objeto Unidanfe
Enviado: 24 Mai 2022 14:04
por malcarli
Olhem isso pessoal
Você que programa em xHarbour, esta é para você.
Nesta quinta-feira (29/05/2022), às 9h, DLL Unimake.DFe com xHarbour na prática.
Integre seu ERP ou PDV para envio dos documentos fiscais eletrônicos (Nfe, Nfce, Cte, MDFe, NFSe, etc.) com a DLL Unimake.Dfe.
Vamos falar e praticar sobre:
- Instalando a DLL para uso na linguagem xHarbour;
- Consumindo o serviço "Consultar Status do Serviço da NFe";
- Consumindo o serviço "Consultar Situação da NFe".
Seja muito mais produtivo na integração com os documentos fiscais eletrônicos (NFe, NFCe, CTe, CTeOS, MDFe, GNRE, NFSe, etc.).
Link para participação:
https://youtu.be/YwQgMJmhNVA
Participe e compartilhe.
Objeto Unidanfe
Enviado: 25 Mai 2022 08:19
por jairfab
Gostaria de saber se vai ser abordado o e-Social ?
Outra coisa mudou a data não seria para dia 26/05/2022 amanha!
Objeto Unidanfe
Enviado: 25 Mai 2022 11:28
por Jairo Maia
jairfab escreveu:Outra coisa mudou a data não seria para dia 26/05/2022 amanha!
Jair, não trabalho com o e-Social, mas pelo que me consta a tolerância de convivência de versões expirou no último dia 22/05/2022. A partir dessa data somente dados enviados com a versão S-1.0 são aceitos.
Objeto Unidanfe
Enviado: 25 Mai 2022 18:05
por jairfab
Isto mesmo Jairo. eu já enviei vários registros nesta versão porem utilizo o componente unimake pra fazer os envio mas queria saber nesta nova modalidade de uso via dll se tem esocial também?
Objeto Unidanfe
Enviado: 28 Mai 2022 19:56
por dbsh
Vi este tópico ontem
Comecei fazer um teste hoje
Baixe estes dois instaladores em:
http://www.unimake.com.br/downloads.php
1 - DLL UniNFe
2 - DLL de geracao do Danfe
TesteDLLDFe_ValidarCertificadoA1, não funcionou, vou testar mais
CLASSE
Código: Selecionar todos
#pragma /w2
#pragma /es2
//#include 'boni_cmd.ch'
#include 'hbclass.ch'
#define __DFE_NFE_CERT_DIG__ iif(File('certificado.pfx'), Lower(PathAtual()) + 'certificado.pfx', '')
#define __DFE_NFE_CERT_SENHA__ iif(File('certificado.pfx'), '12345678', '')
#define __DFE_NFE_TBAMB__ 2
#define __DFE_NFE_CUF__ 32
#define __DFE_NFE_VERSAO__ '4.00'
CREATE CLASS DFe
CLASS VAR CertDigArq INIT __DFE_NFE_CERT_DIG__ //AS TYPE CHARACTER
CLASS VAR CertDigSenha INIT __DFE_NFE_CERT_SENHA__ //AS TYPE CHARACTER
CLASS VAR TpAmb INIT __DFE_NFE_TBAMB__ //AS TYPE NUMERIC // 1-Producao, 2-Homologacao
CLASS VAR CUF INIT __DFE_NFE_CUF__ //AS TYPE NUMERIC
CLASS VAR Versao INIT __DFE_NFE_VERSAO__ //AS TYPE CHARACTER
//VAR oDFe PROTECTED INIT NIL // [[EXPORTED | VISIBLE] | [PROTECTED] | [HIDDEN]] [READONLY | RO]
VAR ConfBasica
VAR DFeError
VAR Error
VAR Certificado
VAR CertDigSel
VAR consStatServ
VAR statusServico
VAR DanfeConf
VAR DanfeServ
METHOD New() CONSTRUCTOR
DESTRUCTOR Destroy
METHOD CarregarCertificadoA1
METHOD Status
METHOD Danfe
//ON ERROR ErrorHandler()
ENDCLASS
/*
METHOD ErrorHandler(e) CLASS DFe
Self:Error := e
RETURN Self
*/
METHOD New(nServico, sCertDigArq, sCertDigSenha) CLASS DFe
LOCAL aCert, xx
//Self:oDFe := CriaVarObjectTemp()
DEFAULT nServico TO 0 // 0=nfe status serviço, 5=Envio de evento
DEFAULT sCertDigArq TO Self:CertDigArq
DEFAULT sCertDigSenha TO Self:CertDigSenha
Self:DFeError := CreateObject("Unimake.Exceptions.ThrowHelper")
//colocar certififcado na pasta do sistema "certififcado_cliente_tal-senha.pfx", carrega automático sem precisar configurar
//EX: "certificado_teste-12345678.pfx"
IF Empty(sCertDigArq)
aCert := Directory('certificado*.pfx')
IF Len(aCert) > 0
sCertDigArq := ''
FOR xx := 1 TO Len(aCert)
sCertDigArq += (',' + Left(aCert[xx, 1], Rat('-', aCert[xx, 1]) - 1))
NEXT
sCertDigArq := SubStr(sCertDigArq, 2)
IF Len(aCert) = 1
xx := 1
ELSE
xx := Alerta('Certificados encontrados', Split(sCertDigArq, ','))
ENDIF
IF xx > 0
sCertDigArq := aCert[xx, 1]
sCertDigSenha := SubStr(aCert[xx, 1], Rat('-', aCert[xx, 1]) + 1)
sCertDigSenha := Left(sCertDigSenha, Len(sCertDigSenha) - 4)
Self:CertDigArq := sCertDigArq
Self:CertDigSenha := sCertDigSenha
ELSE
sCertDigArq := ''
ENDIF
ENDIF
ENDIF
* Criar configuração básica para consumir o serviço
Self:ConfBasica = CreateObject("Unimake.Business.DFe.Servicos.Configuracao")
Self:ConfBasica:TipoDfe := 0 // 0=nfe
Self:ConfBasica:Servico := nServico
Self:ConfBasica:CertificadoArquivo := sCertDigArq
Self:ConfBasica:CertificadoSenha := sCertDigSenha
Self:CarregarCertificadoA1()
RETURN Self
METHOD Destroy() CLASS DFe
Self:ConfBasica := NIL
Self:DFeError := NIL
Self:Error := NIL
Self:Certificado := NIL
Self:CertDigSel := NIL
Self:consStatServ := NIL
Self:statusServico := NIL
Self:DanfeConf := NIL
Self:DanfeServ := NIL
RETURN Self
METHOD CarregarCertificadoA1(sCertDigArq, sCertDigSenha) CLASS DFe
DEFAULT sCertDigArq TO Self:ConfBasica:CertificadoArquivo
DEFAULT sCertDigSenha TO Self:ConfBasica:CertificadoSenha
* Criar objeto com Certificado A1 informado
Self:Certificado := CreateObject("Unimake.Security.Platform.CertificadoDigital")
Self:CertDigSel := Self:Certificado:CarregarCertificadoDigitalA1(sCertDigArq, sCertDigSenha)
RETURN Self
METHOD Status(nTpAmb, nUf, sVersao) CLASS DFe
DEFAULT nTpAmb TO Self:tpAmb
DEFAULT nUf TO Self:CUF
DEFAULT sVersao TO Self:Versao
// Criar XML
Self:consStatServ = CreateObject("Unimake.Business.DFe.Xml.NFe.ConsStatServ")
Self:consStatServ:Versao := sVersao
Self:consStatServ:TpAmb := nTpAmb
Self:consStatServ:CUF := nUf
* Consumir o serviço
Self:statusServico := CreateObject("Unimake.Business.DFe.Servicos.NFe.StatusServico")
Self:statusServico:Executar(Self:consStatServ, Self:ConfBasica)
RETURN Self
METHOD Danfe(sArqXML, lImprimir, lVisualizar, lExecutar ) CLASS DFe
DEFAULT sArqXML TO ''
DEFAULT lImprimir TO .F.
DEFAULT lVisualizar TO .T.
DEFAULT lExecutar TO .T.
* Configuracoes
Self:DanfeConf := CreateObject('Unimake.Unidanfe.Configurations.UnidanfeConfiguration')
Self:DanfeConf:Arquivo = sArqXML
Self:DanfeConf:Imprimir = lImprimir
Self:DanfeConf:Visualizar = lVisualizar
* Executar Impressao
Self:DanfeServ = CreateObject('Unimake.Unidanfe.UnidanfeServices')
IF lExecutar .and. !Empty(Self:DanfeConf:Arquivo)
Self:DanfeServ:Execute(Self:DanfeConf)
ENDIF
RETURN Self
Teste
Código: Selecionar todos
PROCEDURE TesteDllDFe()
LOCAL oDFe, oError
BEGIN SEQUENCE WITH {|e| Break(e)}
? procline(0)
oDFe := DFe()
oDFe:New()
//TesteDLLDFe_ValidarCertificadoA1(oDFe)
TesteDLLDFe_Status(oDFe)
TesteDLLDFe_Danfe(oDFe)
RECOVER USING oError
? oError:Description
? oError:Operation
IF !Empty(oDFe:Error)
? oDFe:Error:Description
? oDFe:Error:Operation
ENDIF
? oDFe:DFeError:GetMessage()
? oDFe:DFeError:GetErrorCode()
END SEQUENCE
RETURN
PROCEDURE TesteDLLDFe_Status(oDFe)
LOCAL oError
BEGIN SEQUENCE WITH {|e| Break(e)}
oDFe:Status()
? "XML Retornado pela SEFAZ"
? "========================"
? oDFe:statusServico:RetornoWSString
?
? "Codigo de Status e Motivo"
? "========================="
? AllTrim(Str(oDFe:statusServico:Result:CStat, 5))
? oDFe:statusServico:Result:XMotivo
?
RECOVER USING oError
? oError:Description
? oError:Operation
IF !Empty(oDFe:Error)
? oDFe:Error:Description
? oDFe:Error:Operation
ENDIF
? oDFe:DFeError:GetMessage()
? oDFe:DFeError:GetErrorCode()
END SEQUENCE
RETURN
PROCEDURE TesteDLLDFe_ValidarCertificadoA1(oDFe)
Local Certificado, CertificadoSelecionado
True(oDFe)
* Criar objeto com Certificado A1 informado
Certificado := CreateObject("Unimake.Security.Platform.CertificadoDigital")
CertificadoSelecionado := Certificado:CarregarCertificadoDigitalA1(oDFe:CertDigArq, oDFe:CertDigSenha)
//? "ID do Certificado....: ", oDFe:Certificado:GetThumbPrint(oDFe:CertDigSel)
? "ID do Certificado....: ", Certificado:GetThumbPrint(CertificadoSelecionado) //oDFe:CertDigSel
? "Dados do proprietario: ", Certificado:GetSubject(CertificadoSelecionado)
? "Numero de Serie......: ", Certificado:GetSerialNumber(CertificadoSelecionado)
? "Validade Inicial.....: ", Certificado:GetNotBefore(CertificadoSelecionado)
? "Validade Final.......: ", Certificado:GetNotAfter(CertificadoSelecionado)
? "Certificado vencido?.: ", Certificado:Vencido(CertificadoSelecionado)
?
RETURN
PROCEDURE TesteDLLDFe_Danfe(oDFe)
oDFe:Danfe('.\arquivo_nfe.xml', .F./*imprimir*/, .T./*visualizar*/, .T./*executar*/)
RETURN