Ir para conteúdo
  • Cadastre-se

dev botao

Utilitário para integração com a eSocial


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

Recommended Posts

@Hudson G Leite, infelizmente estou sem skype no momento, vou dar uma olhada nas alterações, @guilhermedoj, estou terminando uns ajustes nos eventos de tabelas e periódicos, falta os não periódicos, a comunicação com o ws e falta também fazer a alteração na assinatura, pois está utilizando o algoritmo errado de acordo com o manual, o correto é o SHA256.

Link para o comentário
Compartilhar em outros sites

  • Moderadores
3 horas atrás, GuilhermeCosta disse:

Boa tarde Srs,

@Juliomar Marchetti

Segue em anexo as alterações para validação com o novo leiaute 2.3 para os eventos iniciais/tabelas/periódicos e a criação do novo evento S-1295.

Anexei também os schemas da nova versão.

Obrigado.

Acbr Branches.rar

No svn as alterações

18 minutos atrás, Hudson G Leite disse:

@GuilhermeCosta, boa tarde!

Bacana as alterações feitas nos eventos no eSocial! Apenas uma dúvida a classe, [ TSucessaoVinc ] implementada na unit eSocial_S1200 não poderia ser usada a mesma já existente da unit [ eSocial_Common ]?

caso queira sugerir melhorias esteja a vontade.

  • Curtir 1
Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
 

 

Link para o comentário
Compartilhar em outros sites

15 horas atrás, Hudson G Leite disse:

@GuilhermeCosta, boa tarde!

Bacana as alterações feitas nos eventos no eSocial! Apenas uma dúvida a classe, [ TSucessaoVinc ] implementada na unit eSocial_S1200 não poderia ser usada a mesma já existente da unit [ eSocial_Common ]?

Bom dia,

Poderia sim, não me atentei a isso, assim que possível faço a refatoração... vlw

Link para o comentário
Compartilhar em outros sites

  • Moderadores
2 horas atrás, GuilhermeCosta disse:

Bom dia,

Poderia sim, não me atentei a isso, assim que possível faço a refatoração... vlw

já corrigido.

  • Curtir 1
Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
 

 

Link para o comentário
Compartilhar em outros sites

Bom dia galera,

Alguém chegou a dar uma olhadinha nas validações?

Me corrijam se estiver errado, mas por exemplo, no evento S-1000, ele está montando a tag "infoOP - Informações relativas a Órgãos Públicos" que é opcional só que está gerando sempre e que obrigatoriamente a tag filha "nrSiafi" deve conter informação, porém, não estou enviando informação nela, aí quando vai gerar os XML dá erro.. Esse é um caso, mas peguei outros..

Também estava olhando a parte da comunicação com ws da NFe pra ajudar a implementar alguma coisa..

Eu trabalho junto com o Jean, e estou ajudando ele nessas implementações.. Fico a disposição em ajudar no que precisar..

Link para o comentário
Compartilhar em outros sites

4 horas atrás, Joceandro Perin disse:

Bom dia galera,

Alguém chegou a dar uma olhadinha nas validações?

Me corrijam se estiver errado, mas por exemplo, no evento S-1000, ele está montando a tag "infoOP - Informações relativas a Órgãos Públicos" que é opcional só que está gerando sempre e que obrigatoriamente a tag filha "nrSiafi" deve conter informação, porém, não estou enviando informação nela, aí quando vai gerar os XML dá erro.. Esse é um caso, mas peguei outros..

Também estava olhando a parte da comunicação com ws da NFe pra ajudar a implementar alguma coisa..

Eu trabalho junto com o Jean, e estou ajudando ele nessas implementações.. Fico a disposição em ajudar no que precisar..

Realmente a situação que citou estava errada, segue em anexo a correção. Estava sendo criando o objeto TInfoOp no método construtor da classe TInfoCadastro.Quais as outras situações que encontrou?

 

Abraços

eSocial_S1000.pas

Link para o comentário
Compartilhar em outros sites

7 minutos atrás, GuilhermeCosta disse:

Realmente a situação que citou estava errada, segue em anexo a correção. Estava sendo criando o objeto TInfoOp no método construtor da classe TInfoCadastro.Quais as outras situações que encontrou?

 

Abraços

eSocial_S1000.pas

Deu certo Guilherme, com essa alteração ele não cria mais, observei que ocorria o mesmo problema com os objetos TInfoEFR e TInfoEnte, mas eu vi aqui agora que eles são criados juntos com a TInfoOp, então resolve todas as questões que eu tinha visto.. Se eu achar alguma outra coisa, deixo uma mensagem aqui.. Valeu..

Abraços..
 

Então Guilherme, acho que terá que fazer o mesmo no create do TInfoOp, pois esses dois objetos TInfoEFR e TInfoEnte, tbm podem vir sem valor e tbm pode ocorrer o mesmo problema.. Hoje ele está criando junto..

