Пример #1
0
        public NotaPromissoria[] GetByLiberacao(uint idLiberarPedido)
        {
            LiberarPedido lp = LiberarPedidoDAO.Instance.GetElementByPrimaryKey(idLiberarPedido);

            List <NotaPromissoria> retorno = new List <NotaPromissoria>();

            var contasReceber = ContasReceberDAO.Instance.GetByLiberacaoPedido(idLiberarPedido, true);

            foreach (ContasReceber c in contasReceber)
            {
                NotaPromissoria nova = new NotaPromissoria();
                nova.IdLiberarPedido = idLiberarPedido;
                nova.IdLoja          = FuncionarioDAO.Instance.ObtemIdLoja(lp.IdFunc);
                nova.IdCliente       = lp.IdCliente;
                nova.DataVenc        = c.DataVec;
                nova.Valor           = c.ValorVec;
                nova.ValorFatura     = contasReceber.Sum(f => f.ValorVec);
                nova.Juros           = c.Juros;
                nova.NumeroParc      = c.NumParc;
                nova.NumeroParcMax   = c.NumParcMax;

                retorno.Add(nova);
            }

            return(retorno.ToArray());
        }
Пример #2
0
        /// <summary>
        /// Inicia uma nova instância da classe <see cref="ListaDto"/>.
        /// </summary>
        /// <param name="liberacao">A model de liberação.</param>
        internal ListaDto(LiberarPedido liberacao)
        {
            this.Id      = (int)liberacao.IdLiberarPedido;
            this.Cliente = new IdNomeDto
            {
                Id   = (int)liberacao.IdCliente,
                Nome = liberacao.NomeCliente,
            };

            this.Funcionario = new IdNomeDto
            {
                Id   = null,
                Nome = liberacao.NomeFunc,
            };

            this.DescricaoPagamento = liberacao.DescrPagto;
            this.Situacao           = liberacao.DescrSituacao;
            this.DataLiberacao      = liberacao.DataLiberacao;
            this.ValorIcms          = liberacao.ValorIcms;
            this.Total        = liberacao.Total;
            this.NotasGeradas = liberacao.NotasFiscaisGeradas;

            this.Permissoes = new PermissoesDto
            {
                Imprimir = liberacao.ImprimirRelatorioLiberacaoVisible,
                ExibirNotaPromissoria = liberacao.ExibirNotaPromissoria,
                Cancelar           = liberacao.CancelarVisible,
                ExibirBoleto       = liberacao.BoletoVisivel,
                ExibirReenvioEmail = liberacao.ExibirReenvioEmail,
                ExibirNfeGerada    = LiberarPedidoDAO.Instance.TemNfe(liberacao.IdLiberarPedido) && liberacao.Situacao != (int)LiberarPedido.SituacaoLiberarPedido.Cancelado && PedidoConfig.LiberarPedido,
                LogAlteracoes      = LogAlteracaoDAO.Instance.TemRegistro(LogAlteracao.TabelaAlteracao.LiberacaoReenvioEmail, liberacao.IdLiberarPedido, null),
            };
        }
Пример #3
0
        /// <summary>
        /// Cria um cheque, na tabela cheques_liberar_pedido, a partir de uma string.
        /// </summary>
        public void InserirPelaString(GDASession sessao, LiberarPedido liberarPedido, IEnumerable <string> dadosChequesRecebimento)
        {
            if ((dadosChequesRecebimento?.Where(f => !string.IsNullOrWhiteSpace(f)).Count()).GetValueOrDefault() == 0)
            {
                return;
            }

            foreach (var dadosChequeRecebimento in dadosChequesRecebimento.Where(f => !string.IsNullOrWhiteSpace(f)))
            {
                // Divide o cheque para pegar suas propriedades.
                var propriedadesCheque = dadosChequeRecebimento.Split('\t');
                var tipoCheque         = ChequesDAO.Instance.GetTipo(propriedadesCheque[0]);

                // Insere cheque no BD.
                Insert(sessao, new ChequesLiberarPedido
                {
                    IdLiberarPedido = (int)liberarPedido.IdLiberarPedido,
                    IdLoja          = propriedadesCheque[22].StrParaInt(),
                    // Recupera a conta bancária através da agência e conta do cheque, caso a conta bancária não tenha sido informada e o tipo do cheque seja Próprio.
                    IdContaBanco = tipoCheque == 1 && propriedadesCheque[1].StrParaIntNullable().GetValueOrDefault() == 0 ?
                                   (int?)ContaBancoDAO.Instance.GetIdByAgenciaConta(propriedadesCheque[16], propriedadesCheque[17]) : propriedadesCheque[1].StrParaIntNullable(),
                    CpfCnpj   = propriedadesCheque[21].Replace(".", string.Empty).Replace("-", string.Empty).Replace("/", string.Empty),
                    Num       = propriedadesCheque[2].StrParaInt(),
                    DigitoNum = propriedadesCheque[3],
                    Banco     = propriedadesCheque[15],
                    Agencia   = propriedadesCheque[16],
                    Conta     = propriedadesCheque[17],
                    Titular   = propriedadesCheque[4],
                    Valor     = decimal.Parse(propriedadesCheque[5], NumberStyles.AllowDecimalPoint),
                    DataVenc  = DateTime.Parse(propriedadesCheque[6]),
                    Origem    = propriedadesCheque[8].StrParaInt(),
                    Tipo      = tipoCheque,
                    Obs       = propriedadesCheque[19]
                });
            }
        }
