예제 #1
0
        public static byte[] GetBytesRelatorio(HttpContext context, uint idOC, out Warning[] warnings, out string[] streamids,
                                               out string mimeType, out string encoding, out string extension)
        {
            LocalReport            report   = new LocalReport();
            List <ReportParameter> lstParam = new List <ReportParameter>();

            report.ReportPath = "Relatorios/OrdemCarga/rptOrdemCarga.rdlc";
            report.ReportPath = context.Server.MapPath("~/" + report.ReportPath);

            report.SubreportProcessing += new SubreportProcessingEventHandler(report_SubreportProcessing);

            lstParam.Add(new ReportParameter("ExibirEnderecoCliente", OrdemCargaConfig.ExibirEnderecoClienteRptOC.ToString()));

            var oc         = OrdemCargaDAO.Instance.GetForRptInd(idOC);
            var pedidosOC  = oc[0].Pedidos.ToArray();
            var produtosOC = ProdutosPedidoDAO.Instance.GetByPedidosForOcRpt(oc[0].IdOrdemCarga, oc[0].IdsPedidos);

            report.DataSources.Add(new ReportDataSource("OrdemCarga", oc));
            report.DataSources.Add(new ReportDataSource("Pedido", pedidosOC));
            report.DataSources.Add(new ReportDataSource("ProdutosPedido", produtosOC));

            // Atribui parâmetros ao relatório
            report.EnableExternalImages = true;

            lstParam.Add(new ReportParameter("Logotipo", Logotipo.GetReportLogo(context.Request)));
            lstParam.Add(new ReportParameter("TextoRodape", "WebGlass v" + Geral.ObtemVersao() + " - Relatório gerado automaticamente  em " +
                                             DateTime.Now.ToString("dd/MM/yyyy HH:mm")));
            lstParam.Add(new ReportParameter("CorRodape", "DimGray"));

            report.SetParameters(lstParam);

            return(report.Render("PDF", null, out mimeType, out encoding, out extension, out streamids, out warnings));
        }
예제 #2
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)
        {
            uint idPedido            = Glass.Conversoes.StrParaUint(Request["idPedido"]);
            TipoRelatorioPedido tipo = !String.IsNullOrEmpty(Request["tipo"]) ? (TipoRelatorioPedido)Glass.Conversoes.StrParaInt(Request["tipo"]) : TipoRelatorioPedido.Normal;

            Glass.Data.Model.Pedido pedido     = PedidoDAO.Instance.GetForRpt(idPedido.ToString(), tipo == TipoRelatorioPedido.Pcp)[0];
            ProdutosPedido[]        prodPedido = ProdutosPedidoDAO.Instance.GetForRpt(idPedido, tipo == TipoRelatorioPedido.Pcp, false);
            var             parcPedido         = ParcelasPedidoDAO.Instance.GetForRpt(idPedido);
            PedidoReposicao pedidoRepos        = PedidoReposicaoDAO.Instance.GetByPedido(idPedido);

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

            lstParam.Add(new ReportParameter("Logotipo", Logotipo.GetReportLogo(PageRequest, pedido.IdLoja)));
            lstParam.Add(new ReportParameter("TipoRpt", ((int)tipo).ToString()));

            report.DataSources.Add(new ReportDataSource("Pedido", new Glass.Data.Model.Pedido[] { pedido }));
            report.DataSources.Add(new ReportDataSource("PedidoReposicao", new PedidoReposicao[] { pedidoRepos }));
            report.DataSources.Add(new ReportDataSource("ParcelasPedido", parcPedido));
            report.DataSources.Add(new ReportDataSource("ProdutosReposicao", ProdutosReposicaoDAO.GetByProdutosPedido(prodPedido)));
            report.DataSources.Add(new ReportDataSource("TipoPerda", TipoPerdaDAO.Instance.GetByPedidoRepos(idPedido)));
            report.DataSources.Add(new ReportDataSource("TipoPerdaRepos", new TipoPerdaRepos[] { TipoPerdaReposDAO.GetByPedidoRepos(idPedido) }));

            return(null);
        }
예제 #3
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 = "")
        {
            List <OrcamentoRapido> lstOrca = new List <OrcamentoRapido>();
            OrcamentoRapido        orca;

            foreach (string item in outrosParametros)
            {
                string[] campos = item.Split('\t');

                orca               = new OrcamentoRapido();
                orca.Descricao     = campos[0];
                orca.Qtde          = Glass.Conversoes.StrParaInt(campos[1]);
                orca.Servicos      = campos[5];
                orca.ValorUnitario = Glass.Conversoes.StrParaDecimal(campos[6]);
                orca.Total         = Glass.Conversoes.StrParaDecimal(campos[7]);

                if (!String.IsNullOrEmpty(campos[2]))
                {
                    orca.Altura = float.Parse(campos[2], System.Globalization.NumberStyles.Any);
                }

                if (!String.IsNullOrEmpty(campos[3]))
                {
                    orca.Largura = Glass.Conversoes.StrParaInt(campos[3]);
                }

                if (!String.IsNullOrEmpty(campos[4]))
                {
                    string totM2     = campos[4];
                    string totM2Calc = totM2.IndexOf(" (") > -1 ? totM2.Substring(totM2.IndexOf(" (") + 2) : "0";

                    if (totM2.IndexOf(")") > -1)
                    {
                        totM2     = totM2.Substring(0, totM2.IndexOf(" ("));
                        totM2Calc = totM2Calc.Substring(0, totM2Calc.Length - 1);
                    }

                    orca.TotM2     = Glass.Conversoes.StrParaDouble(totM2);
                    orca.TotM2Calc = Glass.Conversoes.StrParaDouble(totM2Calc);
                }

                lstOrca.Add(orca);
            }

            report.ReportPath = "Relatorios/rptOrcamentoRapido.rdlc";
            report.DataSources.Add(new ReportDataSource("OrcamentoRapido", lstOrca));

            lstParam.Add(new ReportParameter("Logotipo", Logotipo.GetReportLogo(PageRequest)));
            lstParam.Add(new ReportParameter("TextoRodape", Geral.TextoRodapeRelatorio(login.Nome)));
            lstParam.Add(new ReportParameter("CorRodape", "DimGray"));

            return(null);
        }
예제 #4
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)
        {
            Medicao medicao = MedicaoDAO.Instance.GetForRptUnico(Glass.Conversoes.StrParaUint(Request["idMedicao"]));

            // Define qual relatório será exibido
            report.ReportPath = Glass.Data.Helper.Utils.CaminhoRelatorio("Relatorios/ModeloMedicao/rptMedicao{0}.rdlc");

            // Atribui medição ao relatório
            report.DataSources.Add(new ReportDataSource("Medicao", new Medicao[] { medicao }));

            lstParam.Add(new ReportParameter("Logotipo", Logotipo.GetReportLogo(PageRequest)));

            return(null);
        }
예제 #5
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)
        {
            WebGlass.Business.ConhecimentoTransporte.Entidade.Cte cte = WebGlass.Business.ConhecimentoTransporte.Fluxo.BuscarCte.Instance.
                                                                        GetCte(Glass.Conversoes.StrParaUint(Request["idCte"]));

            // Verifica qual relatório será chamado
            switch (Request["rel"])
            {
            case "CteTerceiros":
                report.ReportPath = "Relatorios/CTe/rptCTeTerceiros.rdlc";
                report.DataSources.Add(new ReportDataSource("Cte", new[] { cte }));
                report.DataSources.Add(new ReportDataSource("CobrancaDuplCte", cte.ObjCobrancaCte.ObjCobrancaDuplCte));
                report.DataSources.Add(new ReportDataSource("CobrancaCte", new[] { cte.ObjCobrancaCte }));
                report.DataSources.Add(new ReportDataSource("SeguroCte", new[] { cte.ObjSeguroCte }));
                report.DataSources.Add(new ReportDataSource("EntregaCte", new[] { cte.ObjEntregaCte }));
                report.DataSources.Add(new ReportDataSource("InfoCte", new[] { cte.ObjInfoCte }));
                report.DataSources.Add(new ReportDataSource("InfoCargaCte", cte.ObjInfoCte.ObjInfoCargaCte));
                report.DataSources.Add(new ReportDataSource("ImpostoCte", cte.ObjImpostoCte));
                report.DataSources.Add(new ReportDataSource("ConhecimentoTransporteRodoviario", new[] { cte.ObjConhecimentoTransporteRodoviario }));
                report.DataSources.Add(new ReportDataSource("ComplCte", new[] { cte.ObjComplCte }));
                report.DataSources.Add(new ReportDataSource("ParticipanteCte", cte.ObjParticipanteCte));
                report.DataSources.Add(new ReportDataSource("EfdCte", new[] { cte.ObjEfdCte }));
                report.DataSources.Add(new ReportDataSource("NfeCte", WebGlass.Business.ConhecimentoTransporte.Fluxo.BuscarNotaFiscalCte.Instance.GetForRpt(cte.IdCte)));
                break;
            }

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

            return(null);
        }
예제 #6
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)
        {
            List <RetalhoAssociado> lstRetalho = new List <RetalhoAssociado>();
            RetalhoAssociado        retalho;

            foreach (string item in outrosParametros)
            {
                string[] campos = item.Split('\t');

                retalho = new RetalhoAssociado()
                {
                    IdPedido         = Glass.Conversoes.StrParaUint(campos[0]),
                    DescricaoProduto = campos[1],
                    LarguraAltura    = campos[2],
                    TotM             = Glass.Conversoes.StrParaFloat(campos[3]),
                    Proc             = campos[4],
                    Apl        = campos[5],
                    Qtde       = Glass.Conversoes.StrParaInt(campos[6]),
                    NumeroPeca = Glass.Conversoes.StrParaInt(campos[7]),
                    EtiquetaRetalhoSelecionado = campos.Length > 9 ? campos[8] : null,
                    RetalhoSelecionado         = campos.Length > 9 ? campos[9] : campos[8]
                };

                lstRetalho.Add(retalho);
            }

            report.ReportPath = "Relatorios/rptRetalhosAssociados.rdlc";
            report.DataSources.Add(new ReportDataSource("RetalhoAssociado", lstRetalho));

            lstParam.Add(new ReportParameter("Logotipo", Logotipo.GetReportLogo(PageRequest)));
            lstParam.Add(new ReportParameter("TextoRodape", Geral.TextoRodapeRelatorio(login.Nome)));
            lstParam.Add(new ReportParameter("CorRodape", "DimGray"));

            return(null);
        }
