Ir para o conteúdo principal

como identificar o perfil se é servidor ou um usuário externo e qual carta de serviço devo mostrar para esse usuário.

Data de elaboração24/10/2022
Responsável pelo estudo
  1. Rafael Passos dos Santos (Assessor)
  2. Lucas de Souza e Sousa (Assessor)
Equipe do estudo
  1. André Honório de Andrade Silva (Tecnico)
  2. Gezinéia Paula da Costa (Product Owner)
  3. Emanuel Rufino Alcantara de Lima (Analista)
  4. Lucas de Souza e Souza (Assessor)
  5. Rafael Passos dos Santos (Assessor)
AlvoAlpha - Carta de serviços
Origem

Implementação: Implementação de funcionalidade para obter as cartas de serviços por CNPJ.

Objetivo

O presente estudo tem como objetivo analisar o que terá que ser feito para alterar a vinculação da carta de serviços através do CNPJ e os possíveis impactos às aplicações dependentes da API da carta de serviços

Documentação correlata
ObservaçõesO presente estudo pretende também pretende levantar as Historias dos cards para a Sprint 
1. Objetivo

O presente estudo tem como objetivo analisar o que terá que ser feito para alterar a vinculação da carta de serviços através do CNPJ e os possíveis impactos às aplicações dependentes da API da carta de serviços

1.1 JUSTIFICATIVA

Existe a necessidade de incluir as cartas de serviços de outras instituições que também utilizarão o Alpha, porém não fazem parte da hierarquia interna do Governo. Para essas instituições foi levantada a hipótese de se realizar este estudo para verificar a possibilidade de se utilizar o CNPJ para identificar qual a carta de serviços é relacionada ao gestor de serviços ou ao atendente.

1.2 RESULTADOS ESPERADOS

Espera-se que, após este estudo, seja possível avaliar a possibilidade de se utilizar o CNPJ para criar e buscar a carta de serviços de instituições internas e externas do Governo

2. Introdução

O Alpha é uma aplicação desenvolvida pela SETIC - esta é utilizada pelos servidores gestores das cartas de serviços do Estado de Rondônia. 

3. Desenvolvimento - Vincular a carta de serviços a um CNPJ

3.1 CENÁRIO ATUAL

3.1.1 Alpha Serviços API

A carta de serviços foi desenvolvida baseada em um identificador interno (unidadeOrcamentariaId), trata-se de um campo que identifica qual unidade orçamentária corresponde a determinada carta de serviços. 


1. Tabela da carta de serviços

Nesta tabela esse campo é identificado com CodigoDaUnidadeGestoraDoDepartamento.

Para identificar qual a unidade que o servidor está lotado, utilizamos a rota no e-estado API trazendo as movimentações com os seguintes campos:

  1.  codigoDaUnidadeOrcamentaria - código que identifica qual a unidade de origem do servidor
  2.  codigoDaUnidadeGestoraDoDepartamento - código que identifica a unidade em que o servidor está lotado
  3.  departamentoPadrao - flag que identifica que a movimentação é a padrão, ou seja, movimentação vigente do servidor.

Obs: Nesta rota, não existe a informação de qual é o CNPJ da unidade.

Foi verificado que o campo "CodigoDaUnidadeGestoraDoDepartamento" não é utilizado para relacionamento com a tabela de serviços, ou seja, em termos de relacionamento não há impactos no banco de dados.


3.1.2 Alpha Solicitações API

Solicitações do Servidor

Na tabela de solicitações do servidor há o campo unidade orçamentária, este campo identifica a unidade orçamentária que o servidor estiver lotado no momento da solicitação. Este campo é utilizado no filtro de solicitações.

Avaliações dos agendamentos

O campo de unidade orçamentária também é utilizado como parâmetro para se obter as avaliações por unidade orçamentária. Para isso, é utilizada a rota de obter todos os serviços da unidade orçamentária. Com base nesses serviços é realizado um filtro nas avaliações existentes.

Dashboard

O campo de unidade orçamentária também é utilizado para se obter o quantitivo de solicitações por unidade orçamentária.


3.2 SOLUÇÃO

É possível implementar uma das duas soluções:

3.2.1 SOLUÇÃO 1 - Utilizar tanto unidade orçamentária (servidores) quanto CNPJ (externos) para identificar a carta de serviços

Adicionar o campo CNPJ nas buscas da carta de serviço. Dessa forma, a carta poderá ser buscada tanto por unidade orçamentária quanto por CNPJ, realizando a tratativa de acordo se um dos campos estiver nulo.

3.2.2.1 IMPLEMENTAÇÃO E HISTÓRIAS DE USUÁRIOS

Para aplicar a solução acima será necessário as seguintes histórias de usuários:

O que?PontosRegrasProduto
Criação do campo CNPJ na tabela Carta de serviços5

Regras ao salvar

  • campo CNPJ opcional para as cartas de entidades do governo e campo unidadeOrcamentaria obrigatória
  • campo CNPJ obrigatório quando for entidade externa ao governo e campo unidadeOrcamentaria nula

Integridade

  • Não pode deixar criar duas cartas de serviços com o mesmo cnpj
  • Não pode deixar criar duas cartas de serviços com a mesma unidade orcamentaria

