~~ODT~~ echo "
"; echo "Última atualização: ";ver('', false);echo "
";
====== 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_cartao_a_um_usuario|Associar Cartão a Usuário]] com o cartão já selecionado. * **Atualizar Créditos** - Inicia o caso de uso de [[.::atualizar_creditos_do_cartao|Atualizar Créditos do Cartão]] com o cartão já selecionado. * **Bloquear Cartão** - Inicia o caso de uso de [[.::bloquear_cartao|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 [[.::associar_cartao_a_um_usuario#descrição_do_caso_de_uso|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: * [[desenvolvimento:especificacoes:sipac:portal_administrativo:casos_de_uso:outros:saldo_do_cartao_do_restaurante|Portal Admin. -> Saldo do Cartão do Restaurante]] * [[desenvolvimento:especificacoes:sigaa:portal_do_docente:casos_de_uso:outros:saldo_do_cartao_do_restaurante|SIGAA -> Portal Discente -> Saldo do Cartão do Restaurante]] 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;