Link para o comentário
Compartilhar em outros sites

Olá, boa tarde Srs!

        @GuilhermeCosta, @Joceandro Perin baixei os fontes, abaixo algumas sugestões! Por favor se puder apenas verificar e se achar
        coerente modificar!

        Obs:  São apenas sugestões de tipagem das propriedades!
                
:::         Unit   : eSocial_Common
            Classe : TProcesso
            Campo  : codSusp -> Refator para ( Integer )
                    
        Irá Refletir: 
                unit: ACBreSocialGerador
                    -> TeSocialEvento.GerarProcessoGenerico()
                    -> TeSocialEvento.GerarProcessoAdmJudFap()
                    -> TeSocialEvento.GerarProcessoAdmJudRat()
                Registros: S1010 e S1020 e S1070
                    
::: Registro  [ S1000 ]
            Unit   : eSocial_S1000
            Classe : TDadosIsencao
            Campo  : IdeMinLei -> Refator para ( tpSiglaMin )                    
            
::: Registro  [ S1200 ] 
            Unit   : eSocial_Common  
            Classe : TDetPlanoCollectionItem
            Campo  : tpDep -> Refator para ( tpTpDep )

 

Abaixo estão os pas alteradores!

ACBreSocial2.0.rar

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

  • Moderadores
2 horas atrás, GuilhermeCosta disse:

Realmente a situação que citou estava errada, segue em anexo a correção. Estava sendo criando o objeto TInfoOp no método construtor da classe TInfoCadastro.Quais as outras situações que encontrou?

 

Abraços

eSocial_S1000.pas

 

54 minutos atrás, Hudson G Leite disse:

Olá, boa tarde Srs!

        @GuilhermeCosta, @Joceandro Perin baixei os fontes, abaixo algumas sugestões! Por favor se puder apenas verificar e se achar
        coerente modificar!

        Obs:  São apenas sugestões de tipagem das propriedades!
                
:::         Unit   : eSocial_Common
            Classe : TProcesso
            Campo  : codSusp -> Refator para ( Integer )
                    
        Irá Refletir: 
                unit: ACBreSocialGerador
                    -> TeSocialEvento.GerarProcessoGenerico()
                    -> TeSocialEvento.GerarProcessoAdmJudFap()
                    -> TeSocialEvento.GerarProcessoAdmJudRat()
                Registros: S1010 e S1020 e S1070
                    
::: Registro  [ S1000 ]
            Unit   : eSocial_S1000
            Classe : TDadosIsencao
            Campo  : IdeMinLei -> Refator para ( tpSiglaMin )                    
            
::: Registro  [ S1200 ] 
            Unit   : eSocial_Common  
            Classe : TDetPlanoCollectionItem
            Campo  : tpDep -> Refator para ( tpTpDep )

 

Abaixo estão os pas alteradores!

ACBreSocial2.0.rar

Boa noite

no svn as alterações.

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
 

 

Link para o comentário
Compartilhar em outros sites

16 horas atrás, Hudson G Leite disse:

Olá, boa tarde Srs!

        @GuilhermeCosta, @Joceandro Perin baixei os fontes, abaixo algumas sugestões! Por favor se puder apenas verificar e se achar
        coerente modificar!

        Obs:  São apenas sugestões de tipagem das propriedades!
                
:::         Unit   : eSocial_Common
            Classe : TProcesso
            Campo  : codSusp -> Refator para ( Integer )
                    
        Irá Refletir: 
                unit: ACBreSocialGerador
                    -> TeSocialEvento.GerarProcessoGenerico()
                    -> TeSocialEvento.GerarProcessoAdmJudFap()
                    -> TeSocialEvento.GerarProcessoAdmJudRat()
                Registros: S1010 e S1020 e S1070
                    
::: Registro  [ S1000 ]
            Unit   : eSocial_S1000
            Classe : TDadosIsencao
            Campo  : IdeMinLei -> Refator para ( tpSiglaMin )                    
            
::: Registro  [ S1200 ] 
            Unit   : eSocial_Common  
            Classe : TDetPlanoCollectionItem
            Campo  : tpDep -> Refator para ( tpTpDep )

 

Abaixo estão os pas alteradores!

ACBreSocial2.0.rar

Bom dia,

o campo "codSusp" estava como string devido o manual exigir um campo numérico de 14 POSIÇÕES onde deixando como inteiro limitaria ao valor de "4294967295".

Até a versão 2.1 o campo IdeMinLei (que era chamado de siglaMin) tinha valores estipulados, porém no leiaute 2.3, o mesmo exige um campo String de 70 posições sem valores estipulados.

Apenas a alteração no campo tpDep não traria problemas.

Abraços

Link para o comentário
Compartilhar em outros sites

Bom dia, 

@GuilhermeCosta, não tinha atentado as 14 posições do campo: "codSusp", poderia substituir então por pelo tipo: int64 . 
            Só não sei dizer a compatibilidade com o Delphi 7.