예제 #7
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)
        {
            // Verifica qual relatório será chamado
            switch (Request["rel"])
            {
            case "GraficoProducaoPerdaDiaria":

                report.ReportPath = (Request["tipoGrafico"] == "1") ?
                                    "Relatorios/Producao/rptGraficoProdPerdaDiaria.rdlc" : "Relatorios/Producao/rptGraficoProdPerdaProduto.rdlc";

                RecebimentoImagem imgGrafico;

                if (Request["tipoGrafico"] == "1")
                {
                    imgGrafico        = new RecebimentoImagem();
                    imgGrafico.Buffer = Glass.Conversoes.DecodificaPara64(Request["grfProdAcumulada"]);
                    report.DataSources.Add(new ReportDataSource("grafProdAcumulada", new RecebimentoImagem[1] {
                        imgGrafico
                    }));

                    imgGrafico        = new RecebimentoImagem();
                    imgGrafico.Buffer = Glass.Conversoes.DecodificaPara64(Request["grfIndicePerda"]);
                    report.DataSources.Add(new ReportDataSource("grafIndicePerda", new RecebimentoImagem[1] {
                        imgGrafico
                    }));

                    imgGrafico        = new RecebimentoImagem();
                    imgGrafico.Buffer = Glass.Conversoes.DecodificaPara64(Request["grfProdDiaria"]);
                    report.DataSources.Add(new ReportDataSource("grafProdDiaria", new RecebimentoImagem[1] {
                        imgGrafico
                    }));

                    imgGrafico        = new RecebimentoImagem();
                    imgGrafico.Buffer = Glass.Conversoes.DecodificaPara64(Request["grfPerdaMensal"]);
                    report.DataSources.Add(new ReportDataSource("grafPerdaMensal", new RecebimentoImagem[1] {
                        imgGrafico
                    }));

                    imgGrafico        = new RecebimentoImagem();
                    imgGrafico.Buffer = Glass.Conversoes.DecodificaPara64(Request["grfPerdaSetores"]);
                    report.DataSources.Add(new ReportDataSource("grafPerdaSetores", new RecebimentoImagem[1] {
                        imgGrafico
                    }));
                }
                else if (Request["tipoGrafico"] == "2")
                {
                    imgGrafico        = new RecebimentoImagem();
                    imgGrafico.Buffer = Glass.Conversoes.DecodificaPara64(Request["grf10mm"]);
                    report.DataSources.Add(new ReportDataSource("graf10mm", new RecebimentoImagem[1] {
                        imgGrafico
                    }));

                    imgGrafico        = new RecebimentoImagem();
                    imgGrafico.Buffer = Glass.Conversoes.DecodificaPara64(Request["grf8mm"]);
                    report.DataSources.Add(new ReportDataSource("graf8mm", new RecebimentoImagem[1] {
                        imgGrafico
                    }));

                    imgGrafico        = new RecebimentoImagem();
                    imgGrafico.Buffer = Glass.Conversoes.DecodificaPara64(Request["grf6mm"]);
                    report.DataSources.Add(new ReportDataSource("graf6mm", new RecebimentoImagem[1] {
                        imgGrafico
                    }));

                    report.DataSources.Add(new ReportDataSource("GraficoProdPerdaDiaria",
                                                                GraficoProdPerdaDiariaDAO.Instance.GetPerdaProduto(Convert.ToInt32(Request["setor"]),
                                                                                                                   Request["incluirTrocaDevolucao"] != null && Request["incluirTrocaDevolucao"].ToLower() == "true", Request["mes"], Request["ano"])));
                }

                break;

            case "PlanilhaMetragem":
                var agruparPecas = Request["agruparPecas"] == "true";
                report.ReportPath = agruparPecas ? "Relatorios/Producao/rptPlanilhaMetragemAgrupada.rdlc" : "Relatorios/Producao/rptPlanilhaMetragem.rdlc";

                var PlanilhaMetragem_idPedido    = !String.IsNullOrEmpty(Request["idPedido"]) ? Glass.Conversoes.StrParaUint(Request["idPedido"]) : 0;
                var PlanilhaMetragem_idFunc      = !String.IsNullOrEmpty(Request["idFunc"]) ? Glass.Conversoes.StrParaUint(Request["idFunc"]) : 0;
                var PlanilhaMetragem_idCliente   = !String.IsNullOrEmpty(Request["idCliente"]) ? Glass.Conversoes.StrParaUint(Request["idCliente"]) : 0;
                var PlanilhaMetragem_idImpressao = !String.IsNullOrEmpty(Request["idImpressao"]) ? Glass.Conversoes.StrParaUint(Request["idImpressao"]) : 0;

                report.DataSources.Add(new ReportDataSource("Metragem", MetragemDAO.Instance.GetForRpt(PlanilhaMetragem_idPedido,
                                                                                                       PlanilhaMetragem_idImpressao, PlanilhaMetragem_idFunc, Request["codCliente"], PlanilhaMetragem_idCliente, Request["nomeCliente"],
                                                                                                       Request["dataIni"], Request["dataFim"], Request["dataIniEnt"], Request["dataFimEnt"],
                                                                                                       Glass.Conversoes.StrParaInt(Request["situacao"]), Glass.Conversoes.StrParaUint(Request["idSetor"]), Request["setoresPosteriores"] == "true",
                                                                                                       Request["idsRotas"], Glass.Conversoes.StrParaUint(Request["idTurno"]))));
                break;

            case "ProducaoForno":
                report.ReportPath = "Relatorios/Producao/rptProducaoForno.rdlc";
                report.DataSources.Add(new ReportDataSource("ProducaoForno", ProducaoFornoDAO.Instance.GetForRpt(Request["dataIni"], Request["dataFim"])));
                break;

            case "ProducaoSituacao":
                report.ReportPath = "Relatorios/Producao/rptProducaoSituacao.rdlc";
                uint ProducaoSituacao_idFunc   = Glass.Conversoes.StrParaUint(Request["idFunc"]);
                uint ProducaoSituacao_idPedido = !String.IsNullOrEmpty(Request["idPedido"]) ? Glass.Conversoes.StrParaUint(Request["idPedido"]) : 0;
                report.DataSources.Add(new ReportDataSource("ProducaoSituacao", ProducaoSituacaoDAO.Instance.GetForRpt(ProducaoSituacao_idFunc, ProducaoSituacao_idPedido, Request["dataIni"], Request["dataFim"])));
                lstParam.Add(new ReportParameter("LiberarPedido", PedidoConfig.LiberarPedido.ToString()));
                lstParam.Add(new ReportParameter("Agrupar", !String.IsNullOrEmpty(Request["agrupar"]) ? (Request["agrupar"].ToLower() == "true").ToString() : "false"));
                break;

            case "ProducaoSituacaoData":
                report.ReportPath = "Relatorios/Producao/rptProducaoSituacaoData.rdlc";
                uint ProducaoSituacaoData_idPedido  = !String.IsNullOrEmpty(Request["idPedido"]) ? Glass.Conversoes.StrParaUint(Request["idPedido"]) : 0;
                uint ProducaoSituacaoData_idCliente = !String.IsNullOrEmpty(Request["idCliente"]) ? Glass.Conversoes.StrParaUint(Request["idCliente"]) : 0;
                report.DataSources.Add(new ReportDataSource("ProducaoSituacaoData", ProducaoSituacaoDataDAO.Instance.GetForRpt(Request["dataIni"], Request["dataFim"], ProducaoSituacaoData_idPedido, ProducaoSituacaoData_idCliente, Request["nomeCliente"])));
                lstParam.Add(new ReportParameter("LiberarPedido", PedidoConfig.LiberarPedido.ToString()));
                lstParam.Add(new ReportParameter("ExportarExcel", (Request["exportarExcel"] == "true").ToString().ToLower()));
                break;

            case "ProducaoFornoResumo":
                report.ReportPath = "Relatorios/Producao/rptProducaoFornoResumo.rdlc";
                report.DataSources.Add(new ReportDataSource("ProducaoFornoResumo", ProducaoFornoResumoDAO.Instance.GetForRpt(Glass.Conversoes.StrParaInt(Request["setor"]),
                                                                                                                             DateTime.Parse(Request["dtIni"]), DateTime.Parse(Request["dtFim"]), Request["idTurno"].StrParaInt())));
                break;

            case "RelacaoBoxProducao":
                report.ReportPath = "Relatorios/Producao/rptRelacaoBoxProducao.rdlc";
                report.DataSources.Add(new ReportDataSource("RelacaoBoxProducao", RelacaoBoxProducaoDAO.Instance.GetForRpt(Request["data"])));
                break;

            case "Perdas":
            {
                report.ReportPath = "Relatorios/Producao/rptPerdas.rdlc";

                var idFuncPerda = !string.IsNullOrEmpty(Request["idFuncPerda"]) ? Request["idFuncPerda"].StrParaUint() : 0;
                var idPedido    = !string.IsNullOrEmpty(Request["idPedido"]) ? Request["idPedido"].StrParaUint() : 0;
                var idCliente   = !string.IsNullOrEmpty(Request["idCliente"]) ? Request["idCliente"].StrParaUint() : 0;

                lstParam.Add(new ReportParameter("Agrupar", Request["agrupar"].StrParaInt().ToString()));

                report.DataSources.Add(new ReportDataSource("ProdutoPedidoProducao", ProdutoPedidoProducaoDAO.Instance.GetForRptPerda(idFuncPerda, idPedido, idCliente, Request["nomeCliente"],
                                                                                                                                      Request["dataIni"], Request["dataFim"], Request["idsSetor"])));
                break;
            }

            case "PerdasRepos":
            {
                report.ReportPath = Data.Helper.Utils.CaminhoRelatorio("Relatorios/Producao/rptPerdasRepos{0}.rdlc");

                var idFuncPerda = !string.IsNullOrEmpty(Request["idFuncPerda"]) ? Request["idFuncPerda"].StrParaUint() : 0;
                var idLoja      = !string.IsNullOrEmpty(Request["idLoja"]) ? Request["idLoja"].StrParaUint() : 0;
                var idPedido    = !string.IsNullOrEmpty(Request["idPedido"]) ? Request["idPedido"].StrParaUint() : 0;
                var idCliente   = !string.IsNullOrEmpty(Request["idCliente"]) ? Request["idCliente"].StrParaUint() : 0;

                lstParam.Add(new ReportParameter("ExibirValorCustoVenda", PCPConfig.ExibirCustoVendaRelatoriosProducao.ToString()));

                report.DataSources.Add(new ReportDataSource("ProdutoPedidoProducao",
                                                            ProdutoPedidoProducaoDAO.Instance.GetForRptPerdaReposPeca(idFuncPerda, idPedido, idLoja, idCliente,
                                                                                                                      Request["nomeCliente"], Request["codInterno"], Request["descrProd"], Request["dataIni"], Request["dataFim"],
                                                                                                                      Request["idSetor"], Glass.Conversoes.StrParaUint(Request["turno"]), Request["idTipoPerda"],
                                                                                                                      Glass.Conversoes.StrParaInt(Request["idCorVidro"]), Glass.Conversoes.StrParaFloat(Request["espessura"]), Glass.Conversoes.StrParaUint(Request["numeroNFe"]))));
                break;
            }

            case "ProducaoContagem":
            {
                #region Declaração de variáveis

                report.ReportPath = "Relatorios/Producao/rptProducaoContagem.rdlc";
                var aguardandoEntradaEstoque = Request["aguardEntrEstoque"] == "true";
                var aguardandoExpedicao      = Request["aguardExpedicao"] == "true";
                var altura                      = Request["altura"].StrParaInt();
                var codigoEtiqueta              = Request["numEtiqueta"];
                var codigoPedidoCliente         = Request["codCliente"];
                var dataConfirmacaoPedidoFim    = Request["dataFimConfPed"].StrParaDate();
                var dataConfirmacaoPedidoInicio = Request["dataIniConfPed"].StrParaDate();
                var dataEntregaFim              = Request["dataFimEnt"].StrParaDate();
                var dataEntregaInicio           = Request["dataIniEnt"].StrParaDate();
                var dataFabricaFim              = Request["dataFimFabr"].StrParaDate();
                var dataFabricaInicio           = Request["dataIniFabr"].StrParaDate();
                var dataLeituraFim              = Request["dataFim"].StrParaDate();
                var dataLeituraInicio           = Request["dataIni"].StrParaDate();
                var espessura                   = Request["espessura"].StrParaInt();
                var fastDelivery                = Request["fastDelivery"].StrParaInt();
                var idCarregamento              = Request["idCarregamento"].StrParaInt();
                var idCliente                   = Request["idCliente"].StrParaInt();
                var idFuncionario               = Request["idFunc"].StrParaInt();
                var idImpressao                 = Request["idImpressao"].StrParaInt();
                var idPedido                    = Request["idPedido"].StrParaInt();
                var idsAplicacao                = Request["idsApl"]?.Split(',')?.Select(f => f.StrParaInt()) ?? new List <int>();
                var idSetor                     = Request["idSetor"].StrParaInt();
                var idsProcesso                 = Request["idsProc"]?.Split(',')?.Select(f => f.StrParaInt()) ?? new List <int>();
                var idsRota                     = Request["codRota"]?.Split(',')?.Select(f => f.StrParaInt()) ?? new List <int>();
                var idsSubgrupo                 = Request["idsSubgrupos"]?.Split(',')?.Select(f => f.StrParaInt()) ?? new List <int>();
                var largura                     = Request["largura"].StrParaInt();
                var nomeCliente                 = Request["nomeCliente"];
                var pecasProducaoCanceladas     = Request["pecasProdCanc"]?.Split(',')?.Select(f => f.StrParaInt()) ?? new List <int>();
                var situacoes                   = Request["situacao"]?.Split(',')?.Select(f => f.StrParaInt()) ?? new List <int>();
                var situacaoPedido              = Request["situacaoPedido"].StrParaInt();
                var tipoEntrega                 = Request["tipoEntrega"].StrParaInt();
                var tipoSituacao                = Request["tiposSituacoes"].StrParaInt();
                var tiposPedido                 = Request["tipoPedido"]?.Split(',')?.Select(f => f.StrParaInt()) ?? new List <int>();

                #endregion

                var producoesContagem = ProducaoContagemDAO.Instance.PesquisarProducaoContagemRelatorio(aguardandoEntradaEstoque, aguardandoExpedicao, altura, codigoEtiqueta,
                                                                                                        codigoPedidoCliente, dataConfirmacaoPedidoFim, dataConfirmacaoPedidoInicio, dataEntregaFim, dataEntregaInicio, dataFabricaFim, dataFabricaInicio, dataLeituraFim,
                                                                                                        dataLeituraInicio, espessura, fastDelivery, idCarregamento, idCliente, idFuncionario, idImpressao, idPedido, idsAplicacao, idSetor, idsProcesso, idsRota, idsSubgrupo,
                                                                                                        largura, nomeCliente, pecasProducaoCanceladas, situacaoPedido, situacoes, tipoEntrega, tipoSituacao, tiposPedido);

                report.DataSources.Add(new ReportDataSource("ProducaoContagem", producoesContagem));
                break;
            }

            case "ProducaoData":
                report.ReportPath = "Relatorios/Producao/rptProducaoData.rdlc";
                report.DataSources.Add(new ReportDataSource("ProducaoData", ProducaoDataDAO.Instance.GetForRpt(Glass.Conversoes.StrParaInt(Request["tipoData"]), Request["dataIni"], Request["dataFim"], Glass.Conversoes.StrParaUint(Request["idProcesso"]),
                                                                                                               Glass.Conversoes.StrParaUint(Request["idAplicacao"]), Request["tipo"], Request["situacao"], Request["naoCortados"] == "true", Request["codInternoMP"], Request["descrMP"])));
                break;

            case "PecasPendentes":
                report.ReportPath = "Relatorios/Producao/rptPecasPendentes.rdlc";

                var  dtIni            = Request["dataIni"].ConverteData().GetValueOrDefault(DateTime.Now);
                var  dtFim            = Request["dataFim"].ConverteData().GetValueOrDefault(DateTime.Now);
                bool usarProximoSetor = false;
                bool.TryParse(Request["usarProximoSetor"], out usarProximoSetor);

                // Recupera a relação da peças pendentes
                var lstPcaPend = PecasPendentesDAO.Instance.GetListForRpt
                                     (Request["tipoPeriodo"], usarProximoSetor, dtIni, dtFim);

                string descricaoPeriodo = null;

                switch (Request["tipoPeriodo"])
                {
                case "PeriodoEntrega":
                    descricaoPeriodo = "Período (Entrega)";
                    break;

                case "PeriodoFabrica":
                    descricaoPeriodo = "Período (Fábrica)";
                    break;
                }
                lstParam.Add(new ReportParameter("UsarProximoSetor", usarProximoSetor ? "Próximo Setor a ser efetuado a peça" : ""));
                lstParam.Add(new ReportParameter("Periodo", descricaoPeriodo + " de " + Request["dataIni"] + " à " + Request["dataFim"]));
                report.DataSources.Add(new ReportDataSource("PecasPendentes", lstPcaPend));
                break;

            case "ProducaoDiaria":
                report.ReportPath = "Relatorios/Producao/rptProducaoDiaria.rdlc";
                lstParam.Add(new ReportParameter("Data", Request["data"]));
                var dados = WebGlass.Business.ProducaoDiariaRealizada.Fluxo.BuscarEValidar.Instance.ObtemDadosProducao(DateTime.Parse(Request["data"]));
                if (dados.Count > 0)
                {
                    dados[0].AlteraImagemGrafico(Request["imagem"]);
                }
                report.DataSources.Add(new ReportDataSource("ProducaoDiariaRealizada", dados));
                break;

            case "CapacidadeProducaoPedido":
                report.ReportPath = "Relatorios/Producao/rptPedidosCapacidadeProducao.rdlc";
                report.DataSources.Add(new ReportDataSource("CapacidadeProducaoPedido", CapacidadeProducaoPedidoDAO.Instance.ObtemRelatorioPedidosCapacidadeProducao(
                                                                Request["data"].StrParaDate().GetValueOrDefault(), Request["horaInicial"], Request["horaFinal"], Request["idSetor"].StrParaUint())));
                break;

            case "RoteiroProducao":
                report.ReportPath = "Relatorios/Producao/rptRoteiroProducao.rdlc";
                report.DataSources.Add(new ReportDataSource("RoteiroProducao", RoteiroProducaoDAO.Instance.ObtemParaRelatorio(0,
                                                                                                                              Glass.Conversoes.StrParaUint(Request["grupoProd"]), Glass.Conversoes.StrParaUint(Request["subgrupoProd"]), Glass.Conversoes.StrParaUint(Request["processo"]))));
                break;

            default:
                Response.Write("Nenhum relatório especificado.");
                return(null);
            }

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

            return(null);
        }
