~~ODT~~
Buscar Mensagem
Este caso de uso tem por objetivo realizar a busca de mensagens na caixa postal do usuário.
Descrição do Caso de Uso
O caso de uso inicia quando o usuário acessa o link SIGAdmin → Caixa Postal → Buscar Mensagem.
Acessando a busca de mensagem, o sistema apresenta um formulário de filtro de mensagens com as seguintes opções:
- Remetente: Tipo - TEXTO.
- Destinatário: Tipo - TEXTO.
- Assunto: Tipo - TEXTO.
- Conteúdo: Tipo - TEXTO.
- Data entre: Tipo - DATA.
- Buscar em*: Tipo - LÓGICO. São apresentadas as opções
Caixa de Entrada
,Caixa de Saída
eLixeira
.
Após realizar a consulta, o sistema exibe uma lista de mensagens que se adequam com o(s) filtro(s) usado(s). Nessa listagem, os seguintes dados são exibidos:
- Assunto: Tipo - TEXTO.
- Destinatário: Tipo - TEXTO.
- Remetente: Tipo - TEXTO.
- Anexo: Tipo - TEXTO.
- Data: Tipo - DATA
O sistema oferece um mecanismo de paginação para a lista de resultados de busca.
Na listagem da busca, também são mostradas as opções para:
O conteúdo das mensagens pode ser visualizado através de um “click” no título da mensagem.
Principais Regras de Negócio
- RN01: Pelo menos um filtro deve ser utilizado.
Resoluções/Legislações Associadas
Não se Aplica.
Classes Persistentes e Tabelas Envolvidas
Classe | Tabela |
---|---|
br.ufrn.arq.caixa_postal.Mensagem | sistemas_comum.comum.mensagem |
br.ufrn.comum.dominio.UsuarioGeral | sistemas_comum.public.usuario |
Plano de Teste
Sistema: SIGAdmin
Módulo: Caixa Postal
Link: SIGAdmin → Caixa Postal → Busca de Mensagem
Cenários de Teste
Não se aplica.
Dados para teste
- Consulta com todos os filtros ativos:
SELECT mensagem0_.id_mensagem AS col_0_0_, mensagem0_.descricao AS col_1_0_, usuarioger1_.login AS col_2_0_, unidadeger4_.codigo_unidade AS col_3_0_, unidadeger4_.sigla AS col_4_0_, usuarioger2_.login AS col_5_0_, unidadeger12_.codigo_unidade AS col_6_0_, unidadeger12_.sigla AS col_7_0_, mensagem0_.data_cadastro AS col_8_0_, mensagem0_.lida AS col_9_0_, mensagem0_.leitura_obrigatoria AS col_10_0_, mensagem0_.id_arquivo AS col_11_0_ FROM comum.mensagem mensagem0_ LEFT OUTER JOIN comum.usuario usuarioger1_ ON mensagem0_.id_remetente = usuarioger1_.id_usuario LEFT OUTER JOIN comum.unidade unidadeger4_ ON usuarioger1_.id_unidade = unidadeger4_.id_unidade LEFT OUTER JOIN comum.usuario usuarioger2_ ON mensagem0_.id_usuario = usuarioger2_.id_usuario, comum.unidade unidadeger12_, comum.pessoa pessoagera15_, comum.unidade unidadeger16_, comum.pessoa pessoagera18_, comum.unidade unidadeger19_ WHERE usuarioger2_.id_unidade = unidadeger12_.id_unidade AND usuarioger1_.id_pessoa = pessoagera15_.id_pessoa AND usuarioger1_.id_unidade = unidadeger16_.id_unidade AND usuarioger2_.id_pessoa = pessoagera18_.id_pessoa AND usuarioger2_.id_unidade = unidadeger19_.id_unidade AND 1 = 1 AND ( Lower(usuarioger1_.login) LIKE ? OR Lower(pessoagera15_.nome) LIKE ? OR Lower(unidadeger16_.sigla) LIKE ? OR Lower(unidadeger16_.nome) LIKE ? ) AND ( Lower(usuarioger2_.login) LIKE ? OR Lower(pessoagera18_.nome) LIKE ? OR Lower(unidadeger19_.sigla) LIKE ? OR Lower(unidadeger19_.nome) LIKE ? ) AND ( Lower(mensagem0_.descricao) LIKE ? ) AND ( Lower(mensagem0_.mensagem) LIKE ? ) AND mensagem0_.data_cadastro >=? AND mensagem0_.data_cadastro <=? AND ( mensagem0_.id_usuario = ? AND mensagem0_.removida_destinatario = false AND ( mensagem0_.removida_remetente = false OR mensagem0_.removida_remetente IS NULL ) OR mensagem0_.id_remetente = ? AND ( mensagem0_.removida_remetente = false OR mensagem0_.removida_remetente IS NULL ) OR mensagem0_.id_usuario = ? AND mensagem0_.id_remetente = ? AND ( mensagem0_.removida_destinatario = true OR mensagem0_.removida_remetente = true ) AND ( mensagem0_.rem_lix_destinatario = false AND mensagem0_.rem_lix_remetente = false OR ( mensagem0_.rem_lix_destinatario IS NULL ) AND ( mensagem0_.rem_lix_remetente IS NULL ) ) OR mensagem0_.id_remetente = ? AND mensagem0_.id_usuario <>? AND mensagem0_.removida_remetente = true AND ( mensagem0_.rem_lix_remetente IS NULL OR mensagem0_.rem_lix_remetente = false ) OR mensagem0_.id_usuario = ? AND mensagem0_.id_remetente <>? AND mensagem0_.removida_destinatario = true AND ( mensagem0_.rem_lix_destinatario IS NULL OR mensagem0_.rem_lix_destinatario = false ) ) ORDER BY mensagem0_.data_cadastro