Jump to content

logo_acbr_paygo.png

Chegou o TEF ACBr PayGo
Seja um revendedor e ofereça uma solução completa para seu cliente.


botao_saibamais.png

beneficios.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

Leivio Fontenele

ANSWERED ACBrReinf - Fontes

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

Recommended Posts

Bom dia Pessoal,

Segue em anexo os fontes do ACBrReinf.

Eventos Implementados e testados:


1. R-1000 - Informações do Empregador/Contribuinte
2. R-1070 - Tabela de Processos Administrativos/Judiciais
3. R-2010 – Retenção Contribuição Previdenciária - Serviços Tomados
4. R-2020 – Retenção Contribuição Previdenciária - Serviços Prestados
7. R-2098 – Reabertura dos Eventos Periódicos
8. R-2099 – Fechamento dos Eventos Periódicos
9. R-9000 – Exclusão de Eventos

Faltando os eventos: (Não fiz por que o negocio não tem demanda para esse tipo de evento. mais caso alguém precise da pra fazer.)

  5. R-2030 – Recursos Recebidos por Associação Desportiva 
  6. R-2040 – Recursos Repassados para Associação Desportiva

 

-> Units do core do ACBr modificadas:

ACBrDFeUtil.pas

- Incluido no SignatureElement as tags necessárias para assinatura SHA256.

     function SignatureElement(const URI: String; AddX509Data: Boolean; IdSignature: String = ''; Asha256: Boolean = False): String;

ACBrDFeSSL.pas

- Criação de uma propriedade "property SSLDgst: TSSLDgst read FSSLDgst write FSSLDgst;" na TDFeSSL para informar o tipo de "Method Algorithm" a ser usado. Por padrão será SHA1.

- no metodo TDFeSSLXmlSignClass.AdicionarSignatureElement na chamada do SignatureElement e passado a propriedade "FpDFeSSL.FSSLDgst" do tipo a ser usado( ver Abaixo)

  Result := copy(ConteudoXML, 1, I - 1) + SignatureElement(URI, AddX509Data, IdSignature, FpDFeSSL.FSSLDgst = dgstSHA256) + TagEndDocElement;

ACBrDFeXsXmlSec.pas

- Incluido uma diretiva "REINF" para seleção do DTD para ser usado no REINF. O Projeto do REINF não segui o padrão do Id. (Isso pode mudar em versões futuras do REINF) .

  {$IFDEF REINF}
  cDTD = '<!DOCTYPE test [<!ATTLIST &infElement& id ID #IMPLIED>]>';
  {$ELSE}
  cDTD = '<!DOCTYPE test [<!ATTLIST &infElement& Id ID #IMPLIED>]>';
  {$ENDIF}

Espero que ajude e traga mais força ao projeto.

obs.: Tentei seguir ao máximo a implementação atual do ACBR (Delphi > 2009). porem não testei em FPC.

obs.: Para listas usei Generics haja vista que estou seguindo Delphi 2010 ou superior.

obs.: Antes que perguntem: Vou publicar os fontes do eSocial em outro tópico.

No aguardo da avaliação @Juliomar Marchetti  @EMBarbosa

Abraços.

ACBrReinf.zip

Edited by Leivio Fontenele
  • Like 1
  • Thanks 4

Share this post


Link to post
Share on other sites

Olá Leivio,

uma dúvida, não trabalho com Delphi ou Lazarus.

Vai ter a opção de eu gerar no meu sistema o XML, e eu enviar comando para o Acbr via TXT para pegar o arquivo meu gerado e enviar ao webservice e me dar retorno?

Share this post


Link to post
Share on other sites

calma que você está falando de outra coisa aqui.

Está falando do ACBrMonitorPLUS.

ainda tem que ser subido o componente, validado e então será visto se ele será ou não incorporado do Monitor.


Consultor SAC ACBr Juliomar Marchetti
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

skype: juliomar
telegram: juliomar
http://www.juliomarmarchetti.com.br
Embarcadero MVP
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

Share this post


Link to post
Share on other sites
Em 25/08/2017 at 10:13, Leivio Fontenele disse:

Bom dia Pessoal,

Segue em anexo os fontes do ACBrReinf.

Eventos Implementados e testados:


1. R-1000 - Informações do Empregador/Contribuinte
2. R-1070 - Tabela de Processos Administrativos/Judiciais
3. R-2010 – Retenção Contribuição Previdenciária - Serviços Tomados
4. R-2020 – Retenção Contribuição Previdenciária - Serviços Prestados
7. R-2098 – Reabertura dos Eventos Periódicos
8. R-2099 – Fechamento dos Eventos Periódicos
9. R-9000 – Exclusão de Eventos

Faltando os eventos: (Não fiz por que o negocio não tem demanda para esse tipo de evento. mais caso alguém precise da pra fazer.)

  5. R-2030 – Recursos Recebidos por Associação Desportiva 
  6. R-2040 – Recursos Repassados para Associação Desportiva

 

-> Units do core do ACBr modificadas:

ACBrDFeUtil.pas

- Incluido no SignatureElement as tags necessárias para assinatura SHA256.

     function SignatureElement(const URI: String; AddX509Data: Boolean; IdSignature: String = ''; Asha256: Boolean = False): String;

ACBrDFeSSL.pas

- Criação de uma propriedade "property SSLDgst: TSSLDgst read FSSLDgst write FSSLDgst;" na TDFeSSL para informar o tipo de "Method Algorithm" a ser usado. Por padrão será SHA1.

- no metodo TDFeSSLXmlSignClass.AdicionarSignatureElement na chamada do SignatureElement e passado a propriedade "FpDFeSSL.FSSLDgst" do tipo a ser usado( ver Abaixo)

  Result := copy(ConteudoXML, 1, I - 1) + SignatureElement(URI, AddX509Data, IdSignature, FpDFeSSL.FSSLDgst = dgstSHA256) + TagEndDocElement;

ACBrDFeXsXmlSec.pas

- Incluido uma diretiva "REINF" para seleção do DTD para ser usado no REINF. O Projeto do REINF não segui o padrão do Id. (Isso pode mudar em versões futuras do REINF) .

  {$IFDEF REINF}
  cDTD = '<!DOCTYPE test [<!ATTLIST &infElement& id ID #IMPLIED>]>';
  {$ELSE}
  cDTD = '<!DOCTYPE test [<!ATTLIST &infElement& Id ID #IMPLIED>]>';
  {$ENDIF}

Espero que ajude e traga mais força ao projeto.

obs.: Tentei seguir ao máximo a implementação atual do ACBR (Delphi > 2009). porem não testei em FPC.

obs.: Para listas usei Generics haja vista que estou seguindo Delphi 2010 ou superior.

obs.: Antes que perguntem: Vou publicar os fontes do eSocial em outro tópico.

No aguardo da avaliação @Juliomar Marchetti  @EMBarbosa

Abraços.

ACBrReinf.zip

Bom dia

Seu código é compatível com o Delphi 7?


Consultor SAC ACBr Juliomar Marchetti
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

skype: juliomar
telegram: juliomar
http://www.juliomarmarchetti.com.br
Embarcadero MVP
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

Share this post


Link to post
Share on other sites

Boa tarde Leivio Fontenele,

Neste exemplo do ACBrReinf você conseguiu transmitir algum evento ? Estou desenvolvendo para o Delphi 2010 e em paralelo em .NET mas meus testes sempre retonar <descricao>Versão do lote inválida. Deve ser utilizada a versão 1.01.01.</descricao>

Você passou por isso ?

Share this post


Link to post
Share on other sites
22 horas atrás, Luciano O M disse:

Boa tarde Leivio Fontenele,

Neste exemplo do ACBrReinf você conseguiu transmitir algum evento ? Estou desenvolvendo para o Delphi 2010 e em paralelo em .NET mas meus testes sempre retonar <descricao>Versão do lote inválida. Deve ser utilizada a versão 1.01.01.</descricao>

Você passou por isso ?

Sim, todos os eventos especificados acima foram transmitidos sem problemas.

