Ir para conteúdo
  • Cadastre-se

ACBrReinf - Fontes


Ver Solução Respondido por Renato Rubinho,
  • Este tópico foi criado há 3074 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado (editado)

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

Editado por Leivio Fontenele
  • Curtir 1
  • Obrigado 4
  • Consultores
Postado

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.

 

Consultora ACBr Pro

Juliomar Marchetti

Ajude o Projeto ACBr crescer - Seja Pro

discord: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br

 

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


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • 3 semanas depois ...
  • Consultores
Postado
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?

 

Consultora ACBr Pro

Juliomar Marchetti

Ajude o Projeto ACBr crescer - Seja Pro

discord: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br

 

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


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Postado

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 ?

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

  • Fundadores
Postado

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

  • Curtir 2
Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

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

  • 2 semanas depois ...
Postado

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

 

 

 

  • 2 semanas depois ...
Postado
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','');
 

  • Membros Pro
Postado

Pessoal voces estao de parabens , ja tem uma previa data de quando estara para baixar no trunk ?

 

Jeferson

 

 

  • Consultores
Postado

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

  • Obrigado 1

 

Consultora ACBr Pro

Juliomar Marchetti

Ajude o Projeto ACBr crescer - Seja Pro

discord: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br

 

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


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • Membros Pro
Postado

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

  • Consultores
Postado

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.

 

Consultora ACBr Pro

Juliomar Marchetti

Ajude o Projeto ACBr crescer - Seja Pro

discord: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br

 

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


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

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

  • 2 semanas depois ...
  • Consultores
Postado

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

  • Curtir 2
  • Consultores
Postado

Boa tarde

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

  • Curtir 1

 

Consultora ACBr Pro

Juliomar Marchetti

Ajude o Projeto ACBr crescer - Seja Pro

discord: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br

 

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


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • Este tópico foi criado há 3074 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...
The popup will be closed in 10 segundos...