예제 #8
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)
        {
            // Verifica qual relatório será chamado
            switch (Request["rel"])
            {
            case "imagemProjeto":
                report.ReportPath = NomeArquivoRelatorioImagemProjeto;

                // Identifica se foi selecionado para imprimir alumínios e ferragens.
                bool imprAlumFerr = Request["imprAlumFerr"] == "true";

                uint                       idProjeto   = !String.IsNullOrEmpty(Request["idProjeto"]) ? Glass.Conversoes.StrParaUint(Request["idProjeto"]) : 0;
                var                        projeto     = idProjeto > 0 ? ProjetoDAO.Instance.GetElement(idProjeto) : new Data.Model.Projeto();
                ItemProjeto[]              itemProjeto = ItemProjetoDAO.Instance.GetByString(Request["idItemProjeto"]);
                List <PecaItemProjeto>     lstPeca     = new List <PecaItemProjeto>();
                List <MaterialItemProjeto> lstMaterial = new List <MaterialItemProjeto>();
                List <Imagem>              lstImagens  = new List <Imagem>();
                List <MedidaItemProjeto>   lstMedidas  = new List <MedidaItemProjeto>();

                // Busca o pedido, se houver, relacionado à este projeto
                projeto.IdPedido = ProjetoDAO.Instance.GetIdPedidoByProjeto(idProjeto);

                if (projeto.IdPedido == 0)
                {
                    // Tenta buscar o pedido pelo item projeto.
                    if (itemProjeto[0].IdPedido > 0)
                    {
                        projeto.IdPedido = itemProjeto[0].IdPedido.Value;
                    }
                    else if (itemProjeto[0].IdPedidoEspelho > 0)
                    {
                        projeto.IdPedido = itemProjeto[0].IdPedidoEspelho.Value;
                    }
                    else if (itemProjeto[0].IdOrcamento > 0)
                    {
                        projeto.IdPedido = PedidoDAO.Instance.GetIdPedidoByOrcamento(itemProjeto[0].IdOrcamento.Value);
                    }
                }

                if (projeto.IdPedido > 0)
                {
                    var idCliente = PedidoDAO.Instance.ObtemIdCliente(null, projeto.IdPedido);

                    projeto.NomeCliente  = ClienteDAO.Instance.GetNome(idCliente);
                    projeto.Rota         = RotaDAO.Instance.ObtemCodRota(idCliente);
                    projeto.NomeFunc     = FuncionarioDAO.Instance.GetNome(PedidoDAO.Instance.ObtemIdFunc(null, projeto.IdPedido));
                    projeto.DataCad      = PedidoDAO.Instance.ObtemDataPedido(null, projeto.IdPedido);
                    projeto.TipoEntrega  = PedidoDAO.Instance.ObtemTipoEntrega(null, projeto.IdPedido);
                    projeto.Obs          = PedidoDAO.Instance.ObtemObs(null, projeto.IdPedido);
                    projeto.ObsLiberacao = PedidoDAO.Instance.ObtemObsLiberacao(projeto.IdPedido);
                }

                for (int i = 0; i < itemProjeto.Length; i++)
                {
                    var           pcp    = itemProjeto[i].IdPedidoEspelho.HasValue;
                    ProjetoModelo modelo = ProjetoModeloDAO.Instance.GetElementByPrimaryKey(itemProjeto[i].IdProjetoModelo);
                    lstPeca.AddRange(PecaItemProjetoDAO.Instance.GetByItemProjetoRpt(itemProjeto[i].IdItemProjeto, itemProjeto[i].IdProjetoModelo, pcp));

                    // Caso a imagem da peça tenha sido editada então a impressão não deve exibir se a peça possui arquivo de otimização.
                    for (var x = 0; x < lstPeca.Count; x++)
                    {
                        var pecaPossuiFiguraAssociada  = PecaItemProjetoDAO.Instance.PossuiFiguraAssociada(null, lstPeca[x].IdPecaItemProj);
                        var pecaPossuiEdicaoCadProject = lstPeca[x].IdProdPed != null ? lstPeca[x].ImagemEditada && ProdutosPedidoEspelhoDAO.Instance.PossuiEdicaoCadProject((uint)lstPeca[x].IdProdPed, pcp):false;
                        var produtoPossuiImagemEditada = pcp && ProdutosPedidoEspelhoDAO.Instance.PossuiImagemAssociada(null, (uint)lstPeca[x]?.IdProdPed.GetValueOrDefault());

                        if (lstPeca[x].IdArquivoMesaCorte > 0 && lstPeca[x].TipoArquivoMesaCorte > 0)
                        {
                            if ((produtoPossuiImagemEditada || lstPeca[x].ImagemEditada || pecaPossuiFiguraAssociada) &&
                                lstPeca[x].TipoArquivoMesaCorte != (int)TipoArquivoMesaCorte.FMLBasico && !pecaPossuiEdicaoCadProject)
                            {
                                lstPeca[x].IdArquivoMesaCorte   = null;
                                lstPeca[x].TipoArquivoMesaCorte = null;
                            }
                        }
                    }

                    int atual = lstMaterial.Count;
                    lstMaterial.AddRange(MaterialItemProjetoDAO.Instance.GetForRptItemProjeto(itemProjeto[i].IdItemProjeto, false));
                    int numeroMateriais = lstMaterial.Count - atual;

                    // Verifica se os materiais do itemProjeto deverão ser impressos também
                    itemProjeto[i].MostrarMateriais = imprAlumFerr && numeroMateriais > 0;

                    // Pega a imagem do projeto com as medidas já desenhadas e o modelo da imagem
                    if (modelo.IdGrupoModelo != (uint)UtilsProjeto.GrupoModelo.Outros)
                    {
                        itemProjeto[i].ImagemProjeto = Data.Helper.Utils.GetImageFromRequest(UtilsProjeto.GetFiguraAssociadaUrl(itemProjeto[i].IdItemProjeto, modelo));

                        // Salva a imagem na memória, recupera os bytes e os salva na propriedade ImagemProjetoModelo.
                        // Chamado 50315 - o nome da imagem deve ser recuperado dentro do try para não retornar erro quando o mesmo for null.
                        try
                        {
                            var arquivo = System.IO.Path.Combine(Glass.Data.Helper.Utils.ModelosProjetoPath(Context), modelo.NomeFigura);
                            if (System.IO.File.Exists(arquivo))
                            {
                                using (var image = new Bitmap(arquivo))
                                    using (var ms = new System.IO.MemoryStream())
                                    {
                                        image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
                                        itemProjeto[i].ImagemProjetoModelo = ms.ToArray();
                                    }
                            }
                        }
                        catch { }

                        itemProjeto[i].ImagemProjetoModelo = Data.Helper.Utils.GetImageFromRequest("../../Handlers/LoadImage.ashx?path=" + Data.Helper.Utils.ModelosProjetoPath(Context) +
                                                                                                   modelo.NomeFigura + "&altura=" + modelo.AlturaFigura + "&largura=" + modelo.LarguraFigura);
                    }

                    // Copia o idPedidoEspelho para o idPedido
                    if (itemProjeto[i].IdPedido == null)
                    {
                        itemProjeto[i].IdPedido = itemProjeto[i].IdPedidoEspelho;
                    }

                    lstImagens.AddRange(ImagemDAO.Instance.GetPecasAlteradas(itemProjeto[i].IdItemProjeto,
                                                                             Glass.Configuracoes.ProjetoConfig.RelatorioImagemProjeto.PercentualTamanhoImagemRelatorio));
                    lstMedidas.AddRange(MedidaItemProjetoDAO.Instance.GetListByItemProjeto(itemProjeto[i].IdItemProjeto));
                }

                lstParam.Add(new ReportParameter("Pedido_PedCli", projeto.IdPedido > 0 ? PedidoDAO.Instance.ObtemPedCli(null, projeto.IdPedido) : string.Empty));
                lstParam.Add(new ReportParameter("FastDelivery", PedidoDAO.Instance.IsFastDelivery(null, projeto.IdPedido).ToString()));
                lstParam.Add(new ReportParameter("ExibirImagemModelo", (true).ToString()));
                lstParam.Add(new ReportParameter("CorObs", Glass.Configuracoes.ProjetoConfig.RelatorioImagemProjeto.CorObsNoRelatorio));
                lstParam.Add(new ReportParameter("TemEdicaoCadProject", "true"));
                lstParam.Add(new ReportParameter("ImagensPecasIndividuais", "true"));
                lstParam.Add(new ReportParameter("AgruparBeneficiamentos", PedidoConfig.RelatorioPedido.AgruparBenefRelatorio.ToString()));

                report.DataSources.Add(new ReportDataSource("Projeto", new Data.Model.Projeto[] { projeto }));
                report.DataSources.Add(new ReportDataSource("ItemProjeto", itemProjeto));
                report.DataSources.Add(new ReportDataSource("PecaItemProjeto", lstPeca.ToArray()));
                report.DataSources.Add(new ReportDataSource("MaterialItemProjeto", lstMaterial.ToArray()));
                report.DataSources.Add(new ReportDataSource("Imagem", lstImagens.ToArray()));
                report.DataSources.Add(new ReportDataSource("MedidaItemProjeto", lstMedidas.ToArray()));
                break;

            case "totaisProjeto":
                report.ReportPath = Data.Helper.Utils.CaminhoRelatorio("Relatorios/Projeto/rptTotaisProjeto{0}.rdlc");
                bool exibirCusto = UserInfo.GetUserInfo.TipoUsuario == (uint)Data.Helper.Utils.TipoFuncionario.Administrador ||
                                   UserInfo.GetUserInfo.TipoUsuario == (uint)Data.Helper.Utils.TipoFuncionario.Gerente;

                string titulo      = String.Empty;
                string nomeCliente = String.Empty;
                string tipoEntrega = String.Empty;
                float  taxaPrazo   = 0;

                uint idProjeto_Totais       = Glass.Conversoes.StrParaUint(Request["idProjeto"]);
                uint idOrcamento_Totais     = Glass.Conversoes.StrParaUint(Request["idOrcamento"]);
                uint idPedido_Totais        = Glass.Conversoes.StrParaUint(Request["idPedido"]);
                uint idPedidoEspelho_Totais = Glass.Conversoes.StrParaUint(Request["idPedidoEspelho"]);

                if (idProjeto_Totais > 0)
                {
                    var projeto_Totais = ProjetoDAO.Instance.GetElementByPrimaryKey(idProjeto_Totais);
                    titulo      = "Impressão Projeto N.º " + idProjeto_Totais;
                    nomeCliente = projeto_Totais.IdCliente > 0 ? ClienteDAO.Instance.GetNome(projeto_Totais.IdCliente.Value) : projeto_Totais.NomeCliente;
                    tipoEntrega = projeto_Totais.DescrTipoEntrega;
                    taxaPrazo   = projeto_Totais.TaxaPrazo;
                }
                else if (idOrcamento_Totais > 0)
                {
                    var orcamento_Totais = OrcamentoDAO.Instance.GetElementByPrimaryKey(idOrcamento_Totais);
                    titulo      = "Impressão dos Projetos do Orçamento N.º " + idOrcamento_Totais;
                    nomeCliente = orcamento_Totais.IdCliente > 0 ? orcamento_Totais.IdCliente + " - " + ClienteDAO.Instance.GetNome(orcamento_Totais.IdCliente.Value) : orcamento_Totais.NomeCliente;
                    tipoEntrega = orcamento_Totais.DescrTipoEntrega;
                    taxaPrazo   = orcamento_Totais.TaxaPrazo;
                }
                else if (idPedido_Totais > 0 || idPedidoEspelho_Totais > 0)
                {
                    Glass.Data.Model.Pedido pedido_Totais = PedidoDAO.Instance.GetElementByPrimaryKey(idPedido_Totais > 0 ? idPedido_Totais : idPedidoEspelho_Totais);
                    titulo = idPedido_Totais > 0 ? "Impressão dos Projetos do Pedido N.º " + idPedido_Totais :
                             "Impressão dos Projetos da Conferência do Pedido N.º " + idPedidoEspelho_Totais;
                    nomeCliente = pedido_Totais.IdCli + " - " + ClienteDAO.Instance.GetNome(pedido_Totais.IdCli);
                    tipoEntrega = pedido_Totais.DescrTipoEntrega;
                    taxaPrazo   = pedido_Totais.TaxaPrazo;
                }

                lstParam.Add(new ReportParameter("Titulo", titulo));
                lstParam.Add(new ReportParameter("NomeCliente", nomeCliente));
                lstParam.Add(new ReportParameter("TipoEntrega", tipoEntrega));
                lstParam.Add(new ReportParameter("TaxaPrazo", taxaPrazo.ToString()));
                lstParam.Add(new ReportParameter("ExibirCusto", exibirCusto.ToString()));
                lstParam.Add(new ReportParameter("ExibirJuros", "false"));
                lstParam.Add(new ReportParameter("ExibirLinhaVermelhaSaida", "true"));

                List <MaterialItemProjeto> lstMaterial_Totais = MaterialItemProjetoDAO.Instance.GetForRptTotaisItens(idProjeto_Totais,
                                                                                                                     idOrcamento_Totais, idPedido_Totais, idPedidoEspelho_Totais);

                report.DataSources.Add(new ReportDataSource("MaterialItemProjeto", lstMaterial_Totais.ToArray()));
                break;

            case "ImpressaoModeloProjeto":
                report.ReportPath = "Relatorios/Projeto/rptImpressaoModeloProjeto.rdlc";

                ProjetoModelo projModelo = ProjetoModeloDAO.Instance.GetByCodigo(Request["projModeloCod"]);

                if (projModelo.IdGrupoModelo != (uint)UtilsProjeto.GrupoModelo.Outros)
                {
                    // Salva a imagem na memória, recupera os bytes e os salva na propriedade ImagemProjetoModelo.
                    // Chamado 50315 - o nome da imagem deve ser recuperado dentro do try para não retornar erro quando o mesmo for null.
                    try
                    {
                        var arquivo = System.IO.Path.Combine(Glass.Data.Helper.Utils.ModelosProjetoPath(Context), projModelo.NomeFigura);
                        if (System.IO.File.Exists(arquivo))
                        {
                            using (var image = new Bitmap(arquivo))
                                using (var ms = new System.IO.MemoryStream())
                                {
                                    image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
                                    projModelo.ImagemProjetoModelo = ms.ToArray();
                                }
                        }
                    }
                    catch { }
                }

                report.DataSources.Add(new ReportDataSource("ProjetoModelo", new ProjetoModelo[] { projModelo }));

                PecaProjetoModelo[] pecasModelo = PecaProjetoModeloDAO.Instance.GetByModelo(projModelo.IdProjetoModelo).ToArray();
                report.DataSources.Add(new ReportDataSource("PecaProjetoModelo", pecasModelo));

                MaterialProjetoModelo[] materialModelo = MaterialProjetoModeloDAO.Instance.GetByProjetoModelo(projModelo.IdProjetoModelo, null).ToArray();
                report.DataSources.Add(new ReportDataSource("MaterialProjetoModelo", materialModelo));

                MedidaProjetoModelo[] medidaModelo = MedidaProjetoModeloDAO.Instance.GetByProjetoModelo(projModelo.IdProjetoModelo, false).ToArray();
                report.DataSources.Add(new ReportDataSource("MedidaProjetoModelo", medidaModelo));

                Imagem[] imagensPecasModelo = ImagemDAO.Instance.GetPecasModelo(projModelo.IdProjetoModelo);
                report.DataSources.Add(new ReportDataSource("Imagem", imagensPecasModelo));
                break;

            case "LstModeloProjeto":
                report.ReportPath = "Relatorios/Projeto/rptLstModeloProjeto.rdlc";
                Imagem[] imagensProjModelo = ImagemDAO.Instance.GetProjetosModelo(Request["cod"], Request["desc"],
                                                                                  Glass.Conversoes.StrParaUint(Request["grupo"]), Request["situacao"].StrParaInt());
                report.DataSources.Add(new ReportDataSource("Imagem", imagensProjModelo));
                break;
            }

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

            return(null);
        }
