~~ODT~~ echo "
"; echo "Última atualização: ";ver('', false);echo "
";
====== Saldo do Cartão do Restaurante ====== Esse caso de uso é utilizado por qualquer usuário do sistema com a finalidade de verificar o saldo e o extrato das últimas operações do seu cartão do restaurante. ===== Descrição do Caso de Uso ===== O caso de uso inicia quando o usuário acessa a opção //SIPAC -> Portal Admin. -> Outros -> Saldo do Cartão do Restaurante//. Se o usuário tem um cartão associado a ele, os seguintes dados são mostrados: * **__Nome__**: Tipo - TEXTO. * **__Código do cartão__**: Tipo NUMÉRICO. * **__Tipo de Vínculo__**: Tipo TEXTO. * **__Situação__**: Tipo TEXTO. * **__Total de Refeições__**: Tipo NUMÉRICO. * **__Utiliza no Café__**: Tipo - TEXTO. * **__Créditos para Café__**: Tipo- NUMÉRICO. * **__Utiliza no Almoço__**: Tipo - TEXTO. * **__Créditos para Almoço__**: Tipo- NUMÉRICO. * **__Utiliza no Jantar__**: Tipo - TEXTO. * **__Créditos para Jantar__**: Tipo - NUMÉRICO. Também é mostrada, em forma de listagem, as últimas operações realizadas relativas ao cartão, com os seguintes dados: ***__Data__**: Formato: DD/MM/AAAA HH:MM. Tipo DATA. ***__Operação__**: Tipo TEXTO. ***__Compra de Créditos por GRU__**: Exibido no ato da geração da GRU. ***__Compensação de Créditos por GRU__**: Exibido quando a GRU for compensada. ***__Compra de Créditos presencial__**: Exibido quando a compra for feita presencial via aplicativo desktop. ***__Créditos Gerados__**: Tipo NUMÉRICO. Total de créditos definidos na geração da GRU. ***__À Receber__**: Tipo NUMÉRICO. Total de créditos pendentes de compensação bancária. ***__Adiantados__**: Tipo NUMÉRICO. Total de créditos adiantados na compra. ***__Compensados__**: Tipo NUMÉRICO. Total de créditos compensados. ***__Saldo Anterior__**: Tipo NUMÉRICO. Saldo de créditos anteriormente à compra. ***__Saldo Atual__**: Tipo NUMÉRICO. Saldo de créditos atuais após a operação. Então o caso de uso é finalizado. ===== Principais Regras de Negócio ===== Não se aplica. ==== Resoluções/Legislações Associadas ==== Não se aplica. ===== Classes Persistentes e Tabelas Envolvidas ===== ^ Classe ^ Tabela | | br.ufrn.sipac.restaurante.dominio.CartaoPagamentoPessoa | restaurante.cartao_pagamento_pessoa | | br.ufrn.sipac.restaurante.dominio.CartaoPagamento | restaurante.cartao_pagamento | ====== Plano de Teste ====== Sistema: SIPAC Módulo: Portal Administrativo Link(s): Outros -> Saldo do Cartão do Restaurante Usuário: adelardo, kmbso. Buscar usuário usando a [[desenvolvimento:especificacoes:sipac:restaurante:casos_de_uso:controle_de_acesso_vendas::consultar_cartao|Consulta de Cartões]]. Papel que usuário deve ter: Não se aplica. ===== Cenários de Teste ===== * Testar com usuário com cartão. * Testar com usuário cujo histórico contenha utilizações, recargas e transferências de crédito. * Testar com usuário sem cartão. * Realizar operações sobre o cartão e verificar se estas são refletidas nesse caso de uso. ===== Dados para o Teste ===== * Para encontrar usuários com cartão, use a [[desenvolvimento:especificacoes:sipac:restaurante:casos_de_uso:controle_de_acesso_vendas::consultar_cartao|Consulta de Cartões]]. * Para transferir créditos entre cartões, use [[desenvolvimento:especificacoes:sipac:restaurante:casos_de_uso:controle_de_acesso_vendas:controle_de_cartoes::transferencia_de_creditos|Transferência de Créditos]]. * Para utilizar o cartão, use [[desenvolvimento:especificacoes:sipac:restaurante:casos_de_uso:operacoes:refeicoes:modulo_de_vendas:executar:recarga_cartao|Recarga de Cartão]]. * 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;