Ir para conteúdo
  • Cadastre-se

GuilhermeCosta

Membros
  • Total de ítens

    72
  • Registro em

  • Última visita

  • Days Won

    1

Posts postados por GuilhermeCosta

  1. @Leivio Fontenele criei um pull request alterando uma linha, pois os servidores do eSocial estavam acusando que o DigestMethod era invalido.

     

    reference.DigestMethod = "http://www.w3.org/2001/04/xmlenc#sha256";

    ficando assim

            static XmlDocument SignXML(string mensagemXML, X509Certificate2 certificado, string AAtributoId, string APin)
            {
                CryptoConfig.AddAlgorithm(typeof(RSAPKCS1SHA256SignatureDescription), "http://www.w3.org/2001/04/xmldsig-more#rsa-sha256");
    
                System.Xml.XmlDocument xmlDoc = new XmlDocument();
                RSACryptoServiceProvider Key = new RSACryptoServiceProvider();
                SignedXml SignedDocument = default(SignedXml);
                KeyInfo keyInfo = new KeyInfo();
                xmlDoc.LoadXml(mensagemXML);
    
                Key = (RSACryptoServiceProvider)certificado.PrivateKey;
                keyInfo.AddClause(new KeyInfoX509Data(certificado));
                SignedDocument = new SignedXml(xmlDoc);
    
                SignedDocument.SigningKey = Key;
                SignedDocument.KeyInfo = keyInfo;
                SignedDocument.SigningKey = LerDispositivo(Key, APin);
                SignedDocument.SignedInfo.CanonicalizationMethod = "http://www.w3.org/TR/2001/REC-xml-c14n-20010315";
                SignedDocument.SignedInfo.SignatureMethod = "http://www.w3.org/2001/04/xmldsig-more#rsa-sha256";            
    
                Reference reference = new Reference();
                 if (AAtributoId == "0")
                 {
                     reference.Uri = string.Empty;
                 } 
                 else
                 {
                     reference.Uri = "#" + AAtributoId;
                 }
                reference.DigestMethod = "http://www.w3.org/2001/04/xmlenc#sha256";
                reference.AddTransform(new XmlDsigEnvelopedSignatureTransform());
                reference.AddTransform(new XmlDsigC14NTransform(false));            
                SignedDocument.AddReference(reference);
                SignedDocument.ComputeSignature();
                System.Xml.XmlElement xmlDigitalSignature = SignedDocument.GetXml();
                xmlDoc.DocumentElement.AppendChild(xmlDoc.ImportNode(xmlDigitalSignature, true));
    
                return xmlDoc;
            }

     

  2. Boa tarde,

    estou utilizando Windows 10 x64, copiei a DLL e o TLB para a pasta system32 e sysWOW64, ao executar o comando:

    regsvr32 %windir%\System32\Certfly.tlb

    ou

    regsvr32 %windir%\sysWOW64\Certfly.tlb

    é apresentado a mensagem em anexo. Teria que recompilar a DLL em 64 bits? Se for o caso como proceder? Qualquer versão do c# me permite compilar o projeto?

    Obrigado.

    erro.png

  3. Tenho certeza que em produção a versão 2.3 não entrará, principalmente pelo fato dela não atender a reforma trabalhista. Agora sobre novembro, procurei alguma nota oficial mas não achei nada confirmando que em novembro estará disponível o ambiente de teste na versão 2.4, apenas algumas empresas dizendo isso em seus blogs/forum, e essas mesmas empresas diziam que em outubro entraria a versão 2.3 no ambiente de teste, mas nada oficial.

    Talvez seria o caso de criar mais uma pasta nos branches para a versão 2.4, para que possamos ir postando as alterações sem que o componente deixe de realizar a comunicação com os WSs do eSocial, e quando fosse disponibilizado a ambiente na versão 2.4, apenas substituiríamos os arquivos, pois não é necessário manter a versões antigas, visto que sempre terá apenas uma versão disponível em produção. Apenas um sugestão...

  4. No manual de orientação do desenvolvedor diz "Para cada tipo de evento haverá apenas uma versão de leiaute vigente em um determinado período."

    Entendo que irão substituir, é que até o momento a versão 2.2.02 foi a unica que eles disponibilizaram. No caso temos duas versões que ainda não disponibilizaram o WS (2.3 e 2.4), e não esta claro se a 2.3 estará disponível antes de liberarem a 2.4

  5. Boa tarde,

    O problema dessas versões que eles vão lançando é que o ambiente de homologação não está acompanhando as versões do leiaute... Eu cai na besteira de implementar a versão 2.3, e ainda não consegui realizar os testes no ambiente de homologação devido estar na versão 2.2.02, inclusive já até tinha postado no fórum algumas das alterações na geração para atender ao leiaute 2.3. E no pouco que li, ainda não está claro se será lançado o ambiente de homologação na versão 2.3 ou se será publicado um novo ambiente direto na versão 2.4.

    @Juliomar Marchetti vi também que postaram os fontes assinando em SHA-256 e enviando para os WS, mas ainda não consegui olhar, sabe se foi necessário um "downgrade" para o leiaute 2.2 para conseguir realizar a comunicação. Se caso foi, para que possamos ir atualizando o componente para as novas versões acredito que será necessário implementar as modificações sempre mantendo as gerações nos leiautes antigos para que o componente não fique inutilizável com os WS ativos. Nesse caso a melhor opção seria uma pasta AcbrSocial para cada versão do leiaute nos branches?

    Espero ter sido claro com minha dúvida...

    Obrigado

  6. Na verdade ele não está ativo, ele  apenas continuaria na base do eSocial, caso tivesse gerado uma alteração informando o fim da validade do mesmo. No exemplo que citou, teria que enviar um novo evento de inclusão. Este comportamento é apenas para os eventos de tabela, para os demais eventos, a exclusão ela ocorre apenas por intermédio do evento S-3000.

    • Obrigado 1
  7. 27 minutos atrás, Digibyte disse:

    Pelo que entendi da página 6 do MOS 2.2 não é necessário enviar o fim da validade, isso facilita muito. O fim de validade será considerado automaticamente o movimento anterior ao início enviado. Seria apenas um envio.

    Tem razão, realmente não é necessário enviar dois eventos, porém o armazenamento (pelo menos das chaves) ainda se faz necessário para o caso de uma futura retificação.

  8. 22 horas atrás, Digibyte disse:

    Bom, estou realmente pegando firme agora a questão do eSocial. Estava analisando por exemplo como trabalhar com a tabela de eventos=proventos/descontos (mas a lógica pode servir para outras) e suas alterações/inclusões/exclusões que tem que ser informadas. Pensei o seguinte:

    Exclusão de evento: não informar, que fique lá na base do esocial...

    Inclusão: setar um campo "novo evento" e "data inclusão". Antes de enviar a folha dar um aviso, ou fazer automático, e enviar a inclusão. Recebendo um retorno positivo resetar o campo "novo evento"

    Alteração: setar um campo "evento alterado" e "data alteração" e seguir a lógica da inclusão. Se o usuário alterar o evento e depois alterar novamente, voltando ao que era, a princípio não tenho como saber, vai ser enviada a alteração de qualquer forma.

    O que acham, pensam da mesma forma?

    Lembrando que para os eventos de tabelas, você tem 2 tipos de alteração. A alteração simples, ela se comporta como uma retificação, você informa a chave (no caso da tabela de rubrica você deverá informar "codRubr, ideTabRubr, iniValid, fimValid") para identificar qual  evento você estará retificando. Você retificaria um evento, no caso de te-lo enviado com as incidências erradas por exemplos. Mas digamos que você tenho enviado o evento de forma correta, porém, a partir de uma determinada data, este evento em questão passou a ter um incidência que antes não tinha (seja por uma convenção coletiva ou uma portaria do MTE), neste caso, se o seu sistema utilizar a mesma rubrica, você deverá enviar dois eventos, um de alteração, indicando a data fim para aquele evento, e um de inclusão, informando as novas incidências... Talvez por isso o amigo @hnq_campos mencionou o fato de ter que armazenar tudo. E realmente, gerenciar tudo isso, é um problemao...

    • Curtir 1
  9. @Joceandro Perin, eu não tenho o levantamento de tudo que falta dos eventos não periódicos, já faz alguns dias que não consigo mexer no componente... Das ultimas vezes que alterei, eu apenas gerava os arquivos com o demo do Acbr, ai caso não validasse, ai sim eu passo um pente fino para ver o que esta diferente com o leiaute. Realmente, as ultimas alterações que realizei com a geração dos eventos não periódicos eu já postei aqui no forum...

    Abraços...

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

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

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

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

  14. 17 horas atrás, guilhermedoj disse:

    Pessoal como está o projeto?, estou querendo colaborar!

    Quais a pendências atuais?

     

    Bom dia, o projeto está com o leiaute na versão 2.2.02, estou atualizando os eventos de tabelas e eventos periódicos para o leiaute 2.3. Falta atualizar os eventos não periódicos para o leiaute 2.3 e a comunicação com os WSs

    • Curtir 1
  15. Boa tarde Srs.

    @Juliomar Marchetti, baixei os arquivos porém não consegui identificar qual está com a codificação diferente, todos que abro o notepad me diz que está como padrão ANSI, e no lazarus diz que está no padrão "CP1252". Pode me indicar algum outro software para analisar a códificação dos arquivos?

    Estou anexando novamente os arquivos do 25/05, porém apenas os que estão faltando nos branches, que são necessário para compilação dos exemplos referente aos eventos periódicos.

    Obrigado.

    @jeancantu, ja leu a resolução que o comitê gestor soltou?

    http://portal.esocial.gov.br/institucional/legislacao/resolucao-no-9-de-21-de-junho-de-2017

    parece que agora vai hein, segunda já começa... :shock:

    Fontes.rar

    • Curtir 1
×
×
  • 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.