예제 #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)
        {
            var orca = OrcamentoDAO.Instance.GetForRpt(Glass.Conversoes.StrParaUint(Request["idOrca"]));

            orca.SomarDescontoProdutosTotal = OrcamentoConfig.ExibirItensProdutosRelatorio;
            ProdutosOrcamento[] prodOrca = ProdutosOrcamentoDAO.Instance.GetForRpt(Glass.Conversoes.StrParaUint(Request["idOrca"]), true);

            var itensProjeto = ItemProjetoDAO.Instance.GetByOrcamento(Conversoes.StrParaUint(Request["idOrca"]));

            uint idLoja = orca.IdLoja != null ? orca.IdLoja.Value : 0;

            // Recupera o caminho do relatório a ser renderizado
            var caminhoRelatorio = string.Format("Relatorios/ModeloOrcamento/rptOrcamento{0}.rdlc", ControleSistema.GetSite().ToString());

            if (System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath(string.Format("~/{0}", caminhoRelatorio))))
            {
                report.ReportPath = caminhoRelatorio;
            }
            else
            {
                report.ReportPath = PedidoConfig.LiberarPedido ? "Relatorios/ModeloOrcamento/rptOrcamentoLib.rdlc" :
                                    "Relatorios/ModeloOrcamento/rptOrcamento.rdlc";
            }

            string rptLogoPath = idLoja > 0 ?
                                 Logotipo.GetReportLogo(PageRequest, idLoja) : Logotipo.GetReportLogoColorOrca(PageRequest);

            if (Geral.ConsiderarLojaClientePedidoFluxoSistema && orca.IdCliente.GetValueOrDefault(0) > 0)
            {
                var idCliente = orca.IdCliente.Value;

                if (idCliente > 0)
                {
                    var idLojaCliente = ClienteDAO.Instance.ObtemIdLoja(idCliente);

                    if (idLojaCliente > 0)
                    {
                        rptLogoPath = Logotipo.GetReportLogo(PageRequest, idLojaCliente);
                    }
                }
            }

            #region Transportador cliente

            var nomeTransportadorCliente = string.Empty;

            if (orca.IdCliente > 0)
            {
                var idTransportador = ClienteDAO.Instance.ObtemIdTransportador(orca.IdCliente.Value);

                if (idTransportador > 0)
                {
                    nomeTransportadorCliente = TransportadorDAO.Instance.GetNome(idTransportador.Value);
                }
            }

            lstParam.Add(new ReportParameter("NomeTransportadorCliente", nomeTransportadorCliente));

            #endregion

            lstParam.Add(new ReportParameter("Logotipo", rptLogoPath));
            lstParam.Add(new ReportParameter("ExibirCusto", "false"));
            lstParam.Add(new ReportParameter("AgruparBeneficiamentos", PedidoConfig.RelatorioPedido.AgruparBenefRelatorio.ToString()));
            lstParam.Add(new ReportParameter("ExibirIcmsIpi", "True"));
            lstParam.Add(new ReportParameter("Cabecalho_IdOrcamento", orca.IdOrcamento.ToString()));
            lstParam.Add(new ReportParameter("Cabecalho_DataOrcamento", orca.DataOrcamento));
            lstParam.Add(new ReportParameter("Cabecalho_TelefoneLoja", orca.TelefoneLoja));
            lstParam.Add(new ReportParameter("Cabecalho_EmailLoja", orca.EmailLoja));
            lstParam.Add(new ReportParameter("Cabecalho_DadosLoja", orca.DadosLoja));
            lstParam.Add(new ReportParameter("Cabecalho_EnderecoLoja", orca.EnderecoLoja));
            lstParam.Add(new ReportParameter("Cabecalho_FoneFaxLoja", orca.FoneFaxLoja));
            lstParam.Add(new ReportParameter("Cabecalho_SiteLoja", orca.EmailLoja));
            lstParam.Add(new ReportParameter("FormatTotM", Glass.Configuracoes.Geral.GetFormatTotM()));

            report.DataSources.Add(new ReportDataSource("Orcamento", new Data.Model.Orcamento[] { orca }));
            report.DataSources.Add(new ReportDataSource("ProdutosOrcamento", prodOrca));
            report.DataSources.Add(new ReportDataSource("ItensProjeto", itensProjeto));
            report.DataSources.Add(new ReportDataSource("TextoOrcamento", TextoOrcamentoDAO.Instance.GetByOrcamento(orca.IdOrcamento)));

            return(null);
        }