Пример #4
0
        public void DesvinculaDepositoNaoIdentificado(GDASession sessao, Pedido pedido, LiberarPedido liberarPedido, Acerto acerto,
                                                      ContasReceber contaR, Obra obra, Sinal sinal, TrocaDevolucao trocaDevolucao, DevolucaoPagto devolucaoPagamento,
                                                      uint acertoCheque)
        {
            uint?idPedido         = pedido != null ? pedido.IdPedido : (uint?)null;
            uint?idLiberarPedido  = liberarPedido != null ? liberarPedido.IdLiberarPedido : (uint?)null;
            uint?idAcerto         = acerto != null ? acerto.IdAcerto : (uint?)null;
            uint?idContaR         = contaR != null ? contaR.IdContaR : (uint?)null;
            uint?idObra           = obra != null ? obra.IdObra : (uint?)null;
            uint?idSinal          = sinal != null ? sinal.IdSinal : (uint?)null;
            uint?idTrocaDevolucao = trocaDevolucao != null ? trocaDevolucao.IdTrocaDevolucao : (uint?)null;
            uint?idDevolucaoPagto = devolucaoPagamento != null ? devolucaoPagamento.IdDevolucaoPagto : (uint?)null;
            uint?idAcertoCheque   = acertoCheque > 0 ? acertoCheque : (uint?)null;

            if (!idPedido.HasValue && !idLiberarPedido.HasValue && !idAcerto.HasValue && !idContaR.HasValue && !idObra.HasValue && !idSinal.HasValue &&
                !idTrocaDevolucao.HasValue && !idDevolucaoPagto.HasValue && !idAcertoCheque.HasValue)
            {
                throw new Exception("Nenhuma conta para desvincular informada.");
            }

            string depositos = GetIdsForDesvincular(sessao, idPedido, idLiberarPedido, idAcerto, idContaR, idObra, idSinal, idTrocaDevolucao,
                                                    idDevolucaoPagto, idAcertoCheque);

            if (string.IsNullOrEmpty(depositos))
            {
                return;
            }

            string sql = @"UPDATE deposito_nao_identificado
                           SET idPedido=null, idLiberarPedido=null, idAcerto=null, idContaR=null, idObra=null, idSinal=null,
                               idTrocaDevolucao=null, idDevolucaoPagto=null, idAcertoCheque=null, situacao=" + (int)DepositoNaoIdentificado.SituacaoEnum.Ativo + @"
                           WHERE idDepositoNaoIdentificado in (" + depositos + ")";

            objPersistence.ExecuteCommand(sessao, sql);
        }
