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)); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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; } }