예제 #10
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)
        {
            // Pega idImpressão, se houver
            idImpressao       = Glass.Conversoes.StrParaUint(Request["idImpressao"]).ToString();
            numEtiqueta       = Request["numEtiqueta"];
            idProdPed         = Glass.Conversoes.StrParaUint(Request["idProdPed"]);
            idProdNf          = Glass.Conversoes.StrParaUint(Request["idProdNf"]);
            idAmbientePedido  = Glass.Conversoes.StrParaUint(Request["idAmbientePedido"]);
            idRetalhoProducao = Glass.Conversoes.StrParaUint(Request["idRetalhoProducao"]);

            ProdutoImpressaoDAO.TipoEtiqueta?tipoEtiqueta = null;

            // Se for impressão individual, salva o idProdPed com qtd 1 no hiddenfield
            if (Request["ind"] == "1")
            {
                if (idProdPed > 0)
                {
                    idImpressao = ProdutoImpressaoDAO.Instance.GetIdImpressaoByProdPed(idProdPed, true);
                }

                if (idProdNf > 0)
                {
                    idImpressao = ProdutoImpressaoDAO.Instance.GetIdImpressaoByProdNf(idProdNf, true);
                }

                if (idAmbientePedido > 0)
                {
                    idImpressao = ProdutoImpressaoDAO.Instance.GetIdImpressaoByAmbientePedido(idAmbientePedido, true);
                }

                if (idRetalhoProducao > 0)
                {
                    idImpressao = ProdutoImpressaoDAO.Instance.GetIdImpressaoByRetalhoProducao(idRetalhoProducao, true);
                }

                if (idImpressao == "0" && !String.IsNullOrEmpty(idImpressao))
                {
                    throw new Exception("Esta etiqueta ainda não foi impressa pelo controle de impressão.");
                }

                if (idImpressao != "0" && !String.IsNullOrEmpty(idImpressao))
                {
                    idImpressao  = ImpressaoEtiquetaDAO.Instance.GetAtivas(idImpressao);
                    tipoEtiqueta = ImpressaoEtiquetaDAO.Instance.GetTipoImpressao(Glass.Conversoes.StrParaUint(idImpressao.Split(',')[0]));
                }

                if (!String.IsNullOrEmpty(numEtiqueta) &&

                    /* Chamado 15725.
                     * Deve-se verificar se a etiqueta está impressa de acordo com o tipo correto da mesma. */
                    //!ProdutoImpressaoDAO.Instance.EstaImpressa(numEtiqueta.Replace("%2f", "/"), ProdutoImpressaoDAO.TipoEtiqueta.Pedido))
                    !ProdutoImpressaoDAO.Instance.EstaImpressa(numEtiqueta.Replace("%2f", "/"),
                                                               tipoEtiqueta.GetValueOrDefault(ProdutoImpressaoDAO.TipoEtiqueta.Pedido)))
                {
                    throw new Exception("Etiqueta não existe ou foi cancelada");
                }

                if (String.IsNullOrEmpty(idImpressao))
                {
                    throw new Exception("Esta etiqueta ainda não foi impressa ou sua impressão foi cancelada.");
                }
            }
            else if (idImpressao != "0" && !String.IsNullOrEmpty(idImpressao))
            {
                idImpressao  = ImpressaoEtiquetaDAO.Instance.GetAtivas(idImpressao);
                tipoEtiqueta = ImpressaoEtiquetaDAO.Instance.GetTipoImpressao(Glass.Conversoes.StrParaUint(idImpressao.Split(',')[0]));
            }
            else
            {
                if (outrosParametros[1] != null && outrosParametros[1].ToString() != String.Empty)
                {
                    tipoEtiqueta = (ProdutoImpressaoDAO.TipoEtiqueta)Glass.Conversoes.StrParaInt(outrosParametros[1].ToString());
                }

                if ((outrosParametros[2] != null && outrosParametros[2].ToString() != string.Empty) &&
                    (outrosParametros[2].ToString().ToLower().Contains("cadreporpeca") ||
                     outrosParametros[2].ToString().ToLower().Contains("cadmarcarpecaproducao") ||
                     outrosParametros[2].ToString().ToLower().Contains("cadretalhoproducao") ||
                     outrosParametros[2].ToString().ToLower().Contains("cadperdachapavidro")))
                {
                    tipoEtiqueta = ProdutoImpressaoDAO.TipoEtiqueta.Retalho;
                }
            }

            if (tipoEtiqueta == null)
            {
                var excessao = new Exception("Não foi possível identificar o tipo de impressão de etiqueta.");

                ErroDAO.Instance.InserirFromException(string.Format("ImprimirEtiqueta - OutrosParametros: {0}, {1}, {2}, {3}",
                                                                    outrosParametros != null && outrosParametros.Length > 0 ? outrosParametros[0].ToString() : "ND",
                                                                    outrosParametros != null && outrosParametros.Length > 1 ? outrosParametros[1].ToString() : "ND",
                                                                    outrosParametros != null && outrosParametros.Length > 2 ? outrosParametros[2].ToString() : "ND",
                                                                    outrosParametros != null && outrosParametros.Length > 3 ? outrosParametros[3].ToString() : "ND"), excessao);

                throw excessao;
            }

            if ((!String.IsNullOrEmpty(outrosParametros[0].ToString()) || (idImpressao != "0" && !String.IsNullOrEmpty(idImpressao)) || idProdPed > 0) ||
                (outrosParametros[2].ToString().ToLower().Contains("cadreporpeca") ||
                 outrosParametros[2].ToString().ToLower().Contains("cadmarcarpecaproducao") ||
                 outrosParametros[2].ToString().ToLower().Contains("cadretalhoproducao") ||
                 outrosParametros[2].ToString().ToLower().Contains("cadperdachapavidro")) && (outrosParametros[3] != null && outrosParametros[3].ToString() != String.Empty))
            {
                Etiqueta[] lstEtiq = null;

                bool reImprimir = Request["ind"] == "1" || Request["idImpressao"] != null;

                // Busca etiquetas, salvando impressão realizada
                switch (tipoEtiqueta.Value)
                {
                    #region ProdutoImpressaoDAO.TipoEtiqueta.Pedido

                case ProdutoImpressaoDAO.TipoEtiqueta.Pedido:
                    string[] dadosRetalhos = outrosParametros[5] != null ? outrosParametros[5].ToString().Split('+') : new string[0];

                    if (hdfSomenteRetalhos.Value == "1")
                    {
                        List <string> usar = new List <string>();
                        int           index;

                        foreach (string dados in outrosParametros[0].ToString().Split('|'))
                        {
                            if (String.IsNullOrEmpty(dados))
                            {
                                continue;
                            }

                            string[] dadosEtiqueta = dados.Split('\t');

                            if ((index = Array.FindIndex(dadosRetalhos, x => !String.IsNullOrEmpty(x) ?
                                                         x.Split('|')[0] == dadosEtiqueta[0] : false)) > -1)
                            {
                                if (!dadosEtiqueta[0].Contains("R"))
                                {
                                    dadosEtiqueta[2] = dadosRetalhos[index].Split('|')[1].Split(',').Length.ToString();
                                }

                                usar.Add(String.Join("\t", dadosEtiqueta));
                            }
                        }

                        outrosParametros[0] = String.Join("|", usar.ToArray());
                    }

                    int?idSolucaoOtimizacao = null;
                    int id2 = 0;

                    if (int.TryParse(outrosParametros[6]?.ToString(), out id2))
                    {
                        idSolucaoOtimizacao = id2;
                    }

                    lstEtiq = EtiquetaDAO.Instance.GetListPedidoComTransacao(login.CodUser, idImpressao, idProdPed, idAmbientePedido, outrosParametros[0].ToString(), false,
                                                                             reImprimir, Request["numEtiqueta"], Request["apenasPlano"] == "true", dadosRetalhos, idSolucaoOtimizacao);

                    break;

                    #endregion

                    #region ProdutoImpressaoDAO.TipoEtiqueta.NotaFiscal

                case ProdutoImpressaoDAO.TipoEtiqueta.NotaFiscal:
                    lstEtiq = EtiquetaDAO.Instance.GetListNFe(login.CodUser, idImpressao, idProdNf, outrosParametros[0].ToString(),
                                                              reImprimir, Request["numEtiqueta"]);

                    break;

                    #endregion

                    #region ProdutoImpressaoDAO.TipoEtiqueta.Retalho

                case ProdutoImpressaoDAO.TipoEtiqueta.Retalho:
                    var listaRetalhoProducao = new List <RetalhoProducao>();

                    if (idRetalhoProducao > 0)
                    {
                        listaRetalhoProducao.Add(RetalhoProducaoDAO.Instance.Obter(idRetalhoProducao));
                    }
                    else
                    {
                        var retalhos = Newtonsoft.Json.JsonConvert.DeserializeObject <RetalhoProducaoAuxiliarCollection>(outrosParametros[3].ToString());
                        var ids      = new List <uint>();

                        if (Request["numEtiqueta"] != null)
                        {
                            string[] numeroEtiqueta = Request["numEtiqueta"].ToString().Split(';');

                            foreach (var r in retalhos)
                            {
                                foreach (string n in numeroEtiqueta)
                                {
                                    ids = RetalhoProducaoDAO.Instance.CriarRetalho(r.Altura.ToString(), r.Largura.ToString(),
                                                                                   r.Quantidade.ToString(), r.Observacao.ToString(), n, login);

                                    foreach (uint id in ids)
                                    {
                                        RetalhoProducao ret = RetalhoProducaoDAO.Instance.Obter(id);
                                        listaRetalhoProducao.Add(ret);
                                    }
                                }
                            }
                        }
                        else if (Request["idProd"] != null)
                        {
                            var dados = Request["idProd"].ToString().Split(';');

                            uint idProd   = dados.Length == 1 ? Conversoes.ConverteValor <uint>(dados[0]) : Conversoes.ConverteValor <uint>(dados[1]);
                            uint idProdNF = dados.Length == 1 ? 0 : Conversoes.ConverteValor <uint>(dados[0]);

                            ids = RetalhoProducaoDAO.Instance.CriarRetalho(retalhos.GetList(), idProd, idProdNF, login);

                            foreach (uint id in ids)
                            {
                                RetalhoProducao ret = RetalhoProducaoDAO.Instance.Obter(id);
                                listaRetalhoProducao.Add(ret);
                            }
                        }
                    }

                    lstEtiq = EtiquetaDAO.Instance.GetListRetalho(login.CodUser, idImpressao, listaRetalhoProducao, idRetalhoProducao, reImprimir);

                    foreach (var etiqueta in lstEtiq)
                    {
                        if (string.IsNullOrEmpty(etiqueta.NomeCliente))
                        {
                            etiqueta.NomeCliente = " ";
                        }
                    }

                    break;

                    #endregion
                }

                /* Chamado 43775. */
                var idLojaPedido =
                    EtiquetaConfig.RelatorioEtiqueta.ModeloEtiquetaPorLoja && lstEtiq != null && lstEtiq.Length > 0 && lstEtiq[0].IdPedido.StrParaInt() > 0 ?
                    PedidoDAO.Instance.ObtemIdLoja(null, lstEtiq[0].IdPedido.StrParaUint()) : 0;

                if (Request["reposicao"] == "true")
                {
                    report.ReportPath = NomeArquivoRelatorioReposicao((int)idLojaPedido);
                }
                else
                {
                    report.ReportPath = EtiquetaConfig.RelatorioEtiqueta.NomeArquivoRelatorio((int)idLojaPedido,
                                                                                              tipoEtiqueta.Value == ProdutoImpressaoDAO.TipoEtiqueta.NotaFiscal,
                                                                                              tipoEtiqueta.Value == ProdutoImpressaoDAO.TipoEtiqueta.Retalho);
                }

                report.DataSources.Add(new ReportDataSource("Etiqueta", lstEtiq));
                lstParam.Add(new ReportParameter("Logotipo", Logotipo.GetReportLogo()));
                lstParam.Add(new ReportParameter("IsRetalho", (tipoEtiqueta.Value == ProdutoImpressaoDAO.TipoEtiqueta.Retalho).ToString().ToLower()));
            }

            return(null);
        }
