~~ODT~~
Esta especificação descreve o fluxo completo da parte de reservas de materiais bibliográficos. Foi criada essa especificação em separado porque o fluxo completo envolve várias parte do sistema, não existindo um link que seja possível realizá-lo.
É importante descrevê-lo porque essa parte precisa ser bem entendida e testada
Um reserva do sistema pode passar por 5 status durante o seu ciclo de vida. Os possíveis status estão mostrados no diagrama abaixo.
As ações realizada durante o ciclo de vida de uma reservas são mostradas no diagrama de atividades abaixo:
Código Fonte da modelagem das reservas
“Não se Aplica”.
“Não se Aplica”.
Classe | Tabela |
---|---|
ufrn.sigaa.biblioteca.circulacao.dominio.ReservaMaterialBiblioteca | sigaa.biblioteca.reserva_material_biblioteca |
Sistema: SIGAA
Módulo: BIBLIOTECA
Link(s): Não se aplica
Usuário: Não se aplica
Papel que usuário deve ter: Não se aplica
Para papeis, links e usuário vide as especificações dos seguintes casos de uso:
ANTES DE COMEÇAR A TESTAR, LEMBRE-SE QUE ESSE CASO DE USO NÃO É UTILIZADO NA UFRN, FOI SOLICITADO PELA COOPERAÇÃO, ENTÃO NÃO VAI SER VALIDADO EM PRODUÇÃO ANTES DE IR PARA OUTRAS INSTITUIÇÕES, É MUITO IMPORTANTE TESTAR TODO O FLUXO DESCRITO NO DIAGRAMA DE ATIVIDADES ACIMA
Importante: Apesar do usuário realizar o empréstimo de um material específico da biblioteca, a reserva é feita para o Título.
Um Título possui vários materiais:
"Brasil. Código de processo civil / 1999" * L172780 Livro REGULAR Emprestado * L172782 Livro REGULAR Disponível * L172782A CD-ROM REGULAR Disponível * L172783 Livro NÃO CIRCULA Disponível
Para solicitar a reserva é preciso que os 2 materiais (L172780, L172782) estejam emprestado. Pois nessa contagem não é levado em consideração os anexos nem os materiais que possuem um status que não permite reservas. Aqui na UFRN o status NÃO CIRCULA.
A primeira coisa para começar a testar é escolher 3 ou 4 títulos do acervo e realizar empréstimos para todos os seus materiais, porque uma reserva só pode ser solicitada se não tiver material disponível na biblioteca.
Logicamente, escolha títulos com 2 ou 3 materiais. Para a quantidade de empréstimos necessários não ficar enorme. Utilize discentes e servidores diversos do sistema para realizar esses empréstimos.
Se precisar cadastrar discentes ou servidores para utilizar a biblioteca utilize Cadastrar Usuário Biblioteca
Pegue um gama nova de usuários (de 5 a 10 ) para realizar as reservas. (Usuários não podem solicitar reservas para materiais que já estão emprestados para eles, por isso precisam ser novos usuários. Pegue pelos menos 1 usuário em comum como o primeiro grupo para testar esse regra)
É MUITO importante realizar várias reserva com vários usuários diferentes, para vários títulos do acervo.
Devolva pelo menos 2 materiais do mesmo Título que possuam reserva. Verificar que as 2 primeiras reservas do Título ficaram EM_ESPERA. Tente fazer um empréstimo para algum desses materiais com algum usuário diferente dos 2 usuários que solicitaram a reserva. O sistema não deve permitir.
Realize o empréstimo com um usuário cuja a reserva foi colocada EM_ESPERA. Verifica se a primeira reserva EM_ESPERA do Título fica com o status de CONCRETIZADA.
Sempre que um reserva for para EM_ESPERA, verifique se o usuário solicitador da reserva recebeu um aviso.
Deixa a outra reserva EM_ESPERA expirar o prazo. Espere ou rode manualmente a rotina que verifica as reservas EM_ESPERA vencidas. SIGAA → Biblioteca → Administração → Executar Verificação Reservas Vencidas. (é preciso usuário com papel SigaaPapeis. BIBLIOTECA_ADMINISTRADOR_SISTEMA)
Verifique se a reserva EM_ESPERA vencida passou para CANCELADA e próxima reserva do Título foi colocada EM_ESPERA(a próxima considerando a data da solicitação da reserva).
Para visualizar as reserva de um Título específico do acervo utilize o caso de uso:
Visualizar Reservas de um Título
Para visualizar as reserva de um Usuário em específico utilize o caso de uso:
Visualizar Reservas de um Usuário
Para verificar as reservas ativas no banco utilizar o sql :
SELECT * FROM biblioteca.reserva_material_biblioteca WHERE STATUS IN( 0, 1) ORDER BY id_titulo_catalografico, data_solicitacao
Para verificar as reservas canceladas manualmente no banco utilizar o sql :
SELECT * FROM biblioteca.reserva_material_biblioteca WHERE STATUS IN( 3) ORDER BY id_titulo_catalografico, data_solicitacao
Para mudar o prazo que o usuário tem para concretizar a reserva e força-la a ficar expirada, utilize o sql substituindo xxxxx pelo id da reserva:
UPDATE biblioteca.reserva_material_biblioteca SET prazo_retirada_material= '' WHERE STATUS IN(1) AND id_reserva_material_biblioteca = xxxxxx