Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Dados Gerais

Módulo:

TOTVS Automação Fiscal (SIGATAF)

Issue:

DSERTAF1-3540235311

Descrição:

Criação do evento S-5503

Data

03/07/2024

Analistas

Alexandre de Lima Santos

Descrição Funcional

  • Modelo de gravação de dados.
  • Com base nas funcionalidades especificas no front,

...

  • listagem de todas as APIs necessárias.

...

Realizado estudo do modelo de gravação de dados e listagem de API.

01.

...

Existe um leiaute de componentes pré-definidos para a inclusão de painéis no projeto taf-thf que deve ser seguido, composto pelos componentes: div com a class "po-wrapper", app-menu, po-page-default, app-header. Logo em seguida ao app-header, abaixo dos componentes mencionados anteriormente, é colocado o(s) componente(s) do novo painel.

Ao usarmos o componente po-page-dynamic-table, contudo, houve conflito com os componentes po-page-default e com a visualização do título do app-header. Em vista disso, foi necessário eliminar o po-page-default para correto dimensionamento do po-page-dynamic-table, e ocultar o título do app-header e utilizar o título do próprio componente po-page-dynamic-trable, ficando conforme abaixo:

Image Removed

02. PRINCIPAIS VANTAGENS

02.01. Page Dynamic Table

O componente POUI Page Dynamic Table dispõe de funcionalidades que abrangem outros componentes inteiros, que de outra forma precisariam ser implementados e estilizados individualmente. Sem contar funcionalidades que não são componentes, mas que precisariam ter sua lógica implementada via typescript, como, por exemplo, a funcionalidade do Carregar Mais, sinalizações de carga de tabela, entre outras.

Os elementos próprios de POUI que não foi preciso implementar são mencionados abaixo e nos prints que seguem:

Image Removed

Image Removed

02.02. Dynamic View

O componente POUI Dynamic View dispõe de propriedades para preenchimento e exibição dos valores padrão label-valor, que eliminam a necessidade de implementação e estilização individual a seguir:

Image Removed

Image Removed

02.03. Tabs