Пример #5
0
        /// <summary>
        /// Faz o vinculo do deposito.
        /// </summary>
        public void VinculaDepositoNaoIdentificado(GDASession sessao, uint idDepositoNaoIdentificado, Pedido pedido, LiberarPedido liberarPedido, Acerto acerto,
                                                   ContasReceber contaR, Obra obra, Sinal sinal, TrocaDevolucao trocaDevolucao, uint?idDevolucaoPagto, uint?idAcertoCheque)
        {
            uint?idPedido         = pedido != null && pedido.IdPedido > 0 ? pedido.IdPedido : (uint?)null;
            uint?idLiberarPedido  = liberarPedido != null ? liberarPedido.IdLiberarPedido : (uint?)null;
            uint?idAcerto         = acerto != null ? acerto.IdAcerto : (uint?)null;
            uint?idContaR         = contaR != null ? contaR.IdContaR : (uint?)null;
            uint?idObra           = obra != null ? obra.IdObra : (uint?)null;
            uint?idSinal          = sinal != null ? sinal.IdSinal : (uint?)null;
            uint?idTrocaDevolucao = trocaDevolucao != null ? trocaDevolucao.IdTrocaDevolucao : (uint?)null;

            if (idDepositoNaoIdentificado == 0)
            {
                throw new Exception("Depósito não informado.");
            }

            if (!idPedido.HasValue && !idLiberarPedido.HasValue && !idAcerto.HasValue && !idContaR.HasValue && !idObra.HasValue && !idSinal.HasValue &&
                !idTrocaDevolucao.HasValue && !idDevolucaoPagto.HasValue && !idAcertoCheque.HasValue)
            {
                throw new Exception("Nenhuma conta para vínculo informada.");
            }

            DepositoNaoIdentificado dni = GetElement(sessao, idDepositoNaoIdentificado);

            if (dni == null)
            {
                throw new Exception("Depósito não encontrado.");
            }

            /* Chamado 56553. */
            if (dni.Situacao != DepositoNaoIdentificado.SituacaoEnum.Ativo)
            {
                throw new Exception("Para que o DNI seja vinculado a um recebimento, ele deve estar na situação Ativo.");
            }

            dni.IdPedido         = idPedido;
            dni.IdLiberarPedido  = idLiberarPedido;
            dni.IdAcerto         = idAcerto;
            dni.IdContaR         = idContaR;
            dni.IdObra           = idObra;
            dni.IdSinal          = idSinal;
            dni.IdTrocaDevolucao = idTrocaDevolucao;
            dni.IdDevolucaoPagto = idDevolucaoPagto;
            dni.IdAcertoCheque   = idAcertoCheque;
            dni.Situacao         = !idDevolucaoPagto.HasValue ? DepositoNaoIdentificado.SituacaoEnum.EmUso : DepositoNaoIdentificado.SituacaoEnum.Ativo;

            Update(sessao, dni);

            uint?idCliente = null;

            // Atualiza o cliente do DNI
            if (idPedido > 0)
            {
                idCliente = pedido.IdCli;
            }
            else if (idLiberarPedido > 0)
            {
                idCliente = liberarPedido.IdCliente;
            }
            else if (idAcerto > 0)
            {
                idCliente = acerto.IdCli;
            }
            else if (idContaR > 0)
            {
                idCliente = contaR.IdCliente;
            }
            else if (idObra > 0)
            {
                idCliente = obra.IdCliente;
            }
            else if (idSinal > 0)
            {
                idCliente = sinal.IdCliente;
            }
            else if (idTrocaDevolucao > 0)
            {
                idCliente = trocaDevolucao.IdCliente;
            }

            if (idCliente > 0)
            {
                objPersistence.ExecuteCommand(sessao, "Update mov_banco Set idCliente=" + idCliente + " Where idDepositoNaoIdentificado=" + dni.IdDepositoNaoIdentificado);
            }
        }
Пример #6
0
 /// <summary>
 /// (APAGAR: quando alterar para utilizar transação)
 /// </summary>
 public void VinculaDepositoNaoIdentificado(uint idDepositoNaoIdentificado, Pedido pedido, LiberarPedido liberarPedido, Acerto acerto,
                                            ContasReceber contaR, Obra obra, Sinal sinal, TrocaDevolucao trocaDevolucao, uint?idDevolucaoPagto, uint?idAcertoCheque)
 {
     VinculaDepositoNaoIdentificado(null, idDepositoNaoIdentificado, pedido, liberarPedido, acerto,
                                    contaR, obra, sinal, trocaDevolucao, idDevolucaoPagto, idAcertoCheque);
 }
Пример #7
0
 /// <summary>
 /// Cria o Log de Cancelamento para a liberação de pedido.
 /// </summary>
 /// <param name="liberacaoPedido"></param>
 /// <param name="motivo"></param>
 /// <param name="manual"></param>
 public void LogLiberarPedido(GDASession sessao, LiberarPedido liberacaoPedido, string motivo, bool manual)
 {
     InserirLog(sessao, UserInfo.GetUserInfo.CodUser, LogCancelamento.TabelaCancelamento.LiberarPedido,
                liberacaoPedido.IdLiberarPedido, liberacaoPedido, motivo, manual);
 }
