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); }
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 = "") { 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); }
public static byte[] GetBytesRelatorio(HttpContext context, int idMDFe, bool preVisualizar, out Warning[] warnings, out string[] streamids, out string mimeType, out string encoding, out string extension) { var report = new LocalReport(); var lstParam = new List <ReportParameter>(); var mdfe = ManifestoEletronicoDAO.Instance.ObterManifestoEletronicoPeloId(idMDFe); var damdfe = MDFeDAO.ObterParaDAMDFE(context, mdfe.ChaveAcesso); var participanteEmitente = mdfe.Participantes.Where(f => f.TipoParticipante == Model.TipoParticipanteEnum.Emitente).FirstOrDefault(); var idLojaEmitente = participanteEmitente.IdLoja.GetValueOrDefault(0); report.ReportPath = "Relatorios/MDFe/rptDamdfeRetrato.rdlc"; report.ReportPath = context.Server.MapPath("~/" + report.ReportPath); report.DataSources.Add(new ReportDataSource("MDFe", new MDFe[] { damdfe })); // Parâmetros para o cabeçalho/rodapé do relatório lstParam.Add(new ReportParameter("CodigoBarras", Utils.GetUrlSite(context) + "/Handlers/Damdfe.ashx?IdMDFe=" + idMDFe + "&isCodigoBarras=true")); lstParam.Add(new ReportParameter("Producao", (damdfe.TipoAmbiente == (int)Glass.Data.MDFeUtils.ConfigMDFe.TipoAmbienteMDFe.Producao && mdfe.Situacao != Model.SituacaoEnum.Cancelado && !preVisualizar).ToString().ToLower())); // Define se o MDF-e foi emitida em contingência lstParam.Add(new ReportParameter("Contingencia", (mdfe.TipoEmissao == Model.TipoEmissao.Contingencia).ToString().ToLower())); #region LogoTipo var logotipo = Logotipo.GetReportLogoColor(context.Request, (uint)idLojaEmitente); report.EnableExternalImages = true; lstParam.Add(new ReportParameter("Logotipo", logotipo)); #endregion // Atribui parâmetros ao relatório 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) { 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) { // 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) { Glass.Data.RelModel.Recibo recibo; // Verifica qual relatório será chamado switch (Request["rel"]) { case "recibo": if (string.IsNullOrEmpty(outrosParametros[0].ToString()) || string.IsNullOrEmpty(outrosParametros[1].ToString())) { return(null); } var idOrcamento = Request["idOrcamento"] != "0" && Request["idOrcamento"] != "" ? Request["idOrcamento"].StrParaUint() : 0; var idPedido = Request["idPedido"] != "0" && Request["idPedido"] != "" ? Request["idPedido"].StrParaUint() : 0; var idLiberacao = Request["idLiberacao"] != "0" && Request["idLiberacao"] != "" ? Request["idLiberacao"].StrParaUint() : 0; var idsContaR = outrosParametros[1].ToString(); if (idsContaR == null || idsContaR == "0") { if (PedidoConfig.LiberarPedido) { var contasRec = ContasReceberDAO.Instance.GetByLiberacaoPedido(idLiberacao, true); if (contasRec != null && contasRec.Count > 0) { idsContaR = string.Join(",", contasRec.Select(f => f.IdContaR.ToString())); } } else { var contasRec = ContasReceberDAO.Instance.GetByPedido(null, idPedido, false, true); if (contasRec != null && contasRec.Count > 0) { idsContaR = string.Join(",", contasRec.Select(f => f.IdContaR.ToString())); } } } var orcamento = new Data.Model.Orcamento(); var pedido = new Data.Model.Pedido(); var liberacao = new LiberarPedido(); var nomeCliente = string.Empty; var nomeVendedor = string.Empty; var idLoja = new uint(); var total = new decimal(); #region Orçamento // Recupera os dados do orçamento. if (idOrcamento > 0) { orcamento = OrcamentoDAO.Instance.GetElementByPrimaryKey(idOrcamento); if (orcamento.IdCliente > 0) { nomeCliente = ClienteDAO.Instance.GetNome(orcamento.IdCliente.Value); } else { nomeCliente = orcamento.NomeCliente; } nomeVendedor = orcamento.IdFuncionario > 0 ? FuncionarioDAO.Instance.GetNome(orcamento.IdFuncionario.Value) : login.Nome; idLoja = orcamento.IdLoja > 0 ? orcamento.IdLoja.Value : login.IdLoja; total = orcamento.Total; idPedido = 0; idLiberacao = 0; } #endregion #region Pedido // Recupera os dados do pedido. else if (idPedido > 0) { pedido = PedidoDAO.Instance.GetElementByPrimaryKey(idPedido); nomeCliente = ClienteDAO.Instance.GetNome(pedido.IdCli); nomeVendedor = pedido.IdFunc > 0 ? FuncionarioDAO.Instance.GetNome(pedido.IdFunc) : login.Nome; idLoja = pedido.IdPedido > 0 ? pedido.IdLoja : login.IdLoja; total = pedido.Total; // Se houver pcp, usa o total do mesmo var totalEspelho = PedidoEspelhoDAO.Instance.ObtemTotal(idPedido); if (totalEspelho > 0) { total = totalEspelho; } idLiberacao = 0; } #endregion #region Liberação // Recupera os dados da liberação. else if (idLiberacao > 0) { liberacao = LiberarPedidoDAO.Instance.GetElement(idLiberacao); nomeCliente = ClienteDAO.Instance.GetNome(liberacao.IdCliente); nomeVendedor = !string.IsNullOrEmpty(liberacao.NomeFunc) ? liberacao.NomeFunc : login.Nome; idLoja = (uint)FuncionarioDAO.Instance.GetElementByPrimaryKey(liberacao.IdFunc).IdLoja; total = liberacao.Total; } #endregion recibo = new Data.RelModel.Recibo(); recibo.Tipo = Conversoes.StrParaInt(Request["referente"]); recibo.IdOrcamento = orcamento.IdOrcamento; recibo.IdPedido = pedido.IdPedido; recibo.IdLiberarPedido = liberacao.IdLiberarPedido; recibo.Cliente = nomeCliente; recibo.IdLoja = idLoja; recibo.SinalPedido = pedido.IdPedido > 0 ? pedido.ValorEntrada + pedido.ValorPagamentoAntecipado : 0; recibo.Total = total; recibo.Vendedor = nomeVendedor; recibo.Items = outrosParametros[0].ToString(); recibo.NumParcelas = idsContaR; recibo.ValorReferente = Request["valorRef"]; recibo.MotivoReferente = Request["motivoRef"]; report.ReportPath = Data.Helper.Utils.CaminhoRelatorio("Relatorios/Genericos/ModeloRecibo/rptRecibo{0}.rdlc"); if (report.ReportPath == "Relatorios/Genericos/ModeloRecibo/rptReciboVidrosEVidros.rdlc") { lstParam.Add(new ReportParameter("ImagemCabecalho", "file:///" + PageRequest.PhysicalApplicationPath.Replace('\\', '/') + "Images/cabecalhoOrcamentoVivrosEVidros.jpg")); } if (ReciboConfig.Relatorio.UsarParcelasPedido && pedido.IdPedido > 0) { report.DataSources.Add(new ReportDataSource("ParcelasPedido", pedido.NumParc > 0 ? ParcelasPedidoDAO.Instance.GetByPedido(pedido.IdPedido) : new ParcelasPedido[0])); } report.DataSources.Add(new ReportDataSource("Recibo", new Data.RelModel.Recibo[] { recibo })); break; case "reciboPgAntec": Sinal sinal = SinalDAO.Instance.GetSinalDetails(Glass.Conversoes.StrParaUint(Request["idPgAntecipado"])); Cliente clientePgto = ClienteDAO.Instance.GetElementByPrimaryKey(sinal.IdCliente); recibo = new Data.RelModel.Recibo(); recibo.Tipo = Glass.Conversoes.StrParaInt(Request["referente"]); recibo.IdSinal = sinal.IdSinal; recibo.Cliente = clientePgto.Nome; recibo.IdLoja = (uint)FuncionarioDAO.Instance.GetElementByPrimaryKey(sinal.UsuCad).IdLoja; recibo.Total = sinal.TotalSinal; recibo.Vendedor = FuncionarioDAO.Instance.GetNome(sinal.UsuCad); recibo.Items = outrosParametros[0].ToString(); recibo.NumParcelas = outrosParametros[1].ToString(); recibo.ValorReferente = Request["valorRef"]; recibo.MotivoReferente = Request["motivoRef"]; report.ReportPath = Glass.Data.Helper.Utils.CaminhoRelatorio("Relatorios/Genericos/ModeloRecibo/rptRecibo{0}.rdlc"); report.DataSources.Add(new ReportDataSource("Recibo", new Data.RelModel.Recibo[] { recibo })); break; case "reciboAcerto": uint idAcerto = Request["idAcerto"] != "0" && Request["idAcerto"] != "" ? Glass.Conversoes.StrParaUint(Request["idAcerto"]) : 0; if (idAcerto > 0 && !AcertoDAO.Instance.Exists(idAcerto)) { Response.Write("O acerto informado não existe."); return(null); } Acerto acerto = AcertoDAO.Instance.GetByCliList(Convert.ToInt32(idAcerto), 0, 0, 0, null, null, 0, 0, 0, 0, null, 0, 10)[0]; recibo = new Data.RelModel.Recibo(); recibo.Tipo = Glass.Conversoes.StrParaInt(Request["referente"]); recibo.IdAcerto = acerto.IdAcerto; recibo.Cliente = ClienteDAO.Instance.GetNome(acerto.IdCli); recibo.IdLoja = (uint)FuncionarioDAO.Instance.GetElementByPrimaryKey(acerto.UsuCad).IdLoja; recibo.Total = acerto.TotalAcerto; recibo.Vendedor = FuncionarioDAO.Instance.GetNome(acerto.UsuCad); recibo.Items = outrosParametros[0].ToString(); recibo.NumParcelas = outrosParametros[1].ToString(); recibo.ValorReferente = Request["valorRef"]; recibo.MotivoReferente = Request["motivoRef"]; report.ReportPath = Glass.Data.Helper.Utils.CaminhoRelatorio("Relatorios/Genericos/ModeloRecibo/rptRecibo{0}.rdlc"); report.DataSources.Add(new ReportDataSource("Recibo", new Data.RelModel.Recibo[] { recibo })); break; case "termoaceitacao": if (!PedidoDAO.Instance.PedidoExists(Glass.Conversoes.StrParaUint(Request["ped"]))) { Response.Write("O pedido informado não existe."); return(null); } Glass.Data.Model.Pedido pedTermo = PedidoDAO.Instance.GetElement(Glass.Conversoes.StrParaUint(Request["ped"])); if (pedTermo.IdOrcamento == null) { pedTermo.IdOrcamento = 0; } pedTermo.InfoAdicional = Request["infAdic"]?.Replace("\\n", "\n") ?? string.Empty; report.ReportPath = Data.Helper.Utils.CaminhoRelatorio("Relatorios/Genericos/rptAceitacao{0}.rdlc"); report.DataSources.Add(new ReportDataSource("PedidoRpt", PedidoRptDAL.Instance.CopiaLista(new Glass.Data.Model.Pedido[] { pedTermo }, PedidoRpt.TipoConstrutor.TermoAceitacao, false, login))); break; case "riscoquebra": // Verifica se pedido passado existe if (!PedidoDAO.Instance.PedidoExists(Glass.Conversoes.StrParaUint(Request["idPedido"]))) { Response.Write("O pedido informado não existe."); return(null); } var risco = new Data.RelModel.RiscoQuebra(); Glass.Data.Model.Pedido ped = PedidoDAO.Instance.GetElementByPrimaryKey(Glass.Conversoes.StrParaUint(Request["idPedido"])); Cliente cli = ClienteDAO.Instance.GetElementByPrimaryKey(ped.IdCli); cli.Cidade = CidadeDAO.Instance.GetNome((uint?)cli.IdCidade); risco.IdPedido = ped.IdPedido; risco.NomeLoja = LojaDAO.Instance.GetElementByPrimaryKey(ped.IdLoja).NomeFantasia; risco.CidadeData = LojaDAO.Instance.GetElement(ped.IdLoja).Cidade + " " + Formatacoes.DataExtenso(DateTime.Now); risco.Cliente = cli.Nome; risco.Endereco = !string.IsNullOrEmpty(ped.LocalizacaoObra) ? ped.LocalizacaoObra : cli.EnderecoCompleto; risco.Telefone = cli.Telefone; risco.Texto = Request["texto"]; report.ReportPath = Data.Helper.Utils.CaminhoRelatorio("Relatorios/Genericos/rptRiscoQuebra{0}.rdlc"); report.DataSources.Add(new ReportDataSource("RiscoQuebra", new Data.RelModel.RiscoQuebra[] { risco })); break; case "reciboContaPagar": { var idContaPagar = Request["idContaPagar"] != "0" && Request["idContaPagar"] != "" ? Glass.Conversoes.StrParaInt(Request["idContaPagar"]) : 0; var contaPg = ContasPagarDAO.Instance.GetPagasForRpt(idContaPagar, 0, null, 0, 0, 0, 0, null, null, null, null, null, null, null, null, 0, 0, 0, false, true, false, null, false, false, 0, 0, null, null); if (contaPg.Length == 0) { throw new Exception("A conta a pagar informada não existe ou não está paga."); } recibo = new Data.RelModel.Recibo(); recibo.IdContaPagar = idContaPagar; recibo.IdLoja = contaPg[0].IdLoja.GetValueOrDefault(0); recibo.Total = contaPg[0].ValorPago; recibo.Cliente = FornecedorDAO.Instance.GetElementByPrimaryKey(contaPg[0].IdFornec.GetValueOrDefault(0)).Nome; recibo.MotivoReferente = contaPg[0].DescrPlanoConta; report.ReportPath = Glass.Data.Helper.Utils.CaminhoRelatorio("Relatorios/Genericos/ModeloRecibo/rptRecibo{0}.rdlc"); recibo.Tipo = Glass.Conversoes.StrParaInt(Request["referente"]); report.DataSources.Add(new ReportDataSource("Recibo", new Data.RelModel.Recibo[] { recibo })); break; } } // Atribui parâmetros ao relatório lstParam.Add(new ReportParameter("Logotipo", Logotipo.GetReportLogoColor(PageRequest))); lstParam.Add(new ReportParameter("TextoRodape", Geral.TextoRodapeRelatorio(login.Nome))); lstParam.Add(new ReportParameter("CorRodape", "DimGray")); return(null); }
public static byte[] GetBytesRelatorio(HttpContext context, uint idNf, bool preVisualizar, out Warning[] warnings, out string[] streamids, out string mimeType, out string encoding, out string extension) { var report = new LocalReport(); var lstParam = new List <ReportParameter>(); var nf = NotaFiscalDAO.Instance.GetElement(idNf); var danfe = NFeDAO.Instance.GetForDanfe(context, nf.ChaveAcesso); var produtosNFe = ProdutosNFeDAO.Instance.GetForDanfe(context, nf.ChaveAcesso); var idLoja = nf.IdLoja.Value; report.DataSources.Add(new ReportDataSource("NFe", new NFe[] { danfe })); report.DataSources.Add(new ReportDataSource("ProdutosNFe", produtosNFe)); #region NFC-e if (nf.Consumidor) { var loja = LojaDAO.Instance.GetElement(NotaFiscalDAO.Instance.ObtemIdLoja(idNf)); var uf = loja.Uf; #region Report Path report.ReportPath = Utils.CaminhoRelatorio("Relatorios/NFe/rptDanfeNFCe{0}.rdlc"); #endregion #region Pagamentos var pagamentos = PagtoNotaFiscalDAO.Instance.ObtemPagamentos(null, (int)idNf); report.DataSources.Add(new ReportDataSource("PagtoNotaFiscal", pagamentos)); #endregion #region Parametros // Parâmetros para o relatório lstParam.Add(new ReportParameter("QtdItens", produtosNFe.Length.ToString())); // Verifica apenas se a nota não é cancelada, pois a nota só muda para autorizada depois de enviar o email, // fazendo com que os clientes recebesse o DANFE dizendo que a nota "não é um documento fiscal válido" lstParam.Add(new ReportParameter("Producao", (danfe.TipoAmbiente == (int)ConfigNFe.TipoAmbienteNfe.Producao && nf.Situacao != (int)NotaFiscal.SituacaoEnum.Cancelada && !preVisualizar).ToString().ToLower())); #region Total de tributos decimal valorTotalTributos = 0; var cfop = CfopDAO.Instance.GetElementByPrimaryKey(nf.IdCfop.Value); var cliente = ClienteDAO.Instance.GetElement(nf.IdCliente.Value); var lstProdNf = ProdutosNfDAO.Instance.GetByNfExtended(idNf); // CFOP's de simples faturamento/venda futura não devem destacar os impostos var exibirImpostoCfop = cfop.CodInterno != "5922" && cfop.CodInterno != "6922"; try { if (nf.TipoDocumento == (int)NotaFiscal.TipoDoc.Saída && exibirImpostoCfop && cliente != null) { var retorno = ImpostoNcmUFDAO.Instance.ObtemDadosImpostos(lstProdNf); valorTotalTributos = retorno.ValorImpostoNacional + retorno.ValorImpostoEstadual; } } catch (Exception ex) { ErroDAO.Instance.InserirFromException("BuscarTributos", ex); throw new Exception(MensagemAlerta.FormatErrorMsg("Falha ao buscar tributos aproximados.", ex)); } if (valorTotalTributos == 0 && nf.ValorTotalTrib > 0) { valorTotalTributos = nf.ValorTotalTrib; } lstParam.Add(new ReportParameter("ValorTotalTributos", valorTotalTributos.ToString())); #endregion //Url para consultar a NFC-e por chave de acesso lstParam.Add(new ReportParameter("UrlConsulta", danfe.UrlChave)); // Define se a NFC-e foi emitida em contingência lstParam.Add(new ReportParameter("Contingencia", (nf.FormaEmissao != (int)NotaFiscal.TipoEmissao.Normal).ToString().ToLower())); #endregion #region QR Code /* Chamado 44291. */ if (FiscalConfig.CorrecaoGeracaoCodigoBarrasDanfe) { var url = Utils.GetFullUrl(context, "/Handlers/Danfe.ashx?idNf=" + idNf + "&isQrCode=true"); var uri = new Uri(url); lstParam.Add(new ReportParameter("QrCode", string.Format("{0}://localhost:{1}{2}", uri.Scheme, uri.Port, uri.PathAndQuery))); } else { lstParam.Add(new ReportParameter("QrCode", Utils.GetUrlSite(context) + "/Handlers/Danfe.ashx?idNf=" + idNf + "&isQrCode=true")); } #endregion } #endregion #region NF-e else { #region Report Path report.ReportPath = Utils.CaminhoRelatorio("Relatorios/NFe/rptDanfeRetrato{0}.rdlc"); #endregion #region Email if (nf.IdLoja > 0) { danfe.EnderecoEmit += " " + LojaDAO.Instance.GetElementByPrimaryKey(nf.IdLoja.Value).EmailFiscal; } danfe.EmailFiscal += " " + LojaDAO.Instance.GetElementByPrimaryKey(nf.IdLoja.Value).EmailFiscal; #endregion #region Parametros if (nf.FormaEmissao == (int)NotaFiscal.TipoEmissao.ContingenciaFSDA) { report.ReportPath = Utils.CaminhoRelatorio("Relatorios/NFe/rptDanfeRetratoFS{0}.rdlc"); lstParam.Add(new ReportParameter("Cabecalho_DadosAdicionaisNfe", danfe.DadosAdicionaisFs)); lstParam.Add(new ReportParameter("Cabecalho_CodigoBarrasAdicionais", Utils.GetUrlSite(context) + "/Handlers/Danfe.ashx?idNf=" + idNf + "&isCodigoBarras=true&dadosAdicionais=true")); } // Verifica apenas se a nota não é cancelada, pois a nota só muda para autorizada depois de enviar o email, // fazendo com que os clientes recebesse o DANFE dizendo que a nota "não é um documento fiscal válido" lstParam.Add(new ReportParameter("Producao", (danfe.TipoAmbiente == (int)ConfigNFe.TipoAmbienteNfe.Producao && nf.Situacao != (int)NotaFiscal.SituacaoEnum.Cancelada && !preVisualizar).ToString().ToLower())); lstParam.Add(new ReportParameter("ExibirNFCancelada", (!preVisualizar && danfe.TipoAmbiente == (int)ConfigNFe.TipoAmbienteNfe.Producao && nf.Situacao == (int)NotaFiscal.SituacaoEnum.Cancelada).ToString().ToLower())); // Parâmetros para o cabeçalho/rodapé do relatório lstParam.Add(new ReportParameter("Cabecalho_NumeroNfe", danfe.NumeroNfe)); lstParam.Add(new ReportParameter("Cabecalho_SerieNfe", danfe.SerieNfe)); lstParam.Add(new ReportParameter("Cabecalho_RazaoSocialEmit", danfe.RazaoSocialEmit)); lstParam.Add(new ReportParameter("Cabecalho_EnderecoEmit", danfe.EnderecoEmit)); lstParam.Add(new ReportParameter("Cabecalho_TipoNfe", danfe.TipoNfe)); lstParam.Add(new ReportParameter("Cabecalho_ChaveAcesso", danfe.ChaveAcesso)); lstParam.Add(new ReportParameter("Cabecalho_NatOperacao", danfe.NatOperacao)); lstParam.Add(new ReportParameter("Cabecalho_ProtAutorizacao", String.IsNullOrEmpty(danfe.ProtAutorizacao) ? "." : danfe.ProtAutorizacao)); lstParam.Add(new ReportParameter("Cabecalho_InscEstEmit", danfe.InscEstEmit)); lstParam.Add(new ReportParameter("Cabecalho_InscEstStEmit", danfe.InscEstStEmit)); lstParam.Add(new ReportParameter("Cabecalho_CnpjEmit", danfe.CnpjEmit)); lstParam.Add(new ReportParameter("TextoDadosRecebimento", string.Format("RECEBEMOS DE {0} CNPJ {1} OS PRODUTOS E/OU SERVIÇOS CONSTANTES DA NOTA FISCAL ELETRÔNICA INDICADA AO LADO." + "\nDESTINATÁRIO: {2} {3} Emissão: {4}. VALOR TOTAL: {5}.", danfe.RazaoSocialEmit, danfe.CnpjEmit, danfe.RazaoSocialRemet, danfe.EnderecoRemet, danfe.DataEmissao, danfe.VlrTotalNota.StrParaDecimal().ToString("C")))); if (!report.ReportPath.Contains("rptDanfeSemLogo")) { lstParam.Add(new ReportParameter("Cabecalho_DestacarNFe", "false")); } lstParam.Add(new ReportParameter("Rodape_InformacoesCompl", danfe.InformacoesCompl)); #endregion #region Código de barras /* Chamado 18187. */ if (FiscalConfig.CorrecaoGeracaoCodigoBarrasDanfe) { var url = Utils.GetFullUrl(context, "/Handlers/Danfe.ashx?idNf=" + idNf + "&isCodigoBarras=true"); var uri = new Uri(url); lstParam.Add(new ReportParameter("Cabecalho_CodigoBarras", string.Format("{0}://localhost:{1}{2}", uri.Scheme, uri.Port, uri.PathAndQuery))); } else { lstParam.Add(new ReportParameter("Cabecalho_CodigoBarras", Utils.GetUrlSite(context) + "/Handlers/Danfe.ashx?idNf=" + idNf + "&isCodigoBarras=true")); } #endregion } #endregion #region LogoTipo var logotipo = Logotipo.GetReportLogoNF(context.Request, idLoja); if (FiscalConfig.NotaFiscalConfig.EsconderLogotipoDANFEComLogo) { logotipo = "."; } report.EnableExternalImages = true; lstParam.Add(new ReportParameter("Logotipo", logotipo)); #endregion //Ajusta o caminho do report report.ReportPath = context.Server.MapPath("~/" + report.ReportPath); // Atribui parâmetros ao relatório 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) { // 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 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 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 void Page_Load(object sender, EventArgs e) { if (Request.UserAgent != null && (Request.UserAgent.IndexOf("AppleWebKit") > 0 || Request.UserAgent.IndexOf("Unknown") > 0 || Request.UserAgent.IndexOf("Chrome") > 0)) { Request.Browser.Adapters.Clear(); } //Esconde a opção de controle de usuario caso for Parceiro if (UserInfo.GetUserInfo == null || UserInfo.GetUserInfo.CodUser == 0) { lnkControleUsuario.Visible = false; } // Altera o título da página if (!Page.Title.Contains(TITULO_INICIO)) { lblTitulo.Text = Page.Title; Page.Title = TITULO_INICIO + Page.Title; } lblTitulo.Text += string.Format("{0}", ControleSistema.AmbienteTeste ? " (AMBIENTE TESTE)" : string.Empty); Page.Title += string.Format("{0}", ControleSistema.AmbienteTeste ? " (AMBIENTE TESTE)" : string.Empty); // Inicia as threads de controle do sistema, se necessário if (!IsPostBack && Page.User.Identity.IsAuthenticated) { Threads.Instance.IniciarThreads(HttpContext.Current); } // Esconde os itens da tela em caso de popup if (IsPopup()) { Page.ClientScript.RegisterStartupScript(GetType(), "popup", "hidePopup();", true); } #region Atualiza acesso e valida login try { // Salva numa variável Application o usuário logado, ou atualiza seu último acesso UserInfo.SetActivity(); } catch { } LoginUsuario login = null; try { login = UserInfo.GetUserInfo; } catch { } if (login == null || (login.CodUser == 0 && login.IdCliente == 0)) { Response.Redirect(PaginaLogin); return; } imgCliente.ImageUrl = Logotipo.GetLogoVirtualPath(); if (IsPopup()) { return; } lblUsuario.Text = ControleSistema.AmbienteTeste ? "AMBIENTE TESTE" : string.Format("Bem vindo(a), {0}", login.Nome); if (LojaDAO.Instance.GetCount() > 1) { lblUsuario.Text += "<br/>" + LojaDAO.Instance.GetNome(login.IdLoja); } /* Chamado 53668. */ if (Geral.SistemaLite) { lblTelSuporte.Visible = false; lblCoord.Visible = false; } else if (!login.IsAdministrador) { lblCoord.Visible = false; } DateTime dataTrabalho = FuncionarioDAO.Instance.ObtemDataAtraso(login.CodUser); lblDataTrabalho.Text = dataTrabalho != DateTime.Now ? " (data de trabalho: " + dataTrabalho.ToString("dd/MM/yyyy") + ")" : ""; // Verifica se há novas mensagens e quantas são bool msgNova = VerificarMensagensNaoLidas(); lnkMensagens.Visible = !msgNova; lnkMensagensNaoLidas.Visible = msgNova; try { // Chamado 13112. // É necessário informar ao funcionário, financeiro recebimento, quantos pedidos estão aguardando sua confirmação/finalização. VerificarPedidosAguardandoFinanceiro(); VerificarEstoqueMinimo(); VerificarAvaliacaoPendente(); } catch (Exception ex) { ErroDAO.Instance.InserirFromException("Layout.master.cs - Page_Load", ex); } #endregion lnkVersao.Text = GetVersion(); lnkControleUsuario.Visible = UserInfo.GetUserInfo.IsCliente ? false : FuncionarioDAO.Instance.ObtemHabilitarControleUsuarios(UserInfo.GetUserInfo.CodUser); }
public static byte[] GetBytesRelatorio(HttpContext context, uint idCte, bool preVisualizar, out Warning[] warnings, out string[] streamids, out string mimeType, out string encoding, out string extension) { var report = new LocalReport(); var lstParam = new List <ReportParameter>(); var cte = ConhecimentoTransporteDAO.Instance.GetElement(idCte); var dacte = CTeDAO.GetForDacte(context, cte.ChaveAcesso); var participante = ParticipanteCteDAO.Instance.GetParticipanteByIdCte(cte.IdCte); var idLoja = participante.Where(f => f.TipoParticipante == ParticipanteCte.TipoParticipanteEnum.Emitente).First().IdLoja; report.DataSources.Add(new ReportDataSource("CTe", new CTe[] { dacte })); var cteRod = DAL.CTe.ConhecimentoTransporteRodoviarioDAO.Instance.GetElement(idCte); if (cteRod != null && cteRod.Lotacao) { report.ReportPath = "Relatorios/CTe/rptDacteRetrato.rdlc"; } else { report.ReportPath = "Relatorios/CTe/rptDacteRetratoFracionado.rdlc"; } if (cte.TipoEmissao == (int)Glass.Data.Model.Cte.ConhecimentoTransporte.TipoEmissaoEnum.ContingenciaFsda) { report.ReportPath = report.ReportPath.Replace(".", "FS."); lstParam.Add(new ReportParameter("Cabecalho_DadosAdicionaisCte", dacte.DadosAdicionaisFs)); lstParam.Add(new ReportParameter("Cabecalho_CodigoBarrasAdicionais", Utils.GetUrlSite(context) + "/Handlers/Dacte.ashx?idCte=" + idCte + "&isCodigoBarras=true&dadosAdicionais=true")); } report.ReportPath = context.Server.MapPath("~/" + report.ReportPath); lstParam.Add(new ReportParameter("Producao", (dacte.TipoAmbiente == (int)Glass.Data.CTeUtils.ConfigCTe.TipoAmbienteCte.Producao && cte.Situacao != (int)ConhecimentoTransporte.SituacaoEnum.Cancelado && !preVisualizar).ToString().ToLower())); // Parâmetros para o cabeçalho/rodapé do relatório lstParam.Add(new ReportParameter("Cabecalho_EnderecoEmit", dacte.EnderecoEmit != null ? dacte.EnderecoEmit : "")); lstParam.Add(new ReportParameter("Cabecalho_RazaoSocialEmit", dacte.RazaoSocialEmit != null ? dacte.RazaoSocialEmit : "")); lstParam.Add(new ReportParameter("Cabecalho_Modelo", dacte.Modelo != null ? dacte.Modelo : "")); lstParam.Add(new ReportParameter("Cabecalho_SerieCte", dacte.SerieCte != null ? dacte.SerieCte : "")); lstParam.Add(new ReportParameter("Cabecalho_NumeroCte", dacte.NumeroCte != null ? dacte.NumeroCte : "")); lstParam.Add(new ReportParameter("Cabecalho_DHEmissao", dacte.DHEmissao != null ? dacte.DHEmissao : "")); lstParam.Add(new ReportParameter("Cabecalho_SuframaDest", dacte.InscSuframa != null ? dacte.InscSuframa : "")); lstParam.Add(new ReportParameter("Cabecalho_TipoCTe", dacte.TipoCte != null ? dacte.TipoCte : "")); lstParam.Add(new ReportParameter("Cabecalho_TipoServico", dacte.TipoServico != null ? dacte.TipoServico : "")); lstParam.Add(new ReportParameter("Cabecalho_TomadorServico", dacte.TipoTomador == "0" ? "Remetente" : (dacte.TipoTomador == "1" ? "Expedidor" : (dacte.TipoTomador == "2" ? "Recebedor" : "Destinatário")))); lstParam.Add(new ReportParameter("Cabecalho_NatOperacao", dacte.NatOperacao != null ? dacte.NatOperacao : "")); lstParam.Add(new ReportParameter("Cabecalho_ChaveAcesso", dacte.ChaveAcesso != null ? dacte.ChaveAcesso : "")); lstParam.Add(new ReportParameter("Cabecalho_CodigoBarras", Utils.GetUrlSite(context) + "/Handlers/Dacte.ashx?idCte=" + idCte + "&isCodigoBarras=true")); lstParam.Add(new ReportParameter("Cabecalho_ProtAutorizacao", String.IsNullOrEmpty(dacte.ProtocoloAutorizacao) ? "." : dacte.ProtocoloAutorizacao)); lstParam.Add(new ReportParameter("Cabecalho_OrigemPrestacao", String.IsNullOrEmpty(dacte.OrigemPrestacao) ? "." : dacte.OrigemPrestacao)); lstParam.Add(new ReportParameter("Cabecalho_DestinoPrestacao", String.IsNullOrEmpty(dacte.DestinoPrestacao) ? "." : dacte.DestinoPrestacao)); lstParam.Add(new ReportParameter("Cabecalho_CnpjIEEmit", dacte.CnpjCpfEmitente + " - " + dacte.InscEstEmitente)); //Trecho responsável pelo preenchimento das propriedades da classe que popula //a tabela de componentes do valor da prestação do Cte replicando os dados entre as colunas //e posteriormente entre as linhas #region Tabela Componentes var listaComponentes = new List <LinhaComponenteValor>(); if (dacte.ListaComponentes != null && dacte.ListaComponentes.Count > 0) { int count = 0; foreach (var tcv in dacte.ListaComponentes) { if (count == 0) { listaComponentes.Add(new LinhaComponenteValor()); listaComponentes[listaComponentes.Count() - 1].Nome1 = tcv.NomeComponente.ToString().ToUpper(); listaComponentes[listaComponentes.Count() - 1].Valor1 = tcv.ValorComponente.ToString().ToUpper(); count++; continue; } else if (count == 1) { listaComponentes[listaComponentes.Count() - 1].Nome2 = tcv.NomeComponente.ToString().ToUpper(); listaComponentes[listaComponentes.Count() - 1].Valor2 = tcv.ValorComponente.ToString().ToUpper(); count++; continue; } else if (count == 2) { listaComponentes[listaComponentes.Count() - 1].Nome3 = tcv.NomeComponente.ToString().ToUpper(); listaComponentes[listaComponentes.Count() - 1].Valor3 = tcv.ValorComponente.ToString().ToUpper(); count++; continue; } else if (count == 3) { listaComponentes[listaComponentes.Count() - 1].Nome4 = tcv.NomeComponente.ToString().ToUpper(); listaComponentes[listaComponentes.Count() - 1].Valor4 = tcv.ValorComponente.ToString().ToUpper(); count = 0; continue; } } } #endregion //Trecho responsável pelo preenchimento das propriedades da classe que popula //a tabela de informações da carga do cte replicando os dados entre as colunas //e posteriormente entre as linhas #region Tabela InfoCarga var listaInfoCarga = new List <LinhaInfCarga>(); if (dacte.ListaInfoCargaCte.Count > 0) { int count = 0; foreach (var infCarga in dacte.ListaInfoCargaCte) { if (count == 0) { listaInfoCarga.Add(new LinhaInfCarga()); listaInfoCarga[listaInfoCarga.Count() - 1].Quantidade1 = infCarga.Quantidade.ToString().ToUpper(); listaInfoCarga[listaInfoCarga.Count() - 1].TipoMedida1 = infCarga.TipoMedida.ToString().ToUpper(); listaInfoCarga[listaInfoCarga.Count() - 1].UnidadeMedida1 = ((InfoCargaCte.TipoUnidadeEnum)infCarga.TipoUnidade).Translate().Format().ToUpper(); count++; continue; } else if (count == 1) { listaInfoCarga[listaInfoCarga.Count() - 1].Quantidade2 = infCarga.Quantidade.ToString().ToUpper(); listaInfoCarga[listaInfoCarga.Count() - 1].TipoMedida2 = infCarga.TipoMedida.ToString().ToUpper(); listaInfoCarga[listaInfoCarga.Count() - 1].UnidadeMedida2 = ((InfoCargaCte.TipoUnidadeEnum)infCarga.TipoUnidade).Translate().Format().ToUpper(); count++; continue; } else if (count == 2) { listaInfoCarga[listaInfoCarga.Count() - 1].Quantidade3 = infCarga.Quantidade.ToString().ToUpper(); listaInfoCarga[listaInfoCarga.Count() - 1].TipoMedida3 = infCarga.TipoMedida.ToString().ToUpper(); listaInfoCarga[listaInfoCarga.Count() - 1].UnidadeMedida3 = ((InfoCargaCte.TipoUnidadeEnum)infCarga.TipoUnidade).Translate().Format().ToUpper(); count = 0; continue; } } } #endregion //Trecho responsável pelo preenchimento das propriedades da classe que popula //a tabela de documentos originários do cte replicando os dados entre as colunas //e posteriormente entre as linhas #region Tabela Documentos Originários var listaDocsOriginarios = new List <LinhaDocumentosOriginarios>(); if (dacte.ListaDocumentosOriginarios != null && dacte.ListaDocumentosOriginarios.Count > 0) { int count = 0; foreach (var docsOriginarios in dacte.ListaDocumentosOriginarios) { if (count == 0) { listaDocsOriginarios.Add(new LinhaDocumentosOriginarios()); listaDocsOriginarios[listaDocsOriginarios.Count() - 1].DocEmitenteNf1 = docsOriginarios.DocEmitenteNf != null?docsOriginarios.DocEmitenteNf.ToString().ToUpper() : ""; listaDocsOriginarios[listaDocsOriginarios.Count() - 1].TipoDoc1 = docsOriginarios.TipoDoc != null?docsOriginarios.TipoDoc.ToString().ToUpper() : ""; listaDocsOriginarios[listaDocsOriginarios.Count() - 1].Serie1 = docsOriginarios.Serie != null?docsOriginarios.Serie.ToString().ToUpper() : ""; listaDocsOriginarios[listaDocsOriginarios.Count() - 1].NumeroDoc1 = docsOriginarios.NumeroDoc != null?docsOriginarios.NumeroDoc.ToString().ToUpper() : ""; count++; continue; } else if (count == 1) { listaDocsOriginarios[listaDocsOriginarios.Count() - 1].DocEmitenteNf2 = docsOriginarios.DocEmitenteNf != null?docsOriginarios.DocEmitenteNf.ToString().ToUpper() : ""; listaDocsOriginarios[listaDocsOriginarios.Count() - 1].TipoDoc2 = docsOriginarios.TipoDoc != null?docsOriginarios.TipoDoc.ToString().ToUpper() : ""; listaDocsOriginarios[listaDocsOriginarios.Count() - 1].Serie2 = docsOriginarios.Serie != null?docsOriginarios.Serie.ToString().ToUpper() : ""; listaDocsOriginarios[listaDocsOriginarios.Count() - 1].NumeroDoc2 = docsOriginarios.NumeroDoc != null?docsOriginarios.NumeroDoc.ToString().ToUpper() : ""; count = 0; continue; } } } #endregion //Trecho responsável pelo preenchimento das propriedades da classe que popula //a tabela de identificação dos lacres em trânsito replicando os dados entre as colunas //e posteriormente entre as linhas #region Tabela Lacres var listaLacres = new List <LinhaLacreCte>(); if (dacte.ListaNumeroLacre != null && dacte.ListaNumeroLacre.Count > 0) { int count = 0; foreach (var lacres in dacte.ListaNumeroLacre) { if (count == 0) { listaLacres.Add(new LinhaLacreCte()); listaLacres[listaLacres.Count() - 1].NumLacre1 = lacres.NumeroLacre.ToString().ToUpper(); count++; continue; } else if (count == 1) { listaLacres[listaLacres.Count() - 1].NumLacre2 = lacres.NumeroLacre.ToString().ToUpper(); count++; continue; } else if (count == 2) { listaLacres[listaLacres.Count() - 1].NumLacre3 = lacres.NumeroLacre.ToString().ToUpper(); count = 0; continue; } } } #endregion report.DataSources.Add(new ReportDataSource("LinhaComponenteValor", listaComponentes)); report.DataSources.Add(new ReportDataSource("LinhaInfoCarga", listaInfoCarga)); report.DataSources.Add(new ReportDataSource("LinhaDocumentosOriginarios", listaDocsOriginarios)); report.DataSources.Add(new ReportDataSource("LinhaLacreCte", listaLacres)); #region tomador #endregion //lstParam.Add(new ReportParameter("ProdutoPredominante", dacte.ProdutoPredominante)); //lstParam.Add(new ReportParameter("OutrasCaractCarga", dacte.OutCarctCarga)); //lstParam.Add(new ReportParameter("ValorTotalMercadoria", dacte.Valortotalme)); //lstParam.Add(new ReportParameter("Logotipo", empresa != ControleSistema.ClienteSistema.CenterBox && // empresa != ControleSistema.ClienteSistema.Vipal ? Utils.GetReportLogoColor(context.Request, idLoja) : // Utils.GetReportLogoColor(context.Request, idLoja).Replace("Color", "Nf"))); #region LogoTipo var logotipo = Logotipo.GetReportLogoColor(context.Request, idLoja.GetValueOrDefault(0)); report.EnableExternalImages = true; lstParam.Add(new ReportParameter("Logotipo", logotipo)); #endregion // Atribui parâmetros ao relatório 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) { // 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); }
public static byte[] GetBytesRelatorio(HttpContext context, uint[] idsNf, bool preVisualizar, out Warning[] warnings, out string[] streamids, out string mimeType, out string encoding, out string extension) { var report = new LocalReport(); var lstParam = new List <ReportParameter>(); foreach (var idNf in idsNf) { var nf = NotaFiscalDAO.Instance.GetElement(idNf); var danfe = NFeDAO.Instance.GetForDanfe(context, nf.ChaveAcesso); var produtosNFe = ProdutosNFeDAO.Instance.GetForDanfe(context, nf.ChaveAcesso); var idLoja = nf.IdLoja.Value; report.DataSources.Add(new ReportDataSource("NFe", new NFe[] { danfe })); report.DataSources.Add(new ReportDataSource("ProdutosNFe", produtosNFe)); #region NF-e #region Report Path //report.ReportPath = FiscalConfig.NotaFiscalConfig.CaminhoDANFE((int)nf.IdLoja.GetValueOrDefault()); #endregion if (nf.IdLoja > 0) { danfe.EnderecoEmit += " " + LojaDAO.Instance.GetElementByPrimaryKey(nf.IdLoja.Value).EmailFiscal; } danfe.EmailFiscal += " " + LojaDAO.Instance.GetElementByPrimaryKey(nf.IdLoja.Value).EmailFiscal; #region Parametros if (nf.FormaEmissao == (int)NotaFiscal.TipoEmissao.ContingenciaFSDA) { report.ReportPath = report.ReportPath.Replace(".", "FS."); lstParam.Add(new ReportParameter("Cabecalho_DadosAdicionaisNfe", danfe.DadosAdicionaisFs)); lstParam.Add(new ReportParameter("Cabecalho_CodigoBarrasAdicionais", Utils.GetUrlSite(context) + "/Handlers/Danfe.ashx?idNf=" + idNf + "&isCodigoBarras=true&dadosAdicionais=true")); } // Verifica apenas se a nota não é cancelada, pois a nota só muda para autorizada depois de enviar o email, // fazendo com que os clientes recebesse o DANFE dizendo que a nota "não é um documento fiscal válido" lstParam.Add(new ReportParameter("Producao", (danfe.TipoAmbiente == (int)ConfigNFe.TipoAmbienteNfe.Producao && nf.Situacao != (int)NotaFiscal.SituacaoEnum.Cancelada && !preVisualizar).ToString().ToLower())); lstParam.Add(new ReportParameter("ExibirNFCancelada", (!preVisualizar && danfe.TipoAmbiente == (int)ConfigNFe.TipoAmbienteNfe.Producao && nf.Situacao == (int)NotaFiscal.SituacaoEnum.Cancelada).ToString().ToLower())); // Parâmetros para o cabeçalho/rodapé do relatório lstParam.Add(new ReportParameter("Cabecalho_NumeroNfe", danfe.NumeroNfe)); lstParam.Add(new ReportParameter("Cabecalho_SerieNfe", danfe.SerieNfe)); lstParam.Add(new ReportParameter("Cabecalho_RazaoSocialEmit", danfe.RazaoSocialEmit)); lstParam.Add(new ReportParameter("Cabecalho_EnderecoEmit", danfe.EnderecoEmit)); lstParam.Add(new ReportParameter("Cabecalho_TipoNfe", danfe.TipoNfe)); lstParam.Add(new ReportParameter("Cabecalho_ChaveAcesso", danfe.ChaveAcesso)); lstParam.Add(new ReportParameter("Cabecalho_NatOperacao", danfe.NatOperacao)); lstParam.Add(new ReportParameter("Cabecalho_ProtAutorizacao", String.IsNullOrEmpty(danfe.ProtAutorizacao) ? "." : danfe.ProtAutorizacao)); lstParam.Add(new ReportParameter("Cabecalho_InscEstEmit", danfe.InscEstEmit)); lstParam.Add(new ReportParameter("Cabecalho_InscEstStEmit", danfe.InscEstStEmit)); lstParam.Add(new ReportParameter("Cabecalho_CnpjEmit", danfe.CnpjEmit)); if (report.ReportPath != "Relatorios/NFe/rptDanfeSemLogo.rdlc") { lstParam.Add(new ReportParameter("Cabecalho_DestacarNFe", "false")); } #region Código de barras /* Chamado 18187. */ if (FiscalConfig.CorrecaoGeracaoCodigoBarrasDanfe) { var url = Utils.GetFullUrl(context, "/Handlers/Danfe.ashx?idNf=" + idNf + "&isCodigoBarras=true"); var uri = new Uri(url); lstParam.Add(new ReportParameter("Cabecalho_CodigoBarras", string.Format("{0}://localhost:{1}{2}", uri.Scheme, uri.Port, uri.PathAndQuery))); } else { lstParam.Add(new ReportParameter("Cabecalho_CodigoBarras", Utils.GetUrlSite(context) + "/Handlers/Danfe.ashx?idNf=" + idNf + "&isCodigoBarras=true")); } #endregion lstParam.Add(new ReportParameter("Rodape_InformacoesCompl", danfe.InformacoesCompl)); #endregion #endregion #region LogoTipo var logotipo = Logotipo.GetReportLogoNF(context.Request, idLoja); if (FiscalConfig.NotaFiscalConfig.EsconderLogotipoDANFEComLogo) { logotipo = "."; } report.EnableExternalImages = true; lstParam.Add(new ReportParameter("Logotipo", logotipo)); #endregion //Ajusta o caminho do report report.ReportPath = context.Server.MapPath("~/" + report.ReportPath); // Atribui parâmetros ao relatório 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 idLoja = 1; // Verifica qual relatório será chamado switch (Request["rel"]) { case "NfTerceiros": report.ReportPath = "Relatorios/NFe/rptNFTerceiros.rdlc"; NotaFiscal nfTerc = NotaFiscalDAO.Instance.GetElement(Glass.Conversoes.StrParaUint(Request["idNf"])); ProdutosNf[] lstProd = ProdutosNfDAO.Instance.GetByNf(nfTerc.IdNf); foreach (ProdutosNf pnf in lstProd) { pnf.Qtde = ProdutosNfDAO.Instance.ObtemQtdDanfe(pnf); } idLoja = nfTerc.IdLoja.Value; report.DataSources.Add(new ReportDataSource("NotaFiscal", new NotaFiscal[] { nfTerc })); report.DataSources.Add(new ReportDataSource("ProdutosNf", lstProd)); lstParam.Add(new ReportParameter("TextoRodape", Geral.TextoRodapeRelatorio(login.Nome))); lstParam.Add(new ReportParameter("CorRodape", "DimGray")); break; case "LivroRegistro": string loja = Request["loja"]; string dataInicial = Request["dataInicial"]; string dataFinal = Request["dataFinal"]; string ultimoLancamento = Request["ultimoLancamento"]; string termo = Request["termo"]; string numeroOrdem = Request["numeroOrdem"]; string localData = Request["localData"]; string contador = Request["contador"]; string funcionario = Request["funcionario"]; string tipo = Request["tipo"]; string exibeST = Request["exibeST"]; string exibeIPI = Request["exibeIPI"]; string mes = Request["mes"]; string ano = Request["ano"]; Contabilista cont = ContabilistaDAO.Instance.GetElement(Glass.Conversoes.StrParaUint(contador)); Funcionario func = FuncionarioDAO.Instance.GetElement(Glass.Conversoes.StrParaUint(funcionario)); int totalPaginas = int.MinValue; uint idNota = 0; #region Entrada if (tipo == "1") { var livro = LivroRegistroDAO.Instance.ObterDadosLivroRegistro(Glass.Conversoes.StrParaInt(loja)); livro.Periodo = new DateTime(Glass.Conversoes.StrParaInt(ano), Glass.Conversoes.StrParaInt(mes), 1, 0, 0, 0).ToShortDateString() + " a " + new DateTime(Glass.Conversoes.StrParaInt(ano), Glass.Conversoes.StrParaInt(mes), DateTime.DaysInMonth(Glass.Conversoes.StrParaInt(ano), Glass.Conversoes.StrParaInt(mes)), 23, 59, 059).ToShortDateString(); livro.UltimoLancamento = ultimoLancamento; livro.LocalData = localData; livro.NumeroOrdem = numeroOrdem; livro.Termo = termo; livro.Responsavel = func.Nome; livro.CPFResponsavel = func.Cpf; livro.CargoResponsavel = func.Funcao; livro.Contador = cont.Nome; livro.CPFContador = cont.CpfCnpj; livro.CRCContador = cont.Crc; List <ItemEntrada> Itens = ItemEntradaDAO.Instance.ObterItensEntrada(Glass.Conversoes.StrParaUint(loja), Glass.Conversoes.StrParaInt(mes), Glass.Conversoes.StrParaInt(ano), bool.Parse(exibeST), bool.Parse(exibeIPI), login); #region CST 20 Redução de Base de Cálculo List <ItemEntrada> ItensCST20 = Itens.FindAll(delegate(ItemEntrada i) { return(i.CST == "20" && i.TipoImposto == "ICMS"); }); foreach (ItemEntrada i in ItensCST20) { float reducao = ProdutosNfDAO.Instance.ObtemPercentualReducaoBaseCalculo(i.IdProdNF); ItemEntrada novo = new ItemEntrada(); novo.Aliquota = 0; novo.BaseCalculo = (i.ValorContabil * Convert.ToDecimal(reducao)) / 100; novo.CFOP = i.CFOP; novo.CNPJEmitente = i.CNPJEmitente; novo.CodigoContabil = i.CodigoContabil; novo.CodigoEmitente = i.CodigoEmitente; novo.CodValorFiscal = 2; novo.CorLinha = i.CorLinha; novo.CST = i.CST; novo.DataDocumento = i.DataDocumento; novo.DataEntrada = i.DataEntrada; novo.Especie = i.Especie; novo.ExibirDadosFornecedor = i.ExibirDadosFornecedor; novo.IdNF = i.IdNF; novo.IdProdNF = i.IdProdNF; novo.ImpostoCreditado = 0; novo.InscEstEmitente = i.InscEstEmitente; novo.NomeEmitente = i.NomeEmitente; novo.NumeroNota = i.NumeroNota; novo.NumeroPagina = i.NumeroPagina; novo.Observacao = i.Observacao; novo.SerieSubSerie = i.SerieSubSerie; novo.TipoImposto = i.TipoImposto; novo.UFOrigem = i.UFOrigem; novo.ValorContabil = 0; Itens.Add(novo); } Itens.Sort(delegate(ItemEntrada p1, ItemEntrada p2) { int ret = p1.DataEntrada.ToShortDateString().CompareTo(p2.DataEntrada.ToShortDateString()); if (ret == 0) { ret = p1.NumeroNota.CompareTo(p2.NumeroNota); } if (ret == 0) { ret = String.Compare(p1.TipoImposto, p2.TipoImposto); } if (ret == 0) { ret = p1.CodValorFiscal.CompareTo(p2.CodValorFiscal); } if (ret == 0) { ret = String.Compare(p1.CFOP, p2.CFOP); } return(ret); }); #endregion #region CST 70 Redução de Base de Cálculo List <ItemEntrada> ItensCST70 = Itens.FindAll(delegate(ItemEntrada i) { return(i.CST == "70" && i.TipoImposto == "ICMS" && i.CodValorFiscal == 1); }); foreach (ItemEntrada i in ItensCST70) { ProdutosNf prod = ProdutosNfDAO.Instance.GetElement(i.IdProdNF); ItemEntrada novo = new ItemEntrada(); novo.Aliquota = 0; novo.BaseCalculo = prod != null ? prod.BcIcms : i.BaseCalculo; // (i.ValorContabil * Convert.ToDecimal(prod.PercRedBcIcms)) / 100; novo.BaseCalculoST = prod != null ? prod.BcIcmsSt : i.BaseCalculoST; //(i.ValorContabil + (i.ValorContabil * (Convert.ToDecimal(prod.Mva) / 100))) * (Convert.ToDecimal(prod.PercRedBcIcmsSt) / 100); novo.SubTributaria = prod != null ? prod.ValorIcmsSt : i.SubTributaria; //Math.Round((prod.BcIcmsSt * (decimal)(prod.AliqIcmsSt / 100)) - (prod.ValorIcms > 0 ? prod.ValorIcms : ((prod.Total - prod.ValorDesconto) * (decimal)(prod.AliqIcms / 100))), 2); novo.CFOP = i.CFOP; novo.CNPJEmitente = i.CNPJEmitente; novo.CodigoContabil = i.CodigoContabil; novo.CodigoEmitente = i.CodigoEmitente; novo.CodValorFiscal = 2; novo.CorLinha = i.CorLinha; novo.CST = i.CST; novo.DataDocumento = i.DataDocumento; novo.DataEntrada = i.DataEntrada; novo.Especie = i.Especie; novo.ExibirDadosFornecedor = i.ExibirDadosFornecedor; novo.IdNF = i.IdNF; novo.IdProdNF = i.IdProdNF; novo.ImpostoCreditado = 0; novo.InscEstEmitente = i.InscEstEmitente; novo.NomeEmitente = i.NomeEmitente; novo.NumeroNota = i.NumeroNota; novo.NumeroPagina = i.NumeroPagina; novo.Observacao = i.Observacao; novo.SerieSubSerie = i.SerieSubSerie; novo.TipoImposto = i.TipoImposto; novo.UFOrigem = i.UFOrigem; novo.ValorContabil = 0; Itens.Add(novo); } Itens.Sort(delegate(ItemEntrada p1, ItemEntrada p2) { int ret = p1.DataEntrada.ToShortDateString().CompareTo(p2.DataEntrada.ToShortDateString()); if (ret == 0) { ret = p1.NumeroNota.CompareTo(p2.NumeroNota); } if (ret == 0) { ret = String.Compare(p1.TipoImposto, p2.TipoImposto); } if (ret == 0) { ret = p1.CodValorFiscal.CompareTo(p2.CodValorFiscal); } if (ret == 0) { ret = String.Compare(p1.CFOP, p2.CFOP); } return(ret); }); #endregion decimal v = 0; foreach (ItemEntrada item in Itens) { v += item.ValorContabil; List <ItemEntrada> itens = Itens.FindAll(delegate(ItemEntrada i) { return(i.NumeroNota == item.NumeroNota && i.CFOP == item.CFOP); }); if (itens.Count > 0) { for (int i = 1; i < itens.Count; i++) { itens[i].CorLinha = "White"; if (itens.FindAll(delegate(ItemEntrada itemEntrada) { return(item.TipoImposto == "ICMS"); }).Count > 0) { if (itens[i].TipoImposto == "IPI") { itens[i].ValorContabil = 0; } } } } } uint idNf = 0; bool exibirFornecedor = false; decimal valorSt = 0; // Ordena os itens de acordo com a ordenação que será feita no relatório, para não dar problema na iteração abaixo, // que esconde campos de acordo com as notas e ordenação Itens.Sort(delegate(ItemEntrada p1, ItemEntrada p2) { int ret = p1.NumeroPagina.CompareTo(p2.NumeroPagina); if (ret == 0) { ret = p1.DataEntrada.ToShortDateString().CompareTo(p2.DataEntrada.ToShortDateString()); } if (ret == 0) { ret = p1.NumeroNota.CompareTo(p2.NumeroNota); } if (ret == 0) { ret = String.Compare(p1.TipoImposto, p2.TipoImposto); } if (ret == 0) { ret = p1.CodValorFiscal.CompareTo(p2.CodValorFiscal); } if (ret == 0) { ret = String.Compare(p1.CFOP, p2.CFOP); } return(ret); }); // Nesta iteração, será definido quando o nome do emitente e a descrição "SUBSTITUIÇÃO TRIBUTÁRIA" deverão ser exibidos for (int i = 0; i < Itens.Count; i++) { if (idNf != Itens[i].IdNF) { if (i > 0) { Itens[i - 1].ExibirDadosFornecedor = exibirFornecedor; Itens[i - 1].ExibirDadosST = valorSt > 0; Itens[i - 1].SubTributaria = valorSt; } idNf = Itens[i].IdNF; exibirFornecedor = false; valorSt = 0; } exibirFornecedor = true; if (Itens[i].SubTributaria > 0) { valorSt = Itens[i].SubTributaria; } if (Itens[i].NumeroPagina > totalPaginas) { totalPaginas = (int)Itens[i].NumeroPagina; } } if (Itens.Count > 0) { Itens[Itens.Count - 1].ExibirDadosFornecedor = exibirFornecedor; Itens[Itens.Count - 1].ExibirDadosST = valorSt > 0; Itens[Itens.Count - 1].SubTributaria = valorSt; } livro.TotalPaginas = totalPaginas; report.ReportPath = "Relatorios/NFe/LivroRegistro/Entrada/rptLivroRegistroEntrada.rdlc"; report.DataSources.Add(new ReportDataSource("LivroRegistro", new Data.RelModel.LivroRegistro[] { livro })); report.DataSources.Add(new ReportDataSource("ItemEntrada", Itens.ToArray())); lstParam.Add(new ReportParameter("TextoRodape", Geral.TextoRodapeRelatorio(login.Nome))); lstParam.Add(new ReportParameter("CorRodape", "DimGray")); lstParam.Add(new ReportParameter("NumeroOrdem", livro.NumeroOrdem)); lstParam.Add(new ReportParameter("Periodo", dataInicial + " a " + dataFinal)); lstParam.Add(new ReportParameter("TotalPaginas", totalPaginas.ToString())); lstParam.Add(new ReportParameter("NaoExibirBaseCalculoImpostoZerado", "false")); } #endregion #region Saida else if (tipo == "2") { var livroSaida = LivroRegistroDAO.Instance.ObterDadosLivroRegistro(Glass.Conversoes.StrParaInt(loja)); livroSaida.Periodo = new DateTime(Glass.Conversoes.StrParaInt(ano), Glass.Conversoes.StrParaInt(mes), 1, 0, 0, 0).ToShortDateString() + " a " + new DateTime(Glass.Conversoes.StrParaInt(ano), Glass.Conversoes.StrParaInt(mes), DateTime.DaysInMonth(Glass.Conversoes.StrParaInt(ano), Glass.Conversoes.StrParaInt(mes)), 23, 59, 059).ToShortDateString(); livroSaida.UltimoLancamento = ultimoLancamento; livroSaida.LocalData = localData; livroSaida.NumeroOrdem = numeroOrdem; livroSaida.Termo = termo; livroSaida.Responsavel = func.Nome; livroSaida.CPFResponsavel = func.Cpf; livroSaida.CargoResponsavel = func.DescrTipoFunc; livroSaida.Contador = cont.Nome; livroSaida.CPFContador = cont.CpfCnpj; livroSaida.CRCContador = cont.Crc; List <ItemSaida> Itens = ItemSaidaDAO.Instance.ObterItensSaida(Glass.Conversoes.StrParaUint(loja), Glass.Conversoes.StrParaInt(mes), Glass.Conversoes.StrParaInt(ano)); #region CST 20 Redução de Base de Cálculo List <ItemSaida> ItensCST20 = Itens.FindAll(delegate(ItemSaida i) { return(i.CST == "20" && i.TipoImposto == "ICMS"); }); foreach (ItemSaida i in ItensCST20) { float reducao = ProdutosNfDAO.Instance.ObtemPercentualReducaoBaseCalculo(i.IdProdNF); ItemSaida isento = new ItemSaida(); isento.Aliquota = 0; isento.BaseCalculo = 0; isento.BaseCalculoST = 0; isento.Borda = i.Borda; isento.CodigoContabil = i.CodigoContabil; isento.CodigoFiscal = i.CodigoFiscal; isento.CorLinha = i.CorLinha; isento.CST = i.CST; isento.Dia = i.Dia; isento.Especie = i.Especie; isento.ExibirDadosST = i.ExibirDadosST; isento.IdNF = i.IdNF; isento.IdProdNF = i.IdProdNF; isento.ImpostoDebitado = 0; isento.IsentasNaoTributadas = (i.ValorContabil * Convert.ToDecimal(reducao)) / 100; isento.NumeroNota = i.NumeroNota; isento.NumeroPagina = i.NumeroPagina; isento.Observacao = i.Observacao; isento.Outras = 0; isento.SerieSubSerie = i.SerieSubSerie; isento.SubTributaria = 0; isento.TipoImposto = i.TipoImposto; isento.UFDestinatario = i.UFDestinatario; isento.ValorContabil = 0; Itens.Add(isento); } Itens.Sort(delegate(ItemSaida p1, ItemSaida p2) { int ret = p1.NumeroNota.CompareTo(p2.NumeroNota); if (ret == 0) { ret = String.Compare(p1.TipoImposto, p2.TipoImposto); } if (ret == 0) { ret = p1.CodigoFiscal.CompareTo(p2.CodigoFiscal); } if (ret == 0) { ret = String.Compare(p1.TipoImposto, p2.TipoImposto); } if (ret == 0) { ret = String.Compare(p1.Dia, p2.Dia); } return(ret); }); #endregion #region CST 70 Redução de Base de Cálculo List <ItemSaida> ItensCST70 = Itens.FindAll(delegate(ItemSaida i) { return(i.CST == "70" && i.TipoImposto == "ICMS"); }); foreach (ItemSaida i in ItensCST70) { ProdutosNf prod = ProdutosNfDAO.Instance.GetElement(i.IdProdNF); ItemSaida isento = new ItemSaida(); isento.Aliquota = 0; isento.BaseCalculo = prod.BcIcms;; // (i.ValorContabil * Convert.ToDecimal(prod.PercRedBcIcms)) / 100; isento.BaseCalculoST = prod.BcIcmsSt; //(i.ValorContabil + (i.ValorContabil * (Convert.ToDecimal(prod.Mva) / 100))) * (Convert.ToDecimal(prod.PercRedBcIcmsSt) / 100); isento.SubTributaria = prod.ValorIcmsSt; //Math.Round((prod.BcIcmsSt * (decimal)(prod.AliqIcmsSt / 100)) - (prod.ValorIcms > 0 ? prod.ValorIcms : ((prod.Total - prod.ValorDesconto) * (decimal)(prod.AliqIcms / 100))), 2); isento.Borda = i.Borda; isento.CodigoContabil = i.CodigoContabil; isento.CodigoFiscal = i.CodigoFiscal; isento.CorLinha = i.CorLinha; isento.CST = i.CST; isento.Dia = i.Dia; isento.Especie = i.Especie; isento.ExibirDadosST = i.ExibirDadosST; isento.IdNF = i.IdNF; isento.IdProdNF = i.IdProdNF; isento.ImpostoDebitado = 0; isento.IsentasNaoTributadas = (i.ValorContabil * Convert.ToDecimal(prod.PercRedBcIcms)) / 100; isento.NumeroNota = i.NumeroNota; isento.NumeroPagina = i.NumeroPagina; isento.Observacao = i.Observacao; isento.Outras = 0; isento.SerieSubSerie = i.SerieSubSerie; isento.SubTributaria = 0; isento.TipoImposto = i.TipoImposto; isento.UFDestinatario = i.UFDestinatario; isento.ValorContabil = 0; Itens.Add(isento); } Itens.Sort(delegate(ItemSaida p1, ItemSaida p2) { int ret = p1.NumeroNota.CompareTo(p2.NumeroNota); if (ret == 0) { ret = String.Compare(p1.TipoImposto, p2.TipoImposto); } if (ret == 0) { ret = p1.CodigoFiscal.CompareTo(p2.CodigoFiscal); } if (ret == 0) { ret = String.Compare(p1.TipoImposto, p2.TipoImposto); } if (ret == 0) { ret = String.Compare(p1.Dia, p2.Dia); } return(ret); }); #endregion foreach (ItemSaida item in Itens) { List <ItemSaida> itens = Itens.FindAll(delegate(ItemSaida i) { return(i.NumeroNota == item.NumeroNota); }); if (itens.Count > 0) { for (int i = 1; i < itens.Count; i++) { itens[i].CorLinha = "White"; if (itens.FindAll(delegate(ItemSaida itemSaida) { return(item.TipoImposto == "ICMS"); }).Count > 0) { if (itens[i].TipoImposto == "IPI") { itens[i].ValorContabil = 0; } } } } } totalPaginas = int.MinValue; idNota = 0; // Ordena os itens de acordo com a ordenação que será feita no relatório, para não dar problema na iteração abaixo, // que esconde campos de acordo com as notas e ordenação Itens.Sort(delegate(ItemSaida p1, ItemSaida p2) { int ret = p1.NumeroPagina.CompareTo(p2.NumeroPagina); if (ret == 0) { ret = p1.NumeroNota.CompareTo(p2.NumeroNota); } if (ret == 0) { ret = p1.CodigoFiscal.CompareTo(p2.CodigoFiscal); } if (ret == 0) { ret = String.Compare(p1.TipoImposto, p2.TipoImposto); } if (ret == 0) { ret = String.Compare(p1.Dia, p2.Dia); } return(ret); }); // Nesta iteração, será definido quando os dados do ICMS ST deverão ser exibidos for (int i = 0; i < Itens.Count; i++) { if (idNota != Itens[i].IdNF) { idNota = Itens[i].IdNF; if (i > 0) { Itens[i - 1].ExibirDadosST = true; } } if (Itens[i].NumeroPagina > totalPaginas) { totalPaginas = (int)Itens[i].NumeroPagina; } } if (Itens.Count > 0) { Itens[Itens.Count - 1].ExibirDadosST = true; } livroSaida.TotalPaginas = totalPaginas; report.ReportPath = "Relatorios/NFe/LivroRegistro/Saida/rptLivroRegistroSaida.rdlc"; report.DataSources.Add(new ReportDataSource("LivroRegistro", new Data.RelModel.LivroRegistro[] { livroSaida })); report.DataSources.Add(new ReportDataSource("ItemSaida", Itens.ToArray())); lstParam.Add(new ReportParameter("TextoRodape", Geral.TextoRodapeRelatorio(login.Nome))); lstParam.Add(new ReportParameter("CorRodape", "DimGray")); lstParam.Add(new ReportParameter("NumeroOrdem", livroSaida.NumeroOrdem)); } #endregion #region Apuração ICMS/IPI else if (tipo == "3" || tipo == "4") { #region Dados digitados pelo usuário string outrosDebitosDesc = Request["outrosDebitosDesc"]; decimal outrosDebitosValor = Request["outrosDebitosValor"] == "" ? 0 : Convert.ToDecimal(Request["outrosDebitosValor"]); string estornoCreditoDesc = Request["estornoCreditoDesc"]; decimal estornoCreditoValor = Request["estornoCreditoValor"] == "" ? 0 : Convert.ToDecimal(Request["estornoCreditoValor"]); string outrosCreditosDesc = Request["outrosCreditosDesc"]; decimal outrosCreditosValor = Request["outrosCreditosValor"] == "" ? 0 : Convert.ToDecimal(Request["outrosCreditosValor"]); string estornoDebitoDesc = Request["estornoDebitoDesc"]; decimal estornoDebitoValor = Request["estornoDebitoValor"] == "" ? 0 : Convert.ToDecimal(Request["estornoDebitoValor"]); string deducaoDesc = Request["deducaoDesc"]; decimal deducaoValor = Request["deducaoValor"] == "" ? 0 : Convert.ToDecimal(Request["deducaoValor"]); #endregion var livroApuracao = LivroRegistroDAO.Instance.ObterDadosLivroRegistro(Glass.Conversoes.StrParaInt(loja)); livroApuracao.Periodo = new DateTime(Glass.Conversoes.StrParaInt(ano), Glass.Conversoes.StrParaInt(mes), 1, 0, 0, 0).ToShortDateString() + " a " + new DateTime(Glass.Conversoes.StrParaInt(ano), Glass.Conversoes.StrParaInt(mes), DateTime.DaysInMonth(Glass.Conversoes.StrParaInt(ano), Glass.Conversoes.StrParaInt(mes)), 23, 59, 059).ToShortDateString(); livroApuracao.UltimoLancamento = ultimoLancamento; livroApuracao.LocalData = localData; livroApuracao.NumeroOrdem = numeroOrdem; livroApuracao.Termo = termo; livroApuracao.Responsavel = func.Nome; livroApuracao.CPFResponsavel = func.Cpf; livroApuracao.CargoResponsavel = func.DescrTipoFunc; livroApuracao.Contador = cont.Nome; livroApuracao.CPFContador = cont.CpfCnpj; livroApuracao.CRCContador = cont.Crc; livroApuracao.EstornoCreditosDescicao = estornoCreditoDesc; livroApuracao.EstornoCreditosValor = Convert.ToDecimal(estornoCreditoValor); livroApuracao.EstornoDebitosDescicao = estornoDebitoDesc; livroApuracao.EstornoDebitosValor = Convert.ToDecimal(estornoDebitoValor); livroApuracao.OutrosCreditosDescicao = outrosCreditosDesc; livroApuracao.OutrosCreditosValor = Convert.ToDecimal(outrosCreditosValor); livroApuracao.OutrosDebitosDescicao = outrosDebitosDesc; livroApuracao.OutrosDebitosValor = Convert.ToDecimal(outrosDebitosValor); livroApuracao.DeducaoDescricao = deducaoDesc; livroApuracao.DeducaoValor = Convert.ToDecimal(deducaoValor); List <ItemApuracao> Itens = tipo == "3" ? ItemApuracaoDAO.Instance.ObterApuracaoICMS(Glass.Conversoes.StrParaUint(loja), Glass.Conversoes.StrParaInt(mes), Glass.Conversoes.StrParaInt(ano), login) : ItemApuracaoDAO.Instance.ObterApuracaoIPI(Glass.Conversoes.StrParaUint(loja), Glass.Conversoes.StrParaInt(mes), Glass.Conversoes.StrParaInt(ano), login); totalPaginas = int.MinValue; idNota = 0; for (int i = 0; i < Itens.Count; i++) { if (Itens[i].Operacao == 1) { livroApuracao.TotalCredito += Itens[i].Imposto; if (tipo == "3") { livroApuracao.TotalCreditoST += Itens[i].ImpostoST; } } else { livroApuracao.TotalDebito += Itens[i].Imposto; if (tipo == "3") { livroApuracao.TotalDebitoST += Itens[i].ImpostoST; } } if (Itens[i].Folha > totalPaginas) { totalPaginas = (int)Itens[i].Folha; } } #region ICMS/IPI livroApuracao.TotalDebitoApuracao = livroApuracao.TotalDebito + livroApuracao.OutrosDebitosValor + livroApuracao.EstornoCreditosValor; livroApuracao.SubTotalCreditoApuracao = livroApuracao.TotalCredito + livroApuracao.OutrosCreditosValor + livroApuracao.EstornoDebitosValor; ControleCreditoApuracao credito = ControleCreditoApuracaoDAO.Instance.ObterCreditoMesAnterior(new DateTime(Glass.Conversoes.StrParaInt(ano), Glass.Conversoes.StrParaInt(mes), 1, 0, 0, 0).AddMonths(-1).ToString("yyyy-MM"), tipo == "3" ? Glass.Data.EFD.DataSourcesEFD.TipoImpostoEnum.Icms : Glass.Data.EFD.DataSourcesEFD.TipoImpostoEnum.Ipi); if (credito == null) { livroApuracao.SaldoCredorMesAnterior = 0; } else { livroApuracao.SaldoCredorMesAnterior = credito.ValorGerado; } livroApuracao.TotalCreditoApuracao = livroApuracao.SubTotalCreditoApuracao + livroApuracao.SaldoCredorMesAnterior; //SE CAMPO 11 RETORNAR COM VALOR NEGATIVO, NAO MOSTAR NO LIVRO E PASSAR ESTE SALDO PARA O CAMPO 14 if ((livroApuracao.TotalDebitoApuracao - livroApuracao.TotalCreditoApuracao) < 0) { livroApuracao.SaldoCredor = -(livroApuracao.TotalDebitoApuracao - livroApuracao.TotalCreditoApuracao); livroApuracao.SaldoDevedor = 0; } else { livroApuracao.SaldoDevedor = livroApuracao.TotalDebitoApuracao - livroApuracao.TotalCreditoApuracao; } ControleCreditoApuracaoDAO.Instance.InserirCredito(new DateTime(Glass.Conversoes.StrParaInt(ano), Glass.Conversoes.StrParaInt(mes), 1, 0, 0, 0).ToString("yyyy-MM"), tipo == "3" ? Glass.Data.EFD.DataSourcesEFD.TipoImpostoEnum.Icms : Glass.Data.EFD.DataSourcesEFD.TipoImpostoEnum.Ipi, livroApuracao.SaldoCredor); livroApuracao.ImpostoRecolher = livroApuracao.SaldoDevedor + livroApuracao.DeducaoValor; #endregion if (tipo == "3") { #region ICMSST livroApuracao.TotalDebitoApuracaoST = livroApuracao.TotalDebitoST + livroApuracao.OutrosDebitosValor + livroApuracao.EstornoCreditosValor; livroApuracao.SubTotalCreditoApuracaoST = livroApuracao.TotalCreditoST + livroApuracao.OutrosCreditosValor + livroApuracao.EstornoDebitosValor; ControleCreditoApuracao creditoICMSST = ControleCreditoApuracaoDAO.Instance.ObterCreditoMesAnterior(new DateTime(Glass.Conversoes.StrParaInt(ano), Glass.Conversoes.StrParaInt(mes), 1, 0, 0, 0).AddMonths(-1).ToString("yyyy-MM"), Glass.Data.EFD.DataSourcesEFD.TipoImpostoEnum.IcmsST); if (creditoICMSST == null) { livroApuracao.SaldoCredorMesAnteriorST = 0; } else { livroApuracao.SaldoCredorMesAnteriorST = creditoICMSST.ValorGerado; } livroApuracao.TotalCreditoApuracaoST = livroApuracao.SubTotalCreditoApuracaoST + livroApuracao.SaldoCredorMesAnteriorST; //SE CAMPO 11 RETORNAR COM VALOR NEGATIVO, NAO MOSTAR NO LIVRO E PASSAR ESTE SALDO PARA O CAMPO 14 if ((livroApuracao.TotalDebitoApuracaoST - livroApuracao.TotalCreditoApuracaoST) < 0) { livroApuracao.SaldoCredorST = -(livroApuracao.TotalDebitoApuracaoST - livroApuracao.TotalCreditoApuracaoST); livroApuracao.SaldoDevedorST = 0; } else { livroApuracao.SaldoDevedorST = livroApuracao.TotalDebitoApuracaoST - livroApuracao.TotalCreditoApuracaoST; } ControleCreditoApuracaoDAO.Instance.InserirCredito(new DateTime(Glass.Conversoes.StrParaInt(ano), Glass.Conversoes.StrParaInt(mes), 1, 0, 0, 0).ToString("yyyy-MM"), Glass.Data.EFD.DataSourcesEFD.TipoImpostoEnum.IcmsST, livroApuracao.SaldoCredorST); livroApuracao.ImpostoRecolherST = livroApuracao.SaldoDevedorST + livroApuracao.DeducaoValor; #endregion } livroApuracao.TotalPaginas = totalPaginas; string rep = tipo == "3" ? "ICMS/rptApuracaoICMS.rdlc" : "IPI/rptApuracaoIPI.rdlc"; report.ReportPath = "Relatorios/NFe/LivroRegistro/Apuracao/" + rep; report.DataSources.Add(new ReportDataSource("LivroRegistro", new Data.RelModel.LivroRegistro[] { livroApuracao })); report.DataSources.Add(new ReportDataSource("ItemApuracao", Itens.ToArray())); lstParam.Add(new ReportParameter("TextoRodape", Geral.TextoRodapeRelatorio(login.Nome))); lstParam.Add(new ReportParameter("CorRodape", "DimGray")); lstParam.Add(new ReportParameter("EstadoLoja", livroApuracao.Estado)); } #endregion break; } // Atribui parâmetros ao relatório lstParam.Add(new ReportParameter("Logotipo", Logotipo.GetReportLogoColor(PageRequest, idLoja))); 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 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; } }