예제 #1
0
        /// <summary>
        /// Remover um determinado pagamento de uma saída
        /// </summary>
        /// <param name="codSaidaPagamento"></param>
        /// <param name="saida"></param>
        public void Remover(Int64 codSaidaPagamento, Saida saida)
        {
            try
            {
                if ((saida.TipoSaida == Saida.TIPO_PRE_VENDA) || (saida.TipoSaida == Saida.TIPO_VENDA))
                {
                    List <Conta> contas = GerenciadorConta.GetInstance(saceContext).ObterPorSaidaPagamento(saida.CodSaida, codSaidaPagamento).ToList();

                    foreach (Conta conta in contas)
                    {
                        GerenciadorMovimentacaoConta.GetInstance(saceContext).RemoverPorConta(conta.CodConta);
                        GerenciadorConta.GetInstance(saceContext).Remover(conta.CodConta);
                    }
                }
                var query = from saidaPagamentoSet in saceContext.SaidaFormaPagamentoSet
                            where saidaPagamentoSet.codSaidaFormaPagamento == codSaidaPagamento
                            select saidaPagamentoSet;

                foreach (SaidaFormaPagamentoE _saidaPagamentoE in query)
                {
                    repSaidaPagamento.Remover(_saidaPagamentoE);
                }
                repSaidaPagamento.SaveChanges();

                saida.TotalPago = ObterPorSaida(saida.CodSaida).Sum(sp => sp.Valor);
                saida.Troco     = saida.TotalPago - saida.TotalAVista;
                saida.Desconto  = 100 - ((saida.TotalAVista / saida.Total) * 100);
                GerenciadorSaida.GetInstance(saceContext).Atualizar(saida);
            }
            catch (Exception e)
            {
                throw new DadosException("Pagamentos", e.Message, e);
            }
        }
예제 #2
0
        /// <summary>
        /// Verifica se um cliente possui limite suficiente para realizar uma nova compra
        /// </summary>
        /// <param name="cliente"></param>
        /// <param name="totalNovaCompra"></param>
        /// <returns></returns>
        public decimal ObterLimiteCompraDisponivel(Pessoa cliente)
        {
            IEnumerable <Conta>             listaContasAberto = GerenciadorConta.GetInstance(null).ObterPorSituacaoPessoa(SituacaoConta.SITUACAO_ABERTA, cliente.CodPessoa);
            IEnumerable <long>              listaCodContas    = listaContasAberto.Select(p => p.CodConta);
            IEnumerable <MovimentacaoConta> listaPagamentos   = GerenciadorMovimentacaoConta.GetInstance(null).ObterPorContas(new List <long>(listaCodContas));
            decimal totalValorPagar = listaContasAberto.Sum(c => c.ValorPagar);
            decimal totalValorPago  = listaPagamentos.Sum(m => m.Valor);

            return(cliente.LimiteCompra - totalValorPagar + totalValorPago);
        }
 /// <summary>
 /// Atualiza Situacao dos pagamentos da saída para quitado quando todas as contas estão quitadas
 /// </summary>
 /// <param name="_contaE"></param>
 private void AtualizaSituacaoPagamentosSaida(ContaE contaE, MovimentacaoContaE movimentacaoContaE, bool removeuMovimento)
 {
     if (!contaE.codSaida.Equals(Global.SAIDA_PADRAO))
     {
         var query = from saida in saceContext.tb_saida
                     where saida.codSaida == contaE.codSaida
                     select saida;
         tb_saida _saidaE = query.FirstOrDefault();
         if (_saidaE != null)
         {
             if (_saidaE.totalAVista == movimentacaoContaE.valor)
             {
                 if (removeuMovimento)
                 {
                     _saidaE.codSituacaoPagamentos = SituacaoPagamentos.LANCADOS;
                 }
                 else
                 {
                     _saidaE.codSituacaoPagamentos = SituacaoPagamentos.QUITADA;
                 }
             }
             else
             {
                 if (GerenciadorConta.GetInstance(saceContext).ObterPorSituacaoSaida(SituacaoConta.SITUACAO_ABERTA, (long)contaE.codSaida).ToList().Count == 0)
                 {
                     _saidaE.codSituacaoPagamentos = SituacaoPagamentos.QUITADA;
                     IEnumerable <Conta> contas         = GerenciadorConta.GetInstance(saceContext).ObterPorSaida(_saidaE.codSaida);
                     List <long>         listaCodContas = new List <long>();
                     foreach (Conta conta in contas)
                     {
                         listaCodContas.Add(conta.CodConta);
                     }
                     decimal somaMovimentacoes = 0;
                     IEnumerable <MovimentacaoConta> listaMovimentacoes = ObterPorContas(listaCodContas);
                     foreach (MovimentacaoConta movimentacao in listaMovimentacoes)
                     {
                         somaMovimentacoes += movimentacao.Valor;
                     }
                     GerenciadorSaida.GetInstance(saceContext).AtualizarTipoPedidoGeradoPorSaida(_saidaE.codTipoSaida, _saidaE.pedidoGerado, _saidaE.tipoDocumentoFiscal, somaMovimentacoes, _saidaE.codSaida);
                     //_saidaE.totalAVista = somaMovimentacoes;
                 }
                 else
                 {
                     _saidaE.codSituacaoPagamentos = SituacaoPagamentos.LANCADOS;
                 }
             }
             saceContext.SaveChanges();
         }
     }
 }
