| Data de elaboração | 24/10/2022 |
| Responsável pelo estudo | Rafael Passos dos Santos (Assessor), Lucas de Souza e Sousa (Assessor) |
| Equipe do estudo | André Honório de Andrade Silva (Tecnico), Gezinéia Paula da Costa (Product Owner), Emanuel Rufino Alcantara de Lima (Analista), Lucas de Souza e Souza (Assessor), 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 |
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
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.
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
O Alpha é uma aplicação desenvolvida pela SETIC - esta é utilizada pelos servidores gestores das cartas de serviços do Estado de Rondônia.
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.

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:
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.
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.
É possível implementar uma das duas soluções:
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.
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 |
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.
| O que? | Pontos | Regras | Produto |
| E-Estado | |||
| Incluir CNPJ das unidades orçamentária e gestora do servidor na rota de movimentações do servido | 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 | 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 |
Não foram encontrados possíveis problemas de implementaçã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.