예제 #11
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)
        {
            // Verifica qual relatório será chamado
            switch (Request["rel"])
            {
            case "LucroAproximado":
                report.ReportPath = "Relatorios/Administrativos/rptLucroAproximado.rdlc";
                var lucro = LucroAproximadoDAO.Instance.GetLucroAproximado(Request["dataIni"], Request["dataFim"]);
                report.DataSources.Add(new ReportDataSource("LucroAproximado", lucro));
                break;

            case "RecebimentosTipo":
            {
                report.ReportPath = "Relatorios/Administrativos/rptRecebimentosTipo.rdlc";
                var lstReceb = RecebimentoDAO.Instance.GetRecebimentosTipo(Request["dataIni"], Request["dataFim"], Glass.Conversoes.StrParaUint(Request["idLoja"]), 0);
                report.DataSources.Add(new ReportDataSource("Recebimento", lstReceb));
                break;
            }

            case "RecebimentosTipoGrafico":
                report.ReportPath = "Relatorios/Administrativos/rptRecebimentosTipoGrafico.rdlc";
                var rt = RecebimentoDAO.Instance.GetRecebimentosTipo(Request["dataIni"], Request["dataFim"], Glass.Conversoes.StrParaUint(Request["idLoja"]), Glass.Conversoes.StrParaUint(Request["idFunc"]));
                report.DataSources.Add(new ReportDataSource("Recebimento", rt));

                var recebimentoImagem = new RecebimentoImagem();
                recebimentoImagem.Buffer = Glass.Conversoes.DecodificaPara64(Request["tempFile"]);
                report.DataSources.Add(new ReportDataSource("RecebimentoImagem", new RecebimentoImagem[1] {
                    recebimentoImagem
                }));
                break;

            case "GraficoVendas":
                report.ReportPath = "Relatorios/Administrativos/rptGraficoVendas.rdlc";

                var criterio          = string.Empty;
                var chartVendasLista  = new List <ChartVendas>();
                var chartVendasImagem = new ChartVendasImagem();
                var chartVendasDict   = ChartVendasDAO.Instance.GetForRpt(Request["idLoja"].StrParaUint(), Request["idVendedor"].StrParaUint(), Request["tipoFunc"].StrParaInt(),
                                                                          Request["idCliente"].StrParaUint(), Request["nomeCliente"], Request["tipoPedido"], Request["idRota"].StrParaUint(), Request["dataIni"], Request["dataFim"],
                                                                          Request["agrupar"].StrParaInt(), out criterio);

                foreach (var entry in chartVendasDict)
                {
                    foreach (var c in entry.Value)
                    {
                        chartVendasLista.Add(c);
                    }
                }

                chartVendasImagem.Buffer = Glass.Conversoes.DecodificaPara64(Request["tempFile"]);

                lstParam.Add(new ReportParameter("Criterio", criterio));

                report.DataSources.Add(new ReportDataSource("ChartVendas", chartVendasLista.ToArray()));
                report.DataSources.Add(new ReportDataSource("ChartVendasImagem", new ChartVendasImagem[1] {
                    chartVendasImagem
                }));

                break;

            case "GraficoOrcaVendas":
            {
                report.ReportPath = "Relatorios/Administrativos/rptGraficoOrcaVendas.rdlc";
                var situacao        = !string.IsNullOrEmpty(Request["situacao"]) ? Request["situacao"].Split(',').Select(f => f.StrParaInt()) : null;
                var chartOrcaVendas = ChartOrcaVendasDAO.Instance.GetOrcaVendas(Glass.Conversoes.StrParaUint(Request["idLoja"]),
                                                                                Glass.Conversoes.StrParaUint(Request["idVendedor"]), situacao, Glass.Conversoes.StrParaInt(Request["tipoFunc"]), Request["dataIni"], Request["dataFim"]);
                report.DataSources.Add(new ReportDataSource("ChartOrcaVendas", chartOrcaVendas));
                var chartOrcaVendasImagem = new ChartOrcaVendasImagem();
                chartOrcaVendasImagem.Buffer = Glass.Conversoes.DecodificaPara64(Request["tempFile"]);
                report.DataSources.Add(new ReportDataSource("ChartOrcaVendasImagem", new ChartOrcaVendasImagem[1] {
                        chartOrcaVendasImagem
                    }));
                break;
            }

            case "GraficoOrcamentos":
            {
                var idLoja     = Request["idLoja"].StrParaUint();
                var idVendedor = string.IsNullOrEmpty(Request["idVendedor"])
                        ? 0
                        : Request["idVendedor"].StrParaUint();
                var agrupar = string.IsNullOrEmpty(Request["agrupar"])
                        ? 0
                        : Request["agrupar"].StrParaInt();
                var situacao = string.IsNullOrEmpty(Request["situacao"])
                        ? 0
                        : Request["situacao"].StrParaInt();

                report.ReportPath = "Relatorios/Administrativos/rptGraficoOrcamento.rdlc";
                var v = GraficoOrcamentosDAO.Instance.GetOrcamentos(idLoja, idVendedor, new int[] { situacao }, Request["dtIni"],
                                                                    Request["dtFim"], agrupar, false);
                report.DataSources.Add(new ReportDataSource("GraficoOrcamentos", v));

                var graficoOrcamentosImagem = new GraficoOrcamentosImagem
                {
                    Buffer = Glass.Conversoes.DecodificaPara64(Request["tempFile"])
                };
                report.DataSources.Add(new ReportDataSource("GraficoOrcamentosImagem",
                                                            new GraficoOrcamentosImagem[1] {
                        graficoOrcamentosImagem
                    }));
                break;
            }

            case "GraficoProdutos":
            {
                var idLoja      = Request["idLoja"].StrParaUint();
                var idVendedor  = string.IsNullOrEmpty(Request["idVend"]) ? 0 : Request["idVend"].StrParaUint();
                var idCliente   = string.IsNullOrEmpty(Request["idCliente"]) ? 0 : Request["idCliente"].StrParaInt();
                var nomeCliente = Request["nomeCliente"];
                var grupo       = !string.IsNullOrEmpty(Request["grupo"]) ? Request["grupo"].StrParaUint() : 0;
                var subGrupo    = !string.IsNullOrEmpty(Request["subGrupo"])
                        ? Request["subGrupo"].StrParaUint()
                        : 0;
                var quantidade = !string.IsNullOrEmpty(Request["quantidade"])
                        ? Request["quantidade"].StrParaInt()
                        : 0;
                var tipo             = !string.IsNullOrEmpty(Request["tipo"]) ? Request["tipo"].StrParaInt() : 0;
                var dataIni          = Request["dtIni"];
                var dataFim          = Request["dtFim"];
                var codProduto       = Request["codProduto"];
                var descricaoProduto = Request["descProduto"];
                var apenasMS         = Convert.ToBoolean(Request["apenasMS"]);

                report.ReportPath = "Relatorios/Administrativos/rptGraficoProduto.rdlc";

                //Busca os dados que servirão para preencher as séries do gráfico
                var p = GraficoProdutosDAO.Instance.GetMaisVendidos(idLoja, idVendedor, idCliente, nomeCliente,
                                                                    grupo, subGrupo, quantidade,
                                                                    tipo, dataIni, dataFim, codProduto, descricaoProduto, apenasMS);
                report.DataSources.Add(new ReportDataSource("GraficoProdutos", p));

                var graficoProdutosImagem = new GraficoProdutosImagem();
                graficoProdutosImagem.Buffer = Glass.Conversoes.DecodificaPara64(Request["tempFile"]);
                report.DataSources.Add(new ReportDataSource("GraficoProdutosImagem",
                                                            new GraficoProdutosImagem[1] {
                        graficoProdutosImagem
                    }));

                break;
            }

            case "ListaBenef":
                report.ReportPath = "Relatorios/Administrativos/rptBeneficiamentos.rdlc";
                uint Benef_IdFunc = Glass.Conversoes.StrParaUint(Request["idFunc"]);
                var  lstBenef     = BenefConfigDAO.Instance.GetForRpt(Request["dataIni"], Request["dataFim"],
                                                                      Glass.Conversoes.StrParaUint(Request["idLoja"]), Glass.Conversoes.StrParaUint(Request["idFunc"]));
                if (lstBenef.Count > 0)
                {
                    lstBenef[0].Criterio = "Loja: " + LojaDAO.Instance.GetNome(Glass.Conversoes.StrParaUint(Request["idLoja"])) + "    ";
                    if (Benef_IdFunc > 0)
                    {
                        lstBenef[0].Criterio += "Vendedor: " + FuncionarioDAO.Instance.GetNome(Benef_IdFunc) + "    ";
                    }
                    lstBenef[0].Criterio += "Data início: " + Request["dataIni"] + "    ";
                    lstBenef[0].Criterio += "Data fim: " + Request["dataFim"];
                }
                report.DataSources.Add(new ReportDataSource("BenefConfig", lstBenef));
                break;

            case "FluxoCaixa":
                report.ReportPath = "Relatorios/Administrativos/rptFluxoCaixa.rdlc";
                var lstFluxoCaixa = FluxoCaixaDAO.Instance.GetForRpt(Request["dataIni"], Request["dataFim"], Request["prevCustoFixo"] == "1", Request["tipoConta"]);
                report.DataSources.Add(new ReportDataSource("FluxoCaixa", lstFluxoCaixa));
                break;

            case "FluxoCaixaSintetico":
                report.ReportPath = "Relatorios/Administrativos/rptFluxoCaixaSintetico.rdlc";
                var lstFluxoCaixaSintetico = FluxoCaixaSinteticoDAO.Instance.GetForRpt(Request["dataIni"], Request["dataFim"], Request["prevCustoFixo"] == "1", Request["tipoConta"]);
                report.DataSources.Add(new ReportDataSource("FluxoCaixaSintetico", lstFluxoCaixaSintetico));
                break;

            case "PrevisaoFinanceira":
                report.ReportPath = "Relatorios/Administrativos/rptPrevisaoFinanceira.rdlc";
                report.DataSources.Add(new ReportDataSource("PrevisaoFinanceira_Receber", new Data.RelModel.PrevisaoFinanceira[] {
                    PrevisaoFinanceiraDAO.Instance.GetReceber(Glass.Conversoes.StrParaUint(Request["idLoja"]), Request["data"], Request["prevPedidos"] == "true")
                }));
                report.DataSources.Add(new ReportDataSource("PrevisaoFinanceira_Pagar", new Data.RelModel.PrevisaoFinanceira[] {
                    PrevisaoFinanceiraDAO.Instance.GetPagar(Glass.Conversoes.StrParaUint(Request["idLoja"]), Request["data"], Request["previsaoCustoFixo"] == "true")
                }));
                lstParam.Add(new ReportParameter("Tipo", Request["tipo"]));
                lstParam.Add(new ReportParameter("ExibirPrevisaoCustoFixo", Request["previsaoCustoFixo"]));
                lstParam.Add(new ReportParameter("prevPedidos", (Request["prevPedidos"] == "true").ToString()));
                break;

            case "DescParc":
                report.ReportPath = "Relatorios/Administrativos/rptDescParc.rdlc";

                var contasRec = Glass.Data.DAL.ContasReceberDAO.Instance.GetListContaComDescontoRpt(Glass.Conversoes.StrParaUint(Request["idPedido"]),
                                                                                                    Glass.Conversoes.StrParaUint(Request["idLiberarPedido"]), Glass.Conversoes.StrParaUint(Request["idLoja"]), Glass.Conversoes.StrParaUint(Request["idCliente"]), Request["nomeCli"], Glass.Conversoes.StrParaUint(Request["idFunc"]),
                                                                                                    Glass.Conversoes.StrParaDecimal(Request["valorIniAcres"]), Glass.Conversoes.StrParaDecimal(Request["valorFimAcres"]), Glass.Conversoes.StrParaDecimal(Request["valorIniDesc"]),
                                                                                                    Glass.Conversoes.StrParaDecimal(Request["valorFimDesc"]), Request["dataIni"], Request["dataFim"], Request["dataDescIni"], Request["dataDescFim"], Glass.Conversoes.StrParaUint(Request["idOrigemDesconto"]));

                report.DataSources.Add(new ReportDataSource("ContasReceber", contasRec));
                lstParam.Add(new ReportParameter("LiberarPedido", PedidoConfig.LiberarPedido.ToString()));
                break;

            case "DescParcPag":
                report.ReportPath = "Relatorios/Administrativos/rptDescParcPag.rdlc";
                report.DataSources.Add(new ReportDataSource("ContasPagar", Glass.Data.DAL.ContasPagarDAO.Instance.GetListContaComDescontoRpt(Glass.Conversoes.StrParaUint(Request["idCompra"]),
                                                                                                                                             Glass.Conversoes.StrParaUint(Request["numeroNf"]), Request["dataIni"], Request["dataFim"], Request["dataDescIni"], Request["dataDescFim"])));
                break;

            case "RelacaoVendas":
                report.ReportPath = "Relatorios/Administrativos/rptRelacaoVendas.rdlc";
                report.DataSources.Add(new ReportDataSource("RelacaoVendas", RelacaoVendasDAO.Instance.GetForRpt(Request["dataIni"], Request["dataFim"],
                                                                                                                 Glass.Conversoes.StrParaInt(Request["situacao"]), Glass.Conversoes.StrParaInt(Request["agrupar"]), Glass.Conversoes.StrParaInt(Request["ordenar"]), login)));
                break;

            case "MovimentacoesFinanceiras":
                bool MovimentacoesFinanceiras_detalhado = bool.Parse(Request["detalhado"]);
                report.ReportPath = "Relatorios/Administrativos/rptMovimentacoesFinanceiras" + (MovimentacoesFinanceiras_detalhado ? "Det" : "") + ".rdlc";
                report.DataSources.Add(new ReportDataSource("MovimentacoesFinanceiras", MovimentacoesFinanceirasDAO.Instance.GetForRpt(Request["dataIni"], Request["dataFim"], MovimentacoesFinanceiras_detalhado)));
                break;

            case "IFD":
                report.ReportPath = "Relatorios/Administrativos/rptIFD.rdlc";
                lstParam.Add(new ReportParameter("Data", Request["data"]));
                report.DataSources.Add(new ReportDataSource("MovimentacoesFinanceiras", MovimentacoesFinanceirasDAO.Instance.GetForRpt(Request["data"], Request["data"], false)));
                report.DataSources.Add(new ReportDataSource("PrevisaoFinanceira_Receber", new Data.RelModel.PrevisaoFinanceira[] { PrevisaoFinanceiraDAO.Instance.GetReceber(0, Request["data"], false) }));
                report.DataSources.Add(new ReportDataSource("PrevisaoFinanceira_Pagar", new Data.RelModel.PrevisaoFinanceira[] { PrevisaoFinanceiraDAO.Instance.GetPagar(0, Request["data"], false) }));
                report.DataSources.Add(new ReportDataSource("FluxoCaixaIFD", FluxoCaixaIFDDAO.Instance.GetForRpt(Request["data"])));
                report.DataSources.Add(new ReportDataSource("EstoqueIFD", EstoqueIFDDAO.Instance.GetForRpt(Request["data"])));
                report.DataSources.Add(new ReportDataSource("MovimentacaoDiaIFD", MovimentacaoDiaIFDDAO.Instance.GetForRpt(Request["data"])));
                report.DataSources.Add(new ReportDataSource("TitulosIFD", TitulosIFDDAO.Instance.GetForRpt(Request["data"])));
                break;

            case "AlteracoesSistema":
                report.ReportPath = "Relatorios/Administrativos/rptAlteracoesSistema.rdlc";
                report.DataSources.Add(new ReportDataSource("AlteracoesSistema", AlteracoesSistemaDAO.Instance.GetForRpt(Request["tipo"], Request["dataIni"],
                                                                                                                         Request["dataFim"], Request["tabela"].StrParaInt(), Request["campo"], Request["idFunc"].StrParaUint())));
                break;

            case "GraficoDRE":
            {
                uint trocador = 0;

                report.ReportPath = "Relatorios/Administrativos/rptGraficoDRE.rdlc";

                var idCategoriaConta = Request["idCategoriaConta"].StrParaUint();
                var idGrupoConta     = Request["idGrupoConta"].StrParaUint();
                var idsPlanoConta    = (Request["idsPlanoConta"].Split(',')).Select(f => uint.TryParse(f, out trocador)).Select(f => trocador).Where(f => f > 0).ToArray();
                var idLoja           = Request["idLoja"].StrParaInt();
                var dataIni          = Request["dataIni"];
                var dataFim          = Request["dataFim"];
                var grupos           = Request["grupos"];
                var tipoMov          = Request["tipoMov"].StrParaInt();
                var tipoConta        = Request["tipoConta"].StrParaInt();
                var ajustado         = !string.IsNullOrEmpty(Request["ajustado"]) && Request["ajustado"].ToLower() == "true";

                var ids = new List <uint>();

                var lojas = idLoja == 0
                        ? LojaDAO.Instance.GetAll()
                        : new [] { LojaDAO.Instance.GetElementByPrimaryKey(idLoja) };

                foreach (var l in lojas)
                {
                    ids.Add((uint)l.IdLoja);
                }

                var dados = ChartDREDAO.Instance.ObterDados(idCategoriaConta, idGrupoConta, idsPlanoConta, dataIni,
                                                            dataFim, tipoMov, tipoConta, ajustado, ids);

                var data = new List <ChartDRE>();
                foreach (var entry in dados)
                {
                    foreach (var c in entry.Value)
                    {
                        data.Add(c);
                    }
                }

                report.DataSources.Add(new ReportDataSource("ChartDRE", data.ToArray()));

                var chartDREImagem = new ChartDREImagem
                {
                    Buffer = Glass.Conversoes.DecodificaPara64(Request["tempFile"])
                };
                report.DataSources.Add(new ReportDataSource("ChartDREImagem", new ChartDREImagem[1] {
                        chartDREImagem
                    }));

                break;
            }

            case "PrevFinanRecebPedido":
                report.ReportPath = "Relatorios/Administrativos/rptPrevisaoFinanRecebPedidos.rdlc";
                var pedidos = PrevFinanPedidosDAO.Instance.GetPrevFinanPedidosRpt(Glass.Conversoes.StrParaUint(Request["idLoja"]), Request["dataIni"], Request["dataFim"]);
                report.DataSources.Add(new ReportDataSource("PrevFinanPedidos", pedidos));
                break;

            case "ContasPagarReceber":
                report.ReportPath = "Relatorios/Administrativos/rptContasPagarReceber.rdlc";
                var contasPagRec = ContasPagarReceberDAO.Instance.GetContasPagarReceberRpt(Glass.Conversoes.StrParaUint(Request["idCli"]),
                                                                                           Request["nomeCli"], Glass.Conversoes.StrParaUint(Request["idFornec"]), Request["nomeFornec"], Request["dtIni"], Request["dtFim"],
                                                                                           Glass.Conversoes.StrParaFloat(Request["valorIni"]), Glass.Conversoes.StrParaFloat(Request["valorFim"]));
                report.DataSources.Add(new ReportDataSource("ContasPagarReceber", contasPagRec));
                break;

            case "RecebimentosDetalhados":
            {
                report.ReportPath = "Relatorios/Administrativos/rptRecebimentosDetalhados.rdlc";
                var lstReceb = RecebimentoDAO.Instance.GetRecebimentosDetalhados(Request["dataIni"], Request["dataFim"], Glass.Conversoes.StrParaUint(Request["idLoja"]), 0);
                report.DataSources.Add(new ReportDataSource("Recebimento", lstReceb));
                break;
            }

            case "CentroCustosMes":
            {
                report.ReportPath = "Relatorios/Administrativos/rptCentroCustosMes.rdlc";

                var idLojaCentroCustoMes = Glass.Conversoes.StrParaInt(Request["idLoja"]);
                var valorEstoque         = MovEstoqueCentroCustoDAO.Instance.ObtemSaldoEstoque(idLojaCentroCustoMes);

                lstParam.Add(new ReportParameter("Ano", Request["ano"]));
                lstParam.Add(new ReportParameter("ValorEstoque", valorEstoque.ToString()));

                var lstCentroCustos = CentroCustoDAO.Instance.GetForRelCentroCustoMes(idLojaCentroCustoMes, Glass.Conversoes.StrParaInt(Request["ano"]));
                report.DataSources.Add(new ReportDataSource("CentroCustos", lstCentroCustos));
                break;
            }

            case "CentroCustosPlanoContas":
            {
                report.ReportPath = "Relatorios/Administrativos/rptCentroCustosPlanoConta.rdlc";

                var idLojaCentroCustoPlanoConta = Glass.Conversoes.StrParaInt(Request["idLoja"]);
                var valorEstoque = MovEstoqueCentroCustoDAO.Instance.ObtemSaldoEstoque(idLojaCentroCustoPlanoConta);

                lstParam.Add(new ReportParameter("Periodo", Request["dataIni"] + " à " + Request["dataFim"]));
                lstParam.Add(new ReportParameter("ValorEstoque", valorEstoque.ToString()));

                var lstCentroCustos = CentroCustoDAO.Instance.GetForRelCentroCustoPlanoConta(idLojaCentroCustoPlanoConta, Request["dataIni"], Request["dataFim"]);
                report.DataSources.Add(new ReportDataSource("CentroCustos", lstCentroCustos));
                break;
            }

            default:
                Response.Write("Nenhum relatório especificado.");
                return(null);
            }

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

            return(null);
        }
