Ir para o conteúdo principal

Vincular a carta de serviços a um CNPJ

Data de elaboração 24/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)
Alvo Alpha - 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ções O 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. 

image.png

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? Pontos Regras Produto
Criação do campo CNPJ na tabela Carta de serviços 5

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 API 5

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 governo 3

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

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

Quando identificar que o usuário é de entidade externa

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

Quando identificar que é entidade externa

Portal do cidadão




Total 19



 

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? Pontos Regras Produto
E-Estado



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


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ços 5

- 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 Api 5

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 WEB 3


Alpha WEB
Portais



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

- 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ão 5

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

Portal do cidadão
Busca de unidades externas 3

- 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 servidores 5

Criar rotina para atualizar o campo CNPJ

Alpha solicitações API
Alterar rota ObterAvaliacoesPorUnidadeOrcamentaria 3

Alterar para ObterAvaliacoesPorCNPJ

Alpha Solicitações API
Alpha Solicitacoes WEB



Alterar consulta de avaliações por CNPJ 3

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 WEB 3


Alpha WEB
Total 50



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.