~~ODT~~ echo "
"; echo "Última atualização: "; ver('', false); echo "
";
====== 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'' e ''Lixeira''. 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: * [[caixa_entrada|Caixa de Entrada]] * [[caixa_saida|Caixa de Saída]] * [[lixeira|Lixeira]] * [[enviar_mensagem|Enviar Mensagem]] * [[remover_selecao|Remover Seleção]] * [[buscar_mensagem|Buscar Mensagem]] 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