示例#1
0
        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();
        }
示例#2
0
        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);
        }
示例#3
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);
        }