Ejemplo n.º 1
0
        public IHttpActionResult ObterTiposArquivosRemessa()
        {
            using (var sessao = new GDATransaction())
            {
                var tipos = new ConversorEnum <ArquivoRemessa.TipoEnum>()
                            .ObterTraducao();

                return(this.Item(tipos));
            }
        }
        public IHttpActionResult ConsultaSituacoesExportacaoPedidos()
        {
            using (var sessao = new GDATransaction())
            {
                var situacoesExportacaoPedido = new ConversorEnum <PedidoExportacao.SituacaoExportacaoEnum>()
                                                .ObterTraducao();

                return(this.Item(situacoesExportacaoPedido));
            }
        }
Ejemplo n.º 3
0
        public IHttpActionResult ObterSituacoesLiberacoes()
        {
            using (var sessao = new GDATransaction())
            {
                var situacoes = new Helper.ConversorEnum <Tipo>()
                                .ObterTraducao();

                return(this.Lista(situacoes));
            }
        }
Ejemplo n.º 4
0
        public IHttpActionResult ObterTiposPecasExibir()
        {
            using (var sessao = new GDATransaction())
            {
                var tiposPedidos = new ConversorEnum <TipoPecaExibir>()
                                   .ObterTraducao();

                return(this.Lista(tiposPedidos));
            }
        }
Ejemplo n.º 5
0
        public IHttpActionResult ObterSituacoesTrocaDevolucao()
        {
            using (var sessao = new GDATransaction())
            {
                var situacoes = new ConversorEnum <Data.Model.TrocaDevolucao.SituacaoTrocaDev>()
                                .ObterTraducao();

                return(this.Item(situacoes));
            }
        }
        public IHttpActionResult ObterListaTiposValorTabela()
        {
            using (var sessao = new GDATransaction())
            {
                var tiposValorTabela = new ConversorEnum <TipoValorTabela>()
                                       .ObterTraducao();

                return(this.Lista(tiposValorTabela));
            }
        }
Ejemplo n.º 7
0
        public IHttpActionResult ObterSituacoes()
        {
            using (var sessao = new GDATransaction())
            {
                var situacoes = new ConversorEnum <Data.Model.Compra.SituacaoEnum>()
                                .ObterTraducao();

                return(this.Lista(situacoes));
            }
        }
Ejemplo n.º 8
0
        public IHttpActionResult ObterTiposOrdemCarga()
        {
            using (var sessao = new GDATransaction())
            {
                var tipos = new Helper.ConversorEnum <Models.Carregamentos.V1.OrdensCarga.Lista.TiposOrdemCarga.TipoMovimentacao>()
                            .ObterTraducao();

                return(this.Lista(tipos));
            }
        }
Ejemplo n.º 9
0
        public IHttpActionResult ObterTiposPagamento()
        {
            using (var sessao = new GDATransaction())
            {
                var tiposPagamentos = new Helper.ConversorEnum <Models.Parcelas.V1.Configuracoes.TipoPagamento>()
                                      .ObterTraducao();

                return(this.Lista(tiposPagamentos));
            }
        }
Ejemplo n.º 10
0
        public IHttpActionResult ObterSituacoes()
        {
            using (var sessao = new GDATransaction())
            {
                var tipos = new ConversorEnum <Situacao>()
                            .ObterTraducao();

                return(this.Lista(tipos));
            }
        }
Ejemplo n.º 11
0
        public IHttpActionResult ObterTiposPedidoPcp()
        {
            using (var sessao = new GDATransaction())
            {
                var tiposPedidosPcp = new ConversorEnum <Models.Pedidos.V1.Lista.TipoPedidoPCP>()
                                      .ObterTraducao();

                return(this.Lista(tiposPedidosPcp));
            }
        }