Esse seu erro deve ser a especificação na mensagem SOAP.  "<Reinf xmlns="http://www.reinf.esocial.gov.br/schemas/envioLoteEventos/v1_01_01">"

 

Segue em anexo uma msg de envio valida para comparação.

E_Reinf_Soap-175429_9.xml

Em 11/09/2017 at 09:52, Juliomar Marchetti disse:

Bom dia

Seu código é compatível com o Delphi 7?

Não é compatível com Delphi 7. Porque uso Generics "TObjectList<T>" para coleção de objetos. Porem para se torna compatível as modificações não são tão grandes.

Share this post


Link to post
Share on other sites

Não podemos aceitar... sem a compatibilidade com o D7... isso quebraria a compilação do ACBr para muita gente, que atualmente usa o Projeto...

Acho que o código pode ser ajustado para TObjectList, ou TCollection. assim como nos demais componentes do ACBr..

  • Like 2

Consultor SAC ACBr

Daniel Simões de Almeida
Ajude o Projeto ACBr crescer - Assine o SAC

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

Share this post


Link to post
Share on other sites

Parabéns a todos ! 

Testei com D7 , parabéns ao pessoal que desenvolveu ficou show, (pena que tive que fazer aqui em java) enviei o S1000 e peguei resposta com esse exemplo do @Leivio Fontenele, ficou legal... vamos ver se agora com mais tempo e com as coisas já encaminhadas eu consigo ajudar em alguma coisa ... 

 

 

 

Share this post


Link to post
Share on other sites
Em 22/09/2017 at 17:05, JOAO MARCOS Rueda disse:

Parabéns a todos ! 

Testei com D7 , parabéns ao pessoal que desenvolveu ficou show, (pena que tive que fazer aqui em java) enviei o S1000 e peguei resposta com esse exemplo do @Leivio Fontenele, ficou legal... vamos ver se agora com mais tempo e com as coisas já encaminhadas eu consigo ajudar em alguma coisa ... 

 

 

 

 

Em 26/09/2017 at 09:22, Osman Filho disse:

Não Estou conseguindo rodar no Delphi XE2, Faltando uma função ISO8601ToDate não tem em System.DateUtils

Também não consegui compilar o exemplo do Leivio no delphiXE2, então eu comentei a linha e depois em outra linha eu tirei a função ISO8601ToDate , desta forma não deu mais erro.

//        Evento.dadosRecepcaoEvento.dhProcessamento := ISO8601ToDate(Reader.rCampo(tcStr, 'dhProcessamento',''));
        Evento.dadosRecepcaoEvento.dhProcessamento := Reader.rCampo(tcStr, 'dhProcessamento','');
 

Share this post


Link to post
Share on other sites

Sim está sendo feito antes o eSocial e logo sobe esse daqui pois o mesmo necessita de alterações para compatibilizar com Lazarus e Delphi 7

  • Thanks 1

Consultor SAC ACBr Juliomar Marchetti
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

skype: juliomar
telegram: juliomar
http://www.juliomarmarchetti.com.br
Embarcadero MVP
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

Share this post


Link to post
Share on other sites

eu iria comprar o componente do tecnospeed , mas apos essa otima informacao vou gastar esse dinheiro pagando o sac mensalmente.

O q achei legal do componente deles e a parte de auditoria que antes de enviar pra sefaz faz analise dos codigos st icms ipi pis e cofins

 

Jeferson

Share this post


Link to post
Share on other sites

Boa tarde

Acho difícil pois dai estaríamos trazendo responsabilidade para o Projeto onde o mesmo não se mantém e nem tem um contrato com as software houses para cobrir qualquer erro ou engano de legislação.


Consultor SAC ACBr Juliomar Marchetti
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

skype: juliomar
telegram: juliomar
http://www.juliomarmarchetti.com.br
Embarcadero MVP
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

Share this post


Link to post
Share on other sites
Em 25/08/2017 at 10:13, Leivio Fontenele disse:

Bom dia Pessoal,

Segue em anexo os fontes do ACBrReinf.

Eventos Implementados e testados:


1. R-1000 - Informações do Empregador/Contribuinte
2. R-1070 - Tabela de Processos Administrativos/Judiciais
3. R-2010 – Retenção Contribuição Previdenciária - Serviços Tomados
4. R-2020 – Retenção Contribuição Previdenciária - Serviços Prestados
7. R-2098 – Reabertura dos Eventos Periódicos
8. R-2099 – Fechamento dos Eventos Periódicos
9. R-9000 – Exclusão de Eventos

Faltando os eventos: (Não fiz por que o negocio não tem demanda para esse tipo de evento. mais caso alguém precise da pra fazer.)

  5. R-2030 – Recursos Recebidos por Associação Desportiva 
  6. R-2040 – Recursos Repassados para Associação Desportiva

 

-> Units do core do ACBr modificadas:

ACBrDFeUtil.pas

- Incluido no SignatureElement as tags necessárias para assinatura SHA256.

     function SignatureElement(const URI: String; AddX509Data: Boolean; IdSignature: String = ''; Asha256: Boolean = False): String;

ACBrDFeSSL.pas

- Criação de uma propriedade "property SSLDgst: TSSLDgst read FSSLDgst write FSSLDgst;" na TDFeSSL para informar o tipo de "Method Algorithm" a ser usado. Por padrão será SHA1.

- no metodo TDFeSSLXmlSignClass.AdicionarSignatureElement na chamada do SignatureElement e passado a propriedade "FpDFeSSL.FSSLDgst" do tipo a ser usado( ver Abaixo)

  Result := copy(ConteudoXML, 1, I - 1) + SignatureElement(URI, AddX509Data, IdSignature, FpDFeSSL.FSSLDgst = dgstSHA256) + TagEndDocElement;

ACBrDFeXsXmlSec.pas

- Incluido uma diretiva "REINF" para seleção do DTD para ser usado no REINF. O Projeto do REINF não segui o padrão do Id. (Isso pode mudar em versões futuras do REINF) .

  {$IFDEF REINF}
  cDTD = '<!DOCTYPE test [<!ATTLIST &infElement& id ID #IMPLIED>]>';
  {$ELSE}
  cDTD = '<!DOCTYPE test [<!ATTLIST &infElement& Id ID #IMPLIED>]>';
  {$ENDIF}

Espero que ajude e traga mais força ao projeto.

obs.: Tentei seguir ao máximo a implementação atual do ACBR (Delphi > 2009). porem não testei em FPC.

obs.: Para listas usei Generics haja vista que estou seguindo Delphi 2010 ou superior.

obs.: Antes que perguntem: Vou publicar os fontes do eSocial em outro tópico.

No aguardo da avaliação @Juliomar Marchetti  @EMBarbosa

Abraços.

ACBrReinf.zip

Olá Leivio,

Gostaria de saber como está o projeto ACBR REINF.

Você está mexendo nos fontes ainda?

Tem algo que eu poderia ajudar?

Estou  com pressa para ter o componente funcionando.

Obrigado.

Share this post


Link to post
Share on other sites

Boa tarde @Leivio Fontenele e @Juliomar Marchetti,

Compatibilizei o fonte com o Delphi 7 para iniciar o desenvolvimento e testes aqui no sistema.
Falta testar a transmissão porque estou sem certificado no momento.

1. Mantidos os códigos originais utilizando {$IFDEF COMPILER14_UP};

2. Criadas classes com TObjectList, no padrão do ACBr, para suprir as situações das listas com Generics;

3. No ACBrReinfWebServices, não encontrei alternativa ainda para o ISO8601ToDate. Para o UTF8ToString, utilizei o UTF8ToAnsi;
 

Abraççç,

ACBrReinfD7UP.rar

  • Like 2

 

Renato Rubinho
Analista de Sistemas

Share this post


Link to post
Share on other sites

Boa tarde

Obrigado pelas alterações mas não vou manter os IFDEF deixarei como o código dos demais sem generics.

  • Like 1

Consultor SAC ACBr Juliomar Marchetti
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

skype: juliomar
telegram: juliomar
http://www.juliomarmarchetti.com.br
Embarcadero MVP
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

Share this post


Link to post
Share on other sites
  • Este tópico foi criado há 928 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...