/// <summary> /// Grava autorização e relaciona as saídas /// </summary> /// <param name="resultadoProcessamento"></param> /// <param name="listaSolicitacaoSaida"></param> /// <returns></returns> private long InserirAutorizacao(CartaoCreditoAutorizacao autorizacao) { var repAutorizacao = new RepositorioGenerico <tb_autorizacao_cartao>(); tb_autorizacao_cartao _autorizacao_cartaoE = new tb_autorizacao_cartao(); try { _autorizacao_cartaoE.header = autorizacao.Header; _autorizacao_cartaoE.codIdentificacao = autorizacao.CodIndentificacao; _autorizacao_cartaoE.cupomFiscal = autorizacao.CupomFiscal; _autorizacao_cartaoE.tipoDocumentoFiscal = autorizacao.TipoDocumentoFiscal; _autorizacao_cartaoE.valor = autorizacao.Valor; _autorizacao_cartaoE.nomeBandeiraCartao = autorizacao.NomeBandeiraCartao; _autorizacao_cartaoE.statusTransacao = autorizacao.StatusTransacao; _autorizacao_cartaoE.tipoTransacao = autorizacao.TipoTransacao; _autorizacao_cartaoE.processado = autorizacao.Processado; _autorizacao_cartaoE.tipoParcelamento = autorizacao.TipoParcelamento; if (autorizacao.StatusTransacao.Equals("0")) { _autorizacao_cartaoE.autorizacaoTransacao = autorizacao.AutorizacaoTransacao; _autorizacao_cartaoE.dataHoraAutorizacao = autorizacao.DataHoraAutorizacao; _autorizacao_cartaoE.nsuTransacao = autorizacao.NsuTransacao; _autorizacao_cartaoE.quantidadeParcelas = autorizacao.QuantidadeParcelas == 0 ? 1 : autorizacao.QuantidadeParcelas; } repAutorizacao.Inserir(_autorizacao_cartaoE); repAutorizacao.SaveChanges(); var saceEntities = (SaceEntities)repAutorizacao.ObterContexto(); var query = from saida in saceEntities.tb_saida where saida.pedidoGerado.Equals(autorizacao.CupomFiscal) select saida; List <tb_saida> listaSaidas = query.ToList(); foreach (tb_saida saidaE in listaSaidas) { _autorizacao_cartaoE.tb_saida.Add(saidaE); } repAutorizacao.SaveChanges(); } catch (Exception e) { if (e.InnerException is MySqlException) { MySqlException exception = (MySqlException)e.InnerException; if (exception.Number != 1062) // quando a autorização já foi inserida na base não precisa enviar erro. { throw new DadosException("Autorização Cartão", e.Message, e); } } } return(_autorizacao_cartaoE.codAutorizacao); }
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); }
private void AtualizaFormaPagamentoUnica(tb_autorizacao_cartao autorizacaoAprovada, CartaoCredito cartao, SaidaPagamento saidaPagamento, IEnumerable <Conta> listaContas) { saidaPagamento.CodCartaoCredito = cartao.CodCartao; saidaPagamento.CodFormaPagamento = FormaPagamento.CARTAO; saidaPagamento.Data = (DateTime)autorizacaoAprovada.dataHoraAutorizacao; saidaPagamento.NumeroControle = autorizacaoAprovada.nsuTransacao.ToString(); saidaPagamento.Parcelas = (int)autorizacaoAprovada.quantidadeParcelas; saidaPagamento.Valor = autorizacaoAprovada.valor; GerenciadorSaidaPagamento.GetInstance(null).Atualizar(saidaPagamento); int parcela = 1; foreach (Conta conta in listaContas) { GerenciadorConta.GetInstance(null).Atualizar(cartao.CodPessoa, autorizacaoAprovada.dataHoraAutorizacao.Value.AddDays(cartao.DiaBase * parcela), Conta.FORMATO_CONTA_CARTAO, autorizacaoAprovada.nsuTransacao.ToString(), autorizacaoAprovada.valor, conta.CodConta); parcela++; } }
private void AtualizaFormaPagamentoMultipla(tb_autorizacao_cartao autorizacaoAprovada, CartaoCredito cartao, IEnumerable <SaidaPagamento> pagamentos, IEnumerable <Conta> listaContas) { SaidaPagamento saidaPagamento = pagamentos.Where(p => p.CodFormaPagamento == FormaPagamento.CARTAO).FirstOrDefault(); if (saidaPagamento == null) { saidaPagamento = new SaidaPagamento(); } saidaPagamento.CodCartaoCredito = cartao.CodCartao; saidaPagamento.CodFormaPagamento = FormaPagamento.CARTAO; saidaPagamento.Data = (DateTime)autorizacaoAprovada.dataHoraAutorizacao; saidaPagamento.NumeroControle = autorizacaoAprovada.nsuTransacao.ToString(); saidaPagamento.Parcelas = (int)autorizacaoAprovada.quantidadeParcelas; saidaPagamento.Valor = autorizacaoAprovada.valor; if (pagamentos.Where(p => p.CodFormaPagamento == FormaPagamento.CARTAO).Count() == 1) { GerenciadorSaidaPagamento.GetInstance(null).Atualizar(saidaPagamento); } foreach (Conta conta in listaContas) { GerenciadorConta.GetInstance(null).Remover(conta.CodConta); } List <SaidaPagamento> listaPagamentos = new List <SaidaPagamento>() { saidaPagamento }; List <SaidaPesquisa> listaSaidas = GerenciadorSaida.GetInstance(null).ObterPorCupomFiscal(autorizacaoAprovada.cupomFiscal); foreach (SaidaPesquisa saidaPesquisa in listaSaidas) { Saida saida = GerenciadorSaida.GetInstance(null).Obter(saidaPesquisa.CodSaida); GerenciadorSaidaPagamento.GetInstance(null).RemoverPorSaida(saida); GerenciadorSaida.GetInstance(null).RegistrarPagamentosSaida(listaPagamentos, saida); } }