Ir para conteúdo
  • Cadastre-se

dev botao

S-1298 simplificado - campo indGuia


Ver Solução Respondido por EMBarbosa,
  • Este tópico foi criado há 835 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

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

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 para o comentário
Compartilhar em outros 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

  • Obrigado 1
Link para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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.

  

  • Curtir 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 para o comentário
Compartilhar em outros sites

  • 2 semanas depois ...

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

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

  • 4 semanas depois ...
  • 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 para o comentário
Compartilhar em outros sites

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

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • 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.