Пример #8
0
        /// <summary>
        /// Faz o vinculo do deposito.
        /// </summary>
        public void VincularCartaoNaoIdentificado(GDASession sessao, uint idCartaoNaoIdentificado, Pedido pedido, LiberarPedido liberarPedido, Acerto acerto,
                                                  ContasReceber contaR, Obra obra, Sinal sinal, TrocaDevolucao trocaDevolucao, uint?idDevolucaoPagto, uint?idAcertoCheque)
        {
            int?idPedido         = pedido != null && pedido.IdPedido > 0 ? (int)pedido.IdPedido : (int?)null;
            int?idLiberarPedido  = liberarPedido != null ? (int)liberarPedido.IdLiberarPedido : (int?)null;
            int?idAcerto         = acerto != null ? (int)acerto.IdAcerto : (int?)null;
            int?idContaR         = contaR != null ? (int)contaR.IdContaR : (int?)null;
            int?idObra           = obra != null ? (int)obra.IdObra : (int?)null;
            int?idSinal          = sinal != null ? (int)sinal.IdSinal : (int?)null;
            int?idTrocaDevolucao = trocaDevolucao != null ? (int)trocaDevolucao.IdTrocaDevolucao : (int?)null;

            if (idCartaoNaoIdentificado == 0)
            {
                throw new Exception("Cartão não identificado não informado.");
            }

            if (!idPedido.HasValue && !idLiberarPedido.HasValue && !idAcerto.HasValue && !idContaR.HasValue && !idObra.HasValue && !idSinal.HasValue &&
                !idTrocaDevolucao.HasValue && !idDevolucaoPagto.HasValue && !idAcertoCheque.HasValue)
            {
                throw new Exception("Nenhuma conta para vínculo informada.");
            }

            var cni = GetElement(sessao, idCartaoNaoIdentificado);

            if (cni == null)
            {
                throw new Exception("Cartão não identificado não encontrado.");
            }

            cni.IdPedido         = idPedido;
            cni.IdLiberarPedido  = idLiberarPedido;
            cni.IdAcerto         = idAcerto;
            cni.IdContaR         = idContaR;
            cni.IdObra           = idObra;
            cni.IdSinal          = idSinal;
            cni.IdTrocaDevolucao = idTrocaDevolucao;
            cni.IdDevolucaoPagto = (int?)idDevolucaoPagto;
            cni.IdAcertoCheque   = (int?)idAcertoCheque;
            cni.Situacao         = !idDevolucaoPagto.HasValue ? SituacaoCartaoNaoIdentificado.EmUso : SituacaoCartaoNaoIdentificado.Ativo;

            Update(sessao, cni);

            uint?idCliente = null;

            // Atualiza o cliente do DNI
            if (idPedido > 0)
            {
                idCliente = pedido.IdCli;
            }
            else if (idLiberarPedido > 0)
            {
                idCliente = liberarPedido.IdCliente;
            }
            else if (idAcerto > 0)
            {
                idCliente = acerto.IdCli;
            }
            else if (idContaR > 0)
            {
                idCliente = contaR.IdCliente;
            }
            else if (idObra > 0)
            {
                idCliente = obra.IdCliente;
            }
            else if (idSinal > 0)
            {
                idCliente = sinal.IdCliente;
            }
            else if (idTrocaDevolucao > 0)
            {
                idCliente = trocaDevolucao.IdCliente;
            }

            var contas = ContasReceberDAO.Instance.RecuperarContaspeloIdCartaoNaoIdentificado(sessao, cni.IdCartaoNaoIdentificado);

            foreach (var item in contas)
            {
                item.IdCliente        = idCliente.GetValueOrDefault();
                item.IdPedido         = (uint?)idPedido;
                item.IdLiberarPedido  = (uint?)idLiberarPedido;
                item.IdAcerto         = (uint?)idAcerto;
                item.IdContaRRef      = idContaR;
                item.IdObra           = (uint?)idObra;
                item.IdSinal          = (uint?)idSinal;
                item.IdTrocaDevolucao = (uint?)idTrocaDevolucao;
                item.IdDevolucaoPagto = idDevolucaoPagto;
                item.IdAcertoCheque   = idAcertoCheque;

                ContasReceberDAO.Instance.Update(sessao, item);
            }

            var cxDiario = CaixaDiarioDAO.Instance.ObterMovimentacoesPorCartaoNaoIdentificado(sessao, cni.IdCartaoNaoIdentificado);

            foreach (var item in cxDiario)
            {
                item.IdCliente        = idCliente.GetValueOrDefault();
                item.IdPedido         = (uint?)idPedido;
                item.IdLiberarPedido  = (uint?)idLiberarPedido;
                item.IdAcerto         = (uint?)idAcerto;
                item.IdContaR         = (uint?)idContaR;
                item.IdObra           = (uint?)idObra;
                item.IdSinal          = (uint?)idSinal;
                item.IdTrocaDevolucao = (uint?)idTrocaDevolucao;
                item.IdDevolucaoPagto = idDevolucaoPagto;
                item.IdAcertoCheque   = idAcertoCheque;

                CaixaDiarioDAO.Instance.Update(sessao, item);
            }

            var cxGeral = CaixaGeralDAO.Instance.ObterMovimentacoesPorCartaoNaoIdentificado(sessao, cni.IdCartaoNaoIdentificado);

            foreach (var item in cxGeral)
            {
                item.IdCliente        = idCliente.GetValueOrDefault();
                item.IdPedido         = (uint?)idPedido;
                item.IdLiberarPedido  = (uint?)idLiberarPedido;
                item.IdAcerto         = (uint?)idAcerto;
                item.IdContaR         = (uint?)idContaR;
                item.IdObra           = (uint?)idObra;
                item.IdSinal          = (uint?)idSinal;
                item.IdTrocaDevolucao = (uint?)idTrocaDevolucao;
                item.IdDevolucaoPagto = idDevolucaoPagto;
                item.IdAcertoCheque   = idAcertoCheque;

                CaixaGeralDAO.Instance.Update(sessao, item);
            }

            var movs = MovBancoDAO.Instance.ObterMovimentacoesPorCartaoNaoIdentificado(sessao, cni.IdCartaoNaoIdentificado);

            foreach (var item in movs)
            {
                item.IdCliente        = idCliente.GetValueOrDefault();
                item.IdPedido         = (uint?)idPedido;
                item.IdLiberarPedido  = (uint?)idLiberarPedido;
                item.IdAcerto         = (uint?)idAcerto;
                item.IdContaR         = (uint?)idContaR;
                item.IdObra           = (uint?)idObra;
                item.IdSinal          = (uint?)idSinal;
                item.IdTrocaDevolucao = (uint?)idTrocaDevolucao;
                item.IdDevolucaoPagto = idDevolucaoPagto;
                item.IdAcertoCheque   = idAcertoCheque;

                MovBancoDAO.Instance.Update(sessao, item);
            }
        }
