Tabela de conteúdos

~~ODT~~

Última atualização: 2017/04/03 18:23 (edição externa)

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:

Então o caso de uso é finalizado.

Principais Regras de Negócio

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

Dados para o Teste

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.

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;