Ejemplo n.º 12
0
        public IHttpActionResult ObterSituacoesOrdemCarga()
        {
            using (var sessao = new GDATransaction())
            {
                var situacoes = new Helper.ConversorEnum <Models.Carregamentos.V1.OrdensCarga.Lista.SituacoesOrdemCarga.SituacoesOrdemCarga>()
                                .ObterTraducao();

                return(this.Lista(situacoes));
            }
        }
Ejemplo n.º 13
0
        public IHttpActionResult ObterSequencias()
        {
            using (var sessao = new GDATransaction())
            {
                var tipos = new ConversorEnum <TurnoSequencia>()
                            .ObterTraducao();

                return(this.Lista(tipos));
            }
        }
Ejemplo n.º 14
0
        public IHttpActionResult ObterTiposFastDelivery()
        {
            using (var sessao = new GDATransaction())
            {
                var tiposProdutos = new ConversorEnum <TipoFastDelivery>()
                                    .ObterTraducao();

                return(this.Lista(tiposProdutos));
            }
        }
Ejemplo n.º 15
0
        public IHttpActionResult ObterTiposCategoriaParaFiltro()
        {
            using (var sessao = new GDATransaction())
            {
                var tipos = new ConversorEnum <TipoCategoriaConta>()
                            .ObterTraducao();

                return(this.Lista(tipos));
            }
        }
Ejemplo n.º 16
0
        public IHttpActionResult ObterUFs()
        {
            using (var sessao = new GDATransaction())
            {
                var ufs = CidadeDAO.Instance.GetUf(sessao)
                          .Select(uf => uf.Key);

                return(this.Lista(ufs));
            }
        }
        public IHttpActionResult ObterTipos()
        {
            using (var sessao = new GDATransaction())
            {
                var tipos = new ConversorEnum <Data.DAL.ProdutoImpressaoDAO.TipoEtiqueta>()
                            .ObterTraducao();

                return(this.Lista(tipos));
            }
        }
Ejemplo n.º 18
0
        public IHttpActionResult ObterTiposFiscal()
        {
            using (var sessao = new GDATransaction())
            {
                var tiposFiscal = new ConversorEnum <Data.Model.TipoFiscalCliente>()
                                  .ObterTraducao();

                return(this.Lista(tiposFiscal));
            }
        }
Ejemplo n.º 19
0
        /// <summary>
        /// Cancela uma entrada de estoque.
        /// </summary>
        public void Cancelar(uint idEntradaEstoque)
        {
            lock (_cancelarEntradaEstoqueLock)
            {
                using (var transaction = new GDATransaction())
                {
                    try
                    {
                        transaction.BeginTransaction();

                        var entrada = GetElementByPrimaryKey(transaction, idEntradaEstoque);

                        if (!entrada.PodeCancelar)
                        {
                            throw new Exception("Não é possível cancelar essa entrada de estoque.");
                        }

                        MarcaEstorno(transaction, entrada.IdCompra, entrada.NumeroNFe);

                        var produtos = ProdutoEntradaEstoqueDAO.Instance.GetForRpt(transaction, idEntradaEstoque);

                        // Faz a movimentação de estorno no estoque
                        if (entrada.IdCompra > 0)
                        {
                            MovEstoqueDAO.Instance.BaixaEstoqueCancelamentoEntradaEstoqueCompra(
                                transaction,
                                (int)entrada.IdLoja,
                                (int)entrada.IdCompra,
                                (int)entrada.IdEntradaEstoque,
                                produtos.Where(f => f.IdProdCompra > 0));

                            CompraDAO.Instance.DesmarcarEstoqueBaixado(transaction, entrada.IdCompra.Value);
                        }
                        else if (entrada.NumeroNFe > 0)
                        {
                            MovEstoqueDAO.Instance.BaixaEstoqueCancelamentoEntradaEstoqueNotaFiscal(transaction,
                                                                                                    (int)entrada.IdLoja,
                                                                                                    (int)entrada.IdCompra,
                                                                                                    (int)entrada.IdEntradaEstoque,
                                                                                                    produtos.Where(f => f.IdProdNf > 0));
                        }

                        transaction.Commit();
                        transaction.Close();
                    }
                    catch (Exception ex)
                    {
                        transaction.Rollback();
                        transaction.Close();
                        ErroDAO.Instance.InserirFromException("CancelarEntradaEstoque", ex, idEntradaEstoque);
                        throw;
                    }
                }
            }
        }
