~~ODT~~ echo "
"; echo "Última atualização: "; ver('', false); echo "
";
====== Gerenciar Multas ====== Permite aos bibliotecários realizar operações sobre as multas geradas para os usuários da biblioteca. Esse caso de uso estão envolvidos os bibliotecários do setor de circulação. Pré-condições: Um empréstimo deve ter sido devolvido com atraso e o parâmetro SISTEMA_TRABALHA_COM_MULTA deve está habilitado. ===== Descrição do Caso de Uso ===== Este caso de uso inicia quando o usuário acessa a opção: **//SIGAA -> Biblioteca -> Circulação -> Gerenciar Multas //** Entrando na opção, o usuário é redirecionado para a [[desenvolvimento:especificacoes:sigaa:biblioteca:casos_de_uso:circulacao:busca_padrao_usuarios_biblioteca | busca padrão dos usuários da biblioteca ]]. Ao selecionar o usuário da biblioteca, o operador é redirecionado para um página que lista as multas ativas do usuário. São apresentados os seguintes dados do usuário: * **__Matrícula__**: Tipo - NUMÉRICO * **__Nome__**: Tipo - TEXTO * **__Categoria do Usuário__**: Tipo - TEXTO * **__Curso__**: Tipo - TEXTO * **__Centro__**: Tipo - TEXTO * **__Email__**: Tipo - TEXTO Para cada multa são apresentados as seguintes informações: * **__Valor__**: O valor da multa. Tipo - Numérico. Para **multas automáticas** geradas a partir de devoluções atrasadas dos materiais são mostradas as seguintes informações: * **__Material do empréstimo:: __**: O material do empréstimo que gerou a multa. Tipo - TEXTO. * **__Data do empréstimo__**: A data em que o empréstimo foi feito. Tipo - DATA. Formato - dd/MM/yyyy * **__Prazo__**: O prazo do empréstimo. Tipo - TEXTO. Formato - dd/MM/yyyy HH:mm * **__Data da devolução__**: A data em que o material foi devolvido. Tipo - TEXTO. Formato - dd/MM/yyyy HH:mm Para as **multas manuais** são mostradas as seguintes informações: * **__Usuário que cadastrou a multa: __**: O usuário que cadastrou a multa no sistema. Tipo - TEXTO. * **__Data do Cadastro__**: A data de cadastro da multa. Tipo - TEXTO. * **__Motivo do Cadastro__**: O motivo do cadastro na multa manual. Tipo - TEXTO. \\ \\ \\ As multas são geradas automaticamente quando o usuário [[desenvolvimento:especificacoes:sigaa:biblioteca:casos_de_uso:circulacao:modulo_de_circulacao:devolver_emprestimo | devolve um empréstimo ]] em atraso e o parâmetro SISTEMA_TRABALHA_COM_MULTA está ativado. \\ \\ \\ **OBSERVAÇÃO.:** A verificação dos parâmetros da biblioteca pode ser realizada em: [[desenvolvimento:especificacoes:sigaa:biblioteca:casos_de_uso:cadastros:configuracoes_do_sistema:configuracoes_de_circulacao | Biblioteca -> Cadastro -> Configurações do Sistema -> Configurações de Circulação ]]. \\ \\ \\ Caso o usuário possua multas cadastradas são mostradas quatro operações a serem realizadas sobre as multas: * **Confirmar Pagamento Manualmente** : Permite o bibliotecário dar baixa na multa do usuário confirmando o seu pagamento (mediante apresentação do comprovante de pagamento). * **Imprimir/Reimprimir GRU**: Imprime a GRU da multa para o usuário poder realizar o seu pagamento. * **Cadastrar Nova Multa**: Cadastra uma nova multas manualmente para o usuário. * **Estornar Multa **: Estorna a multas do usuário (utilizando quando a multa não foi gerada por culpa do usuário). ===== Cadastrar Nova Multa ===== Essa operação permite ao operador cadastrar uma nova multa manual para o usuário selecionado na pesquisa. Para cadastrar uma multa manual o operador deve informar os seguintes dados: * **Valor da Multa***: Tipo - NMÉRICO. * **Motivo da criação da multa***: Tipo - TEXTO. No cadastro de multas manuais o sistema disponibiliza uma "calculadora" para o usuário realizar o calculo do valor da multa que precisa ser aplicada ao usuário. Para isso ele fornece os seguintes dados: Prazo para Devolução, a Data da Devolução, Tipo do Prazo e a Quantidade de Empréstimos O sistema calcula: Quantidade de Dias em Atraso e o Valor da Multa ===== Confirmar o Pagamento Manualmente ===== \\ * No caso de **Confirmar o Pagamento Manualmente**, o usuário é redirecionado para a página onde vai confirmar o pagamento da multa manualmente. É apresentado o** código de referência** da GRU da multa seleciona. Caso o usuário confirme o pagamento, a multa não será mais devida pelo usuário e ele poderá realizar novos empréstimos. Nessa página são apresentado os seguintes dados, sendo o último para preenchimento do bibliotecário: * **__Valor da Multa__**: Tipo - NMÉRICO. * **__Dados da GRU__**: Tipo - TEXTO. * **__Número de Referência__**: Tipo - NUMÉRICO * **Observação**: Tipo - TEXTO ===== Imprimir/Reimprimir a GRU ===== * Na segunda opção de **Imprimir a GRU**, o sistema gera um arquivo PDF com a GRU a ser paga. Não é necessário que o bibliotecário emita a GRU, o próprio usuário pode fazer essa operação. Para identificar a GRU, o sistema utiliza o campo ** número de referência**. Esse número é incluído no código de barras da GRU e é gerado como se fosse o CPF do usuário. Assim o código de barras permite 11 dígitos para esse número. Como ele próprio possui 2 dígitos verificadores, sobram 7 dígitos úteis. Logo é possível pagar no máximo 999.999.999 multas por meio de GRUs. Lembrando que esse número é compartilhado com todos os casos de uso de geração de GRUs do SIGAA. ===== Estorna uma Multa ===== * Por último pode-se **estorna uma multa** indevida. O motivo do estorno deve ser informado e um email de aviso é enviado ao usuário para ele não realizar mais o seu pagamento, caso ele já tenha emitido o GRU. São apresentados os seguintes campos, sendo o último para preenchimento do bibliotecário: * **__Valor da Multa__**: Tipo - NMÉRICO. * **__Dados da Multa__**: Tipo - TEXTO. * **Motivo do Estorno***: Tipo - TEXTO ===== Imprimir uma GRU para todas as multas em Aberto ===== No final da página existe a opção **Emitir GRU Única para as Multas Abertas**. Nesse caso o sistema gera um PDF com a GRU para todas as multas abertas do usuário cuja a GRU não tenha sido gerada ainda. Assim o usuário pode efetivar apenas um único pagamento agilizando o processo. Nesse caso, todas as multa vão ser mostradas a informação "GRU Já Gerada". Quando o usuário voltar a utilizar a primeira opção **Imprimir/Reimprimir GRU** para as multas cuja GRU foi gerada por essa opção, é exibida e GRU gerada nessa segunda opção, referente a todas as multas que estavam em aberto anteriormente. O valor da GRU gerada por esse opção será o somatório do valor de todas as multas que estavam abertar sem ter GRU gerada. \\ \\ \\ **Observação.:** Paga o pagamento da multas da biblioteca, o sistema gera um GRU simples sem data de vencimento que deve ser paga no BANCO DO BRASIL. O sistema possui uma rotina de confirmação de pagamento automatizada. Após o pagamento no sistema bancário, dentro de alguns dias a multa será quitada na biblioteca. Caso o usuário necessite realizar um novo empréstimo antes da confirmação automática ser realizada, pode-ser utilizar essa operação para confirmar o pagamento manualmente mediante apresentação da GRU com o comprovante de pagamento. \\ \\ O caso de uso é finalizado. ===== Principais Regras de Negócio ===== * **RN01** - Apenas usuários com o papel de BIBLIOTECA_SETOR_CIRCULACAO_BIBLIOTECARIO e BIBLIOTECA_ADMNISTRADOR_GERAL podem estornar ou criar multa manualmente. Usuário com o papel de BIBLIOTECA_SETOR_CIRCULACAO pode apenas confirmar o pagamento ou emitir uma nova GRU para o usuário. * **RN02** - Multas pagas manualmente devem passar para o status "QUITADA_MANUALMENTE" * **RN03** - No caso do estorno da multa, o motivo do estorno deve ser informado. * **RN04** - No caso da criação de uma multa, o motivo e um valor maior que zero devem ser informados. * **RN05** - O valor da multa é calculado com a seguinte formula:** // quantidade de dias em atraso * valor da multa por dia de atraso //** para empréstimos cujo prazo é contado por dia. Para empréstimos por hora, se atrasou menos de 24 horas = **//valor da multa por hora de atraso//**, se atrasou mais de 24 horas = ** //valor da multa por hora de atraso//** + ( **// quantidade de dias em atraso** * **valor da multa por dia de atraso //** ). O valor da multa por dia de atraso e o valor da multa por hora de atraso podem ter seus valores encontrados no link: Biblioteca -> Cadastro -> parâmetros gerais da biblioteca, nos parâmetros: VALOR_MULTA_USUARIO_ATRASO_POR_DIA e VALOR_MULTA_USUARIO_ATRASO_POR_HORA respectivamente. ==== Resoluções/Legislações Associadas ==== Não se Aplica. ===== Classes Persistentes e Tabelas Envolvidas ===== ^ Classe ^ Tabela | | ufrn.sigaa.biblioteca.circulacao.dominio.MultaUsuariobiblioteca| sigaa.biblioteca.multa_usuario_biblioteca | ====== Plano de Teste ====== Sistema: SIGAA Módulo: BIBLIOTECA Link(s): SIGAA -> Biblioteca -> Circulação -> Gerenciar de Multas Usuário: margareth (Administradora geral biblioteca), kallinebezerra (Bibliotecária de circulação), arletemoura (usuário comum de circulação) Papel que usuário deve ter: * Para criar e estornas multas: SigaaPapeis.BIBLIOTECA_ADMINISTRADOR_GERAL, SigaaPapeis.BIBLIOTECA_SETOR_CIRCULACAO_BIBLIOTECARIO, * Para realizar pagamentos e emitir GRU: SigaaPapeis.BIBLIOTECA_SETOR_CIRCULACAO ===== Cenários de Teste ===== Verifique se após devolver um empréstimos atrasado uma multa é gerada com o valor correto (**RN05**).. Ative e desative os parâmetros: SISTEMA_TRABALHA_COM_MULTA e SISTEMA_TRABALHA_COM_SUSPENSAO. A multa e suspensão só devem ser gerados caso o respectivo parâmetro esteja ativado. Caso nenhum dos dois esteja ativo o usuário não recebe qualquer punição. Caso os dois estejam ativos e usuário fica multado e suspenso. Verifique se o usuário a qual a multa pertence recebe o email de confirmação de estorno e pagamento. ===== Dados para o Teste ===== Para realizar empréstimos utilize o caso de uso: [[ desenvolvimento:especificacoes:sigaa:biblioteca:casos_de_uso:circulacao:modulo_de_circulacao:realizar_emprestimo | Sigaa -> Biblioteca -> Circulação -> Modulo de Circulação -> Realizar empréstimos ]] Para verificar as multas no banco utilizar o sql : select * from biblioteca.multa_usuario_biblioteca --- --- sql para criar de uma configuração, adaptar substituindo os 'X' --- pelos valores dos 'ids' das respectivas tabelas no banco de dados. --- insert into gru.configuracao_gru (id_configuracao_gru, gru_simples, ativo, data_cadastro, id_tipo_arrecadacao, id_unidade, descricao, id_grupo_emissao_gru ) values ( nextval('gru.gru_sequence'), true, true, now(), 10, X, 'Pagamento de Multas para a Biblioteca', X);