예제 #4
0
 public static GerenciadorConta GetInstance(SaceEntities context)
 {
     if (gConta == null)
     {
         gConta = new GerenciadorConta();
     }
     if (context == null)
     {
         repConta = new RepositorioGenerico <ContaE>();
     }
     else
     {
         repConta = new RepositorioGenerico <ContaE>(context);
     }
     saceContext = (SaceEntities)repConta.ObterContexto();
     return(gConta);
 }
        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++;
            }
        }
예제 #6
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);
        }
        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);
            }
        }
예제 #8
0
        /// <summary>
        /// Atualiza Situacao dos pagamentos da entrada para quitado quando todas as contas estão quitadas
        /// </summary>
        /// <param name="_contaE"></param>
        private void AtualizaSituacaoPagamentosEntrada(ContaE _contaE)
        {
            var query = from entrada in saceContext.EntradaSet
                        where entrada.codEntrada == _contaE.codEntrada
                        select entrada;
            EntradaE _entradaE = query.ToList().ElementAtOrDefault(0);

            if (_entradaE != null)
            {
                if (!_contaE.codEntrada.Equals(Global.ENTRADA_PADRAO))
                {
                    if (GerenciadorConta.GetInstance(saceContext).ObterPorSituacaoEntrada(SituacaoConta.SITUACAO_ABERTA, (long)_contaE.codEntrada).ToList().Count == 0)
                    {
                        _entradaE.codSituacaoPagamentos = SituacaoPagamentos.QUITADA;
                    }
                    else
                    {
                        _entradaE.codSituacaoPagamentos = SituacaoPagamentos.LANCADOS;
                    }
                }
            }
            saceContext.SaveChanges();
        }
예제 #9
0
        /// <summary>
        /// Encerra o cadastramento da entrada lançando todas as contas a pagar
        /// </summary>
        /// <param name="entrada"></param>
        public void Encerrar(Entrada entrada)
        {
            var           repEntrada  = new RepositorioGenerico <EntradaE>();
            SaceEntities  saceContext = (SaceEntities)repEntrada.ObterContexto();
            DbTransaction transaction = null;

            try
            {
                if (saceContext.Connection.State == System.Data.ConnectionState.Closed)
                {
                    saceContext.Connection.Open();
                }
                transaction = saceContext.Connection.BeginTransaction();
                if (GerenciadorConta.GetInstance(saceContext).ObterPorEntrada(entrada.CodEntrada).ToList().Count == 0)
                {
                    List <EntradaPagamento> entradaPagamentos = (List <EntradaPagamento>)GerenciadorEntradaPagamento.GetInstance().ObterPorEntrada(entrada.CodEntrada);
                    RegistrarPagamentosEntrada(entradaPagamentos, entrada, saceContext);
                }
                else
                {
                    throw new NegocioException("Existem contas associadas a essa entrada. Ela não pode ser encerrada novamente.");
                }
                entrada.CodSituacaoPagamentos = SituacaoPagamentos.LANCADOS;
                Atualizar(entrada, saceContext);
                transaction.Commit();
            }
            catch (Exception e)
            {
                transaction.Rollback();
                throw e;
            }
            finally
            {
                saceContext.Connection.Close();
            }
        }