예제 #12
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)
        {
            var relatorioDinamicoFluxo = Microsoft.Practices.ServiceLocation.ServiceLocator
                                         .Current.GetInstance <Glass.Global.Negocios.IRelatorioDinamicoFluxo>();

            // Recupera dados do relatório dinâmico
            var relatorioDinamico = relatorioDinamicoFluxo.ObterRelatorioDinamico(int.Parse(PageRequest["id"]));

            // Define o caminho do relatório
            report.ReportPath = string.Format("Upload/RelatorioDinamico/{0}.rdlc", relatorioDinamico.IdRelatorioDinamico);

            // Monta os filtros da consulta
            var filtros = new List <Tuple <Glass.Global.Negocios.Entidades.RelatorioDinamicoFiltro, string> >();

            foreach (var key in PageRequest.QueryString.AllKeys)
            {
                if (key == null || key.IndexOf('_') <= 0)
                {
                    continue;
                }

                // Pega o id do RelatorioDinamicoFiltro e o recupera em seguida
                var idRelatorioDinamicoFiltro = key.Split('_')[1];
                var filtro = relatorioDinamico.Filtros.Where(f => f.IdRelatorioDinamicoFiltro == idRelatorioDinamicoFiltro.StrParaInt()).FirstOrDefault();

                filtros.Add(new Tuple <Glass.Global.Negocios.Entidades.RelatorioDinamicoFiltro, string>(filtro, PageRequest[key]));
            }

            int count;

            // Recupera os dados a serem preenchidos no relatório
            var lista = relatorioDinamicoFluxo.PesquisarListaDinamica(relatorioDinamico.IdRelatorioDinamico, filtros, 0, int.MaxValue, out count);

            System.Data.DataTable dt = new System.Data.DataTable();

            // Cria as colunas da grid
            foreach (var campo in lista.First().Keys)
            {
                dt.Columns.Add(campo.RemoverAcentosEspacos(), typeof(string));
            }

            foreach (var item in lista)
            {
                var dr = dt.NewRow();

                foreach (var campo in item)
                {
                    dr[campo.Key] = campo.Value;
                }

                dt.Rows.Add(dr);
            }

            dt.AcceptChanges();

            report.DataSources.Add(new ReportDataSource("ListaRegistros", dt));

            // Recupera parâmetro de agrupamento
            var agrupamento = filtros.Where(f => f.Item1.TipoControle == Data.Model.TipoControle.Agrupamento).FirstOrDefault();

            var criterio = string.Join("    ", filtros.OrderBy(f => f.Item1.NumSeq)
                                       .Where(f => f.Item2 != "" && f.Item2 != "|")
                                       .Select(f => f.Item1.NomeFiltro + ": " + f.Item2.Replace("|", " "))
                                       );

            // Define parâmetro padrões
            lstParam.Add(new ReportParameter("AgruparPor", agrupamento != null ? agrupamento.Item2 : "."));
            lstParam.Add(new ReportParameter("Criterio", criterio));
            lstParam.Add(new ReportParameter("NomeRelatorio", relatorioDinamico.NomeRelatorio));
            lstParam.Add(new ReportParameter("Logotipo", Logotipo.GetReportLogo(PageRequest)));
            lstParam.Add(new ReportParameter("TextoRodape", Geral.TextoRodapeRelatorio(login.Nome, true)));
            lstParam.Add(new ReportParameter("CorRodape", "DimGray"));

            return(null);
        }
