~~ODT~~ echo "
"; echo "Última atualização: "; ver('', false); echo "
";
====== Confirmar Cancelamento ====== Este caso de uso é utilizado pelos usuários responsáveis pela unidade com a finalidade de confirmar o cancelamento de processos. Uma [[solicitar_cancelamento|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 [[desenvolvimento:especificacoes:sipac:fluxos:fluxo_consulta_de_processo|fluxo de consulta de processos]]. Ao usuário são possíveis as operações de aprovar ([[#Principais regras de negócio|RN04]]) ou negar ([[#Principais regras de negócio|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 ([[#Principais regras de negócio|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 ==== {{:desenvolvimento:especificacoes:sipac:protocolo:portaria_normativa_5-2002.pdf | 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 '' AND pe.id_papel = 6