ACBrReinf - Fontes - ACBr-Reinf - Projeto ACBr
By Leivio Fontenele,
August 25, 2017 in ACBr-Reinf
Go to solution Solved by Renato Rubinho, October 26, 2017
Este tópico foi criado há 1584 dias atrás.
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.
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>]>';
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
ACBrReinf.zip
Edited August 25, 2017 by Leivio Fontenele
Sandro Felipe Adad 15 posts
Zottis 13 posts
Renato Rubinho 17 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 Adminis
No svn ambos os componentes
@fidel, Compreenda que o componente que você está tentando usar, está em construção... Ou seja, NÃO ESTÁ PRONTO... Então, se você não tem conhecimento técnico para analisar os fontes e compr
claudiomiguelmuller 44
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?
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.
Em 25/08/2017 at 10:13, Leivio Fontenele disse:
Seu código é compatível com o Delphi 7?
Luciano O M
Luciano O M 0
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 ?
22 horas atrás, Luciano O M disse:
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:
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.
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..
@Daniel Simoescom certeza podemos modificar... REINF tem poucos eventos... mudança não é muito complicada.
Se não me engano, o @Juliomar Marchetti, já está modificando isso...
certo @Daniel Simoes .... me avisem se precisar de algo que eu possa ajustar.
JOAO MARCOS Rueda
JOAO MARCOS Rueda 0
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 ...
Osman Filho
Osman Filho 0
Não Estou conseguindo rodar no Delphi XE2, Faltando uma função ISO8601ToDate não tem em System.DateUtils
Juliano Felix da Silva
Juliano Felix da Silva 0
Em 22/09/2017 at 17:05, JOAO MARCOS Rueda disse:
Em 26/09/2017 at 09:22, Osman Filho disse:
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','');
Pessoal voces estao de parabens , ja tem uma previa data de quando estara para baixar no trunk ?
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
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
seria legal o pessoal do sac fiscal implementar essas validacoes no componente do acbr
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.
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.
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
Que legal @Renato Rubinho... vou baixar a testar com D7... Show!
Obrigado pelas alterações mas não vou manter os IFDEF deixarei como o código dos demais sem generics.
Ok @Juliomar Marchetti Utilizo D7 ainda, fiz com os ifdefs para não atropelar o original do @Leivio Fontenele, mas está bem simples para tirar.