예제 #10
0
        /// <summary>
        /// REgistra os pagamentos associando para cada um dele uma conta a pagar
        /// </summary>
        /// <param name="pagamentos"></param>
        /// <param name="entrada"></param>
        private void RegistrarPagamentosEntrada(List <EntradaPagamento> pagamentos, Entrada entrada, SaceEntities saceContext)
        {
            foreach (EntradaPagamento pagamento in pagamentos)
            {
                // Para cada pagamento é criada uma nova conta
                Conta conta = new Conta();
                if (pagamento.PagamentoDoFrete)
                {
                    conta.CodPessoa = entrada.CodEmpresaFrete;
                }
                else
                {
                    conta.CodPessoa = entrada.CodFornecedor;
                }

                conta.CodPlanoConta = PlanoConta.ENTRADA_PRODUTOS;
                conta.CodEntrada    = entrada.CodEntrada;
                conta.CodSaida      = Global.SAIDA_PADRAO; // saída não válida
                conta.CodPagamento  = pagamento.CodEntradaFormaPagamento;
                conta.Desconto      = 0;

                // Quando o pagamento é realizado em dinheiro a conta já é inserido quitada
                if (pagamento.CodFormaPagamento == FormaPagamento.DINHEIRO)
                {
                    conta.CodSituacao = SituacaoConta.SITUACAO_QUITADA.ToString();
                }
                else
                {
                    conta.CodSituacao = SituacaoConta.SITUACAO_ABERTA.ToString();
                }

                conta.TipoConta = Conta.CONTA_PAGAR.ToString();


                conta.Valor = pagamento.Valor;

                if (pagamento.CodFormaPagamento == FormaPagamento.BOLETO)
                {
                    conta.FormatoConta = Conta.FORMATO_CONTA_BOLETO;
                }
                else
                {
                    conta.FormatoConta = Conta.FORMATO_CONTA_FICHA;
                }
                conta.DataVencimento = pagamento.Data;

                conta.CodConta = GerenciadorConta.GetInstance(saceContext).Inserir(conta);

                if (pagamento.CodFormaPagamento == FormaPagamento.DINHEIRO)
                {
                    MovimentacaoConta movimentacao = new MovimentacaoConta();
                    movimentacao.CodContaBanco  = pagamento.CodContaBanco;
                    movimentacao.CodConta       = conta.CodConta;
                    movimentacao.CodResponsavel = GerenciadorLoja.GetInstance().Obter(Global.LOJA_PADRAO).ElementAt(0).CodPessoa;

                    movimentacao.CodTipoMovimentacao = MovimentacaoConta.PAGAMENTO_FORNECEDOR;
                    movimentacao.DataHora            = DateTime.Now;
                    movimentacao.Valor = pagamento.Valor;

                    GerenciadorMovimentacaoConta.GetInstance(saceContext).Inserir(movimentacao);
                }
            }
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="resultado"></param>
        public void AtualizarPedidosComAutorizacaoCartao()
        {
            var repAutorizacao = new RepositorioGenerico <tb_autorizacao_cartao>();
            var saceEntities   = (SaceEntities)repAutorizacao.ObterContexto();
            var query          = from autorizacao in saceEntities.tb_autorizacao_cartao
                                 where autorizacao.processado.Equals(false)
                                 select autorizacao;
            List <tb_autorizacao_cartao> listaAutorizacoes = query.ToList();

            if (listaAutorizacoes.Count > 0)
            {
                var repConta                      = new RepositorioGenerico <ContaE>();
                var repSaidaPagamento             = new RepositorioGenerico <SaidaFormaPagamentoE>();
                List <CartaoCredito> listaCartoes = GerenciadorCartaoCredito.GetInstance().ObterTodos().ToList();
                // Varre todas as transações ainda não processadas
                foreach (tb_autorizacao_cartao autorizacaoCartaoE in listaAutorizacoes)
                {
                    if (!autorizacaoCartaoE.processado)
                    {
                        IEnumerable <tb_autorizacao_cartao> listaAprovadas = listaAutorizacoes.Where(aut => aut.statusTransacao.Equals("0") && aut.cupomFiscal.Equals(autorizacaoCartaoE.cupomFiscal));
                        IEnumerable <tb_autorizacao_cartao> listaNegadas   = listaAutorizacoes.Where(aut => !aut.statusTransacao.Equals("0") && aut.cupomFiscal.Equals(autorizacaoCartaoE.cupomFiscal));
                        if (listaAprovadas.Count() > 0)
                        {
                            foreach (tb_autorizacao_cartao autorizacaoAprovada in listaAprovadas)
                            {
                                autorizacaoAprovada.processado = true;
                                List <tb_saida> listaSaidas = null;
                                if (autorizacaoAprovada.tb_saida.Count() == 0)
                                {
                                    var query2 = from saida in saceEntities.tb_saida
                                                 where saida.pedidoGerado.Equals(autorizacaoAprovada.cupomFiscal)
                                                 select saida;
                                    listaSaidas = query2.ToList();
                                    if (listaSaidas.Count == 0)
                                    {
                                        autorizacaoAprovada.processado = false;
                                    }
                                    else
                                    {
                                        foreach (tb_saida saidaE in listaSaidas)
                                        {
                                            autorizacaoAprovada.tb_saida.Add(saidaE);
                                        }
                                    }
                                }
                                repAutorizacao.SaveChanges();


                                foreach (tb_saida saidaE in autorizacaoAprovada.tb_saida)
                                {
                                    String tipoCartaoString = "CREDITO";
                                    if (autorizacaoAprovada.tipoTransacao.Equals(20))
                                    {
                                        tipoCartaoString = "DEBITO";
                                    }
                                    if (autorizacaoAprovada.nomeBandeiraCartao == null)
                                    {
                                        autorizacaoAprovada.nomeBandeiraCartao = "BANESE";
                                    }
                                    CartaoCredito cartao = listaCartoes.Where(c => c.TipoCartao.Equals(tipoCartaoString) && autorizacaoAprovada.nomeBandeiraCartao.Equals(c.MapeamentoCappta)).ElementAtOrDefault(0);
                                    if (cartao == null)
                                    {
                                        // ajustes nos nomes dos cartões recuperados para que possa ser associado a um cartão cadastrado
                                        if (autorizacaoAprovada.nomeBandeiraCartao.ToUpper().Equals("HIPER"))
                                        {
                                            autorizacaoAprovada.nomeBandeiraCartao = "HIPERCARD";
                                        }
                                        else if (autorizacaoAprovada.nomeBandeiraCartao.ToUpper().Equals("BANESE"))
                                        {
                                            autorizacaoAprovada.nomeBandeiraCartao = "BANESECARD";
                                        }
                                        else if (autorizacaoAprovada.nomeBandeiraCartao.ToUpper().Equals("MASTER"))
                                        {
                                            autorizacaoAprovada.nomeBandeiraCartao = "MASTERCARD";
                                        }
                                        if (autorizacaoAprovada.nomeBandeiraCartao.ToUpper().Equals("HIPERCARD") && tipoCartaoString.Equals("DEBITO"))
                                        {
                                            autorizacaoAprovada.nomeBandeiraCartao = "MASTERCARD";
                                        }

                                        cartao = listaCartoes.Where(c => c.TipoCartao.Equals(tipoCartaoString) && autorizacaoAprovada.nomeBandeiraCartao.Equals(c.MapeamentoCappta)).ElementAtOrDefault(0);
                                        // cartões autorizados não cadastro são processados pela mastercard
                                        if (cartao == null)
                                        {
                                            cartao = listaCartoes.Where(c => c.TipoCartao.Equals(tipoCartaoString) && c.MapeamentoCappta.Equals("MASTERCARD")).ElementAtOrDefault(0);
                                        }
                                    }

                                    IEnumerable <SaidaPagamento> listaSaidaPagamento = GerenciadorSaidaPagamento.GetInstance(null).ObterPorSaida(saidaE.codSaida).Where(sp => sp.CodFormaPagamento.Equals(FormaPagamento.CARTAO));
                                    IEnumerable <Conta>          listaConta          = GerenciadorConta.GetInstance(null).ObterPorSaida(saidaE.codSaida).Where(c => c.FormatoConta.Equals(Conta.FORMATO_CONTA_CARTAO));
                                    if ((listaAprovadas.Count() == 1) && (listaSaidaPagamento.Count() == 1) && (listaConta.Count() == autorizacaoAprovada.quantidadeParcelas))
                                    {
                                        AtualizaFormaPagamentoUnica(autorizacaoAprovada, cartao, listaSaidaPagamento.First(), listaConta);
                                    }
                                    else if (listaAprovadas.Count() == 1)
                                    {
                                        // quando existe mais de uma forma de pagamento associada na saida
                                        AtualizaFormaPagamentoMultipla(autorizacaoAprovada, cartao, listaSaidaPagamento, listaConta);
                                    }
                                }
                                autorizacaoAprovada.processado = true;
                            }
                        }
                        else
                        {
                            if (listaNegadas.Count() > 0)
                            {
                                String cupomFiscal = listaNegadas.First().cupomFiscal;
                                IEnumerable <SaidaPesquisa> listaSaidas = GerenciadorSaida.GetInstance(null).ObterPorCupomFiscal(cupomFiscal);
                                // Cupom Fiscal foi emitido com venda em dinheiro
                                if (listaSaidas.Count() > 0)
                                {
                                    foreach (SaidaPesquisa saidaPesquisa in listaSaidas)
                                    {
                                        Saida saida = GerenciadorSaida.GetInstance(null).Obter(saidaPesquisa.CodSaida);
                                        GerenciadorSaidaPagamento.GetInstance(null).RemoverPorSaida(saida);
                                        SaidaPagamento saidaPagamento = new SaidaPagamento();
                                        saidaPagamento.CodCartaoCredito  = Global.CARTAO_LOJA;
                                        saidaPagamento.CodFormaPagamento = FormaPagamento.DINHEIRO;
                                        saidaPagamento.CodSaida          = saida.CodSaida;
                                        saidaPagamento.Data          = saida.DataSaida;
                                        saidaPagamento.Valor         = saida.TotalAVista;
                                        saidaPagamento.CodContaBanco = Global.CAIXA_PADRAO;
                                        saidaPagamento.Parcelas      = 1;
                                        List <SaidaPagamento> listaPagamentos = new List <SaidaPagamento>()
                                        {
                                            saidaPagamento
                                        };
                                        GerenciadorSaida.GetInstance(null).RegistrarPagamentosSaida(listaPagamentos, saida);
                                    }
                                }
                                // Cupom Fiscal não foi emitido
                                else
                                {
                                    foreach (SaidaPesquisa saidaPesquisa in listaSaidas)
                                    {
                                        Saida saida = GerenciadorSaida.GetInstance(null).Obter(saidaPesquisa.CodSaida);
                                        if (!saida.TipoSaida.Equals(Saida.TIPO_ORCAMENTO))
                                        {
                                            GerenciadorSaidaPagamento.GetInstance(null).RemoverPorSaida(saida);
                                            GerenciadorSaida.GetInstance(null).RegistrarEstornoEstoque(saida, null);
                                            saida.TipoSaida             = Saida.TIPO_ORCAMENTO;
                                            saida.CodSituacaoPagamentos = SituacaoPagamentos.ABERTA;
                                            saida.CupomFiscal           = "";
                                            saida.TotalPago             = 0;
                                            GerenciadorSaida.GetInstance(null).Atualizar(saida);
                                        }
                                    }
                                }
                            }
                        }
                        foreach (tb_autorizacao_cartao negada in listaNegadas)
                        {
                            negada.processado = true;
                        }
                    }
                    repAutorizacao.SaveChanges();
                }
            }
        }