~~ODT~~
Consulta de Créditos
Este caso de uso tem a finalidade realizar consulta de saldo de créditos em cartões de alimentação. Essa funcionalidade é utilizada pelos usuários de cartão de alimentação. A ferramenta estará disponível em um terminal de consultas dentro do Restaurante Universitário.
Descrição do Caso de Uso
Este caso de uso inicia-se quando a opção SIPAC → Restaurante → Operações → Refeições → Módulo de Vendas → Executar → Consulta de Créditos é acessada.
É exibido o seguinte campo:
- Crédito: Tipo TEXTO, formato: 99 REFEIÇÕES.
Então o caso de uso é finalizado.
Principais Regras de Negócio
- RN01 - O cartão deve ser próprio do sistema. Se um cartão externo for utilizado, o sistema deve indicar que o cartão não é válido.
- RN02 - O cartão deve estar associado a algum usuário.
- RN03 - O cartão deve estar ativo.
Resoluções/Legislações Associadas
Não se aplica.
Classes Persistentes e Tabelas Envolvidas
Classe | Tabela |
---|---|
br.ufrn.sipac.restaurante.dominio.CartaoPagamentoPessoa | administrativo.restaurante.cartao_pagamento_pessoa |
br.ufrn.sipac.restaurante.dominio.CartaoPagamento | administrativo.restaurante.cartao_pagamento |
Plano de Teste
Sistema: SIPAC
Módulo: Restaurante
Link(s): Operações → Refeições → Módulo de Vendas → Executar → Consulta de Créditos
Usuário: gracacosta, kmbso (para acessar o módulo de vendas)
Papel que usuário deve ter: Nenhum. Mas o usuário que iniciar o módulo de vendas precisa ter acesso ao módulo do Restaurante e um Restaurante como unidade.
Cenários de Teste
- Usuário na situação comum: possui um cartão com créditos.
- Usuário com cartão bloqueado.
- Cartão que não seja do restaurante.
Dados para o Teste
- Utilize o UC Consultar Cartão para confirmar a situação do cartão.
- Para ver as trilhas de um cartão, utilize o seguinte SQL:
SELECT '%' || faixa1 || '?;' || faixa2 || '?' FROM restaurante.cartao_pagamento WHERE codigo = <CodigoCartao>
Digite o resultado da consulta e pressione <enter> quando o sistema pedir que se passe o cartão na leitora para simular essa passagem.
- Utilize a consulta abaixo para simular uma utilização do cartão:
- Substituir o <CodigoCartao> por um código de cartão que esteja associado a um usuário
BEGIN TRANSACTION; INSERT INTO restaurante.utilizacao_refeicao (id_utilizacao_refeicao, tipo_refeicao, id_cartao_pagamento_pessoa, DATA, id_valor_refeicao, id_restaurante, id_registro_entrada, qtd_antes_cartao, qtd_depois_cartao) VALUES ( (SELECT NEXTVAL('restaurante.utilizacao_refeicao_seq')), 'A', (SELECT id_cartao_pagamento_pessoa FROM restaurante.cartao_pagamento_pessoa NATURAL JOIN restaurante.cartao_pagamento WHERE ativo = TRUE AND codigo = <CodigoCartao>), now(), (SELECT id_valor FROM restaurante.valor_refeicao WHERE tipo_vinculo = 1 ORDER BY data_cadastro DESC LIMIT 1 ), 1, 1, (SELECT credito_refeicoes FROM restaurante.cartao_pagamento_pessoa NATURAL JOIN restaurante.cartao_pagamento WHERE ativo = TRUE AND codigo = <CodigoCartao>), (SELECT credito_refeicoes FROM restaurante.cartao_pagamento_pessoa NATURAL JOIN restaurante.cartao_pagamento WHERE ativo = TRUE AND codigo = <CodigoCartao>) - 1 ); UPDATE restaurante.cartao_pagamento_pessoa SET credito_refeicoes = credito_refeicoes - 1 WHERE ativo = TRUE AND id_cartao_pagamento = (SELECT id_cartao_pagamento FROM restaurante.cartao_pagamento WHERE codigo = <CodigoCartao> ); END TRANSACTION;