~~ODT~~ echo "
"; echo "Última atualização: "; ver('', false); echo "
";
====== Renovar Meus Empréstimos ====== Este caso de uso permite os usuário renovar seu empréstimos //online//. Sem a necessidade de ir presencialmente à biblioteca. \\ \\ Caso de uso utilizado pelos usuário da biblioteca \\ Pré-condições: O usuário deve ser feito empréstimos no sistema e os empréstimos podem poder ser renovados. ===== Descrição do Caso de Uso ===== Este caso de uso na situação mais básica, é chamado de dois lugares diferentes do sistema: //SIGAA -> Biblioteca -> Módulo do Servidor -> Empréstimos -> Renovar Meus Empréstimos // //SIGAA -> Portal do Discente -> Biblioteca -> Empréstimos -> Renovar Meus Empréstimos// Entrando na opção, é mostrada uma listagem com os empréstimos ativos que podem ser renovados para o usuário atualmente //logado// no sistema. Para cada empréstimo são mostradas as informações: * **__Informações do Material__**: As informações do material emprestado, como código de barras, Autor, Título e Biblioteca. * **__Data do Empréstimo__**: A data em que o empréstimos foi realizada. Tipo - DATA. Formato - dd/MM/yyyy * **__Prazo__**: O prazo que o usuário tem para devolver o empréstimo. Tipo - DATA. Formato - dd/MM/yyyy HH:mm \\ O usuário deve selecionar os empréstimos que ele deseja que sejam renovados e conformar a renovação \\ O usuário será redirecionado para a página de confirmação das renovações realizadas e um email de confirmação da renovação será enviado para o usuário. \\ \\ Na tela de comprovação será mostrado uma cópia do comprovante de renovação, com a opção para emitir o comprovante em um formato para impressão. \\ \\ \\ No comprovante são impressos os seguintes dados: * **__Informações do Usuário__**: Matrícula, nome, vínculo, email, etc. Dependendo do tipo do usuário. * **__Data da Renovação__**: A data em que a renovação foi feita. Tipo - DATA. Formato - dd/MM/yyyy HH:mm * **__Informações do Material__**: As informações do material emprestado, como código de barras, Autor, Título e Biblioteca. * **__Prazo para Devolução__**: O novo prazo que o usuário tem para devolver o empréstimo depois da renovação feita. Tipo - DATA. Formato - dd/MM/yyyy HH:mm \\ O caso de uso é finalizado. ===== Principais Regras de Negócio ===== -** RN01 ** Um email de confirmação deve ser enviado para o usuário que renovou os empréstimos. -** RN02 ** Usuário com empréstimos atrasados ou com multa ou suspensos não podem renovar seus empréstimos. ==== Resoluções/Legislações Associadas ==== Não se Aplica. ===== Classes Persistentes e Tabelas Envolvidas ===== ^ Classe ^ Tabela | | ufrn.sigaa.biblioteca.circulacao.dominio.Emprestimo| sigaa.biblioteca.emprestimo | | ufrn.sigaa.biblioteca.circulacao.dominio.ProrrogacaoEmprestimo| sigaa.biblioteca.prorrogacao_emprestimo | | ufrn.sigaa.biblioteca.circulacao.dominio.UsuarioBiblioteca| sigaa.biblioteca.usuario_biblioteca | | ufrn.sigaa.biblioteca.circulacao.dominio.MaterialInformacional| sigaa.biblioteca.material_informacional | ===== Plano de Teste ===== Sistema: SIGAA Módulos: BIBLIOTECA e PORTAL DO DISCENTE Link(s): SIGAA -> Biblioteca -> Módulo do Servidor -> Empréstimos -> Renovar Meus Empréstimos SIGAA -> Portal do Discente -> Biblioteca -> Empréstimos -> Renovar Meus Empréstimos Usuário: qualquer usuário que tenha cadastro na biblioteca Papel que usuário deve ter: Não se Aplica. ===== Cenários de Teste ===== Não se Aplica. ===== Dados para o Teste ===== ----- ----- Sql para consultar os usuários do sistema. ----- ----- busca docentes externos para a biblioteca ----- SELECT docente.id_docente_externo, p.cpf_cnpj, p.nome, docente.matricula FROM ensino.docente_externo docente INNER JOIN comum.pessoa p on p.id_pessoa = docente.id_pessoa WHERE docente.matricula IS NOT NULL AND docente.ativo = trueValue() AND ( prazo_validade IS NULL or prazo_validade >= now() ) limit 100 ---- buscar usuarios externos da biblitoeca ---------- SELECT p.cpf_cnpj, p.nome, ube.prazo_vinculo, ube.cancelado FROM comum.pessoa p INNER JOIN biblioteca.usuario_biblioteca ub on ub.id_pessoa = p.id_pessoa INNER JOIN biblioteca.usuario_externo_biblioteca ube on ube.id_usuario_biblioteca = ub.id_usuario_biblioteca where prazo_vinculo > now() and cancelado = false limit 100 ---- buscar alunos que pode fazer empréstimos na biblioteca ---------- select pessoa.id_pessoa, pessoa.nome, pessoa.cpf_cnpj, discente.status from discente inner join comum.pessoa on discente.id_pessoa = pessoa.id_pessoa inner join biblioteca.usuario_biblioteca on usuario_biblioteca.id_pessoa = pessoa.id_pessoa where usuario_biblioteca.quitado = false and usuario_biblioteca.ativo = true and discente.status in (1,8, 9, 12) --and discente.status in ( 12) ---- buscar alunos de mobilidade estudantiu ---------- select pessoa.id_pessoa, pessoa.nome, pessoa.cpf_cnpj from discente inner join ensino.forma_ingresso on discente.id_forma_ingresso = forma_ingresso.id_forma_ingresso inner join comum.pessoa on discente.id_pessoa = pessoa.id_pessoa inner join biblioteca.usuario_biblioteca on usuario_biblioteca.id_pessoa = pessoa.id_pessoa where usuario_biblioteca.quitado = false and usuario_biblioteca.ativo = true AND discente.tipo = 2 and permite_emprestimo_biblioteca = true limit 100 ---- buscar alunos de iniciação científica ---------- select pessoa.nome from discente inner join comum.pessoa on discente.id_pessoa = pessoa.id_pessoa inner join biblioteca.usuario_biblioteca on usuario_biblioteca.id_pessoa = pessoa.id_pessoa where usuario_biblioteca.quitado = false and usuario_biblioteca.ativo = true and discente.id_discente in ( select distinct m.id_discente from pesquisa.membro_projeto_discente m where (m.data_fim is null or m.data_fim >= now() ) limit 100 ) ---- buscar usarios que não tem cadastro na biblioteca --------- select pessoa.id_pessoa, pessoa.nome, pessoa.cpf_cnpj from comum.pessoa where id_pessoa not in ( select id_pessoa from biblioteca.usuario_biblioteca where id_pessoa is not null ) and pessoa.cpf_cnpj is not null limit 100