Obs: a nível de aplicação, poderia ser criada herança para identificar carta de serviços internas e externas.

Alpha

API

Adicionar parâmetro CNPJ nas rotas de ObterCartaDeServicos na API5

Alterar a rota para permitir receber dois campos:

1) CodigoDaUnidadeOrcamentaria - para as unidades do governo

2) CNPJ - para as unidades externas

A action deve ser alterada para que no caso do codigoDaUnidadeOrcamentaria vier nula, utilizar o CNPJ para obter a carta de serviços

Rotas a serem alteradas:

  • ObterCartaDeServicosPublicadosParaOPortalDoServidor/{codigoDaUnidadeOrcamentaria}
  • ObterCartaDeServicosPorCodigoDaUnidadeOrcamentaria/{codigoDaUnidadeOrcamentaria}

Sugestão: obter os parâmetros via fromQuery

Alpha API
(Opcional) Criar campo para identificar se a carta de serviços é de origem interna ou externa aos órgãos do governo3

Este campo facilitaria possíveis filtros e relatórios posteriores

Alpha API
Adicionar parâmetro CNPJ nas rotas de ObterCartaDeServicos no Alpha WEB3

Quando identificar que o usuário é de entidade externa

Alpha WEB
Adicionar CNPJ nas rotas de ObterCartaDeServicos no Portal do cidadão3

Quando identificar que é entidade externa

Portal do cidadão




Total19




3.2.2 SOLUÇÃO 2 - Utilizar o CNPJ como identificador único na busca da carta de serviços

Esta solução requer incluir as informações dos CNPJs da Unidade Gestora do Departamento e da Unidade Orcamentaria do servidor na rota de movimentações. Dessa forma, será padronizada a busca por CNPJ, tanto para usuários do governo quanto usuários externos, retirando o campo de Unidade orçamentaria das buscas.

3.2.2.1 IMPLEMENTAÇÃO E HISTÓRIAS DE USUÁRIOS DA SOLUÇÃO 2

O que?PontosRegrasProduto
E-Estado



Incluir CNPJ das unidades orçamentária e gestora do servidor na rota de movimentações do servidor5


E-Estado
Criar rota para obter a unidade orçamentária pelo CNPJ

5

Mesmo retorno da rota: api/unidadeorcamentaria/id/

E-Estado
Alpha Servicos



Criação do campo CNPJ na tabela Carta de serviços5

- Campo obrigatório

- Retirar o campo unidadeOrcamentariaId da tabela carta de serviços

- Criar rotina para atualizar o banco da carta de serviços, incluindo o cnpj de cada unidade orçamentária relacionada

Alpha

API

Alterar o parâmetro para buscar por CNPJ nas rotas de ObterCartaDeServicos na Api5

Alterar o parâmetro das rotas para buscar por cnpj

Parâmetro:

cnpjDaUnidade - para as unidades externas


Rotas a serem alteradas:

  • CartaDeServicos/ObterCartaDeServicosPublicadosParaOPortalDoServidor/{cnpjDaUnidade}
  • CartaDeServicos/ObterCartaDeServicosPorCodigoDaUnidadeOrcamentaria/{cnpjDaUnidade}
  • Servico/ObterServicosPorUnidadeOrcamentaria{cnpjDaUnidade}
Alpha API
Alterar parâmetro de busca por unidade orçamentária e substituir por CNPJ nas rotas de ObterCartaDeServicos no Alpha WEB3


Alpha WEB
Portais



Alterar parâmetro de busca por unidade orçamentária e substituir por CNPJ nas rotas de ObterCartaDeServicos no Portal do servidor5

- Deve ser alterado além da controller, as dtos, services e factories

Portal do servidor
Alterar parâmetro de busca por unidade orçamentária e substituir por CNPJ nas rotas de ObterCartaDeServicos no Portal do cidadão5

- Deve ser alterado além da controller, as dtos, services e factories

Portal do cidadão
Busca de unidades externas3

- Busca de algum lugar a lista de unidades externas para mostrar ao cidadao

Portal do cidadão
Alpha Solicitacoes API



Alterar campo unidadeOrcamentaria para CNPJ na tabela solicitacoes de servidores5

Criar rotina para atualizar o campo CNPJ

Alpha solicitações API
Alterar rota ObterAvaliacoesPorUnidadeOrcamentaria3

Alterar para ObterAvaliacoesPorCNPJ

Alpha Solicitações API
Alpha Solicitacoes WEB



Alterar consulta de avaliações por CNPJ3

Alterar para ObterAvaliacoesPorCNPJ

Alpha solicitações Web
Alterar parâmetro de busca por unidade orçamentária e substituir por CNPJ nas rotas de ObterCartaDeServicos no Alpha Solicitações WEB3


Alpha WEB
Total50



3.4 POSSÍVEIS IMPEDIMENTOS

Não foram encontrados possíveis problemas de implementação.

4. Conclusão

Conclui-se que a solução que trará menos impacto ao sistema será a solução 1. Dessa forma conseguiremos obter a carta de serviços tanto através da unidade orçamentária quanto por CNPJ.