====== Alterar/Remover Despacho ======
Este caso de uso possibilita alterar e remover despachos eletrônicos realizados em [[desenvolvimento:especificacoes:sipac:protocolo:casos_de_uso:processos:cadastro:cadastrar_despacho|processos]] ou [[desenvolvimento:especificacoes:sipac:protocolo:casos_de_uso:documentos:cadastro:cadastrar_despacho|documentos]]. Para realizar essas operações em um despacho é necessário
que o usuário tenha sido designado como responsável pelo despacho ou seja o usuário que realizou o cadastro do despacho, independente que o despacho tenha sido autenticado 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 -> Despachos Eletrônicos -> Alterar/Remover Despacho//
=== Passo 1 ===
Inicialmente são exibidos os despachos cujo o usuário é responsável ou tenha cadastrado (tanto os em processos quanto os em documentos). Os despachos exibidos são todos os despachos associados a um documento ou processo que ainda esteja na unidade do usuário. São informados os seguintes campos: ([[#Principais_Regras_de_Negócio|RN01]])
***__Despachos em Processos__**:
***__Cadastrado em__**: Formato: dd/MM/aaaa, Tipo - DATA.
***__Processo__**: Formato: RADICAL.NÚMERO/ANO-DÍGITOS VERIFICADORES[99999.999999/AAAA-99] ou 'NÃO PROTOCOLADO', Tipo - NUMÉRICO ou TEXTO.
* Esse campo é um link, para mais detalhes visualize a especificação: //[[desenvolvimento:especificacoes:sipac:portal_administrativo:casos_de_uso:protocolo:consultas:processo_detalhado|Processo Detalhado]]//, onde podemos visualizar todos os detalhes do processo.
***__Assunto__**: Tipo - TEXTO.
***__Tipo do Despacho__**: Formato - DENOMINAÇÃO DO TIPO, Tipo - TEXTO.
***__Cadastrado por__**: Tipo - TEXTO.
***__Origem__**: Formato - NOME DA UNIDADE (CÓDIGO DA UNIDADE), Tipo - TEXTO.
***__Despachos em Documentos__**:
***__Cadastrado em__**: Formato: dd/MM/aaaa, Tipo - TEXTO.
***__Documento__**: Formato: RADICAL.NÚMERO/ANO-DÍGITOS VERIFICADORES[99999.999999/AAAA-99], Tipo - NUMÉRICO.
* Esse campo é um link, para mais detalhes visualize a especificação: //[[desenvolvimento:especificacoes:sipac:protocolo:casos_de_uso:consultas_relatorios:consultas:documentos|Consulta de Documentos]]//, onde podemos visualizar todos os detalhes do documento.
***__Tipo do Despacho__**: Formato - DENOMINAÇÃO DO TIPO, Tipo - TEXTO.
***__Cadastrado por__**: Tipo - TEXTO.
***__Origem__**: Formato - NOME DA UNIDADE (CÓDIGO DA UNIDADE), Tipo - TEXTO.
* Para cada despacho, de processo ou documento, temos as seguintes opções:
* //Visualizar Despacho//: Uma nova janela com o despacho é mostrada ou o download do arquivo do despacho é exibido.
* //Alterar Despacho//: Segue para a página de cadastro de despachos, de [[desenvolvimento:especificacoes:sipac:protocolo:casos_de_uso:processos:cadastro:cadastrar_despacho|processos]] ou de [[desenvolvimento:especificacoes:sipac:protocolo:casos_de_uso:documentos:cadastro:cadastrar_despacho|documentos]], com as informações do despacho mostradas para a alteração.
* //Remover Despacho//: Opção que remover o despacho deixando-o inativo. Caso o despacho seja para validar uma juntada de processos, ao ser cancelado, a juntada é negada. ([[#Principais_Regras_de_Negócio|RN02]])
O caso de uso é finalizado.
===== Principais Regras de Negócio =====
* **RN01** - São mostrados todos os despachos em processos e documentos que o usuário é o reponsável ou tenha cadastrado o despacho.
* **RN02** - O despacho não pode ser visível nas consultas quando o mesmo tenha sido removido.
* **RN03** - Caso o despacho seja Alterado, seu documento associado também será.
* **RN04** - Caso o despacho seja Excluído, seu documento associado será CANCELADO.
* **RN05** - Não é permitido alterar despachos já autenticados.
===== Classes Persistentes e Tabelas Envolvidas =====
^ Classe ^ Tabela |
| br.ufrn.sipac.protocolo.dominio.Despacho | administrativo.protocolo.despacho |
| br.ufrn.sipac.protocolo.dominio.Processo | administrativo.protocolo.processo |
| br.ufrn.sipac.protocolo.dominio.Movimento | administrativo.protocolo.movimento |
| br.ufrn.sipac.protocolo.dominio.Documento | administrativo.protocolo.documento |
| br.ufrn.sipac.protocolo.dominio.MovimentoDocumento | administrativo.protocolo.movimento_documento |
====== Plano de Teste ======
Sistema: SIPAC
Módulo: Protocolo
Link(s): Processos -> Despachos Eletrônicos -> Alterar/Remover Despacho
Usuário: paulinho.
Papel que usuário deve ter: Nenhum papel é necessário.
===== Cenários de Teste =====
- [[desenvolvimento:especificacoes:sipac:protocolo:casos_de_uso:processos:cadastro:cadastrar_despacho|Cadastrar Despacho de Processos]] e [[desenvolvimento:especificacoes:sipac:protocolo:casos_de_uso:documentos:cadastro:cadastrar_despacho|Cadastrar Despacho de Documentos]]
Com o usuário laenilson, informando como Servidor Responsável pelo Despacho o usuário PAULO JOSE PEREIRA.
Após acesse o sistema pelo usuário de PAULO JOSE PEREIRA, login paulinho, e realizar alterações e remoções.
===== Dados para o Teste =====
* 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