~~ODT~~
Consultar Cartão
Nesse caso de uso, os gerentes de vendas do restaurante podem buscar os cartões de refeição. O sistema disponibiliza operações de visualizar detalhes de um cartão, bloqueio e desbloqueio, atribuição de um cartão a um usuário e de transferência de créditos.
Descrição do Caso de Uso
Este caso de uso inicia quando o usuário acessa a opção: SIPAC → Módulo Restaurante → Vendas → Controle de Cartões → Buscar Cartões.
Ao iniciar o caso de uso, o sistema disponibiliza os seguintes filtros para o usuário:
- Todos os cartões: Tipo LÓGICO. Se selecionado, todos os cartões serão listados.
- Código: Tipo NUMÉRICO. Código do cartão.
- Situação do Cartão: Tipo TEXTO, são apresentadas as opções: Ativo, Bloqueado, Extraviado ou Cancelado.
- Associação: Tipo TEXTO, são apresentadas as opções: Associado a uma pessoa ou Sem associação.
- Caso o usuário selecione a opção de associado a uma pessoa, são exibidos:
- Usuário: Tipo AUTOCOMPLETE, formato: NOME USUÁRIO, entrada de dados: NOME ou CPF.
- Período: Tipo DATA, formato: DD/MM/AAAA a DD/MM/AAAA. Período no qual o vínculo entre o cartão e o usuário foi criado.
- Tipo de Acesso: Tipo TEXTO, são apresentadas as opções: Discente ou Servidor.
- Ordenar por: Tipo TEXTO, são apresentadas as opções: Código, Usuário ou Tipo de Acesso.
- Em ordem: Tipo TEXTO, são apresentadas as opções: Crescente ou Decrescente.
O sistema lista, de acordo com os filtros escolhidos, as seguintes informações dos cartões encontrados:
- Código: Tipo NUMÉRICO, formato: …9 .
- Situação: Tipo TEXTO.
- Usuário: Tipo TEXTO, formato: NOME USUÁRIO (CPF).
- Tipo de Acesso: Tipo TEXTO.
Para cada item listado, são oferecidas as seguintes ações:
- Visualizar Detalhes do Cartão - Mostra os seguintes detalhes do cartão:
- Discente/Servidor
- * Código: Tipo NUMÉRICO, formato: …9 .
- Situação: Tipo TEXTO.
- Vínculo Atual: Tipo TEXTO, formato: NOME USUÁRIO (CPF).
- Total de Créditos: Tipo NUMÉRICO.
- Créditos de Café: Tipo NUMÉRICO.
- Créditos de Almoço: Tipo NUMÉRICO.
- Créditos de Jantar: Tipo NUMÉRICO.
- Refeições: Tipo - TEXTO.
- Simulação de Acesso: Tipo TEXTO.
- Foto: Tipo TEXTO.
- Histórico do Cartão - Histórico do cartão, com os seguintes dados exibidos:
- Data: Tipo DATA.
- Evento: Tipo TEXTO, são exibidas as seguintes mensagens: Alteração de situação, Utilização do cartão, Associação a usuário, Desassociação a usuário, Compra de créditos ou Transferência de Refeições.
- Responsável: Tipo TEXTO, formato: NOME SERVIDOR. - Servidor do restaurante que realizou a operação.
- Detalhes: Tipo TEXTO.
- Bolsistas
- Código: Tipo NUMÉRICO, formato: …9 .
- Situação: Tipo TEXTO.
- Vínculo Atual: Tipo TEXTO, formato: NOME USUÁRIO (CPF).
- Tipo de Vínculo: Tipo TEXTO.
- Tipo de Bolsa: Tipo TEXTO.
- Situação da Bolsa: Tipo TEXTO
- Mapa de Alimentação: Tipo TEXTO. É exibida uma tabela com os dias da semana e as marcações nos dias onde o bolsista tem direito ao auxílio.
- Refeições: Tipo - TEXTO. Indica as refeições que o bolsista tem direito.
- Simulação de Acesso: Tipo TEXTO.
- Foto: Tipo TEXTO.
- Saldo de Refeições: Tipo NUMÉRICO.
- Histórico do Cartão - Histórico do cartão, com os seguintes dados exibidos:
- Data: Tipo DATA.
- Evento: Tipo TEXTO, são exibidas as seguintes mensagens: Alteração de situação, Utilização do cartão, Associação a usuário, Desassociação a usuário, Compra de créditos ou Transferência de Refeições.
- Responsável: Tipo TEXTO, formato: NOME SERVIDOR. - Servidor do restaurante que realizou a operação.
- Detalhes: Tipo TEXTO.
- Associar a um Usuário - Inicia o caso de uso de Associar Cartão a Usuário com o cartão já selecionado.
- Atualizar Créditos - Inicia o caso de uso de Atualizar Créditos do Cartão com o cartão já selecionado.
- Bloquear Cartão - Inicia o caso de uso de Bloquear Cartão com o cartão já selecionado.
- Desbloquear Cartão - Ao selecionar essa opção, o usuário pode desbloquear um cartão. Uma justificativa deve ser preenchida para que o desbloqueio se confirme.
- Transferir Créditos - Inicia o caso de uso de transferência de créditos com o cartão fonte já selecionado.
O caso de uso é então finalizado.
Principais Regras de Negócio
- RN01 - Ao se desbloquear um cartão, o sistema verifica se o usuário não vai passar a ter dois cartões ativos, o que não é permitido.
Resoluções/Legislações Associadas
Não se aplica.
Classes Persistentes e Tabelas Envolvidas
Classe | Tabela |
---|---|
br.ufrn.sipac.restaurante.dominio.CartaoPagamento | restaurante.cartao_pagamento |
br.ufrn.sipac.restaurante.dominio.CartaoPagamentoPessoa | restaurante.cartao_pagamento_pessoa |
Plano de Teste
Sistema: SIPAC
Módulo: Restaurante
Link(s): Vendas → Controle de Cartões → Consultar Cartão
Usuário: kmbso, abelvanderlei, nubia
Papel que usuário deve ter: PapeisRestaurante.GESTOR_RESTAURANTE_GLOBAL, PapeisRestaurante.GESTOR_VENDAS_RESTAURANTE
Cenários de Teste
- Fazer a busca utilizando várias combinações de filtros.
- Alterar cartões e verificar se os resultados da busca refletem as alterações.
- Alterar um cartão e visualizar as alterações na visualização de detalhes.
- Bloquear cartões, desbloquear cartões, associar cartões a usuários e transferir créditos.
Dados para o Teste
Algumas informações dos cartões podem ser confirmadas nos casos de usos reservados aos usuários deles:
Para simular uma compra de crédito, use a query a seguir:
BEGIN TRANSACTION; INSERT INTO restaurante.compra_credito (id_compra_credito, id_cartao_pagamento_pessoa, quantidade_refeicoes, valor_refeicao, total, qtd_antes, qtd_depois, ativo, numero, DATA, id_registro_entrada) VALUES ( (SELECT NEXTVAL('restaurante.compra_credito_seq')), ( SELECT id_cartao_pagamento_pessoa FROM restaurante.cartao_pagamento_pessoa NATURAL JOIN restaurante.cartao_pagamento WHERE ativo = TRUE AND codigo = 1 ), 1, 3.00, 3.00, ( SELECT credito_refeicoes FROM restaurante.cartao_pagamento_pessoa NATURAL JOIN restaurante.cartao_pagamento WHERE ativo = TRUE AND codigo = 1 ), ( SELECT credito_refeicoes + 1 FROM restaurante.cartao_pagamento_pessoa NATURAL JOIN restaurante.cartao_pagamento WHERE ativo = TRUE AND codigo = 1 ), TRUE, (SELECT COALESCE(MAX(numero) + 1, 1) FROM restaurante.compra_credito), now(), 1 ); UPDATE restaurante.cartao_pagamento_pessoa SET credito_refeicoes = credito_refeicoes + 1 WHERE id_cartao_pagamento = (SELECT id_cartao_pagamento FROM restaurante.cartao_pagamento WHERE codigo = 1); END TRANSACTION;