Jump to content

Delphi chamada_delphi.png acbr.png

C6 chamada_c6.png botao.png

S-1298 simplificado - campo indGuia


Jeihcio Francis
Go to solution Solved by EMBarbosa,
  • Este tópico foi criado há 158 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Administradores

Obrigado pela contribuição, em breve será validada para possível inclusão ao svn

TK-2052

Consultora SAC ACBr

Juliana Tamizou
Ajude o Projeto ACBr crescer - Assine o SAC

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

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

Link to comment
Share on other sites

Sua observação foi importante colega, e devido a isso me levou a analisar quais eventos usam essa tag ( indGuia ), então pesquisei pelo PDF do e-Social  Layout Simplificado e encontrei os seguintes eventos que usam essa tag como obrigatória :
S-2299, S-2399, S-1200, S-1210, S-1260, S-1270, S-1280, S-1298, S-1299

Sendo assim,  vi que outro colega do fórum já tinha feito uma alteração para os eventos S-1200 e s-1210 

  criando a property indGuia na classe TIdeEvento3 que herda os métodos da classe TIdeEvento2, so que os eventos 2299 e 2399 herdam as property de TIdeEvento2 por isso que vc nao ver essa property nos eventos que informei, sendo assim fiz algumas alterações para atender a todos os eventos listados acima, 
  Criei uma classe chamada   
     TIdeEventoGuia = class(TIdeEvento2) { Classe Criada para atender a Tag indGuia do S-2299 e S-2399 }
    e adicionei a property indGuia e fiz alterações na classe TIdeEvento3 removendo a property indGuia e mudando a herança da classe de TIdeEvento2 para TIdeEventoGuia e alterei as Classes pcesS2299 e pcesS2399 para herdar de TIdeEventoGuia que estava como TIdeEvento2 segue em anexos as alterações para análise 
  

pcesCommon.pas pcesS2299.pas pcesS2399.pas

2 minutos atrás, Jicelmo Andrade disse:

Sua observação foi importante colega, e devido a isso me levou a analisar quais eventos usam essa tag ( indGuia ), então pesquisei pelo PDF do e-Social  Layout Simplificado e encontrei os seguintes eventos que usam essa tag como obrigatória :
S-2299, S-2399, S-1200, S-1210, S-1260, S-1270, S-1280, S-1298, S-1299

Sendo assim,  vi que outro colega do fórum já tinha feito uma alteração para os eventos S-1200 e s-1210 

  criando a property indGuia na classe TIdeEvento3 que herda os métodos da classe TIdeEvento2, so que os eventos 2299 e 2399 herdam as property de TIdeEvento2 por isso que vc nao ver essa property nos eventos que informei, sendo assim fiz algumas alterações para atender a todos os eventos listados acima, 
  Criei uma classe chamada   
     TIdeEventoGuia = class(TIdeEvento2) { Classe Criada para atender a Tag indGuia do S-2299 e S-2399 }
    e adicionei a property indGuia e fiz alterações na classe TIdeEvento3 removendo a property indGuia e mudando a herança da classe de TIdeEvento2 para TIdeEventoGuia e alterei as Classes pcesS2299 e pcesS2399 para herdar de TIdeEventoGuia que estava como TIdeEvento2 segue em anexos as alterações para análise 
  

pcesCommon.pas 84 kB · 0 downloads pcesS2299.pas 48 kB · 0 downloads pcesS2399.pas 21 kB · 0 downloads

 

Em 01/11/2021 at 09:43, Jeihcio Francis disse:

É necessário adicionar o campo 'indGuia' na exportação da tabela 1298, esse campo já existe em outras tabelas mas ainda não tinha sido implementada nessa. Segue o código modificado e o print do layout.

 

image.thumb.png.873d20e8e5b5dea3042c75ebebb1b35b.png

pcesGerador.pas 74 kB · 0 downloads pcesCommon.pas 84 kB · 0 downloads

As alterações que fiz atende a seu evento tb

  • Thanks 1
Link to comment
Share on other sites

Boa noite,

