protected void Page_PreRender(object sender, EventArgs e) { lblTitulo.Text = Titulo; drpCorVidro.Items[0].Enabled = IdItemProjeto == null; drpCorAluminio.Items[0].Enabled = IdItemProjeto == null; drpCorFerragem.Items[0].Enabled = IdItemProjeto == null; drpCorVidro.Items.Clear(); drpCorVidro.DataSource = null; if (IdItemProjeto != null && ItemProjetoDAO.Instance.Exists(IdItemProjeto.Value)) { var idProjetoModelo = ItemProjetoDAO.Instance.ObtemIdProjetoModelo(null, IdItemProjeto.Value); drpCorVidro.DataSource = CorVidroDAO.Instance.GetForProjeto(idProjetoModelo); drpCorVidro.Items.Add(new ListItem("", "0")); drpCorVidro.DataBind(); ItemProjeto item = ItemProjetoDAO.Instance.GetElement(IdItemProjeto.Value); drpCorVidro.SelectedValue = item.IdCorVidro.ToString(); drpCorAluminio.SelectedValue = item.IdCorAluminio > 0 ? item.IdCorAluminio.ToString() : string.Empty; drpCorFerragem.SelectedValue = item.IdCorFerragem > 0 ? item.IdCorFerragem.ToString() : string.Empty; } else { drpCorVidro.DataSource = CorVidroDAO.Instance.GetForProjeto(null); drpCorVidro.Items.Insert(0, "Não Alterar"); drpCorVidro.DataBind(); } }
/// <summary> /// Insere peças do item_projeto passado a partir da lista de peças passada, guardando o id gerado na /// lista lstPecaModelo /// </summary> public void InsertFromPecaModelo(GDASession sessao, ItemProjeto itemProj, ref List <PecaProjetoModelo> lstPecaModelo, bool eCommerce) { bool inserirPecas = objPersistence.ExecuteSqlQueryCount(sessao, "Select Count(*) From peca_item_projeto Where idItemProjeto=" + itemProj.IdItemProjeto) == 0; foreach (PecaProjetoModelo ppm in lstPecaModelo.OrderBy(f => f.Tipo).ThenBy(f => f.IdPecaProjMod).ToList()) { /* Chamado 48920. */ if (eCommerce && ppm.IdPecaItemProj > 0 && ppm.Tipo != ObtemTipo(sessao, ppm.IdPecaItemProj)) { throw new Exception("Não é possível alterar o tipo de peça do projeto pelo E-Commerce."); } // Verifica se há fórmula para calcular a qtd de peças var qtdPeca = !string.IsNullOrEmpty(ppm.CalculoQtde) && !itemProj.MedidaExata ? (int)UtilsProjeto.CalcExpressao(sessao, ppm.CalculoQtde, itemProj) : ppm.Qtde; /* Chamado 22322. */ if (!PCPConfig.CriarClone && !itemProj.MedidaExata && !string.IsNullOrEmpty(ppm.CalculoQtde) && itemProj.IdPedidoEspelho.GetValueOrDefault() > 0) { qtdPeca = ppm.Qtde; } if (qtdPeca == 0) { // A quantidade de peças deve ser zerada, pois pode ser que o usuário esteja tentando zerar a peça // mas como entra neste continue não estava zerando if (!inserirPecas) { objPersistence.ExecuteCommand(sessao, "Update peca_item_projeto set qtde=0 where idPecaItemProj=" + ppm.IdPecaItemProj); } continue; } if (inserirPecas || (ppm.IdPecaItemProj == 0 && ppm.IdProd > 0 && ppm.Qtde > 0)) { PecaItemProjeto pip = new PecaItemProjeto(); pip.IdItemProjeto = itemProj.IdItemProjeto; pip.IdProd = (uint)ppm.IdProd; pip.Altura = ppm.Altura; pip.Largura = ppm.Largura; pip.Qtde = qtdPeca; pip.Tipo = ppm.Tipo; pip.Redondo = ppm.Redondo; pip.Beneficiamentos = ppm.Beneficiamentos.ToPecasItemProjeto(); ppm.IdPecaItemProj = Insert(sessao, pip); } else { objPersistence.ExecuteCommand(sessao, "Update peca_item_projeto set idprod=" + ppm.IdProd + ", altura=" + ppm.Altura + ", largura=" + ppm.Largura + ", qtde=" + qtdPeca + ", tipo=" + ppm.Tipo + " where idPecaItemProj=" + ppm.IdPecaItemProj); } } // Atualiza este item_projeto com a qtd e m² Vão ItemProjetoDAO.Instance.AtualizaQtdM2(sessao, itemProj.IdItemProjeto, itemProj.Qtde, UtilsProjeto.CalculaAreaVao(sessao, itemProj.IdItemProjeto, itemProj.MedidaExata)); }
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); }
protected string NomeFigura() { // Busca o item projeto passado por query string ItemProjeto itemProj = ItemProjetoDAO.Instance.GetElementByPrimaryKey(Glass.Conversoes.StrParaUint(Request["idItemProjeto"])); 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 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"; } else { nomeFigura = PCPConfig.GetPecaProjetoVirtualPath + Request["IdPecaItemProj"].ToString().PadLeft(10, '0') + "_" + item + ".jpg"; } return(nomeFigura); }
/// <summary> /// Verifica se todas as medidas foram inseridas /// </summary> /// <param name="idItemProjeto"></param> /// <returns></returns> public bool TodasMedidasInseridas(ItemProjeto itemProj) { int qtdMedidasIns = Glass.Conversoes.StrParaInt(objPersistence.ExecuteScalar( "Select Count(*) From medida_item_projeto Where idItemProjeto=" + itemProj.IdItemProjeto).ToString()); int qtdMedidasProj = Glass.Conversoes.StrParaInt(objPersistence.ExecuteScalar( "Select Count(*) From medida_projeto_modelo Where idProjetoModelo=" + itemProj.IdProjetoModelo).ToString()); return(qtdMedidasIns == qtdMedidasProj); }
public ItemProjeto Build() { var itemProjeto = new ItemProjeto(_projetoId, _produtoId, _coordenadoX, _coordenadaY); if (_id > 0) { var propertyInfo = itemProjeto.GetType().GetProperty("Id"); propertyInfo.SetValue(itemProjeto, Convert.ChangeType(_id, propertyInfo.PropertyType), null); } return(itemProjeto); }
public void ShouldCreateItemProjeto() { var ItemProjetoExpected = new { ProjetoId = _projetoId, ProdutoId = _produtoId, CoordenadaX = _coordenadoX, CoordenadaY = _coordenadoY }; var itemProjeto = new ItemProjeto(ItemProjetoExpected.ProjetoId, ItemProjetoExpected.ProdutoId, ItemProjetoExpected.CoordenadaX, ItemProjetoExpected.CoordenadaY); ItemProjetoExpected.ToExpectedObject().ShouldMatch(itemProjeto); }
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(); } }
/// <summary> /// Insere peças do item_projeto passado a partir da lista de peças passada, guardando o id gerado na /// lista lstPecaModelo /// </summary> public void InsertFromPecaModelo(GDASession sessao, ItemProjeto itemProj, ref List <PecaProjetoModelo> lstPecaModelo) { InsertFromPecaModelo(sessao, itemProj, ref lstPecaModelo, false); }
/// <summary> /// Insere peças do item_projeto passado a partir da lista de peças passada, guardando o id gerado na /// lista lstPecaModelo /// </summary> public void InsertFromPecaModelo(ItemProjeto itemProj, ref List <PecaProjetoModelo> lstPecaModelo) { InsertFromPecaModelo(null, itemProj, ref lstPecaModelo); }
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 string GetAmbientes(string idPedidoStr, string linhaAmbiente) { try { string retorno = ""; string javaScript = ""; uint idPedido = Glass.Conversoes.StrParaUint(idPedidoStr); bool usarEspelho = PedidoEspelhoDAO.Instance.ExisteEspelho(idPedido); bool isMaoObra = PedidoDAO.Instance.IsMaoDeObra(null, idPedido); bool usarAmbientePedido = PedidoConfig.DadosPedido.AmbientePedido; var produtos = ProdutosPedidoDAO.Instance.GetByPedidoLite(idPedido, usarEspelho); if (!PedidoConfig.DadosPedido.AmbientePedido) { bool temProdutoSemProjeto = produtos.Any(x => (!usarEspelho ? x.IdAmbientePedido : x.IdAmbientePedidoEspelho) == null); if (temProdutoSemProjeto) { string tabelaProdutos = ""; if (produtos.Count > 0) { tabelaProdutos = "<table id='produtos_" + linhaAmbiente + "' cellspacing='6' cellpadding='0' width='100%'><tr><th></th>" + "<th>Cód.</th><th>Produto</th><th>Qtd.</th><th>Largura</th><th>Altura</th></tr>"; foreach (ProdutosPedido p in produtos) { if ((!usarEspelho ? p.IdAmbientePedido : p.IdAmbientePedidoEspelho) > 0) { usarAmbientePedido = true; continue; } tabelaProdutos += "<tr><td><input type='checkbox' value='" + p.IdProdPed + "' checked='checked'></td><td>" + p.CodInterno + "</td><td width='100%'>" + p.DescrProduto + " " + p.DescrBeneficiamentos + "</td><td>" + p.Qtde + (isMaoObra ? " x " + p.QtdeAmbiente + " peça(s) de vidro" : "") + "</td><td>" + p.Largura + "</td><td>" + p.AlturaLista + "</td></tr>"; } tabelaProdutos += "</table>"; } retorno += "<tr><td>" + tabelaProdutos + "</td></tr>"; } else { usarAmbientePedido = true; } } if (usarAmbientePedido) { foreach (AmbientePedido a in AmbientePedidoDAO.Instance.GetByPedido(idPedido, usarEspelho)) { string funcaoJavaScript = "exibirProdutosAmbiente({0}, " + a.IdAmbientePedido + ", " + linhaAmbiente + ")"; string funcaoApenasVidros = "apenasVidros({0}, " + a.IdAmbientePedido + ", " + linhaAmbiente + ")"; var produtosAmb = produtos.Where(x => (!usarEspelho ? x.IdAmbientePedido : x.IdAmbientePedidoEspelho) == a.IdAmbientePedido).ToList(); bool temProdutos = false; string tabelaProdutos = ""; if (produtosAmb.Count > 0) { tabelaProdutos = "<table id='produtosAmbiente_" + a.IdAmbientePedido + "_" + linhaAmbiente + "' cellspacing='6' cellpadding='0' width='100%'" + "style='margin-left: 32px; padding-right: 32px'><tr><th></th><th>Cód.</th><th>Produto</th><th>Qtd.</th><th>Largura</th><th>Altura</th></tr>"; foreach (ProdutosPedido p in produtosAmb) { temProdutos = true; tabelaProdutos += "<tr><td><input type='checkbox' value='" + p.IdProdPed + "' checked='checked'" + (a.IdItemProjeto > 0 ? " disabled='true'" + (Glass.Data.DAL.GrupoProdDAO.Instance.IsVidro((int)p.IdGrupoProd) ? " isVidro='true'" : "") : "") + "></td><td>" + p.CodInterno + "</td><td width='100%'>" + p.DescrProduto + " " + p.DescrBeneficiamentos + "</td><td>" + p.Qtde + (isMaoObra ? " x " + p.QtdeAmbiente + " peça(s) de vidro" : "") + "</td><td>" + p.Largura + "</td><td>" + p.AlturaLista + "</td></tr>"; } tabelaProdutos += "</table>"; if (ProjetoConfig.ControleModeloProjeto.ApenasVidrosPadrao) { javaScript += String.Format(funcaoApenasVidros, "true") + "; "; } } string opcoesCheckbox = temProdutos ? " checked='checked'" : " disabled='true'"; ItemProjeto item = null; if (a.IdItemProjeto > 0) { item = ItemProjetoDAO.Instance.GetElementByPrimaryKey(a.IdItemProjeto.Value); } retorno += "<tr><td><input type='checkbox' value='" + a.IdAmbientePedido + "' id='ambientePed_" + a.IdAmbientePedido + "'" + opcoesCheckbox + " " + "isAmbiente='true' onclick='" + String.Format(funcaoJavaScript, "this.checked") + "'>" + "<label for='ambientePed_" + a.IdAmbientePedido + "'>" + a.Ambiente + "</label>" + (item == null ? "" : " <input type='checkbox' id='apenasVidros_" + a.IdAmbientePedido + "' isAmbiente='true' " + "onclick='" + String.Format(funcaoApenasVidros, "this.checked") + "'" + (ProjetoConfig.ControleModeloProjeto.ApenasVidrosPadrao || item.ApenasVidros ? " checked='checked'" : "") + (item.ApenasVidros ? " disabled='true'" : "") + " /><label for='apenasVidros_" + a.IdAmbientePedido + "'>Apenas vidros</label>") + tabelaProdutos + "</td></tr>"; if (!temProdutos) { javaScript += String.Format(funcaoJavaScript, "false") + "; UnTip(); "; } } } return("<table>" + retorno + "</table>¬" + javaScript); } catch { return(""); } }
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); } }
public Imagem[] GetPecasAlteradas(GDASession sessao, uint idItemProjeto, float percentualImagem) { ItemProjeto itemProj = ItemProjetoDAO.Instance.GetElementByPrimaryKey(sessao, idItemProjeto); PecaItemProjeto[] pecas = PecaItemProjetoDAO.Instance.GetByItemProjetoRpt(sessao, idItemProjeto, itemProj.IdProjetoModelo).ToArray(); List <Imagem> retorno = new List <Imagem>(); foreach (PecaItemProjeto p in pecas) { if (p.Tipo != 1) { continue; } ProdutosPedidoEspelho ppe = p.IdProdPed.GetValueOrDefault() == 0 ? null : ProdutosPedidoEspelhoDAO.Instance.GetForImagemPeca(sessao, p.IdProdPed.Value); foreach (int item in Array.ConvertAll(UtilsProjeto.GetItensFromPeca(p.Item), x => Glass.Conversoes.StrParaInt(x))) { //Se o item da peça for 99(geração dinâmica e não houver etiqueta, não gera a imagem. if ((item == 90 || item == 91 || item == 92 || item == 93 || item == 94 || item == 95 || item == 96 || item == 97 || item == 98 || item == 99) && string.IsNullOrEmpty(p.Etiquetas)) { continue; } if (item == 90 || item == 91 || item == 92 || item == 93 || item == 94 || item == 95 || item == 96 || item == 97 || item == 98 || item == 99) { string[] etiquetas = p.Etiquetas.Split(','); foreach (string etq in etiquetas) { string imgUrl = UtilsProjeto.GetFiguraAssociadaUrl(sessao, idItemProjeto, itemProj.IdProjetoModelo, p.IdPecaItemProj, item); imgUrl += "&numEtiqueta=" + etq; byte[] imagem = Utils.GetImageFromRequest(HttpContext.Current, imgUrl); if (imagem.Length == 0) { continue; } imagem = ManipulacaoImagem.Redimensionar(imagem, 0, 0, percentualImagem); if (retorno.Count > 0 && retorno[retorno.Count - 1].Imagem2 == null) { retorno[retorno.Count - 1].Imagem2 = imagem; } else { Imagem nova = new Imagem(); nova.Chave = idItemProjeto; nova.Imagem1 = imagem; retorno.Add(nova); } } } else { string urlImagem = null; if (ppe != null) { ppe.Item = item; urlImagem = ppe.ImagemUrl; } else if (itemProj.IdPedido > 0) { MaterialItemProjeto mip = MaterialItemProjetoDAO.Instance.GetMaterialByPeca(sessao, p.IdPecaItemProj); if (mip != null) { // Se estiver imprimindo projeto de pedido que está no comercial, // busca a imagem que pode ter sido editada do comercial urlImagem = Utils.GetPecaComercialVirtualPath + ProdutosPedidoDAO.Instance.GetIdProdPedByMaterItemProj(sessao, itemProj.IdPedido.Value, mip.IdMaterItemProj).ToString().PadLeft(10, '0') + "_" + item + ".jpg"; if (!File.Exists(HttpContext.Current.Server.MapPath(urlImagem))) { urlImagem = null; } } } if (urlImagem == null) { urlImagem = UtilsProjeto.GetFiguraAssociadaUrl(sessao, idItemProjeto, itemProj.IdProjetoModelo, p.IdPecaItemProj, item); } byte[] imagem = Utils.GetImageFromRequest(HttpContext.Current, urlImagem); if (imagem.Length == 0) { continue; } imagem = ManipulacaoImagem.Redimensionar(imagem, 0, 0, percentualImagem); if (retorno.Count > 0 && retorno[retorno.Count - 1].Imagem2 == null) { retorno[retorno.Count - 1].Imagem2 = imagem; } else { Imagem nova = new Imagem(); nova.Chave = idItemProjeto; nova.Imagem1 = imagem; retorno.Add(nova); } } } } return(retorno.ToArray()); }
/// <summary> /// Recupera os IDs dos itens de projeto que serão atualizados de um projeto/orçamento/pedido/pedido espelho. /// Retorna também o tipo de entrega e o cliente do item pesquisado. /// </summary> /// <param name="idItemProjeto"></param> /// <param name="idProjeto"></param> /// <param name="idOrcamento"></param> /// <param name="idPedido"></param> /// <param name="idPedidoEspelho"></param> /// <param name="tipoEntrega"></param> /// <param name="idCliente"></param> /// <returns></returns> private static uint[] GetIdsItensProjeto(uint?idItemProjeto, uint?idProjeto, uint?idOrcamento, uint?idPedido, uint?idPedidoEspelho, out int?tipoEntrega, out uint?idCliente) { if (idItemProjeto != null && ItemProjetoDAO.Instance.Exists(idItemProjeto.Value)) { ItemProjeto item = ItemProjetoDAO.Instance.GetElementByPrimaryKey(idItemProjeto.Value); GetTipoEntregaCliente(item.IdProjeto, item.IdOrcamento, item.IdPedido, item.IdPedidoEspelho, out tipoEntrega, out idCliente); return(new uint[] { idItemProjeto.Value }); } else if (idProjeto != null) { GetTipoEntregaCliente(idProjeto, null, null, null, out tipoEntrega, out idCliente); var itens = ItemProjetoDAO.Instance.GetByProjeto(idProjeto.Value); List <uint> ids = new List <uint>(); foreach (ItemProjeto i in itens) { ids.Add(i.IdItemProjeto); } return(ids.ToArray()); } else if (idOrcamento != null) { GetTipoEntregaCliente(null, idOrcamento, null, null, out tipoEntrega, out idCliente); var itens = ItemProjetoDAO.Instance.GetByOrcamento(idOrcamento.Value); List <uint> ids = new List <uint>(); foreach (ItemProjeto i in itens) { ids.Add(i.IdItemProjeto); } return(ids.ToArray()); } else if (idPedido != null) { GetTipoEntregaCliente(null, null, idPedido, null, out tipoEntrega, out idCliente); var itens = ItemProjetoDAO.Instance.GetByPedido(idPedido.Value); List <uint> ids = new List <uint>(); foreach (ItemProjeto i in itens) { ids.Add(i.IdItemProjeto); } return(ids.ToArray()); } else if (idPedidoEspelho != null) { GetTipoEntregaCliente(null, null, null, idPedidoEspelho, out tipoEntrega, out idCliente); var itens = ItemProjetoDAO.Instance.GetByPedido(idPedidoEspelho.Value); List <uint> ids = new List <uint>(); foreach (ItemProjeto i in itens) { ids.Add(i.IdItemProjeto); } return(ids.ToArray()); } tipoEntrega = null; idCliente = null; return(new uint[0]); }