Utilizado o componente POUI Tabs (https://po-ui.io/documentation/po-tabs), que remete a identidade visual que os usuários estão acostumado a ver no ambiente Protheus para os eventos, principalmente para os eventos totalizadores.

Image Removed

03. Back-end para o painel

Exemplo de API feito em TLPP onde foi criada a classe principal e seus métodos para retornar a informação de acordo com end-point requisitado pelo front. 

...

borderColorwhite
bgColorblack
titleColorwhite
borderWidth0
borderStylesolid

                  

...

Para a exibição do browser foi criado o Método totalizadorS5503(), onde será retornado além das informações necessárias para o preenchimento dos campos do componente Page Dynamic Table o RECNO da tabela pai do evento S-5503 que será usado como chave para os demais métodos. 

Este mesmo método é utilizado para o retorno do filtro rápido e filtro avançado onde retornamos as informações do cabeçalho para o browser.

Para esta implementação utilizamos o método disponível pelo TLPP oRest:getQueryRequest responsável por retornar os parâmetros informados na requisição via URI (query param) que serão utilizados na query principal retornando os valores filtros.

...

borderColorwhite
bgColorblack
titleColorwhite
borderWidth0
borderStylesolid

...

Para a visualização das informações completas do registro, a ação de visualizar ira disparar a requisição para o método totalizadorDetails() passando como parâmetro o RECNO que será utilizado como chave na busca das informações nas tabelas filhas do evento montando um novo objeto Json de retorno para o front no preenchimento dessas tabelas.

Obs: Para este exemplo foi criado apenas um método mas o ideal seria um método para cada tabela retornado as informações distintas facilitando a leitura e tratamento das informações:

Image Removed

...

borderColorwhite
bgColorblack
titleColorwhite
borderWidth0
borderStylesolid

...

Tabela Modelo

A tabela modelo irá seguir o padrão TAF de desenvolvimento assim como é hoje, a diferença se da em 4 campos que irão gravar parte do json e xml do totalizador integrado, o modelo abaixo é uma representação dos valores que irão ser gravados em seus respectivos campos assim como as api´s referentes a cada funcionalidade no front.

Campos normalmente utilizados pelo TAF e campos para gravar xml e json para view do evento: 

Nome do campoDescrição do campo
VXX_FILIAL Filial do registro
VXX_IDId do registro na tabela
VXX_VERSAO Versão do registro na tabela
VXX_PERAPU Periodo do registro
VXX_ATIVO Status do registro
VXX_EVENTOTIpo do evento
VXX_STATUSStatus de transmissão
VXX_XMLID XML id do registro
VXX_LAYOUT Versão do layout no eSocial
VXX_XMLGRVXml que será gravado no momento do retorno do totalizador.
VXX_VIEW

Json para api Registros S-5503 | Listagem.

VXX_MATCAT

Json para api Trabalhador do S-5503 | Informações Relativas a Matrícula e Categoria.

VXX_STABPAG

Json para api-Trabalhador do S-5503 | Identificação do estabelecimento responsável pelo pagamento dos valores informados.

Campo - VXX_XMLGRV

CampoJson gerado na integração.
VXX_XMLGRV

<eSocial xmlns="http://www.esocial.gov.br/schema/evt/evtFGTSProcTrab/v_S_01_02_00">
    <evtFGTSProcTrab Id="ID0530000000000000000000025822311609">
        <ideEvento>
            <nrRecArqBase>1.1.0000000025822311609</nrRecArqBase>
            <perApur>2024-04</perApur>
        </ideEvento>
        <ideEmpregador>
            <tpInsc>1</tpInsc>
            <nrInsc>53113791</nrInsc>
        </ideEmpregador>
        <ideProc>
            <origem>1</origem>
            <nrProcTrab>10008931220215020016</nrProcTrab>
        </ideProc>
        <ideTrabalhador>
            <cpfTrab>82273082010</cpfTrab>
        </ideTrabalhador>
        <infoTrabFGTS>
            <matricula>GP0001</matricula>
            <codCateg>101</codCateg>
            <infoFGTSProcTrab>
                <totalFGTS>0</totalFGTS>
            </infoFGTSProcTrab>
        </infoTrabFGTS>
    </evtFGTSProcTrab>
</eSocial>
   

Registros S-5503 | Listagem

CampoJson gerado na integração.
VXX→VXX_VIEW

{
    "hasNext": false,
    "items": [ 
        {
            "id": "00010434",
            "period": "2023-08",
            "cpf": "82977978054",
            "name": "Alex André",
            "receipt": "1.2.0000000000195474657",
            "processNumber": "00010434"
        }    ]
}


image-2024-3-1_14-4-22.pngImage Added

Trabalhador do S-5503 | Informações Relativas a Matrícula e Categoria

CampoJson gerado na integração.
VXX→VXX_MATCAT{
    "hasNext": false,
    "items": [ 
        {
            "id": "00010434",
            "registration": "MAT_42227624078",
            "category": "101",
            "fgtsTot": "27000.15"
        }
    ]
}


Image Added

Trabalhador do S-5503 | Identificação do estabelecimento responsável pelo pagamento dos valores informados

CampoJson gerado na integração.
VXX→VXX_STABPAG"hasNext": false,
    "items": [ 
        {
            "id": "00010434",
            "referencePeriod": "2023-12",
            "category": "101",
            "typeOfLaborProcessValue": "71",
            "remFGTSProcTrab": "59000.99",
            "remFGTSSefip": "845.00",
            "dpsFGTSSefip": "23500.45",
            "remFGTSDecAnt": "5015.19",
            "dpsFGTSDecAnt": "23055.45"
        }
    ]


image-2024-3-1_14-6-39.pngImage Added


Gravação e geração do modelo :


1 - Grvação dos campos pela função padrão GRV.

Image Added


  •  Para a gravação ser efetuada com sucesso eventos predecessores deverão ser validados, no caso dos totalizadores sempre tem gravação aberta.
  • Desenvolvimento do json para view.
  • Não irá precisar fazer persistencia de campos em modelo relacional.
  • As informaçãoes como nome ou descrição de informações que irão no json serão capturadas neste momento.
  • Para a busca das imformações é sugerido que se tenha novas funções pensando em diminuir a oneração na performance, o exemplo mais comum seria a pesquisa por lotação.
  • A intenção é não utilizarmos a função FGetIdInt pois já é comprovado na refatoração dos fontes tafa421 que onera a performance na integração


2 - Geração do XML E JSON será na mesma função com valores já gravados pela GRV.

Image Added


3 - Criar uma função que reavalie o xml do front para gerar novo Json de view caso ocorra erro no momento da integração  que leve dados incorretos a tela ( Hoje temos o reavaliar totalizadores).

02. Chamada da View

Ao realizar a requisição para montar a tela de view e as demais telas será passado o id + tag relativa ao campo a ser pesquisado e retornar o json para a view, caso nossa requisição seja para a tela inicial será enviado Id+ Campo, exmplo 00010434_VIEW no caso teremos 00010434 como recno do registro e _VIEW o campo que iremos buscar os valores.

recno + tag CampoRetorno
00010434_VIEWVXX_VIEWJson
00010434_MATCATVXX_MATCATJson
00010434_STABPAGVXX_STABPAG Json

03. Listagem das api ´s

1- Registros S-5503 | Listagem

 Carrega registros do evento S-5503, filtrados ou não, ordenados ou não.

2- Registros S-5503 | Exclusão

 Exclui eventos S-5503 conforme coleção de ID's informados.

3- Registros S-5503 | XML

Retorna XML's do evento S-5503 encodados em base64.

4- Trabalhador do S-5503 | Informações Relativas a Matrícula e Categoria

Carrega informações relativas a Matrícula e Categoria de trabalhador específico do evento S-5503, ordenadas ou não.

5- Trabalhador do S-5503 | Identificação do estabelecimento responsável pelo pagamento dos valores informados

Carrega informações relativas a Identificação do estabelecimento responsável pelo pagamento a trabalhador específico dos valores informados do evento S-5503, ordenadas ou não.


04. Links de consulta:

...

04. Links de consulta:

...

https://www.gov.br/esocial/pt-br/documentacao-tecnica/leiautes-esocial-v-1-2-nt-02-2024/index.html#evtFGTSProcTrab

Padronização para nomenclaturas no uso do TLPP

TLPP

TLPP x AdvPLhttps://api.totvs.com.br/apidetails/FGTSPerWorkerInLaborProcess_v1_000.json