Seguem algumas correções realizadas no componente para correta geração dos eventos: 1020, 1200, 1210, 1210, 1260, 1299, 1298, 2210, 2240, 2299, 2399...

A maioria das correções foi para geração correta dos periódicos para o segurado especial, que obrigatoriamente deve ser enviado na versão 1.0 e com o campo indGuia preenchido.

Enviei e foram processados com sucesso todos esses eventos no eSocial...

Sei que já há a colaboração dos amigos também, mas acredito que não esteja completa.

Obrigado

PCNeSocial.rar

Link to comment
Share on other sites

  • Consultores
Em 02/11/2021 at 18:06, Jicelmo Andrade disse:

Peço desculpas mandei os arquivos errados, enviando os arquivos corretos, compilados e testados para todos os eventos, anexo uma print com o evento do colega que abriu o post que a property já está no 1298 

Codigo.png

pcesCommon.pas 84 kB · 2 downloads pcesS2299.pas 48 kB · 2 downloads pcesS2399.pas 21 kB · 2 downloads

Muito obrigado pela contribuição.
Fiz a implementação baseada nela.
Subi as alterações para o SVN na Revisão  23478.
Pelo que vi está tudo certo.
Queira por favor atualizar, testar e reportar qualquer problema.

Mais uma vez obrigado.

Em 04/11/2021 at 23:25, Paulo Aguiar Junior disse:

Boa noite,

Seguem algumas correções realizadas no componente para correta geração dos eventos: 1020, 1200, 1210, 1210, 1260, 1299, 1298, 2210, 2240, 2299, 2399...

A maioria das correções foi para geração correta dos periódicos para o segurado especial, que obrigatoriamente deve ser enviado na versão 1.0 e com o campo indGuia preenchido.

Enviei e foram processados com sucesso todos esses eventos no eSocial...

Sei que já há a colaboração dos amigos também, mas acredito que não esteja completa.

Oi Paulo bom dia.

   Muito obrigado pela contribuição. Mas preciso de mais uma ajuda sua.

   Infelizmente houveram várias alterações nessa semana além do código já postado nesse tópico. Eu fiquei um pouco perdido analisando os códigos, embora notei que algumas units que você anexou já estão no SVN de forma idênticas.

   Por isso preciso que você atualize seu código com a última revisão do SVN e anexe novamente para análise.

   A boa notícia é que se você conseguir fazer isso até segunda, no máximo até terça feira eu devo avaliar e fazer o commit.

   Agradecemos sua cooperação e compreensão.

  

  • Like 1

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

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

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link to comment
Share on other sites

  • 2 weeks later...

Bom dia, prezados colegas!

Fiz o update com as últimas alterações no ACBr com relação ao eSocial, e revisei a geração de alguns eventos que possam ter a informação do campo indGuia.

Com o devido respeito ao trabalho dos colegas, e também com os devidos agradecimentos, pois me baseei no código deles, fiz algumas alterações que acredito simplificarem a geração do grupo ideEvento para os eventos: S-1200 a S-1300, S-2190, S-2200 a S-2420.

Pelo que pude notar, todos estes eventos podem ser resumidos em quatro grupos, e para cada grupo já havia uma classe implementada:

  1. Evento que não têm informações de Retificação nem de Apuração -> TIdeEvento;
  2. Eventos que têm informações apenas de Retificação -> TIdeEvento2;
  3. Eventos que têm informações de Retificação e de Apuração -> TIdeEvento3;
  4. Eventos que têm informações apenas de Apuração -> TIdeEvento4.

Com a necessidade da inclusão do campo indGuia no leiaute S1.0, uma nova classe chamada TIdeEventoGuia foi criada herdando da TIdeEvento2. Porém, o campo indGuia pode ocorrer também em eventos que pertençam às classes TIdeEvento3 e TIdeEvento4. Seria possível criar uma nova classe TIdeEventoGuiaX herdando da respectiva classe TIdeEventoX, bem como uma nova procedure de geração para cada classe TIdeEventoGuiaX. Porém, particularmente, acho mais complexo do que parametrizar as classes e procedures já existentes. Além disso, os parâmetros para os dois outros campos indicativos já existiam, de modo que criar um novo parâmetro não seria algo estranho.

