~~ODT~~
Confirmar Cancelamento
Este caso de uso é utilizado pelos usuários responsáveis pela unidade com a finalidade de confirmar o cancelamento de processos. Uma Solicitação de Cancelamento é criada quando se tem um processo o qual deseja-se cancelar. Normalmente, a solicitação de cancelamento existe devido a erros de digitação do processo. A confirmação de uma solicitação de cancelamento de um processo pode ser atendida ou não.
Descrição do Caso de Uso
Este caso de uso inicia quando o usuário acessa a opção: SIPAC → Protocolo → Processos → Arquivo/Cancelamento/Diligência → Confirmar Cancelamento
Passo 1
Inicialmente são exibidas as solicitações de cancelamento de processo referentes a unidade do usuário ou vinculadas, de acordo com o fluxo de consulta de processos.
Ao usuário são possíveis as operações de aprovar (RN04) ou negar (RN05) a solicitação.
É possível visualizar a solicitação com maiores detalhes, permitindo, por exemplo, checar a justificativa para a solicitação de cancelamento (RN02).
O caso de uso é finalizado.
Principais Regras de Negócio
- RN01 - Essa funcionalidade é usada apenas pelos chefes das unidades.
- RN02 - Um processo pode ter tantas confirmações de solicitação quantas forem suas solicitações de cancelamento.
- RN03 - Apenas os usuários que apresentam a permissão de enviar protocolo na unidade na qual está logado no sistema pode acessar o caso de uso. Ou seja, além de ter o papel de enviar protocolo, o usuário deve ter permissão desse papel para a unidade que está acessando o sistema.
- RN04 - Após aprovada uma solicitação de cancelamento de processo, este passará a ter o status de
CANCELADO
. - RN05 - Se a solicitação de cancelamento de um processo é negada, então o status do processo é alterado para
ATIVO
. - RN06 - Os chefes das unidades só podem confirmar o cancelamento dos processo originados da unidade onde eles são chefes ou das unidade subordinadas a esta.
- RN07 - Ao cancelar o processo, todos os documentos associados também serão cancelados.
Resoluções/Legislações Associadas
PORTARIA NORMATIVA Nº 5, DE 19 DE DEZEMBRO DE 2002: Dispõe sobre os procedimentos gerais para utilização dos serviços de protocolo, no âmbito da Administração Pública Federal, para os órgãos e entidades integrantes do Sistema de Serviços Gerais - SISG.
Classes Persistentes e Tabelas Envolvidas
Classe | Tabela |
---|---|
br.ufrn.sipac.protocolo.dominio.SolicitacaoInativacao | protocolo.soliticatao_inativacao |
br.ufrn.sipac.protocolo.dominio.Processo | protocolo.processo |
br.ufrn.sipac.protocolo.dominio.OcorrenciaProcessoDocumento | protocolo.ocorrencia_processo_documento |
Plano de Teste
Sistema: SIPAC
Módulo: Protocolo
Link(s): Processos → Arquivo/Cancelamento/Diligência → Confirmar Cancelamento
Usuário: jbb, gleydson.
Papel que usuário deve ter: ProtocoloPapeis.ENVIAR_PROTOCOLO.
Cenários de Teste
- Verificar se o status do processo é alterado, após feita a confirmação de cancelamento.
- Verificar se a confirmação de cancelamento irá gerar uma ocorrência no processo.
- Verificar se um processo pode ter mais confirmações que solicitações de cancelamento.
Dados para o Teste
Apenas chefes das unidades de origem dos processo podem ser usados na confirmação de uma solicitação de cancelamento.
Consulta dos chefes das unidades:
SELECT un.codigo_unidade, un.nome, u.login FROM comum.responsavel_unidade r INNER JOIN comum.unidade un ON un.id_unidade = r.id_unidade INNER JOIN rh.servidor s ON r.id_servidor = s.id_servidor INNER JOIN comum.usuario u ON u.id_pessoa = s.id_pessoa WHERE (data_fim IS NULL OR data_fim > CURRENT_DATE) AND r.nivel_responsabilidade = 'C' -- chefe ORDER BY un.codigo_unidade
Para a RN03, podemos usar:
- Para encontrar usuários com a permissão de enviar protocolo e que apresentam mais de uma unidade, usamos :
SELECT pa.nome, u.login FROM comum.usuario_unidade uu JOIN comum.usuario u ON u.id_usuario = uu.id_usuario JOIN comum.pessoa p ON p.id_pessoa = u.id_pessoa JOIN comum.unidade un ON un.id_unidade = uu.id_unidade JOIN comum.permissao pe ON pe.id_usuario = u.id_usuario JOIN comum.papel pa ON pa.id = pe.id_papel WHERE pe.id_papel = 6 GROUP BY pe.id_unidade_papel, pa.nome, u.login, uu.id_usuario ORDER BY u.login
- Para saber quais das unidades o usuário tem permissão de enviar protocolo, usamos:
SELECT pa.nome, u.login, un.codigo_unidade, un.nome FROM comum.usuario u JOIN comum.permissao pe ON pe.id_usuario = u.id_usuario JOIN comum.papel pa ON pa.id = pe.id_papel JOIN comum.unidade un ON un.id_unidade = pe.id_unidade_papel WHERE u.login LIKE '<LOGIN DO USUÁRIO>' AND pe.id_papel = 6