Ejemplo n.º 20
0
        public IHttpActionResult ObterContagemPecas([FromUri] FiltroDto filtro)
        {
            filtro = filtro ?? new FiltroDto();

            using (var sessao = new GDATransaction())
            {
                var contagem = ProdutoPedidoProducaoDAO.Instance.GetCountBySituacao(
                    filtro.IdCarregamento.GetValueOrDefault(),
                    (uint)filtro.IdLiberacaoPedido.GetValueOrDefault(),
                    (uint)filtro.IdPedido.GetValueOrDefault(),
                    filtro.IdPedidoImportado.ToString(),
                    (uint)filtro.IdImpressao.GetValueOrDefault(),
                    filtro.IdsRotas.ObterComoString(),
                    filtro.CodigoPedidoCliente,
                    (uint)filtro.IdCliente.GetValueOrDefault(),
                    filtro.NomeCliente,
                    filtro.NumeroEtiquetaPeca,
                    filtro.PeriodoSetorInicio.FormatarData(),
                    filtro.PeriodoSetorFim.FormatarData(),
                    filtro.PeriodoEntregaInicio.FormatarData(),
                    filtro.PeriodoEntregaFim.FormatarData(),
                    filtro.PeriodoFabricaInicio.FormatarData(),
                    filtro.PeriodoFabricaFim.FormatarData(),
                    filtro.PeriodoConferenciaPedidoInicio.FormatarData(),
                    filtro.PeriodoConferenciaPedidoFim.FormatarData(),
                    filtro.IdSetor.GetValueOrDefault(),
                    filtro.SituacoesProducao.ObterComoString(),
                    (int)filtro.SituacaoPedido.GetValueOrDefault(),
                    (int)filtro.TipoSituacaoProducao.GetValueOrDefault(),
                    filtro.IdsSubgrupos.ObterComoString(),
                    (uint)filtro.TipoEntregaPedido.GetValueOrDefault(),
                    filtro.TiposPecasExibir.ObterComoString(),
                    (uint)filtro.IdVendedorPedido.GetValueOrDefault(),
                    filtro.TiposPedidos.ObterComoString(),
                    (uint)filtro.IdCorVidro.GetValueOrDefault(),
                    (int)filtro.AlturaPeca.GetValueOrDefault(),
                    filtro.LarguraPeca.GetValueOrDefault(),
                    (float)filtro.EspessuraPeca.GetValueOrDefault(),
                    filtro.IdsProcessos.ObterComoString(),
                    filtro.IdsAplicacoes.ObterComoString(),
                    filtro.ApenasPecasAguardandoExpedicao,
                    filtro.ApenasPecasAguardandoEntradaEstoque,
                    filtro.IdsBeneficiamentos.ObterComoString(),
                    filtro.PlanoCorte,
                    filtro.NumeroEtiquetaChapa,
                    (uint)filtro.TipoFastDelivery.GetValueOrDefault(),
                    filtro.ApenasPecasParadasNaProducao,
                    filtro.ApenasPecasRepostas,
                    (uint)filtro.IdLoja.GetValueOrDefault(),
                    (int?)filtro.TipoProdutosComposicao);

                return(this.Item(new ContagemPecasDto(contagem)));
            }
        }