Assim, optei por não criar subclasses, mas por utilizar as já existentes e parametrizar a procedure que gera o grupo ideEvento para cada classe, de modo que a geração de cada evento faz a chamada de sua procedure correspondente, informando os parâmetros necessários para gerar as informações adequadamente, caso os parâmetros necessários sejam diferentes dos que ficaram definidos por padrão.

Em anexo seguem as alterações que realizei.

No arquivo pcesCommon.pas linha 602 há um bloco de comentário resumindo as alterações que intentei realizar.

Embora eu tenha testado as alterações que realizei em ambiente de Produção Restrita, envio minhas sugestões no intuito de compartilhar conhecimentos, e de que sejam também revisadas, corrigidas e melhoradas.

Agradeço ao projeto e aos colaboradores pelos conhecimentos compartilhados, e aguardo caso tenham críticas, dúvidas ou novas sugestões.

PCNeSocial.zip

  • Like 2
Link to comment
Share on other sites

  • 4 weeks later...
  • Consultores
  • Solution
Em 17/11/2021 at 10:41, Danúbio Viana Nogueira disse:

Bom dia, prezados colegas!

Fiz o update com as últimas alterações no ACBr com relação ao eSocial, e revisei a geração de alguns eventos que possam ter a informação do campo indGuia.

Com o devido respeito ao trabalho dos colegas, e também com os devidos agradecimentos, pois me baseei no código deles, fiz algumas alterações que acredito simplificarem a geração do grupo ideEvento para os eventos: S-1200 a S-1300, S-2190, S-2200 a S-2420.

Pelo que pude notar, todos estes eventos podem ser resumidos em quatro grupos, e para cada grupo já havia uma classe implementada:

  1. Evento que não têm informações de Retificação nem de Apuração -> TIdeEvento;
  2. Eventos que têm informações apenas de Retificação -> TIdeEvento2;
  3. Eventos que têm informações de Retificação e de Apuração -> TIdeEvento3;
  4. Eventos que têm informações apenas de Apuração -> TIdeEvento4.

Com a necessidade da inclusão do campo indGuia no leiaute S1.0, uma nova classe chamada TIdeEventoGuia foi criada herdando da TIdeEvento2. Porém, o campo indGuia pode ocorrer também em eventos que pertençam às classes TIdeEvento3 e TIdeEvento4. Seria possível criar uma nova classe TIdeEventoGuiaX herdando da respectiva classe TIdeEventoX, bem como uma nova procedure de geração para cada classe TIdeEventoGuiaX. Porém, particularmente, acho mais complexo do que parametrizar as classes e procedures já existentes. Além disso, os parâmetros para os dois outros campos indicativos já existiam, de modo que criar um novo parâmetro não seria algo estranho.

Assim, optei por não criar subclasses, mas por utilizar as já existentes e parametrizar a procedure que gera o grupo ideEvento para cada classe, de modo que a geração de cada evento faz a chamada de sua procedure correspondente, informando os parâmetros necessários para gerar as informações adequadamente, caso os parâmetros necessários sejam diferentes dos que ficaram definidos por padrão.

Em anexo seguem as alterações que realizei.

No arquivo pcesCommon.pas linha 602 há um bloco de comentário resumindo as alterações que intentei realizar.

Embora eu tenha testado as alterações que realizei em ambiente de Produção Restrita, envio minhas sugestões no intuito de compartilhar conhecimentos, e de que sejam também revisadas, corrigidas e melhoradas.

Agradeço ao projeto e aos colaboradores pelos conhecimentos compartilhados, e aguardo caso tenham críticas, dúvidas ou novas sugestões.

PCNeSocial.zip 80 kB · 1 download

Muito obrigado pela contribuição.
Fiz a implementação baseada nela.
Subi as alterações para o SVN na Revisão  24002.
Pelo que vi está tudo certo.
Queira por favor atualizar, testar e reportar qualquer problema.

Mais uma vez obrigado.

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

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

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link to comment
Share on other sites

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.