예제 #13
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)
        {
            TipoRelatorioPedido tipo = !String.IsNullOrEmpty(Request["tipo"]) ? (TipoRelatorioPedido)Glass.Conversoes.StrParaInt(Request["tipo"]) : TipoRelatorioPedido.Normal;

            Glass.Data.Model.Pedido[] pedido = PedidoDAO.Instance.GetForRpt(Request["idPedido"], tipo == TipoRelatorioPedido.Pcp, login);
            uint idLoja = pedido[0].IdLoja;

            List <ProdutosPedido> prodPedido  = new List <ProdutosPedido>();
            List <ParcelasPedido> parcPedido  = new List <ParcelasPedido>();
            List <AmbientePedido> ambPedido   = new List <AmbientePedido>();
            List <TextoPedido>    textoPedido = new List <TextoPedido>();

            report.ReportPath = PedidoConfig.RelatorioPedido.NomeArquivoRelatorio(idLoja).Item1;

            Dictionary <int, List <string> > parametros = new Dictionary <int, List <string> >();

            for (int i = 0; i < 20; i++)
            {
                parametros.Add(i, new List <string>());
            }

            for (int i = 0; i < pedido.Length; i++)
            {
                parcPedido.AddRange(ParcelasPedidoDAO.Instance.GetForRpt(pedido[i].IdPedido));
                ambPedido.AddRange(AmbientePedidoDAO.Instance.GetByPedido(pedido[i].IdPedido, tipo == TipoRelatorioPedido.Pcp));
                prodPedido.AddRange(PedidoConfig.RelatorioPedido.ExibirItensProdutosPedido ?
                                    ProdutosPedidoDAO.Instance.GetForRpt(pedido[i].IdPedido, tipo == TipoRelatorioPedido.Pcp) :
                                    ProdutosPedidoDAO.Instance.GetForRptAmbiente(pedido[i].IdPedido,
                                                                                 tipo == TipoRelatorioPedido.Pcp));

                textoPedido.AddRange(TextoPedidoDAO.Instance.GetByPedido(pedido[i].IdPedido));

                float taxaEntrega = 0f;
                if (PedidoConfig.Pedido_FastDelivery.FastDelivery && pedido[i].FastDelivery)
                {
                    taxaEntrega = PedidoConfig.Pedido_FastDelivery.TaxaFastDelivery;
                }

                string separador    = " - ";
                string enderecoLoja = pedido[i].RptEnderecoLoja + pedido[i].RptComplLoja + separador + pedido[i].RptBairroLoja + separador +
                                      pedido[i].RptTelefoneLoja + separador + "CEP: " + pedido[i].RptCepLoja;

                parametros[0].Add(taxaEntrega.ToString() + "%");
                parametros[1].Add(pedido[i].IdPedido.ToString());
                parametros[2].Add(String.IsNullOrEmpty(pedido[i].NomeFunc) ? "." : pedido[i].NomeFunc);
                parametros[3].Add(pedido[i].DataPedido.ToString("dd/MM/yyyy"));
                parametros[4].Add(String.IsNullOrEmpty(pedido[i].FoneFaxLoja) ? "." : pedido[i].FoneFaxLoja);
                parametros[5].Add(String.IsNullOrEmpty(pedido[i].RptNomeLoja) ? "." : pedido[i].RptNomeLoja);
                parametros[6].Add(String.IsNullOrEmpty(pedido[i].DadosLoja) ? "." : pedido[i].DadosLoja);
                parametros[7].Add(pedido[i].DataCad.ToString("dd/MM/yyyy"));
                parametros[8].Add(pedido[i].DescrSituacaoPedido);
                parametros[9].Add(String.IsNullOrEmpty(pedido[i].EmailLoja) ? "." : pedido[i].EmailLoja);
                parametros[10].Add(String.IsNullOrEmpty(pedido[i].RptTelefoneLoja) ? "." : pedido[i].RptTelefoneLoja);
                parametros[11].Add(String.IsNullOrEmpty(enderecoLoja) ? "." : enderecoLoja);
                parametros[12].Add(String.IsNullOrEmpty(pedido[i].DataEntregaString) ? "." : pedido[i].DataEntregaString);
                parametros[13].Add((pedido[i].TipoPedido == (int)Glass.Data.Model.Pedido.TipoPedidoEnum.MaoDeObra).ToString());
                parametros[14].Add(String.IsNullOrEmpty(pedido[i].CodCliente) ? "." : pedido[i].CodCliente);
                parametros[15].Add(!String.IsNullOrEmpty(pedido[i].CodCliente) ? pedido[i].CodCliente.ToString() : ".");
                parametros[16].Add(!PedidoConfig.LiberarPedido ? ContasReceberDAO.Instance.GetTotalDescontoParcelas(pedido[i].IdPedido).ToString() : ".");
                parametros[17].Add(!String.IsNullOrEmpty(pedido[i].Obs) ? "Obs: " + pedido[i].Obs : ".");

                string codRota   = string.Empty;
                string descrRota = string.Empty;

                // Só exibe o código da rota se não for tipo de entrega balcão
                if (PedidoDAO.Instance.ObtemTipoEntrega(pedido[i].IdPedido) != (uint)Glass.Data.Model.Pedido.TipoEntregaPedido.Balcao)
                {
                    codRota   = RotaDAO.Instance.ObtemCodRota(pedido[i].IdCli);
                    descrRota = RotaDAO.Instance.ObtemDescrRota(pedido[i].IdCli);
                }

                parametros[18].Add(!String.IsNullOrEmpty(codRota) ? codRota : ".");
                parametros[19].Add(!String.IsNullOrEmpty(descrRota) ? descrRota : ".");

                // Indica se o pedido é de cliente
                pedido[i].RptIsCliente = login != null ? login.IdCliente > 0 : false;
            }

            var prodPedidoRpt = new List <ProdutosPedido>();

            foreach (var item in prodPedido.Where(f => f.IdProdPedParent == null))
            {
                prodPedidoRpt.Add(item);

                foreach (var itemFlilho in prodPedido.Where(f => f.IdProdPedParent == item.IdProdPed))
                {
                    prodPedidoRpt.Add(itemFlilho);
                    prodPedidoRpt.AddRange(prodPedido.Where(f => f.IdProdPedParent == itemFlilho.IdProdPed));
                }
            }

            if (!IsRelOtimizado((int)idLoja))
            {
                report.DataSources.Add(new ReportDataSource("Pedido", pedido));
                report.DataSources.Add(new ReportDataSource("ProdutosPedido", prodPedidoRpt));
            }
            else
            {
                report.DataSources.Add(new ReportDataSource("PedidoRpt", PedidoRptDAL.Instance.CopiaLista(pedido, PedidoRpt.TipoConstrutor.RelatorioPedido, false, login)));
                report.DataSources.Add(new ReportDataSource("ProdutosPedidoRpt", ProdutosPedidoRptDAL.Instance.CopiaLista(prodPedidoRpt.ToArray())));
            }

            lstParam.Add(new ReportParameter("LojaCalculaICMSPedido", LojaDAO.Instance.ObtemCalculaIcmsStPedido(null, idLoja).ToString()));
            lstParam.Add(new ReportParameter("LojaCalculaIPIPedido", LojaDAO.Instance.ObtemCalculaIpiPedido(null, idLoja).ToString()));
            lstParam.Add(new ReportParameter("TemProdutoLamComposicao", pedido[0].TemProdutoLamComposicao.ToString()));

            report.DataSources.Add(new ReportDataSource("ParcelasPedido", parcPedido));
            report.DataSources.Add(new ReportDataSource("AmbientePedido", ambPedido));
            report.DataSources.Add(new ReportDataSource("TextoPedido", textoPedido));

            lstParam.Add(new ReportParameter("TaxaEntrega", parametros[0].ToArray()));
            lstParam.Add(new ReportParameter("AgruparBeneficiamentos", PedidoConfig.RelatorioPedido.AgruparBenefRelatorio.ToString()));
            lstParam.Add(new ReportParameter("ExibirM2Calc", PedidoConfig.RelatorioPedido.ExibirM2CalcRelatorio.ToString()));
            lstParam.Add(new ReportParameter("Cabecalho_DataLocal", LojaDAO.Instance.GetCidade(pedido[0].IdLoja, false) + ", " + Formatacoes.DataExtenso(pedido[0].DataPedido)));
            lstParam.Add(new ReportParameter("Cabecalho_IdPedido", parametros[1].ToArray()));
            lstParam.Add(new ReportParameter("Cabecalho_NomeFunc", parametros[2].ToArray()));
            lstParam.Add(new ReportParameter("Cabecalho_DataPedido", parametros[3].ToArray()));
            lstParam.Add(new ReportParameter("Cabecalho_FoneFaxLoja", parametros[4].ToArray()));
            lstParam.Add(new ReportParameter("Cabecalho_NomeLoja", parametros[5].ToArray()));
            lstParam.Add(new ReportParameter("Cabecalho_DadosLoja", parametros[6].ToArray()));
            lstParam.Add(new ReportParameter("Cabecalho_DataCad", parametros[7].ToArray()));
            lstParam.Add(new ReportParameter("Cabecalho_Situacao", parametros[8].ToArray()));
            lstParam.Add(new ReportParameter("Cabecalho_EmailLoja", parametros[9].ToArray()));
            lstParam.Add(new ReportParameter("Cabecalho_TelefoneLoja", parametros[10].ToArray()));
            lstParam.Add(new ReportParameter("Cabecalho_EnderecoLoja", parametros[11].ToArray()));
            lstParam.Add(new ReportParameter("Cabecalho_DataEntrega", parametros[12].ToArray()));
            lstParam.Add(new ReportParameter("Cabecalho_MaoDeObra", parametros[13].ToArray()));
            lstParam.Add(new ReportParameter("ExibirComissao", (!PedidoConfig.Comissao.UsarComissionadoCliente && false).ToString())); // Não exibe a comissão em nenhum relatório
            lstParam.Add(new ReportParameter("ImpressoPor", login != null ? login.Nome : string.Empty));
            lstParam.Add(new ReportParameter("TipoRpt", ((int)tipo).ToString()));
            lstParam.Add(new ReportParameter("FormatTotM", Geral.GetFormatTotM()));
            lstParam.Add(new ReportParameter("Cabecalho_CodCliente", parametros[14].ToArray()));
            lstParam.Add(new ReportParameter("Cabecalho_NumPedCli", parametros[15].ToArray()));
            lstParam.Add(new ReportParameter("DescontoParcelas", parametros[16].ToArray()));
            lstParam.Add(new ReportParameter("Cabecalho_Obs", parametros[17].ToArray()));
            lstParam.Add(new ReportParameter("Cabecalho_CpfCnpjLoja", LojaDAO.Instance.ObtemCnpj(idLoja)));
            lstParam.Add(new ReportParameter("Cabecalho_InscEstLoja", LojaDAO.Instance.ObtemInscEst(idLoja)));
            lstParam.Add(new ReportParameter("Cabecalho_Rota", parametros[18].ToArray()));
            lstParam.Add(new ReportParameter("Cabecalho_DescrRota", parametros[19].ToArray()));
            lstParam.Add(new ReportParameter("Logotipo", Logotipo.GetReportLogo(PageRequest, idLoja)));

            return(null);
        }
예제 #14
0
        protected void Page_Load(object sender, EventArgs e)
        {
            LocalReport report = new LocalReport();

            List <ReportParameter> lstParam = new List <ReportParameter>();

            lstParam.Add(new ReportParameter("Logotipo", Logotipo.GetReportLogo()));
            report.EnableExternalImages = true;

            uint?idCliente = UserInfo.GetUserInfo.IdCliente;

            // Se não for um cliente que estiver logado, não imprime relatório
            if (idCliente == null || idCliente == 0)
            {
                return;
            }

            if (Request["rel"] == "Danfe")
            {
                Response.Redirect("~/Handlers/Danfe.ashx?idNf=" + Request["idNf"] + "&previsualizar=" + Request["previsualizar"]);
                return;
            }

            uint idFunc = UserInfo.GetUserInfo.CodUser;

            // Verifica qual relatório será chamado
            switch (Request["rel"])
            {
            case "Debitos":
                report.ReportPath = "Relatorios/rptDebitosCliente.rdlc";
                var debitos = ContasReceberDAO.Instance.GetDebitosList(idCliente.Value,
                                                                       Glass.Conversoes.StrParaUint(Request["idPedido"]), Glass.Conversoes.StrParaUint(Request["idLiberarPedido"]), null, 0, 0, null,
                                                                       null, null, 0, 100000);
                report.DataSources.Add(new ReportDataSource("ContasReceber", debitos));
                lstParam.Add(new ReportParameter("TextoRodape", Geral.TextoRodapeRelatorio(FuncionarioDAO.Instance.GetNome(idFunc))));
                lstParam.Add(new ReportParameter("CorRodape", "DimGray"));
                lstParam.Add(new ReportParameter("LiberarPedido", PedidoConfig.LiberarPedido.ToString()));
                break;

            default:
                throw new Exception("Nenhum relatório especificado.");
            }

            report.SetParameters(lstParam);

            Warning[] Warnings  = null;
            string[]  StreamIds = null;
            string    MimeType  = null;
            string    Encoding  = null;
            string    Extension = null;

            byte[] bytes = null;

            bytes = report.Render("PDF", null, out MimeType, out Encoding, out Extension, out StreamIds, out Warnings);

            try
            {
                // Utilizado para exibir na tela
                Response.Clear();
                Response.ContentType = MimeType;
                Response.AddHeader("Content-disposition", "inline");
                Response.BinaryWrite(bytes);
                Response.End();
            }
            catch (Exception ex)
            {
                ex.Data["warnings"]  = Warnings;
                ex.Data["streamids"] = StreamIds;
                ex.Data["mimetype"]  = MimeType;
                ex.Data["encoding"]  = Encoding;
                ex.Data["extension"] = Extension;
                throw ex;
            }
        }