Пример #9
0
        protected override Colosoft.Reports.IReportDocument LoadReport(ref LocalReport report, ref List <ReportParameter> lstParam,
                                                                       HttpRequest PageRequest, System.Collections.Specialized.NameValueCollection Request, object[] outrosParametros, LoginUsuario login, string diretorioLogotipos)
        {
            Glass.Data.RelModel.Recibo recibo;

            // Verifica qual relatório será chamado
            switch (Request["rel"])
            {
            case "recibo":
                if (string.IsNullOrEmpty(outrosParametros[0].ToString()) || string.IsNullOrEmpty(outrosParametros[1].ToString()))
                {
                    return(null);
                }

                var idOrcamento = Request["idOrcamento"] != "0" && Request["idOrcamento"] != "" ? Request["idOrcamento"].StrParaUint() : 0;
                var idPedido    = Request["idPedido"] != "0" && Request["idPedido"] != "" ? Request["idPedido"].StrParaUint() : 0;
                var idLiberacao = Request["idLiberacao"] != "0" && Request["idLiberacao"] != "" ? Request["idLiberacao"].StrParaUint() : 0;
                var idsContaR   = outrosParametros[1].ToString();

                if (idsContaR == null || idsContaR == "0")
                {
                    if (PedidoConfig.LiberarPedido)
                    {
                        var contasRec = ContasReceberDAO.Instance.GetByLiberacaoPedido(idLiberacao, true);
                        if (contasRec != null && contasRec.Count > 0)
                        {
                            idsContaR = string.Join(",", contasRec.Select(f => f.IdContaR.ToString()));
                        }
                    }
                    else
                    {
                        var contasRec = ContasReceberDAO.Instance.GetByPedido(null, idPedido, false, true);
                        if (contasRec != null && contasRec.Count > 0)
                        {
                            idsContaR = string.Join(",", contasRec.Select(f => f.IdContaR.ToString()));
                        }
                    }
                }

                var orcamento = new Data.Model.Orcamento();
                var pedido    = new Data.Model.Pedido();
                var liberacao = new LiberarPedido();

                var nomeCliente  = string.Empty;
                var nomeVendedor = string.Empty;
                var idLoja       = new uint();
                var total        = new decimal();

                #region Orçamento

                // Recupera os dados do orçamento.
                if (idOrcamento > 0)
                {
                    orcamento = OrcamentoDAO.Instance.GetElementByPrimaryKey(idOrcamento);

                    if (orcamento.IdCliente > 0)
                    {
                        nomeCliente = ClienteDAO.Instance.GetNome(orcamento.IdCliente.Value);
                    }
                    else
                    {
                        nomeCliente = orcamento.NomeCliente;
                    }

                    nomeVendedor = orcamento.IdFuncionario > 0 ? FuncionarioDAO.Instance.GetNome(orcamento.IdFuncionario.Value) : login.Nome;
                    idLoja       = orcamento.IdLoja > 0 ? orcamento.IdLoja.Value : login.IdLoja;
                    total        = orcamento.Total;

                    idPedido    = 0;
                    idLiberacao = 0;
                }

                #endregion

                #region Pedido

                // Recupera os dados do pedido.
                else if (idPedido > 0)
                {
                    pedido       = PedidoDAO.Instance.GetElementByPrimaryKey(idPedido);
                    nomeCliente  = ClienteDAO.Instance.GetNome(pedido.IdCli);
                    nomeVendedor = pedido.IdFunc > 0 ? FuncionarioDAO.Instance.GetNome(pedido.IdFunc) : login.Nome;
                    idLoja       = pedido.IdPedido > 0 ? pedido.IdLoja : login.IdLoja;
                    total        = pedido.Total;

                    // Se houver pcp, usa o total do mesmo
                    var totalEspelho = PedidoEspelhoDAO.Instance.ObtemTotal(idPedido);
                    if (totalEspelho > 0)
                    {
                        total = totalEspelho;
                    }

                    idLiberacao = 0;
                }

                #endregion

                #region Liberação

                // Recupera os dados da liberação.
                else if (idLiberacao > 0)
                {
                    liberacao    = LiberarPedidoDAO.Instance.GetElement(idLiberacao);
                    nomeCliente  = ClienteDAO.Instance.GetNome(liberacao.IdCliente);
                    nomeVendedor = !string.IsNullOrEmpty(liberacao.NomeFunc) ? liberacao.NomeFunc : login.Nome;
                    idLoja       = (uint)FuncionarioDAO.Instance.GetElementByPrimaryKey(liberacao.IdFunc).IdLoja;
                    total        = liberacao.Total;
                }

                #endregion

                recibo                 = new Data.RelModel.Recibo();
                recibo.Tipo            = Conversoes.StrParaInt(Request["referente"]);
                recibo.IdOrcamento     = orcamento.IdOrcamento;
                recibo.IdPedido        = pedido.IdPedido;
                recibo.IdLiberarPedido = liberacao.IdLiberarPedido;
                recibo.Cliente         = nomeCliente;
                recibo.IdLoja          = idLoja;
                recibo.SinalPedido     = pedido.IdPedido > 0 ? pedido.ValorEntrada + pedido.ValorPagamentoAntecipado : 0;
                recibo.Total           = total;
                recibo.Vendedor        = nomeVendedor;
                recibo.Items           = outrosParametros[0].ToString();
                recibo.NumParcelas     = idsContaR;
                recibo.ValorReferente  = Request["valorRef"];
                recibo.MotivoReferente = Request["motivoRef"];
                report.ReportPath      = Data.Helper.Utils.CaminhoRelatorio("Relatorios/Genericos/ModeloRecibo/rptRecibo{0}.rdlc");

                if (report.ReportPath == "Relatorios/Genericos/ModeloRecibo/rptReciboVidrosEVidros.rdlc")
                {
                    lstParam.Add(new ReportParameter("ImagemCabecalho",
                                                     "file:///" + PageRequest.PhysicalApplicationPath.Replace('\\', '/') + "Images/cabecalhoOrcamentoVivrosEVidros.jpg"));
                }

                if (ReciboConfig.Relatorio.UsarParcelasPedido && pedido.IdPedido > 0)
                {
                    report.DataSources.Add(new ReportDataSource("ParcelasPedido", pedido.NumParc > 0 ? ParcelasPedidoDAO.Instance.GetByPedido(pedido.IdPedido) :
                                                                new ParcelasPedido[0]));
                }

                report.DataSources.Add(new ReportDataSource("Recibo", new Data.RelModel.Recibo[] { recibo }));
                break;

            case "reciboPgAntec":
                Sinal   sinal       = SinalDAO.Instance.GetSinalDetails(Glass.Conversoes.StrParaUint(Request["idPgAntecipado"]));
                Cliente clientePgto = ClienteDAO.Instance.GetElementByPrimaryKey(sinal.IdCliente);

                recibo                 = new Data.RelModel.Recibo();
                recibo.Tipo            = Glass.Conversoes.StrParaInt(Request["referente"]);
                recibo.IdSinal         = sinal.IdSinal;
                recibo.Cliente         = clientePgto.Nome;
                recibo.IdLoja          = (uint)FuncionarioDAO.Instance.GetElementByPrimaryKey(sinal.UsuCad).IdLoja;
                recibo.Total           = sinal.TotalSinal;
                recibo.Vendedor        = FuncionarioDAO.Instance.GetNome(sinal.UsuCad);
                recibo.Items           = outrosParametros[0].ToString();
                recibo.NumParcelas     = outrosParametros[1].ToString();
                recibo.ValorReferente  = Request["valorRef"];
                recibo.MotivoReferente = Request["motivoRef"];
                report.ReportPath      = Glass.Data.Helper.Utils.CaminhoRelatorio("Relatorios/Genericos/ModeloRecibo/rptRecibo{0}.rdlc");

                report.DataSources.Add(new ReportDataSource("Recibo", new Data.RelModel.Recibo[] { recibo }));
                break;

            case "reciboAcerto":

                uint idAcerto = Request["idAcerto"] != "0" && Request["idAcerto"] != "" ? Glass.Conversoes.StrParaUint(Request["idAcerto"]) : 0;

                if (idAcerto > 0 && !AcertoDAO.Instance.Exists(idAcerto))
                {
                    Response.Write("O acerto informado não existe.");
                    return(null);
                }

                Acerto acerto = AcertoDAO.Instance.GetByCliList(Convert.ToInt32(idAcerto), 0, 0, 0, null, null, 0, 0, 0, 0, null, 0, 10)[0];

                recibo                 = new Data.RelModel.Recibo();
                recibo.Tipo            = Glass.Conversoes.StrParaInt(Request["referente"]);
                recibo.IdAcerto        = acerto.IdAcerto;
                recibo.Cliente         = ClienteDAO.Instance.GetNome(acerto.IdCli);
                recibo.IdLoja          = (uint)FuncionarioDAO.Instance.GetElementByPrimaryKey(acerto.UsuCad).IdLoja;
                recibo.Total           = acerto.TotalAcerto;
                recibo.Vendedor        = FuncionarioDAO.Instance.GetNome(acerto.UsuCad);
                recibo.Items           = outrosParametros[0].ToString();
                recibo.NumParcelas     = outrosParametros[1].ToString();
                recibo.ValorReferente  = Request["valorRef"];
                recibo.MotivoReferente = Request["motivoRef"];
                report.ReportPath      = Glass.Data.Helper.Utils.CaminhoRelatorio("Relatorios/Genericos/ModeloRecibo/rptRecibo{0}.rdlc");

                report.DataSources.Add(new ReportDataSource("Recibo", new Data.RelModel.Recibo[] { recibo }));

                break;

            case "termoaceitacao":
                if (!PedidoDAO.Instance.PedidoExists(Glass.Conversoes.StrParaUint(Request["ped"])))
                {
                    Response.Write("O pedido informado não existe.");
                    return(null);
                }

                Glass.Data.Model.Pedido pedTermo = PedidoDAO.Instance.GetElement(Glass.Conversoes.StrParaUint(Request["ped"]));

                if (pedTermo.IdOrcamento == null)
                {
                    pedTermo.IdOrcamento = 0;
                }

                pedTermo.InfoAdicional = Request["infAdic"]?.Replace("\\n", "\n") ?? string.Empty;

                report.ReportPath = Data.Helper.Utils.CaminhoRelatorio("Relatorios/Genericos/rptAceitacao{0}.rdlc");

                report.DataSources.Add(new ReportDataSource("PedidoRpt", PedidoRptDAL.Instance.CopiaLista(new Glass.Data.Model.Pedido[] { pedTermo }, PedidoRpt.TipoConstrutor.TermoAceitacao, false, login)));
                break;

            case "riscoquebra":
                // Verifica se pedido passado existe
                if (!PedidoDAO.Instance.PedidoExists(Glass.Conversoes.StrParaUint(Request["idPedido"])))
                {
                    Response.Write("O pedido informado não existe.");
                    return(null);
                }

                var risco = new Data.RelModel.RiscoQuebra();
                Glass.Data.Model.Pedido ped = PedidoDAO.Instance.GetElementByPrimaryKey(Glass.Conversoes.StrParaUint(Request["idPedido"]));
                Cliente cli = ClienteDAO.Instance.GetElementByPrimaryKey(ped.IdCli);
                cli.Cidade       = CidadeDAO.Instance.GetNome((uint?)cli.IdCidade);
                risco.IdPedido   = ped.IdPedido;
                risco.NomeLoja   = LojaDAO.Instance.GetElementByPrimaryKey(ped.IdLoja).NomeFantasia;
                risco.CidadeData = LojaDAO.Instance.GetElement(ped.IdLoja).Cidade + " " + Formatacoes.DataExtenso(DateTime.Now);
                risco.Cliente    = cli.Nome;
                risco.Endereco   = !string.IsNullOrEmpty(ped.LocalizacaoObra) ? ped.LocalizacaoObra : cli.EnderecoCompleto;
                risco.Telefone   = cli.Telefone;
                risco.Texto      = Request["texto"];

                report.ReportPath = Data.Helper.Utils.CaminhoRelatorio("Relatorios/Genericos/rptRiscoQuebra{0}.rdlc");

                report.DataSources.Add(new ReportDataSource("RiscoQuebra", new Data.RelModel.RiscoQuebra[] { risco }));
                break;

            case "reciboContaPagar":
            {
                var idContaPagar = Request["idContaPagar"] != "0" && Request["idContaPagar"] != "" ? Glass.Conversoes.StrParaInt(Request["idContaPagar"]) : 0;
                var contaPg      = ContasPagarDAO.Instance.GetPagasForRpt(idContaPagar, 0, null, 0, 0, 0, 0, null, null, null, null, null, null, null, null, 0, 0, 0, false, true, false, null, false,
                                                                          false, 0, 0, null, null);

                if (contaPg.Length == 0)
                {
                    throw new Exception("A conta a pagar informada não existe ou não está paga.");
                }

                recibo = new Data.RelModel.Recibo();
                recibo.IdContaPagar    = idContaPagar;
                recibo.IdLoja          = contaPg[0].IdLoja.GetValueOrDefault(0);
                recibo.Total           = contaPg[0].ValorPago;
                recibo.Cliente         = FornecedorDAO.Instance.GetElementByPrimaryKey(contaPg[0].IdFornec.GetValueOrDefault(0)).Nome;
                recibo.MotivoReferente = contaPg[0].DescrPlanoConta;

                report.ReportPath = Glass.Data.Helper.Utils.CaminhoRelatorio("Relatorios/Genericos/ModeloRecibo/rptRecibo{0}.rdlc");
                recibo.Tipo       = Glass.Conversoes.StrParaInt(Request["referente"]);

                report.DataSources.Add(new ReportDataSource("Recibo", new Data.RelModel.Recibo[] { recibo }));

                break;
            }
            }

            // Atribui parâmetros ao relatório
            lstParam.Add(new ReportParameter("Logotipo", Logotipo.GetReportLogoColor(PageRequest)));
            lstParam.Add(new ReportParameter("TextoRodape", Geral.TextoRodapeRelatorio(login.Nome)));
            lstParam.Add(new ReportParameter("CorRodape", "DimGray"));

            return(null);
        }