Ejemplo n.º 21
0
        private string ObterCorLinha(ProdutosPedidoEspelho produtoImpressaoIndividualEtiqueta)
        {
            using (var sessao = new GDATransaction())
            {
                bool pedidoDeReposicao = PedidoDAO.Instance.IsPedidoReposicao(
                    sessao,
                    produtoImpressaoIndividualEtiqueta.IdPedido.ToString());

                return(pedidoDeReposicao ? "Red" : string.Empty);
            }
        }
Ejemplo n.º 22
0
        public IHttpActionResult ObterDataTrabalhoFuncionario(int id)
        {
            using (var sessao = new GDATransaction())
            {
                var dataTrabalho = new DataDto
                {
                    Data = FuncionarioDAO.Instance.ObtemDataAtraso(sessao, (uint)id),
                };

                return(this.Item(dataTrabalho));
            }
        }
Ejemplo n.º 23
0
        public IHttpActionResult CadastrarFuncionario([FromBody] Models.Funcionarios.V1.CadastroAtualizacao.CadastroAtualizacaoDto dadosParaCadastro)
        {
            using (var sessao = new GDATransaction())
            {
                var validacao = this.ValidarCadastroFuncionario(sessao, dadosParaCadastro);

                if (validacao != null)
                {
                    return(validacao);
                }

                try
                {
                    var funcionarioFluxo = Microsoft.Practices.ServiceLocation.ServiceLocator
                                           .Current.GetInstance <Global.Negocios.IFuncionarioFluxo>();

                    var funcionario = new ConverterCadastroAtualizacaoParaFuncionario(funcionarioFluxo, dadosParaCadastro)
                                      .ConverterParaFuncionario();

                    var resultado = funcionarioFluxo.SalvarFuncionario(funcionario);

                    if (!resultado)
                    {
                        return(this.ErroValidacao($"Erro ao inserir o funcionário. {resultado.Message.Format()}"));
                    }

                    if (!dadosParaCadastro.VerificarCampoInformado(c => c.DocumentosEDadosPessoais.Foto))
                    {
                        return(this.Criado(string.Format($"Funcinário {funcionario.IdFunc} inserido com sucesso!"), funcionario.IdFunc));
                    }

                    byte[] bytes = Convert.FromBase64String(dadosParaCadastro.DocumentosEDadosPessoais.Foto);

                    using (var imagem = new System.IO.MemoryStream(bytes))
                    {
                        var repositorio = Microsoft.Practices.ServiceLocation.ServiceLocator
                                          .Current.GetInstance <Global.Negocios.Entidades.IFuncionarioRepositorioImagens>();

                        repositorio.SalvarImagem(funcionario.IdFunc, imagem);
                    }

                    Microsoft.Practices.ServiceLocation.ServiceLocator
                    .Current.GetInstance <Global.Negocios.IMenuFluxo>().RemoveMenuFuncMemoria(funcionario.IdFunc);

                    return(this.Criado(string.Format($"Funcinário {funcionario.IdFunc} inserido com sucesso!"), funcionario.IdFunc));
                }
                catch (Exception e)
                {
                    sessao.Rollback();
                    return(this.ErroValidacao("Erro ao inserir o funcionário.", e));
                }
            }
        }
Ejemplo n.º 24
0
        public IHttpActionResult ObterConfiguracoesDetalhePedido(int id)
        {
            using (var sessao = new GDATransaction())
            {
                int idLoja = id > 0
                    ? (int)PedidoDAO.Instance.ObtemIdLoja(sessao, (uint)id)
                    : (int)UserInfo.GetUserInfo.IdLoja;

                var configuracoes = new Models.Pedidos.V1.Configuracoes.DetalheDto(idLoja);
                return(this.Item(configuracoes));
            }
        }