:: Outro detalhe seria necessário modificar também a procedure>
                        procedure wCampo(const Tipo: TpcnTipoCampo...) para colocar o tipo int64 tanto no enumerado : TpcnTipoCampo como dentro do procedimento.
                        
                        Talvez não tenha o tipo int64 para manter compatibilidade com outras versões do Delphi.
                        
                        
O Campo: "IdeMinLei"  de fato você está correto!

Link para o comentário
Compartilhar em outros sites

Olá, bom dia Srs!

        @GuilhermeCosta,
                  retornado as tipagens dos campos. [ IdeMinLei, codSusp ]! Tinha em outro momento modificado os tipos de forma errada. Agora abaixo
        corrigido!
        
            Unit   : eSocial_S1000
            Classe : TDadosIsencao
            Campo  : IdeMinLei -> String
            
            Unit   : eSocial_Common
            Campo  : codSusp -> String
            

:: Units Afetadas:
    ACBreSocialGerador,
    eSocial_Common, eSocial_S1000, eSocial_S1010, eSocial_S1020, eSocial_S1250, eSocial_S1260   
 

ACBreSocial2.0.rar

Link para o comentário
Compartilhar em outros sites

  • Moderadores
2 horas atrás, Hudson G Leite disse:

Olá, bom dia Srs!

        @GuilhermeCosta,
                  retornado as tipagens dos campos. [ IdeMinLei, codSusp ]! Tinha em outro momento modificado os tipos de forma errada. Agora abaixo
        corrigido!
        
            Unit   : eSocial_S1000
            Classe : TDadosIsencao
            Campo  : IdeMinLei -> String
            
            Unit   : eSocial_Common
            Campo  : codSusp -> String
            

:: Units Afetadas:
    ACBreSocialGerador,
    eSocial_Common, eSocial_S1000, eSocial_S1010, eSocial_S1020, eSocial_S1250, eSocial_S1260   
 

ACBreSocial2.0.rar

No svn as mudanças.

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
 

 

Link para o comentário
Compartilhar em outros sites

  • Moderadores
31 minutos atrás, Joceandro Perin disse:

Boa tarde galera,

Ajustei o create do objeto TInfoOp do S-1000 para não criar o TFInfoEFR e TFInfoEnte, pois esses dois registros são opcionais e estão criando sempre, aí retorna erro caso estejam sem informações..

eSocial_S1000.pas

no svn.

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
 

 

Link para o comentário
Compartilhar em outros sites

Em 22/07/2017 at 10:18, Hudson G Leite disse:

Bom dia, Srs!

@GuilhermeCosta  @Joceandro Perin ! Alguma novidade sobre o esocial?

Vocês têm algum material para que eu possa verificar para mudar de sha1 para sha256?

Andei depurando o método de envio da nfe! Olha estou patinando para entender corretamente.

Abraços.

Bom dia,

Sobre a questão do SHA-256, um sugestão era dar uma olhadinha nos componentes da Indy, se não me engano existe um que implementa o SHA-256, mas eu sei que exitem outros..

Sobre o envio, confesso que olhei por cima os métodos da NFe, mas ainda não fui a fundo ver como funciona..

No momento estou passando dados reais já para os eventos e verificando questões de validação com XSD..

Link para o comentário
Compartilhar em outros sites

Boa tarde Srs,

@Juliomar Marchetti, segue em anexo algumas alterações para validação de alguns eventos não periódicos (S-2190, S-2200 e S-2230).

Alterei o S-1000 pois na geração do campo vrSubteto estava passando o tipo "tcInt" (alterei para Dec2).

Alterada algumas propriedades de publico para published.

Alteração dos campos codsusp que ainda estavam como inteiro em alguns eventos.

Classe TSucessaoVinc centralizada na unit Commmom

Obrigado.

AcbrBranches.rar

Link para o comentário
Compartilhar em outros sites

Em 25/07/2017 at 09:21, jeancantu disse:

Bom dia,

apenas compartilhando! SHA-256.

No site de referência utiliza-se o exemplo: 

'The quick brown fox jumps over the lazy dog' -> D7A8FBB307D7809469CA9ABCB0082E4F8D5651E46D3CDB762D02D0BF37C9E592

Abaixo obtendo o mesmo retorno. Necessário, Uses: IdHashSHA, IdSSLOpenSSL

Function TFExemploEsocial.Sha256(Const Value:String):String;
var
   SHA: TIdHashSHA256;
   SS: TStringStream;
   Hash256: String;
begin
   SS := TStringStream.Create(Value);
   SHA := TIdHashSHA256.Create;
   Try
     LoadOpenSSLLibrary;
     Result := SHA.HashStreamAsHex(SS);
   Finally
      FreeAndNil(SHA);
      FreeAndNil(SS);
   End;
end;

 

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 2452 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...