Histórico da Página
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:
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:
- Services (https://angular.io/guide/architecture-services)
- Buttons (https://po-ui.io/documentation/po-button)
- Input (Para permitir pesquisa rápida) (https://po-ui.io/documentation/po-input)
- Pipe (https://angular.io/guide/pipes)
- Disclaimer (https://po-ui.io/documentation/po-disclaimer-group)
- Table (https://po-ui.io/documentation/po-table)
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:
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.
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.
...
borderColor | white |
---|---|
bgColor | black |
titleColor | white |
borderWidth | 0 |
borderStyle | solid |
...
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 r(query param que serão utilizados na query principal retornando os valores filtros.
...
borderColor | white |
---|---|
bgColor | black |
titleColor | white |
borderWidth | 0 |
borderStyle | solid |
...
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:
...
borderColor | white |
---|---|
bgColor | black |
titleColor | white |
borderWidth | 0 |
borderStyle | solid |
...
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 campo | Descrição do campo |
---|---|
VXX_FILIAL | Filial do registro |
VXX_ID | Id do registro na tabela |
VXX_VERSAO | Versão do registro na tabela |
VXX_PERAPU | Periodo do registro |
VXX_ATIVO | Status do registro |
VXX_EVENTO | TIpo do evento |
VXX_STATUS | Status de transmissão |
VXX_XMLID | XML id do registro |
VXX_LAYOUT | Versão do layout no eSocial |
VXX_XMLGRV | Xml 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
Campo | Json gerado na integração. |
---|---|
VXX_XMLGRV | <eSocial xmlns="http://www.esocial.gov.br/schema/evt/evtFGTSProcTrab/v_S_01_02_00"> |
Registros S-5503 | Listagem
Campo | Json gerado na integração. |
---|---|
VXX→VXX_VIEW | { |
Trabalhador do S-5503 | Informações Relativas a Matrícula e Categoria
Campo | Json gerado na integração. |
---|---|
VXX→VXX_MATCAT | { "hasNext": false, "items": [ { "id": "00010434", "registration": "MAT_42227624078", "category": "101", "fgtsTot": "27000.15" } ] } |
Trabalhador do S-5503 | Identificação do estabelecimento responsável pelo pagamento dos valores informados
Campo | Json 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" } ] |
Gravação e geração do modelo :
1 - Grvação dos campos pela função padrão GRV.
- 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.
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 | Campo | Retorno |
---|---|---|
00010434_VIEW | VXX_VIEW | Json |
00010434_MATCAT | VXX_MATCAT | Json |
00010434_STABPAG | VXX_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:
...
Padronização para nomenclaturas no uso do TLPP
TLPP x AdvPLhttps://api.totvs.com.br/apidetails/FGTSPerWorkerInLaborProcess_v1_000.json