Ejemplo n.º 25
0
        public IHttpActionResult ConsultarSituacaoExportacaoPedidos(int id)
        {
            using (var sessao = new GDATransaction())
            {
                try
                {
                    var validacao = this.ValidarExistenciaIdExportacao(sessao, id);

                    if (validacao != null)
                    {
                        return(validacao);
                    }

                    var exportacao = ExportacaoDAO.Instance.GetElement(sessao, (uint)id);
                    var idsPedido  = PedidoExportacaoDAO.Instance.PesquisarPedidosExportacao(sessao, (uint)id);

                    var loja       = LojaDAO.Instance.GetElement(sessao, Data.Helper.UserInfo.GetUserInfo.IdLoja);
                    var fornecedor = FornecedorDAO.Instance.GetElement(exportacao.IdFornec);

                    var listaPedidos = new Dictionary <uint, bool>();
                    foreach (var item in idsPedido)
                    {
                        listaPedidos.Add(Glass.Conversoes.StrParaUint(item.ToString()), true);
                    }

                    byte[] buffer        = Data.Helper.UtilsExportacaoPedido.ConfigurarExportacao(listaPedidos, new uint[] { });
                    var    urlInicio     = fornecedor.UrlSistema.ToLower().Substring(0, fornecedor.UrlSistema.ToLower().LastIndexOf("/webglass")).TrimEnd('/');
                    var    urlFornecedor = string.Format("{0}{1}", urlInicio, "/service/wsexportacaopedido.asmx");

                    object[] parametros = new object[] { loja.Cnpj, 1, buffer };

                    // Consulta a situação do pedido
                    object retorno = WebService.ChamarWebService(urlFornecedor, "SyncService", "VerificarExportacaoPedidos", parametros);

                    Data.Helper.UtilsExportacaoPedido.AtualizarPedidosExportacao(retorno as string[]);

                    return(this.Ok("A situação dos pedidos foi atualizada."));
                }
                catch (Exception ex)
                {
                    var idsPedido       = PedidoExportacaoDAO.Instance.PesquisarPedidosExportacao(sessao, (uint)id);
                    var situacaoPedidos = string.Empty;

                    foreach (var item in idsPedido)
                    {
                        var situacao = PedidoExportacaoDAO.Instance.GetSituacaoExportacao((uint)item).ToString();
                        situacaoPedidos += $" O Pedido {item.ToString()} se encontra {situacao}. \n ";
                    }

                    return(this.ErroValidacao($"Erro ao consultar situação da exportação. {situacaoPedidos}", ex));
                }
            }
        }
Ejemplo n.º 26
0
        /// <summary>
        /// Cancela um lançamento de imposto/serviço.
        /// </summary>
        public void Cancelar(uint idImpostoServ)
        {
            FilaOperacoes.CancelarImpostoServ.AguardarVez();

            using (var transaction = new GDATransaction())
            {
                try
                {
                    transaction.BeginTransaction();

                    ContasPagar[] cp = ContasPagarDAO.Instance.GetByImpostoServ(transaction, idImpostoServ);

                    // Verifica se há alguma conta paga
                    foreach (ContasPagar c in cp)
                    {
                        if (c.Paga)
                        {
                            throw new Exception("Há uma ou mais contas pagas para esse lançamento de imposto/serviço. Cancele os pagamentos antes de continuar.");
                        }
                    }

                    // Salva as contas removidas
                    List <ContasPagar> removidos = new List <ContasPagar>();

                    // Remove as contas a pagar
                    foreach (ContasPagar c in cp)
                    {
                        ContasPagarDAO.Instance.Delete(transaction, c);
                        removidos.Add(c);
                    }

                    // Marca o imposto/serviço como cancelado
                    objPersistence.ExecuteCommand(transaction, "Update imposto_serv set situacao=" + (int)ImpostoServ.SituacaoEnum.Cancelado +
                                                  " Where idImpostoServ=" + idImpostoServ);

                    //// Cria o Log de cancelamento do imposto
                    LogCancelamentoDAO.Instance.LogImpostoServico(transaction, GetElement(transaction, idImpostoServ), "", true);

                    transaction.Commit();
                    transaction.Close();
                }
                catch
                {
                    transaction.Rollback();
                    transaction.Close();
                    throw;
                }
                finally
                {
                    FilaOperacoes.CancelarImpostoServ.ProximoFila();
                }
            }
        }
