示例#1
0
        public PontuacaoFatura inserirPontuacao(PontuacaoFatura pontuacao)
        {

            try
            {
                Store context = new Store();

                //Retirando milisegundos para evitar problema entre datetime2(app) e datetime(sql)                
                pontuacao.dtVigencia = pontuacao.dtVigencia.AddMilliseconds(-pontuacao.dtVigencia.Millisecond);
                
                PontuacaoFatura pontuacaoInserida = context.PontuacaoFatura.Add(pontuacao);
                context.SaveChanges();
                context.Dispose();
                return pontuacaoInserida;
            }
            catch (Exception ex)
            {
                throw;
            }

        }
        public void pontuarFatura(Fatura fatura)
        {
            PontuacaoFatura pontuacao = new PontuacaoFatura();
            if (!faturaCadastrada(fatura.id))
            {
                FaturaDAO faturaDAO = new FaturaDAO();
                fatura = faturaDAO.obterFatura(fatura.id);
                if (fatura != null)
                {
                    gerarPontos(fatura);
                }
                else
                {
                    throw new Exception("Fatura não encontrada");
                }
            }
            else
            {
                throw new Exception("Pontuação já efetuada anteriormente para esta fatura");

            }
        }
        //Gera pontos e solicita inserção no BD;
        public PontuacaoFatura gerarPontos(Fatura fatura)
        {
            PontuacaoFatura pontuacaoCalculada = new PontuacaoFatura();
            TaxaConversao taxaConversao = tc.obterTaxaConversaoAtual();
            if (taxaConversao == null)
            {
                throw new Exception("Não há taxa de conversão cadastrada");
            }
            int pontos = Convert.ToInt16(taxaConversao.taxaValor * fatura.valor);
            pontuacaoCalculada.pontosQtd = pontos;
            //pontuacaoCalculada. = fatura.valor;
            pontuacaoCalculada.TaxaConversao = taxaConversao;
            pontuacaoCalculada.dtInclusao = DateTime.Now;
            pontuacaoCalculada.dtVigencia = DateTime.Now.AddDays(365);
            pontuacaoCalculada.cartao_id = fatura.cartaoId;
            pontuacaoCalculada.fatura_id = fatura.id;


            return pd.inserirPontuacao(pontuacaoCalculada);
        }
        //Verifica quantos pontos uma fatura gerou
        public PontuacaoFatura pontosPorFatura(Fatura fatura)
        {
            PontuacaoFatura pontuacao = new PontuacaoFatura();
            if (faturaCadastrada(fatura.id))
            {
                pontuacao = pd.obterPontuacaoPorFatura(fatura.id);
                return pontuacao;
            }
            else
            {
                throw new Exception("Fatura não pontuada");
            }

        }