Branch eSocial (Leiatute S-1.0 e eventos SST)
Introdução
No branch em questão, serão feitas as alterações referentes ao leiaute simplificado do eSocial (1.0) e as implementações referentes aos eventos de segurança e saúde do trabalho.
Tipos de alterações
- Inclusão de grupo
- Inclusão de campo
- Inclusão ou remoção de valores possíveis
- Exclusão de campo
- Exclusão de grupo
- Alteração de ocorrência
- Alteração de condição
- Alteração de tamanho, descrição e/ou validação de campo
Exclusão de campoCriaçAlteração decamposgrupo pai
Roteiro de alterações
Note que na notação SXXXX, o XXXX corresponde ao número do evento (por exemplo: S1200, possui XXXX = 1200).
Inclusão de Grupo
Caso ocorrência do grupo tenha a possibilidade de ser maior do que um, deve-se criar um record com os campos do grupo e na classe do evento, adicionar um TList<RecordCriado> para o preenchimento das informações. Na unit PreencheSXXXX e GeraSXXXX, existirá um laço de repetição responsável por percorrer as informações destes campos, hora para atribuição ao objeto, hora para geração do XML.
Caso contrário, pode-se adicionar os campos diretamente à classe do evento (ou ao grupo pertencente, caso exista). Na unit PreencheSXXXX e GeraSXXXX, não existirá loop, apenas validações (caso necessário) para que a informação seja atribuída ou escrita no XML de forma direta.
Na geração do XML, é necessário adicionar as tags de abertura e fechamento do grupo. Para maiores detalhes, verifique campos já implementados ou tire suas dúvidas com outro desenvolvedor.
Inclusão de campo
Deve-se verificar em qual grupo o campo será adicionado ou se será em um grupo novo. Caso seja um novo grupo, seguir o procedimento de "inclusão de grupo".
Verificar se há necessidade de criação de campos em telas existentes e se necessita de utilização das rotinas de preenchimento obrigatório e/ou demais validações.
- Incluir o campo na classe do evento (ou do grupo pertencente, caso o mesmo já exista): atributo na classe, property, get e set (eSocial.SXXXX.Classe.Pas);
- Incluir preenchimento ao atributo criado (PreencheSXXXX.pas);
- Incluir o campo criado para que seja escrito e exportado no XML, porém necessita atualização do componente do e-Social com o mapeamento dos campos (GeraSXXXX.pas);
Verificar com a equipe da qualidade, caso surja necessidade de criação destes campos em novas telas, onde e como devem ser criados e suas respectivas validações, sobre os novos layout e adequações.
Inclusão ou remoção de valores possíveis
Normalmente, quando existem campos com um universo limitado de valores possíveis, existem arrays declarados na unit (eSocial_Conversao) que são utilizados para atribuição dos atributos do evento no preenchimento e convertidos em string no momento da geração do XML. Alterações desse tipo envolvem alterações nos arrays de declaração dos itens e nos arrays utilizados para a conversão do indíce do item para uma string.
Para situações onde não existam arrays já definidos, discuta com os outros desenvolvedores a melhor estratégia à ser seguida.
Exclusão de campo
- Remover o campo da classe (eSocial.SXXXX.Classe.Pas);
- Remover a atribuição feita na unit responsável por preencher o objeto do evento (PreencheSXXXX.pas);
- Remover a escrita no XML a partir do objeto criado na unit (GeraSXXXX.pas);
Verificar tratamentos relacionados aos campos removidos do eSocial (Por exemplo, utilização da rotina: TeSocialFuncoes.AdvertePreenchimentoDoCampo ou validações na hora de salvar os cadastros relacionados).
Antes de remover validações e obrigatoriedades de preenchimento, confirme com a equipe da qualidade.
Exclusão de grupos
Quando houver exclusão de grupos, deve-se realizar o procedimento de exclusão de campos para todos os campos do grupo que será excluído.
Além disso, na geração do XML do evento (GeraSXXXX.pas), as tags de abertura e fechamento do grupo devem ser excluídas.
Exclusão de campos
Remover o campo da classe (eSocial.SXXXX.Classe.Pas);Remover a atribuição feita na unit responsável por preencher o objeto do evento (PreencheSXXXX.pas);Remover a escrita no XML a partir do objeto criado na unit (GeraSXXXX.pas);Sendo SXXXX = número do evento (por exemplo: S1200, S1010, etc).
Verificar tratamentos relacionados aos campos removidos do eSocial (Por exemplo, utilização da rotina: TeSocialFuncoes.AdvertePreenchimentoDoCampo ou validações na hora de salvar os cadastros relacionados).
Verificar com a equipe da qualidade a possibilidade de remoçAlteração de validações e demais tratamentos relacionados
Inclusão de camposocorrência
QuandoHá houverdois adiçtipos principais de alteração, tratando-se de ocorrência. A alteração de novos1 campospara N ocorrências ou grupos,o contrário, de N ocorrências para 1 ocorrência.
Em situações onde a ocorrência é alterada de 1 para N e o procedimentodado derelativo inclusão de campos para todos os campos a serem adicionados.
Além disso deve-se verificar em qual grupo oao campo será adicionado ou se seráencontra em um grupocadastro, novo,essa após isso adicionar as tags de abertura e fechamento dos grupos, conforme informação componentepassará (GeraSXXXX.pas);
- compor
Incluirumogrid,campo na classe do evento: atributo na classe, property, get e set (eSocial.SXXXX.Classe.Pas);Incluir preenchimento ao atributo criado (PreencheSXXXX.pas);Incluir o campo criado parasendo quesejapossivelmenteescritoseráenecessáriaexportado no XML, porém necessita atualização do componente do e-Social com o mapeamento dos campos (GeraSXXXX.pas);
Verificar tratamentos dos novos campos se há necessidade dea criação de camposuma emtabela telaspara existentesrealizar ea se necessita de utilizaçintermediação das rotinasinformações. deCaso preenchimentoessa obrigatórioinformação ounão validaçesteja incluída em um cadastro e já possua sua "independência", então as alterações necessárias.deverão ocorrer apenas
Verificar com a equipe da qualidade, caso surja necessidade de criação destes campos em novas telas, onde e como devem ser criados e suas respectivas validações, sobre os novos layout e adequações.
Alteração dasde condição
Alteração de tamanho, descrição e/ou validações ão de campo
As alterações nas validações devem ser levalevadas em questão a parte do cadastro da informação, ou seja, por exemplo ao cadastrar um CPF, na parte de cadastro deve ser validado se o tamanho e o número digitado é um CPF válido, para que caso não esteja no padrão correta,correto, faça com que o cliente corrija no ato do cadastro. Fazendo com que seja menos provável de enviar a informação errada no evento e posteriormente retorne com erro.
- Incluir a validação na hora do preenchimento do objeto ou na hora do cadastro da informação do sistema (PreencheSXXXX.pas);
- Incluir o campo criado para que seja escrito e exportado no XML, porém necessita atualização do componente do e-Social com o mapeamento dos campos (GeraSXXXX.pas);
Verificar com a equipe de qualidade onde o melhor local para fazer as implementações das validações, se no ato do cadastro da informação emitir um alerta ou não permitir salvar sem estar correto. Ou no preenchimento do objeto da classe (PreencheSXXXX.pas)
Verificar alterações feitas, se não irão impactar em campos de outros eventos, como rotinas comuns entre eles, por exemplo, a rotina GetNumeroInscr.