Ejemplo n.º 27
0
        public IHttpActionResult CadastrarMovimentacaoEstoqueReal([FromBody] CadastroAtualizacaoDto dadosParaCadastro)
        {
            using (var sessao = new GDATransaction())
            {
                try
                {
                    var validacao = this.ValidarCadastroMovimentacaoEstoqueReal(sessao, dadosParaCadastro);

                    if (validacao != null)
                    {
                        return(validacao);
                    }

                    var movimentacaoEstoqueReal = new ConverterCadastroAtualizacaoParaMovimentacaoEstoqueReal(dadosParaCadastro)
                                                  .ConverterParaMovimentacaoEstoqueReal();

                    sessao.BeginTransaction();

                    if (dadosParaCadastro.TipoMovimentacao == 1)
                    {
                        MovEstoqueDAO.Instance.CreditaEstoqueManual(
                            sessao,
                            (uint)movimentacaoEstoqueReal.IdProd,
                            (uint)movimentacaoEstoqueReal.IdLoja,
                            movimentacaoEstoqueReal.QtdeMov,
                            movimentacaoEstoqueReal.ValorMov,
                            movimentacaoEstoqueReal.DataMov,
                            movimentacaoEstoqueReal.Obs);
                    }
                    else if (dadosParaCadastro.TipoMovimentacao == 2)
                    {
                        MovEstoqueDAO.Instance.BaixaEstoqueManual(
                            sessao,
                            (uint)movimentacaoEstoqueReal.IdProd,
                            (uint)movimentacaoEstoqueReal.IdLoja,
                            movimentacaoEstoqueReal.QtdeMov,
                            movimentacaoEstoqueReal.ValorMov,
                            movimentacaoEstoqueReal.DataMov,
                            movimentacaoEstoqueReal.Obs);
                    }

                    sessao.Commit();

                    return(this.Criado($"Movimentação de estoque inserida com sucesso!", 0));
                }
                catch (Exception ex)
                {
                    sessao.Rollback();
                    return(this.ErroValidacao($"Erro ao cadastrar movimentação de estoque.", ex));
                }
            }
        }
Ejemplo n.º 28
0
        public IHttpActionResult ConfirmarGerandoConferencia(int id, bool finalizarConferencia)
        {
            using (var sessao = new GDATransaction())
            {
                var validacao = this.ValidarExistenciaIdPedido(sessao, id);

                if (validacao != null)
                {
                    return(validacao);
                }

                try
                {
                    sessao.BeginTransaction();

                    PedidoDAO.Instance.FinalizarPedido(sessao, (uint)id, false);

                    if (PedidoDAO.Instance.ObtemSituacao(sessao, (uint)id) != Data.Model.Pedido.SituacaoPedido.ConfirmadoLiberacao)
                    {
                        var idsPedidoOk   = new List <int>();
                        var idsPedidoErro = new List <int>();

                        PedidoDAO.Instance.ConfirmarLiberacaoPedido(sessao, new List <int> {
                            id
                        }, out idsPedidoOk, out idsPedidoErro, false, false);
                    }

                    if (PedidoDAO.Instance.GetTipoPedido(sessao, (uint)id) != Data.Model.Pedido.TipoPedidoEnum.Revenda)
                    {
                        PedidoEspelhoDAO.Instance.GeraEspelho(sessao, (uint)id);
                    }

                    if (finalizarConferencia && PedidoConfig.TelaCadastro.FinalizarConferenciaAoGerarEspelho && PedidoEspelhoDAO.Instance.ExisteEspelho((uint)id))
                    {
                        PedidoEspelhoDAO.Instance.FinalizarPedido(sessao, (uint)id);
                    }

                    sessao.Commit();

                    return(this.Aceito($"Pedido {id} finalizado e gerado conferência."));
                }
                catch (ValidacaoPedidoFinanceiroException f)
                {
                    return(this.MultiplaEscolha(MensagemAlerta.FormatErrorMsg(string.Empty, f)));
                }
                catch (Exception ex)
                {
                    sessao.Rollback();
                    return(this.ErroValidacao(ex.Message, ex));
                }
            }
        }
