protected void VoltarImagem_Click(object sender, EventArgs e) { // Busca o item projeto passado por query string ItemProjeto itemProj = ItemProjetoDAO.Instance.GetElementByPrimaryKey(Glass.Conversoes.StrParaUint(Request["idItemProjeto"])); ProjetoModelo projMod = ProjetoModeloDAO.Instance.GetElementByPrimaryKey(itemProj.IdProjetoModelo); bool isPcp = itemProj.IdPedidoEspelho > 0; string nomeFigura = String.Empty; int item = Convert.ToInt32(Request["item"]); // Busca o produto pedido espelho para recuperar a URL da imagem if (isPcp) { var produtoPedidoEspelho = ProdutosPedidoEspelhoDAO.Instance.GetByMaterItemProj( MaterialItemProjetoDAO.Instance.GetMaterialByPeca(Convert.ToUInt32(Request["IdPecaItemProj"])).IdMaterItemProj).First(); produtoPedidoEspelho.Item = item; nomeFigura = produtoPedidoEspelho.ImagemUrlSalvarItem; } else { uint idProdPed = ProdutosPedidoDAO.Instance.GetIdProdPedByMaterItemProj(itemProj.IdPedido.Value, MaterialItemProjetoDAO.Instance.GetMaterialByPeca(Convert.ToUInt32(Request["IdPecaItemProj"])).IdMaterItemProj); nomeFigura = Data.Helper.Utils.GetPecaComercialVirtualPath + idProdPed.ToString().PadLeft(10, '0') + "_" + item + ".jpg"; } File.Delete(Server.MapPath(nomeFigura)); LogAlteracaoDAO.Instance.LogImagemProducao(Convert.ToUInt32(Request["IdPecaItemProj"]), Request["Item"], "Atualização da imagem do item " + Request["item"] + " para imagem padrão."); PecaItemProjetoDAO.Instance.ImagemEditada(Convert.ToUInt32(Request["IdPecaItemProj"]), false); Response.Redirect(Request.RawUrl); }
public string GetDadosProjetoModelo(string codigo) { try { ProjetoModelo projeto = ProjetoModeloDAO.Instance.GetByCodigo(codigo); if (projeto == null) { throw new Exception("Modelo de projeto não encontrado."); } return("Ok;" + projeto.IdProjetoModelo + ";" + projeto.DescrGrupo + ";" + projeto.Descricao + ";" + projeto.Espessura); } catch (Exception ex) { return("Erro;" + Glass.MensagemAlerta.FormatErrorMsg("Falha ao recuperar dados do modelo de projeto.", ex)); } }
protected void Page_Load(object sender, EventArgs e) { hdfIdProjetoModelo.Value = Request["idProjetoModelo"]; hdfIdPecaProjMod.Value = Request["idPecaProjMod"]; hdfItem.Value = Request["item"]; hdfTipo.Value = Request["tipo"]; if (!IsPostBack) { if (hdfTipo.Value != "pecaIndividual") { // Busca o modelo de projeto passado por querystring ProjetoModelo projMod = ProjetoModeloDAO.Instance.GetElementByPrimaryKey(Glass.Conversoes.StrParaUint(Request["IdProjetoModelo"])); Page.Title += " " + projMod.Codigo; // Busca as peças com seus respectivos posicionamentos List <PosicaoPecaModelo> lstPosicao = PosicaoPecaModeloDAO.Instance.GetPosicoes(projMod.IdProjetoModelo); // Busca a quantidade de peças deste modelo txtQtdInfo.Text = lstPosicao.Count.ToString(); // Busca valores coletados anteriormente for (int i = 0; i < lstPosicao.Count; i++) { if (lstPosicao[i] == null) { continue; } ((TextBox)info.FindControl("txtCoordX" + (i + 1))).Text = lstPosicao[i].CoordX.ToString(); ((TextBox)info.FindControl("txtCoordY" + (i + 1))).Text = lstPosicao[i].CoordY.ToString(); ((DropDownList)info.FindControl("drpOrientacao" + (i + 1))).Text = lstPosicao[i].Orientacao.ToString(); ((TextBox)info.FindControl("txtCalc" + (i + 1))).Text = lstPosicao[i].Calc; ((Glass.UI.Web.Controls.ctrlLogPopup)info.FindControl("ctrlLogPopup" + (i + 1))).Tabela = LogAlteracao.TabelaAlteracao.PosicaoPecaModelo; ((Glass.UI.Web.Controls.ctrlLogPopup)info.FindControl("ctrlLogPopup" + (i + 1))).IdRegistro = (uint?)lstPosicao[i].IdPosicaoPecaModelo; } // Carrega imagem na tela imgFigura.ImageUrl = "../../Handlers/LoadFiguraAssociada.ashx?tipoDesenho=0&path=" + Data.Helper.Utils.GetModelosProjetoPath + projMod.NomeFiguraAssociada; } else { PecaProjetoModelo peca = PecaProjetoModeloDAO.Instance.GetElementByPrimaryKey(Glass.Conversoes.StrParaUint(Request["idPecaProjMod"])); /* Chamado 47688 - Remover a busca pelo ID quando todas as imagens forem renomeadas */ var codigoProjetoModelo = ProjetoModeloDAO.Instance.ObtemCodigo(Convert.ToUInt32(hdfIdProjetoModelo.Value)); string path = Data.Helper.Utils.GetModelosProjetoPath + codigoProjetoModelo + "§" + hdfItem.Value + ".jpg"; if (!File.Exists(path)) { path = Data.Helper.Utils.GetModelosProjetoPath + hdfIdProjetoModelo.Value.PadLeft(3, '0') + "_" + hdfItem.Value + ".jpg"; } if (File.Exists(path)) { // Busca as peças com seus respectivos posicionamentos List <PosicaoPecaIndividual> lstPosicao = PosicaoPecaIndividualDAO.Instance.GetPosicoes(Glass.Conversoes.StrParaUint(Request["idPecaProjMod"]), Glass.Conversoes.StrParaInt(Request["item"])); // Busca a quantidade de peças deste modelo txtQtdInfo.Text = lstPosicao.Count.ToString(); // Busca valores coletados anteriormente for (int i = 0; i < lstPosicao.Count; i++) { if (lstPosicao[i] == null) { continue; } ((TextBox)info.FindControl("txtCoordX" + (i + 1))).Text = lstPosicao[i].CoordX.ToString(); ((TextBox)info.FindControl("txtCoordY" + (i + 1))).Text = lstPosicao[i].CoordY.ToString(); ((DropDownList)info.FindControl("drpOrientacao" + (i + 1))).Text = lstPosicao[i].Orientacao.ToString(); ((TextBox)info.FindControl("txtCalc" + (i + 1))).Text = lstPosicao[i].Calc; ((Glass.UI.Web.Controls.ctrlLogPopup)info.FindControl("ctrlLogPopup" + (i + 1))).Tabela = LogAlteracao.TabelaAlteracao.PosicaoPecaIndividual; ((Glass.UI.Web.Controls.ctrlLogPopup)info.FindControl("ctrlLogPopup" + (i + 1))).IdRegistro = (uint?)lstPosicao[i].IdPosPecaInd; } // Carrega imagem na tela imgFigura.ImageUrl = "../../Handlers/LoadFiguraAssociada.ashx?tipoFigura=individual&tipoDesenho=0&path=" + path; } } } Ajax.Utility.RegisterTypeForAjax(typeof(Glass.UI.Web.Cadastros.Projeto.CadPosicaoPecaModelo)); }
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 void odsProjetoModelo_Inserted(object sender, Colosoft.WebControls.VirtualObjectDataSourceStatusEventArgs e) { if (e.Exception != null) { Glass.MensagemAlerta.ErrorMsg("Falha ao inserir modelo de projeto.", e.Exception, Page); e.ExceptionHandled = true; return; } ProjetoModelo projMod = ProjetoModeloDAO.Instance.GetElement(Glass.Conversoes.StrParaUint(e.ReturnValue.ToString())); try { #region Figura Engenharia FileUpload fluFiguraEngenharia = (FileUpload)dtvProjetoModelo.FindControl("fluFiguraEngenharia"); if (fluFiguraEngenharia.HasFile && e.ReturnValue != null) { if (fluFiguraEngenharia.PostedFile.FileName.Substring(fluFiguraEngenharia.PostedFile.FileName.LastIndexOf(".")).ToLower() != ".jpg") { Glass.MensagemAlerta.ShowMsg("Imagem inválida.", Page); return; } /* Chamado 47688 - Remover a busca pelo ID quando todas as imagens forem renomeadas */ string fotoPath = Data.Helper.Utils.GetModelosProjetoPath + projMod.IdProjetoModelo.ToString().PadLeft(3, '0') + ".jpg"; if (File.Exists(fotoPath)) { File.Delete(fotoPath); } fotoPath = Data.Helper.Utils.GetModelosProjetoPath + projMod.Codigo + "§E.jpg"; if (File.Exists(fotoPath)) { File.Delete(fotoPath); } fluFiguraEngenharia.SaveAs(fotoPath); if (File.Exists(fotoPath)) { ProjetoModeloDAO.Instance.AtualizaNomeFigura(projMod.IdProjetoModelo, projMod.Codigo + "§E.jpg", null); } } #endregion #region Figura Modelo FileUpload fluFiguraModelo = (FileUpload)dtvProjetoModelo.FindControl("fluFiguraModelo"); if (fluFiguraModelo.HasFile && e.ReturnValue != null) { if (fluFiguraModelo.PostedFile.FileName.Substring(fluFiguraModelo.PostedFile.FileName.LastIndexOf(".")).ToLower() != ".jpg") { Glass.MensagemAlerta.ShowMsg("Imagem inválida.", Page); return; } string fotoPath = Data.Helper.Utils.GetModelosProjetoPath + projMod.Codigo + ".jpg"; if (System.IO.File.Exists(fotoPath)) { System.IO.File.Delete(fotoPath); } fluFiguraModelo.SaveAs(fotoPath); if (File.Exists(fotoPath)) { ProjetoModeloDAO.Instance.AtualizaNomeFigura(projMod.IdProjetoModelo, null, projMod.Codigo + ".jpg"); } } #endregion } catch (Exception ex) { Glass.MensagemAlerta.ErrorMsg("Falha ao cadastrar figura.", ex, Page); ProjetoModeloDAO.Instance.DeleteByPrimaryKey(projMod.IdProjetoModelo); return; } hdfIdProjetoModelo.Value = e.ReturnValue.ToString(); Response.Redirect("CadModeloProjeto.aspx?idProjetoModelo=" + hdfIdProjetoModelo.Value); }
protected void Page_Load(object sender, EventArgs e) { Ajax.Utility.RegisterTypeForAjax(typeof(Glass.UI.Web.Cadastros.Projeto.DesenhaProjeto1)); // Busca o item projeto passado por query string ItemProjeto itemProj = ItemProjetoDAO.Instance.GetElementByPrimaryKey(Glass.Conversoes.StrParaUint(Request["idItemProjeto"])); ProjetoModelo projMod = ProjetoModeloDAO.Instance.GetElementByPrimaryKey(itemProj.IdProjetoModelo); bool isPcp = itemProj.IdPedidoEspelho > 0; string nomeFigura = String.Empty; int item = Convert.ToInt32(Request["item"]); // Busca o produto pedido espelho para recuperar a URL da imagem if (isPcp) { var produtoPedidoEspelho = ProdutosPedidoEspelhoDAO.Instance.GetByMaterItemProj( MaterialItemProjetoDAO.Instance.GetMaterialByPeca(Convert.ToUInt32(Request["IdPecaItemProj"])).IdMaterItemProj).First(); produtoPedidoEspelho.Item = item; nomeFigura = produtoPedidoEspelho.ImagemUrlSalvarItem; } else { uint idProdPed = ProdutosPedidoDAO.Instance.GetIdProdPedByMaterItemProj(itemProj.IdPedido.Value, MaterialItemProjetoDAO.Instance.GetMaterialByPeca(Convert.ToUInt32(Request["IdPecaItemProj"])).IdMaterItemProj); nomeFigura = Data.Helper.Utils.GetPecaComercialVirtualPath + idProdPed.ToString().PadLeft(10, '0') + "_" + item + ".jpg"; } if (!IsPostBack) { if (Request["Ajax"] == null) { // Carrega imagem na tela if (File.Exists(Server.MapPath(nomeFigura))) { img_inicial.ImageUrl = nomeFigura; } else { // Carrega imagem na tela nomeFigura = !String.IsNullOrEmpty(Request["item"]) ? projMod.Codigo + "§" + Request["item"] + ".jpg" : projMod.NomeFiguraAssociada; if (!File.Exists(Data.Helper.Utils.GetModelosProjetoPath + nomeFigura)) { nomeFigura = projMod.IdProjetoModelo.ToString("0##") + "_" + Request["item"] + ".jpg"; } img_inicial.ImageUrl = "../../Handlers/LoadFiguraAssociada.ashx?tipoDesenho=0&path=" + Data.Helper.Utils.GetModelosProjetoPath + nomeFigura; } } else if (Request["Ajax"] == "SalvarImagem" || Request["Ajax"] == "AbrirBiblioteca") { var b = new StringBuilder(Request["base64"].Split(',')[1]); b.Replace("\r\n", String.Empty); b.Replace(" ", String.Empty); var imagem = Convert.FromBase64String(b.ToString()); ManipulacaoImagem.SalvarImagem(Server.MapPath(nomeFigura), imagem); LogAlteracaoDAO.Instance.LogImagemProducao(Convert.ToUInt32(Request["IdPecaItemProj"]), Request["Item"], "Edição da imagem do item " + Request["item"] + "."); PecaItemProjetoDAO.Instance.ImagemEditada(Convert.ToUInt32(Request["IdPecaItemProj"]), true); } MontaTabelaFiguras(); } }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { // Busca o item projeto passado por query string ItemProjeto itemProj = ItemProjetoDAO.Instance.GetElementByPrimaryKey(Glass.Conversoes.StrParaUint(Request["idItemProjeto"])); ProjetoModelo projMod = ProjetoModeloDAO.Instance.GetElementByPrimaryKey(itemProj.IdProjetoModelo); if (!Page.Title.Contains(":")) { Page.Title += ": " + projMod.Codigo; } string nomeFigura = !String.IsNullOrEmpty(Request["item"]) ? projMod.Codigo + "§" + Request["item"] + ".jpg" : projMod.NomeFiguraAssociada; // Carrega imagem na tela if (Data.Helper.Utils.ArquivoExiste("~/Upload/PecaProducao/" + nomeFigura)) { imgFigura.ImageUrl = "../../Handlers/LoadFiguraAssociada.ashx?tipoDesenho=0&path=" + Server.MapPath("~/Upload/PecaProducao/" + nomeFigura); } else if (File.Exists(Data.Helper.Utils.GetModelosProjetoPath + nomeFigura)) { imgFigura.ImageUrl = "../../Handlers/LoadFiguraAssociada.ashx?tipoDesenho=0&path=" + Data.Helper.Utils.GetModelosProjetoPath + nomeFigura; } else { nomeFigura = projMod.IdProjetoModelo.ToString("0##") + "_" + Request["item"] + ".jpg"; if (Data.Helper.Utils.ArquivoExiste("~/Upload/PecaProducao/" + nomeFigura)) { imgFigura.ImageUrl = "../../Handlers/LoadFiguraAssociada.ashx?tipoDesenho=0&path=" + Server.MapPath("~/Upload/PecaProducao/" + nomeFigura); } else { imgFigura.ImageUrl = "../../Handlers/LoadFiguraAssociada.ashx?tipoDesenho=0&path=" + Data.Helper.Utils.GetModelosProjetoPath + nomeFigura; } } #region Monta tabela com figuras que podem ser selecionada para desenho foreach (GrupoFiguraProjeto grupo in GrupoFiguraProjetoDAO.Instance.GetOrdered()) { Table tb = new Table(); tb.ID = "tb" + grupo.IdGrupoFigProj; // Monta o cabeçalho TableRow trHeader = new TableRow(); TableCell tdHeader = new TableCell(); tdHeader.Text = grupo.Descricao; tdHeader.ColumnSpan = 5; tdHeader.Width = new Unit(200, UnitType.Percentage); tdHeader.Style.Add("text-align", "left"); tdHeader.Attributes.Add("nowrap", "nowrap"); trHeader.CssClass = "toolGroup"; trHeader.Controls.Add(tdHeader); tb.Controls.Add(trHeader); var lstFigura = FiguraProjetoDAO.Instance.GetOrdered(grupo.IdGrupoFigProj); TableRow tr = new TableRow(); // Define um id para a tablerow para usar a função exibir/esconder tr.ID = "tr" + grupo.IdGrupoFigProj + "_001"; tr.Style.Add("display", "none"); string onClickHeader = "exibeEscondeGrupo('" + tr.ID + "');"; // Monta as figuras na tabela for (int i = 0; i < lstFigura.Count; i++) { TableCell td = new TableCell(); ImageButton tool = new ImageButton(); tool.ImageUrl = Data.Helper.Utils.GetFullUrl(HttpContext.Current, Data.Helper.Utils.GetFigurasProjetoVirtualPath + lstFigura[i].IdFiguraProjeto + ".jpg"); //Utils.GetFigurasProjetoVirtualPath + lstFigura[i].IdFiguraProjeto + ".jpg"; tool.CssClass = "toolNormal"; tool.BorderWidth = new Unit(1); tool.ID = "tool_" + lstFigura[i].IdFiguraProjeto + "_"; tool.Attributes.Add("onmouseover", "tool_OnMouseOver(this)"); tool.Attributes.Add("onmouseout", "tool_OnMouseOut(this)"); tool.OnClientClick = "setTool(this, " + lstFigura[i].IdFiguraProjeto + ", '" + tool.ImageUrl + "'); return false;"; td.Controls.Add(tool); tr.Controls.Add(td); // Adiciona imagens à tabela de seu respectivo grupo e cria outra linha na tabela if ((i + 1) % 5 == 0 || lstFigura.Count == i + 1) { tb.Controls.Add(tr); tr = new TableRow(); tr.ID = "tr" + grupo.IdGrupoFigProj + "_" + i.ToString().PadLeft(3, '0'); tr.Style.Add("display", "none"); if (lstFigura.Count != i + 1) { onClickHeader += "exibeEscondeGrupo('" + tr.ID + "');"; } } } // Adiciona comando no header para esconder/exibir imagens trHeader.Attributes.Add("onClick", onClickHeader); // Adiciona tabela de grupo de figura à tabela principal pchTool.Controls.Add(tb); } #endregion #region Desenha figuras já inseridas nesta imagem var lstPosicao = FiguraPecaItemProjetoDAO.Instance.GetFigurasByPeca(Glass.Conversoes.StrParaUint(Request["idPecaItemProj"]), Glass.Conversoes.StrParaInt(Request["item"])); if (lstPosicao.Count > 0) { string vetIdFiguraProjeto = String.Empty; string vetCoord = String.Empty; foreach (FiguraPecaItemProjeto p in lstPosicao) { vetIdFiguraProjeto += p.IdFiguraProjeto + ";"; vetCoord += p.CoordX + ";" + p.CoordY + "|"; } vetIdFiguraProjeto = vetIdFiguraProjeto.TrimEnd(';'); vetCoord = vetCoord.TrimEnd('|'); ClientScript.RegisterStartupScript(typeof(string), "carregar", "vetIdFiguraProjetoReload='" + vetIdFiguraProjeto + "'; vetCoordReload='" + vetCoord + "'; carregaFigurasDesenhadas();", true); } #endregion } Ajax.Utility.RegisterTypeForAjax(typeof(Glass.UI.Web.Cadastros.Projeto.DesenhaProjeto)); }
protected void Page_Load(object sender, EventArgs e) { // Busca o item projeto passado por query string ItemProjeto itemProj = ItemProjetoDAO.Instance.GetElementByPrimaryKey(Glass.Conversoes.StrParaUint(Request["idItemProjeto"])); ProjetoModelo projMod = ProjetoModeloDAO.Instance.GetElementByPrimaryKey(itemProj.IdProjetoModelo); bool isPcp = itemProj.IdPedidoEspelho > 0; string nomeFigura = NomeFigura(); int item = Convert.ToInt32(Request["item"]); // Busca o produto pedido espelho para recuperar a URL da imagem if (isPcp) { var produtoPedidoEspelho = ProdutosPedidoEspelhoDAO.Instance.GetByMaterItemProj( MaterialItemProjetoDAO.Instance.GetMaterialByPeca(Convert.ToUInt32(Request["IdPecaItemProj"])).IdMaterItemProj).First(); produtoPedidoEspelho.Item = item; nomeFigura = produtoPedidoEspelho.ImagemUrlSalvarItem; } else if (itemProj.IdPedido.GetValueOrDefault() > 0) { uint idProdPed = ProdutosPedidoDAO.Instance.GetIdProdPedByMaterItemProj(itemProj.IdPedido.Value, MaterialItemProjetoDAO.Instance.GetMaterialByPeca(Convert.ToUInt32(Request["IdPecaItemProj"])).IdMaterItemProj); nomeFigura = Data.Helper.Utils.GetPecaComercialVirtualPath + idProdPed.ToString().PadLeft(10, '0') + "_" + item + ".jpg"; } if (Request["Ajax"] == null) { // Se o arquivo já tiver sido editado, busca ele mesmo if (File.Exists(Server.MapPath(nomeFigura))) { img_inicial.ImageUrl = nomeFigura; } else { // Se o pedido não tiver sido editado ainda, busca a imagem padrão com suas devidas medidas calculadas e inseridas na imagem nomeFigura = !String.IsNullOrEmpty(Request["item"]) ? projMod.Codigo + "§" + Request["item"] + ".jpg" : projMod.NomeFiguraAssociada; if (!File.Exists(Data.Helper.Utils.GetModelosProjetoPath + nomeFigura)) { nomeFigura = projMod.IdProjetoModelo.ToString("0##") + "_" + Request["item"] + ".jpg"; } img_inicial.ImageUrl = "../../Handlers/LoadFiguraAssociada.ashx?tipoDesenho=0&path=" + Data.Helper.Utils.GetModelosProjetoPath + nomeFigura + "&idProjetoModelo=" + Request["IdProjetoModelo"] + "&idPecaItemProj=" + Request["IdPecaItemProj"] + "&Item=" + Request["Item"] + "&IdItemProjeto=" + Request["IdItemProjeto"]; } } else if (Request["Ajax"] == "SalvarImagem" || Request["Ajax"] == "AbrirBiblioteca") { var b = new StringBuilder(Request["base64"].Split(',')[1]); b.Replace("\r\n", String.Empty); b.Replace(" ", String.Empty); var imagem = Convert.FromBase64String(b.ToString()); if (!ManipulacaoImagem.SalvarImagem(Server.MapPath(nomeFigura), imagem)) { Response.Write("Falha ao salvar imagem."); Response.End(); return; } LogAlteracaoDAO.Instance.LogImagemProducao(Convert.ToUInt32(Request["IdPecaItemProj"]), Request["Item"], "Edição da imagem do item " + Request["item"] + "."); PecaItemProjetoDAO.Instance.ImagemEditada(Convert.ToUInt32(Request["IdPecaItemProj"]), true); Response.Write("Imagem salva!"); Response.End(); } else if (Request["Ajax"] == "UploadImagem") { img_inicial.ImageUrl = Request["urlUpload"]; } }
public void Inserir(GDASession sessao, uint idProdNf, string idsItemProjeto) { foreach (string id in idsItemProjeto.Split(',')) { ProdutoNfItemProjeto item = new ProdutoNfItemProjeto { IdProdNf = idProdNf, IdItemProjeto = Glass.Conversoes.StrParaUint(id) }; #region Gera o novo item de projeto se for "apenas vidros" if (ItemProjetoDAO.Instance.ApenasVidros(item.IdItemProjeto) && FiscalConfig.NotaFiscalConfig.UsarProdutoCestaSeApenasVidros) { ItemProjeto ip = ItemProjetoDAO.Instance.GetElementByPrimaryKey(sessao, item.IdItemProjeto); ProjetoModelo pm = ProjetoModeloDAO.Instance.GetElementByPrimaryKey(sessao, ip.IdProjetoModelo); uint?idCliente = ip.IdCliente; int? tipoEntrega = ip.TipoEntrega; uint?idObra = ip.IdPedido > 0 ? PedidoDAO.Instance.GetIdObra(null, ip.IdPedido.Value) : ip.IdPedidoEspelho > 0 ? PedidoDAO.Instance.GetIdObra(null, ip.IdPedidoEspelho.Value) : null; ip.IdOrcamento = null; ip.IdPedido = null; ip.IdPedidoEspelho = null; ip.IdProjeto = null; ip.ApenasVidros = false; ip.IdCorAluminio = (uint)CorAluminioDAO.Instance.GetAll().FirstOrDefault().IdCorAluminio; ip.IdCorFerragem = (uint)CorFerragemDAO.Instance.GetAll().FirstOrDefault().IdCorFerragem; List <PecaItemProjeto> pecasItemProjeto = PecaItemProjetoDAO.Instance.GetByItemProjeto(item.IdItemProjeto, ip.IdProjetoModelo); // Corrige projetos de medida exata, calculando área do vão // Segundo Sidinei, usar altura da peça item "1" e largura somada de todas // as outras peças bool medidaExata = ip.MedidaExata; var medidas = ((List <MedidaItemProjeto>)MedidaItemProjetoDAO.Instance.GetListByItemProjeto(item.IdItemProjeto)).ToArray(); if (medidaExata) { ip.MedidaExata = false; int altura = 0, largura = 0; if (pecasItemProjeto.Count > 0) { PecaItemProjeto p = pecasItemProjeto.Find(x => { string[] itens = UtilsProjeto.GetItensFromPeca(x.Item); return(Array.Exists(itens, y => y == "1")); }); altura = p != null ? p.Altura : pecasItemProjeto[0].Altura; pecasItemProjeto.ForEach(x => largura += x.Largura); } ip.M2Vao = Glass.Global.CalculosFluxo.ArredondaM2(largura, altura, ip.Qtde, 0, false); #region Corrige as medidas do projeto var idLarguraVao = 2; var idAlturaVao = 3; if (Array.FindIndex(medidas, x => x.IdMedidaProjeto == idLarguraVao) == -1) { idLarguraVao = (int)MedidaProjetoDAO.Instance.FindByDescricao(0, "larg vão").GetValueOrDefault(); } if (Array.FindIndex(medidas, x => x.IdMedidaProjeto == idAlturaVao) == -1) { idAlturaVao = (int)MedidaProjetoDAO.Instance.FindByDescricao(0, "alt vão").GetValueOrDefault(); } // Qtde int index = Array.FindIndex(medidas, x => x.IdMedidaProjeto == 1); if (index > -1) { medidas[index].Valor = ip.Qtde; } // Largura index = Array.FindIndex(medidas, x => x.IdMedidaProjeto == idLarguraVao); if (index > -1) { medidas[index].Valor = largura; } // Altura index = Array.FindIndex(medidas, x => x.IdMedidaProjeto == idAlturaVao); if (index > -1) { medidas[index].Valor = altura; } #endregion } ip.IdItemProjeto = ItemProjetoDAO.Instance.Insert(sessao, ip); foreach (MedidaItemProjeto m in medidas) { MedidaItemProjetoDAO.Instance.InsereMedida(sessao, ip.IdItemProjeto, m.IdMedidaProjeto, m.Valor); } List <PecaProjetoModelo> pecasModelo = PecaProjetoModeloDAO.Instance.GetByModelo(pm.IdProjetoModelo); //Preenche a altura e largura da peça para que o sistema crie corretamente o //material item projeto para dar baixa nas peças de cesta foreach (var pecas in pecasModelo) { if (pecas.Altura == 0 || pecas.Largura == 0) { pecas.Altura = 1; pecas.Largura = 1; } } foreach (PecaItemProjeto p in pecasItemProjeto) { pecasModelo.Find(x => x.IdPecaProjMod == p.IdPecaProjMod).IdProd = p.IdProd.GetValueOrDefault(); pecasModelo.Find(x => x.IdPecaProjMod == p.IdPecaProjMod).Qtde = p.Qtde; p.Beneficiamentos = p.Beneficiamentos; p.IdPecaItemProj = 0; p.IdItemProjeto = ip.IdItemProjeto; // Utiliza apenas peças com qtd maior que zero if (p.Qtde > 0) { PecaItemProjetoDAO.Instance.Insert(sessao, p); } } // Calcula os materiais do projeto, muda para medida exata para que a altura e largura dos materiais tenham // valor, caso contrário apenas as folgas serão salvas nos campos altura e largura ip.MedidaExata = true; MaterialItemProjetoDAO.Instance.InserePecasVidro(sessao, idObra, idCliente, tipoEntrega, ip, pm, pecasModelo.Where(f => f.Qtde > 0).ToList(), true); ip.MedidaExata = false; foreach (MaterialItemProjeto m in ItemProjetoDAO.Instance.CalculaMateriais(sessao, ip, idCliente, tipoEntrega, true)) { MaterialItemProjetoDAO.Instance.InsertFromNovoItemProjeto(sessao, m); } item.IdItemProjeto = ip.IdItemProjeto; } #endregion Insert(sessao, item); } }