public void AtualizarSolicitacaoDocumentoCartao(Cartao.ResultadoProcessamento resultado) { var repSolicitacao = new RepositorioGenerico <tb_solicitacao_documento>(); var saceContext = (SaceEntities)repSolicitacao.ObterContexto(); tb_solicitacao_documento documentoE = repSolicitacao.ObterEntidade(sd => sd.codSolicitacao == resultado.CodSolicitacao); documentoE.cartaoProcessado = true; documentoE.cartaoAutorizado = resultado.Aprovado; documentoE.emProcessamento = false; if (resultado.Aprovado) { foreach (Cartao.RespostaAprovada respostaAprovada in resultado.ListaRespostaAprovada) { tb_solicitacao_pagamento solicitacaoPagamento = documentoE.tb_solicitacao_pagamento.Where(sp => sp.codSolicitacaoPagamento == respostaAprovada.CodSolicitacaoPagamento).FirstOrDefault(); solicitacaoPagamento.cupomCliente = respostaAprovada.CupomCliente; solicitacaoPagamento.cupomEstabelecimento = respostaAprovada.CupomLojista; solicitacaoPagamento.cupomReduzido = respostaAprovada.CupomReduzido; } } else { Cartao.RespostaRecusada recusada = resultado.RespostaRecusada; documentoE.codMotivoCartaoNegado = recusada.CodMotivo; documentoE.motivoCartaoNegado = recusada.Motivo; } repSolicitacao.SaveChanges(); }
public long InserirAutorizacaoCartao(Cartao.ResultadoProcessamento resultadoProcessamento, List <tb_solicitacao_saida> listaSolicitacaoSaida) { var repAutorizacao = new RepositorioGenerico <tb_autorizacao_cartao>(); //var repSaida = new RepositorioGenerico<tb_saida>(); tb_autorizacao_cartao _autorizacao_cartaoE; try { foreach (Cartao.RespostaAprovada respostaAprovada in resultadoProcessamento.ListaRespostaAprovada) { _autorizacao_cartaoE = new tb_autorizacao_cartao(); _autorizacao_cartaoE.codigoAutorizacaoAdquirente = respostaAprovada.CodAutorizacaoAdquirente; _autorizacao_cartaoE.dataHoraAutorizacao = respostaAprovada.DataHoraAutorizacao; _autorizacao_cartaoE.nomeAdquirente = respostaAprovada.NomeAdquirente; _autorizacao_cartaoE.nomeBandeiraCartao = respostaAprovada.NomeBandeiraCartao; _autorizacao_cartaoE.nsuAdquirente = String.IsNullOrEmpty(respostaAprovada.NsuAdquirente) ? "" : respostaAprovada.NsuAdquirente; _autorizacao_cartaoE.nsuTef = String.IsNullOrEmpty(respostaAprovada.NsuTef) ? "" : respostaAprovada.NsuTef; _autorizacao_cartaoE.numeroControle = String.IsNullOrEmpty(respostaAprovada.NumeroControle) ? "" : respostaAprovada.NumeroControle; repAutorizacao.Inserir(_autorizacao_cartaoE); repAutorizacao.SaveChanges(); foreach (tb_solicitacao_saida solicitacaoSaida in listaSolicitacaoSaida) { var saceEntities = (SaceEntities)repAutorizacao.ObterContexto(); var query = from saida in saceEntities.tb_saida where saida.codSaida == solicitacaoSaida.codSaida select saida; tb_saida saidaE = query.FirstOrDefault(); _autorizacao_cartaoE.tb_saida.Add(saidaE); } repAutorizacao.SaveChanges(); } } catch (Exception e) { throw new DadosException("Autorização Cartão", e.Message, e); } return(0); }
public void InserirRespostaCartao(Cartao.ResultadoProcessamento resultado) { List <tb_solicitacao_saida> listaSolicitacaoSaida; if (resultado.Aprovado) { listaSolicitacaoSaida = ObterSolicitacaoSaida(resultado.CodSolicitacao).ToList(); // Pode passar mais de um cartão de crédito if (listaSolicitacaoSaida.Count == 1) { tb_solicitacao_saida solicitacaoSaida = listaSolicitacaoSaida.FirstOrDefault(); IEnumerable <Conta> listaContas = GerenciadorConta.GetInstance(null).ObterPorSaida(solicitacaoSaida.codSaida); List <Cartao.RespostaAprovada> listaAprovadas = resultado.ListaRespostaAprovada; foreach (Cartao.RespostaAprovada aprovada in listaAprovadas) { String tipoCartaoString = Enum.GetName(typeof(Cartao.TipoCartao), aprovada.TipoCartao); CartaoCredito cartao = GerenciadorCartaoCredito.GetInstance().ObterPorMapeamentoCappta(aprovada.NomeBandeiraCartao).Where(c => c.TipoCartao.Equals(tipoCartaoString)).ElementAtOrDefault(0); Conta conta = listaContas.Where(c => c.ValorPagar == (decimal)aprovada.Valor && String.IsNullOrWhiteSpace(c.NumeroDocumento)).FirstOrDefault(); GerenciadorSaidaPagamento.GetInstance(null).AtualizarPorAutorizacaoCartao(conta.CodSaida, cartao.CodCartao, aprovada.NumeroControle); conta.CodPessoa = cartao.CodPessoa; conta.NumeroDocumento = aprovada.NumeroControle; conta.DataVencimento = DateTime.Now.AddDays(cartao.DiaBase); GerenciadorConta.GetInstance(null).AtualizarDadosCartaoCredito(conta); } } //else //{ // foreach (tb_solicitacao_saida solicitacaoSaida in listaSolicitacaoSaida) // { // IEnumerable<Conta> contas = GerenciadorConta.GetInstance(null).ObterPorSaida(solicitacaoSaida.codSaida); // } //} InserirAutorizacaoCartao(resultado, listaSolicitacaoSaida); } AtualizarSolicitacaoDocumentoCartao(resultado); }