Ejemplo n.º 29
0
        public void MarcarPecaRepostaChapaCortePeca(GDATransaction sessao, uint idProdPedProducao)
        {
            var numEtiqueta         = ProdutoPedidoProducaoDAO.Instance.ObtemValorCampo <string>(sessao, "NumEtiqueta", $"IdProdPedProducao = { idProdPedProducao }");
            var idProdImpressaoPeca = ProdutoImpressaoDAO.Instance.ObtemValorCampo <uint>(sessao, "IdProdImpressao", $"NumEtiqueta = '{numEtiqueta}'");
            var possuiLeituraChapa  = ExecuteScalar <bool>(sessao, $"SELECT count(*) FROM chapa_corte_peca WHERE COALESCE(PecaReposta,FALSE) = FALSE AND IdProdImpressaoPeca = { idProdImpressaoPeca }");

            if (!possuiLeituraChapa)
            {
                return;
            }

            objPersistence.ExecuteCommand(sessao, $"UPDATE chapa_corte_peca SET PecaReposta = TRUE WHERE COALESCE(PecaReposta,FALSE) = FALSE AND IdProdImpressaoPeca = { idProdImpressaoPeca }");
        }
Ejemplo n.º 30
0
        /// <summary>
        /// Cancela uma devolução de pagamento.
        /// </summary>
        public void Cancelar(uint idDevolucaoPagto, string motivo, DateTime dataEstornoBanco)
        {
            Glass.FilaOperacoes.CancelarDevolucaoPagto.AguardarVez();

            using (var transaction = new GDATransaction())
            {
                try
                {
                    transaction.BeginTransaction();

                    DevolucaoPagto dev        = null;
                    var            idsCheques = string.Empty;

                    dev = GetElementByPrimaryKey(transaction, idDevolucaoPagto);

                    if (dev.Situacao == (int)DevolucaoPagto.SituacaoDevolucao.Cancelada)
                    {
                        throw new Exception("Esta devolução de pagamento já foi cancelada.");
                    }

                    if (ExecuteScalar <bool>(transaction, "Select Count(*)>0 From cheques c Where c.IdDevolucaoPagto=" + idDevolucaoPagto + " And Situacao > 1"))
                    {
                        throw new Exception(@"Um ou mais cheques recebidos já foram utilizados em outras transações, cancele ou retifique as transações dos cheques antes de cancelar esta devolução de pagamento.");
                    }

                    idsCheques = ChequesDAO.Instance.GetIdsByDevolucaoPagto(transaction, idDevolucaoPagto);

                    UtilsFinanceiro.CancelaRecebimento(transaction, UtilsFinanceiro.TipoReceb.DevolucaoPagto, null, null, null, null, null, 0,
                                                       null, null, dev, null, dataEstornoBanco, false, false);

                    // Marca a devolução como cancelada
                    dev.Situacao = (int)DevolucaoPagto.SituacaoDevolucao.Cancelada;
                    Update(transaction, dev);

                    LogCancelamentoDAO.Instance.LogDevolucaoPagamento(transaction, dev, motivo, true);

                    transaction.Commit();
                    transaction.Close();
                }
                catch (Exception ex)
                {
                    transaction.Rollback();
                    transaction.Close();
                    throw new Exception(Glass.MensagemAlerta.FormatErrorMsg("Falha ao cancelar devolução de pagamento.", ex));
                }
                finally
                {
                    Glass.FilaOperacoes.CancelarDevolucaoPagto.ProximoFila();
                }
            }
        }