protected void chkMarcarProduto_DataBinding(object sender, EventArgs e) { CheckBox chkMarcarProduto = (CheckBox)sender; ProdutosPedidoEspelho prodPed = ((GridViewRow)chkMarcarProduto.Parent.Parent).DataItem as ProdutosPedidoEspelho; chkMarcarProduto.Attributes.Add("valor", prodPed.IdProdPed.ToString()); }
protected void chkNaoCobrarVidro_DataBinding(object sender, EventArgs e) { CheckBox chkNaoCobrarVidro = (CheckBox)sender; GridViewRow linha = chkNaoCobrarVidro.Parent.Parent as GridViewRow; if (linha == null) { return; } ProdutosPedidoEspelho produto = linha.DataItem as ProdutosPedidoEspelho; if (produto == null) { return; } int qtdeJaFeita = ProdutosCompraBenefDAO.Instance.GetCountByProdPedBenef(produto.IdProdPed, 0); if (produto.Beneficiamentos.Count == 0 || qtdeJaFeita == produto.Beneficiamentos.NumeroBeneficiamentos) { chkNaoCobrarVidro.Enabled = false; chkNaoCobrarVidro.Checked = false; } else if (produto.QtdeComprar == 0) { chkNaoCobrarVidro.Enabled = false; chkNaoCobrarVidro.Checked = true; } }
protected void imgExcluir_PreRender(object sender, EventArgs e) { bool visivel = false; try { TableRow linha = ((ImageButton)sender).Parent.Parent as TableRow; HiddenField h = (HiddenField)linha.Parent.Parent.FindControl("hdfIdProdPed"); var idPedido = Request["idPedido"].StrParaUint(); if (Request["tipo"] == "pedido" && !PedidoEspelhoDAO.Instance.ExisteEspelho(idPedido) && ProdutosPedidoDAO.Instance.TemProdutoLamComposicao(idPedido)) { var urlImagem = ProdutosPedidoDAO.Instance.ObterUrlImagemSalvar(h.Value.StrParaUint()); ((ImageButton)sender).Visible = File.Exists(urlImagem); return; } ProdutosPedidoEspelho ppe = ProdutosPedidoEspelhoDAO.Instance.GetElementByPrimaryKey(Glass.Conversoes.StrParaUint(h.Value)); ppe.Item = Glass.Conversoes.StrParaInt(linha.Cells[0].Attributes["item"]); visivel = File.Exists(Server.MapPath(ppe.ImagemUrlSalvarItem)); if (!visivel) { visivel = File.Exists(Server.MapPath(ppe.ImagemUrlSalvar)); } } catch { } ((ImageButton)sender).Visible = visivel; }
/// <summary> /// Construtor da classe. /// Chama o construtor da superclasse. /// </summary> public ProdutoPedidoEspelho(ProdutosPedidoEspelho produtoPedidoEspelho, int numeroPeca) : base(x => (x as ProdutoPedidoEspelho).IdProdPed + "_" + (x as ProdutoPedidoEspelho).NumeroPeca) { this.produtoPedidoEspelho = produtoPedidoEspelho; this.NumeroPeca = numeroPeca; //this.Capacidade = produtoPedidoEspelho.TotM / produtoPedidoEspelho.Qtde; }
public DadosMemoriaCalculo(ProdutoPedidoEspelhoBenef ppeb) { BenefConfig bc = BenefConfigDAO.Instance.GetElement(ppeb.IdBenefConfig); ProdutosPedidoEspelho pai = ProdutosPedidoEspelhoDAO.Instance.GetElement(ppeb.IdProdPed, false); BenefConfigPreco bcp = BenefConfigPrecoDAO.Instance.GetByIdBenefConfig(null, ppeb.IdBenefConfig, pai.IdProd); int tipoEntrega = PedidoDAO.Instance.ObtemTipoEntrega(pai.IdPedido); bool maoDeObra = PedidoDAO.Instance.IsMaoDeObra(null, pai.IdPedido); Codigo = pai.CodInterno; Ambiente = !maoDeObra ? pai.AmbientePedido : AmbientePedidoEspelhoDAO.Instance.ObtemPecaVidroQtd(pai.IdAmbientePedido.Value); DescrAmbiente = pai.DescrAmbientePedido; _descricao = " " + bc.DescricaoCompleta.Trim(); Redondo = false; Qtde = ppeb.Qtd; ValorTabela = BenefConfigDAO.Instance.GetValorTabela(bcp, (int?)tipoEntrega, PedidoDAO.Instance.ObtemIdCliente(null, pai.IdPedido)); Custo = bcp.Custo; CustoTotal = ppeb.Custo; Valor = ppeb.ValorUnit; ValorTotal = ppeb.Valor; if (bc.TipoControle == TipoControleBenef.Bisote || bc.TipoControle == TipoControleBenef.Lapidacao) { _descricao += " " + Utils.MontaDescrLapBis(ppeb.BisAlt, ppeb.BisLarg, ppeb.LapAlt, ppeb.LapLarg, ppeb.EspBisote, null, null, false); } if (bc.TipoCalculo == TipoCalculoBenef.Porcentagem) { ValorTabela = Math.Round((ValorTabela / 100) * pai.ValorVendido, 2); } TipoCalculo = 0; }
public ProdutosPedidoEspelhoRpt(ProdutosPedidoEspelho prodPed, TipoConstrutor tipo) { switch (tipo) { case TipoConstrutor.ListaPedidoEspelho: ListaPedidos(prodPed); break; } }
protected void txtEspessura_DataBinding(object sender, EventArgs e) { TextBox txt = (TextBox)sender; GridViewRow linhaControle = txt.Parent.Parent as GridViewRow; ProdutosPedidoEspelho prodPed = linhaControle.DataItem as ProdutosPedidoEspelho; txt.Enabled = prodPed.Espessura <= 0; }
protected void btnConfirmar_Click(object sender, EventArgs e) { List <ProdutosPedidoEspelho> lstProdEsp = new List <ProdutosPedidoEspelho>(); ProdutosPedidoEspelho prodEsp; Produto prod = ProdutoDAO.Instance.GetByCodInterno(Request["idProd"]); uint idPedido = Glass.Conversoes.StrParaUint(Request["idPedido"]); decimal valor = Glass.Conversoes.StrParaDecimal(Request["val"].Replace('.', ',')); try { // Para cada qtd e ml for (int i = 1; i <= 10; i++) { string qtd = ((TextBox)Page.FindControl("txtQtd" + i)).Text; string ml = ((TextBox)Page.FindControl("txtMl" + i)).Text; // Se a qtd e o ml tiverem sido informados, insere produto numa lista para ser inserido if (!String.IsNullOrEmpty(qtd) && !String.IsNullOrEmpty(ml)) { float alturaReal = Single.Parse(ml, System.Globalization.NumberStyles.AllowDecimalPoint); float altura = alturaReal, totM2 = 0; decimal custo = 0, total = 0; Glass.Data.DAL.ProdutoDAO.Instance.CalcTotaisItemProd(0, prod.IdProd, 0, Glass.Conversoes.StrParaInt(qtd), 1, valor, 0, false, 1, false, ref custo, ref altura, ref totM2, ref total, false, 0); prodEsp = new ProdutosPedidoEspelho(); prodEsp.IdPedido = idPedido; prodEsp.IdProd = (uint)prod.IdProd; prodEsp.Qtde = Glass.Conversoes.StrParaInt(qtd); prodEsp.AlturaReal = alturaReal; prodEsp.ValorVendido = valor; prodEsp.Altura = altura; prodEsp.IdAmbientePedido = !String.IsNullOrEmpty(Request["idAmbiente"]) ? (uint?)Glass.Conversoes.StrParaUint(Request["idAmbiente"]) : null; lstProdEsp.Add(prodEsp); } } // Insere os produtos no pedido foreach (ProdutosPedidoEspelho p in lstProdEsp) { // Verifica se o produto com a largura e altura especificados já foi adicionado ao pedido if (ProdutosPedidoEspelhoDAO.Instance.ExistsInPedido(p.IdPedido, p.IdProd, p.AlturaReal, p.Largura, p.IdProcesso, p.IdAplicacao)) { continue; } ProdutosPedidoEspelhoDAO.Instance.Insert(p); } ClientScript.RegisterClientScriptBlock(typeof(string), "ok", "alert('Produtos inseridos com sucesso.'); window.opener.recarregar(); closeWindow();", true); } catch (Exception ex) { Glass.MensagemAlerta.ErrorMsg("Falha ao inserir produtos no pedido.", ex, Page); } }
private string ObterCorLinha(ProdutosPedidoEspelho produtoImpressaoIndividualEtiqueta) { using (var sessao = new GDATransaction()) { bool pedidoDeReposicao = PedidoDAO.Instance.IsPedidoReposicao( sessao, produtoImpressaoIndividualEtiqueta.IdPedido.ToString()); return(pedidoDeReposicao ? "Red" : string.Empty); } }
protected void imgExcluir_Click(object sender, ImageClickEventArgs e) { try { TableRow linha = ((ImageButton)sender).Parent.Parent as TableRow; HiddenField h = (HiddenField)linha.Parent.Parent.FindControl("hdfIdProdPed"); var idPedido = Request["idPedido"].StrParaUint(); if (Request["tipo"] == "pedido" && !PedidoEspelhoDAO.Instance.ExisteEspelho(idPedido) && ProdutosPedidoDAO.Instance.TemProdutoLamComposicao(idPedido)) { var urlImagem = ProdutosPedidoDAO.Instance.ObterUrlImagemSalvar(h.Value.StrParaUint()); if (File.Exists(urlImagem)) { File.Delete(urlImagem); } Response.Redirect(Request.Url.ToString()); } ProdutosPedidoEspelho ppe = ProdutosPedidoEspelhoDAO.Instance.GetElementByPrimaryKey(Glass.Conversoes.StrParaUint(h.Value)); ppe.Item = Glass.Conversoes.StrParaInt(linha.Cells[0].Attributes["item"]); string filePath = Server.MapPath(ppe.ImagemUrlSalvarItem); if (!File.Exists(filePath)) { filePath = Server.MapPath(ppe.ImagemUrlSalvar); if (!File.Exists(filePath)) { return; } } File.Delete(filePath); uint idPecaItemProj = Glass.Conversoes.StrParaUint(linha.Cells[0].Attributes["idPecaItemProj"]); if (idPecaItemProj > 0) { LogAlteracaoDAO.Instance.LogImagemProducao(idPecaItemProj, ppe.Item.ToString(), "Remoção da imagem atribuída à peça"); } Response.Redirect(Request.Url.ToString()); } catch (Exception ex) { Glass.MensagemAlerta.ErrorMsg("Falha ao excluir imagem.", ex, Page); } }
private void ListaPedidos(ProdutosPedidoEspelho prodPed) { IdProdPed = prodPed.IdProdPed; IdPedido = prodPed.IdPedido; IdProd = prodPed.IdProd; IdAplicacao = prodPed.IdAplicacao; IdProcesso = prodPed.IdProcesso; Qtde = prodPed.Qtde; Altura = prodPed.Altura; AlturaReal = prodPed.AlturaReal; Largura = prodPed.Largura; LarguraReal = prodPed.LarguraReal; TotM = prodPed.TotM; TotM2Calc = prodPed.TotM2Calc; Cor = prodPed.Cor; Espessura = prodPed.Espessura; TotM2Rpt = prodPed.TotM2Rpt; QtdeRpt = prodPed.QtdeRpt; }
public DadosMemoriaCalculo(ProdutosPedidoEspelho ppe, Pedido pedido, float qtdeAmbienteSoma) { bool maoDeObra = (pedido as IContainerCalculo).MaoDeObra; bool reposicao = (pedido as IContainerCalculo).Reposicao; ProdutosPedido pp = ProdutosPedidoDAO.Instance.GetByProdPedEsp(null, ppe.IdProdPed, true); Ambiente = !maoDeObra ? ppe.AmbientePedido : AmbientePedidoEspelhoDAO.Instance.ObtemPecaVidroQtd(ppe.IdAmbientePedido.Value); DescrAmbiente = ppe.DescrAmbientePedido; Codigo = ppe.CodInterno; _descricao = ppe.DescrProduto.Trim(); Redondo = ppe.Redondo; Qtde = ppe.Qtde; QtdeAmbiente = maoDeObra ? ppe.QtdeAmbiente : 0; QtdeAmbienteSoma = maoDeObra ? qtdeAmbienteSoma : 0; Altura = ppe.AlturaReal; AlturaCalc = ppe.Altura; _largura = ppe.Largura; TotM2 = ppe.TotM; TotM2Calc = ppe.TotM2Calc; ValorTabela = ProdutoDAO.Instance.GetValorTabela((int)ppe.IdProd, pedido.TipoEntrega, pedido.IdCli, false, reposicao, ppe.PercDescontoQtde, (int?)ppe.IdPedido, null, null, Altura); Custo = ppe.CustoCompraProduto; Valor = ppe.ValorVendido; ValorTotal = ppe.Total;// +pp.ValorBenef; _valorTabelaCobrado = pp.ValorTabelaPedido; TipoCalculo = pp.TipoCalculoUsadoPedido; IsProdLamComposicao = pp.IsProdLamComposicao; CalculaValor(pedido, ppe); CustoTotal = (ppe as IProdutoCalculo).CustoProd; // Exibe o percentual de desconto por qtd concatenado com a descrição if (Geral.ConcatenarDescontoPorQuantidadeNaDescricaoDoProduto && ppe.PercDescontoQtde > 0) { _descricao += "\r\n(Desc. Prod.: " + ppe.PercDescontoQtde + "%)"; } }
/// <summary> /// Inicia uma nova instância da classe <see cref="ListaDto"/>. /// </summary> /// <param name="produtoImpressaoIndividualEtiqueta">A model de produto que será utilizada na listagem de impressão individual de etiquetas.</param> internal ListaDto(ProdutosPedidoEspelho produtoImpressaoIndividualEtiqueta) { this.IdPedido = (int)produtoImpressaoIndividualEtiqueta.IdPedido; this.IdAmbientePedido = (int)produtoImpressaoIndividualEtiqueta.IdAmbientePedido; this.IdProdutoPedido = (int)produtoImpressaoIndividualEtiqueta.IdProdPed; this.IdProdutoNotaFiscal = produtoImpressaoIndividualEtiqueta.IdProdNf; this.NumeroNotaFiscal = produtoImpressaoIndividualEtiqueta.NumeroNFe; this.Produto = produtoImpressaoIndividualEtiqueta.DescrProduto; this.Processo = produtoImpressaoIndividualEtiqueta.CodProcesso; this.Aplicacao = produtoImpressaoIndividualEtiqueta.CodAplicacao; this.Medidas = new MedidasDto { Altura = (decimal)produtoImpressaoIndividualEtiqueta.Altura, Largura = produtoImpressaoIndividualEtiqueta.Largura, }; this.Quantidade = new QuantidadeDto { Total = (decimal)produtoImpressaoIndividualEtiqueta.Qtde, Impressa = produtoImpressaoIndividualEtiqueta.QtdImpresso, }; this.CorLinha = this.ObterCorLinha(produtoImpressaoIndividualEtiqueta); }
protected void lnkInsProd_Click(object sender, EventArgs e) { bool isPedidoMaoDeObra = IsPedidoMaoDeObra(); // Cria uma instância do ProdutosPedido ProdutosPedidoEspelho prodPed = new ProdutosPedidoEspelho(); prodPed.IdPedido = Glass.Conversoes.StrParaUint(Request["IdPedido"]); prodPed.IdAmbientePedido = !String.IsNullOrEmpty(hdfIdAmbiente.Value) ? (uint?)Glass.Conversoes.StrParaUint(hdfIdAmbiente.Value) : null; prodPed.Qtde = float.Parse(((TextBox)grdProdutos.FooterRow.FindControl("txtQtdeIns")).Text.Replace('.', ',')); prodPed.ValorVendido = Glass.Conversoes.StrParaDecimal(((HiddenField)grdProdutos.FooterRow.FindControl("hdfValorIns")).Value); prodPed.Altura = Glass.Conversoes.StrParaFloat(((HiddenField)grdProdutos.FooterRow.FindControl("hdfAlturaCalcIns")).Value); prodPed.AlturaReal = Glass.Conversoes.StrParaFloat(((TextBox)grdProdutos.FooterRow.FindControl("txtAlturaIns")).Text); prodPed.Largura = Glass.Conversoes.StrParaInt(((TextBox)grdProdutos.FooterRow.FindControl("txtLarguraIns")).Text); prodPed.LarguraReal = Glass.Conversoes.StrParaInt(((HiddenField)grdProdutos.FooterRow.FindControl("hdfLarguraCalc")).Value); prodPed.IdProd = Glass.Conversoes.StrParaUint(hdfIdProd.Value); prodPed.IdAplicacao = Glass.Conversoes.StrParaUintNullable(((HiddenField)grdProdutos.FooterRow.FindControl("hdfIdAplicacao")).Value); prodPed.IdProcesso = Glass.Conversoes.StrParaUintNullable(((HiddenField)grdProdutos.FooterRow.FindControl("hdfIdProcesso")).Value); prodPed.Espessura = Glass.Conversoes.StrParaInt(((TextBox)grdProdutos.FooterRow.FindControl("txtEspessura")).Text); prodPed.AlturaBenef = isPedidoMaoDeObra ? Glass.Conversoes.StrParaIntNullable(((DropDownList)grdProdutos.FooterRow.FindControl("drpAltBenef")).SelectedValue) : null; prodPed.LarguraBenef = isPedidoMaoDeObra ? Glass.Conversoes.StrParaIntNullable(((DropDownList)grdProdutos.FooterRow.FindControl("drpLargBenef")).SelectedValue) : null; prodPed.EspessuraBenef = isPedidoMaoDeObra ? Glass.Conversoes.StrParaFloat(((TextBox)grdProdutos.FooterRow.FindControl("txtEspBenef")).Text) : 0; prodPed.Beneficiamentos = ((Glass.UI.Web.Controls.ctrlBenef)grdProdutos.FooterRow.FindControl("ctrlBenefInserir")).Beneficiamentos; prodPed.PedCli = ((TextBox)grdProdutos.FooterRow.FindControl("txtPedCli")).Text; prodPed.AliqIcms = Convert.ToSingle(Math.Round(Glass.Conversoes.StrParaFloat(((HiddenField)grdProdutos.FooterRow.FindControl("hdfAliquotaIcmsProd")).Value), 2)); prodPed.ValorIcms = Glass.Conversoes.StrParaDecimal(((HiddenField)grdProdutos.FooterRow.FindControl("hdfValorIcmsProd")).Value); prodPed.PercDescontoQtde = ((Glass.UI.Web.Controls.ctrlDescontoQtde)grdProdutos.FooterRow.FindControl("ctrlDescontoQtde")).PercDescontoQtde; prodPed.IdGrupoProd = (uint)ProdutoDAO.Instance.ObtemIdGrupoProd((int)prodPed.IdProd); prodPed.IdSubgrupoProd = (uint)ProdutoDAO.Instance.ObtemIdSubgrupoProd((int)prodPed.IdProd); if (prodPed.Largura == 0 && prodPed.LarguraReal > 0) { prodPed.Largura = prodPed.LarguraReal; } var tamanhoMinimoBisote = Configuracoes.PedidoConfig.TamanhoVidro.AlturaELarguraMinimaParaPecasComBisote; var tamanhoMinimoLapidacao = Configuracoes.PedidoConfig.TamanhoVidro.AlturaELarguraMinimaParaPecasComLapidacao; var tamanhoMinimoTemperado = Configuracoes.PedidoConfig.TamanhoVidro.AlturaELarguraMinimasParaPecasTemperadas; var retorno = string.Empty; if (prodPed.Beneficiamentos != null) { foreach (var prodBenef in prodPed.Beneficiamentos) { if (BenefConfigDAO.Instance.GetElement(prodBenef.IdBenefConfig).TipoControle == Data.Model.TipoControleBenef.Bisote && (prodPed.Altura < tamanhoMinimoBisote || prodPed.Largura < tamanhoMinimoBisote)) { retorno += $"A altura ou largura minima para peças com bisotê é de {tamanhoMinimoBisote}mm. "; } if (BenefConfigDAO.Instance.GetElement(prodBenef.IdBenefConfig).TipoControle == Data.Model.TipoControleBenef.Lapidacao && (prodPed.Altura < tamanhoMinimoLapidacao || prodPed.Largura < tamanhoMinimoLapidacao)) { retorno += $"A altura ou largura minima para peças com lapidação é de {tamanhoMinimoLapidacao}mm. "; } } } if (SubgrupoProdDAO.Instance.GetElementByPrimaryKey(prodPed.IdSubgrupoProd).IsVidroTemperado&& prodPed.Altura < tamanhoMinimoTemperado && prodPed.Largura < tamanhoMinimoTemperado) { retorno += $"A altura ou largura minima para peças com têmpera é de {tamanhoMinimoTemperado}mm. "; } if (!string.IsNullOrWhiteSpace(retorno)) { MensagemAlerta.ShowMsg(retorno, Page); return; } try { ProdutosPedidoEspelhoDAO.Instance.InsertComTransacao(prodPed); if (grdProdutos.PageCount > 1) { grdProdutos.PageIndex = grdProdutos.PageCount - 1; } grdProdutos.DataBind(); dtvPedido.DataBind(); grdAmbiente.DataBind(); } catch (Exception ex) { Glass.MensagemAlerta.ErrorMsg("Falha ao incluir produto no Pedido.", ex, Page); return; } }
protected void btnAplicar_Click(object sender, EventArgs e) { try { for (int i = 0; i < grdPecas.Rows.Count; i++) { Table tblImagens = (Table)grdPecas.Rows[i].FindControl("tblImagens"); for (int j = 0; j < tblImagens.Rows.Count; j++) { int item = Glass.Conversoes.StrParaInt(tblImagens.Rows[j].Cells[0].Attributes["item"]); FileUpload f = (FileUpload)tblImagens.Rows[j].FindControl("flu" + j); if (f == null || !f.HasFile) { continue; } uint idPecaItemProj = Glass.Conversoes.StrParaUint(tblImagens.Rows[j].Cells[0].Attributes["idPecaItemProj"]); // Garante que a imagem pode ser alterada na peça if (idPecaItemProj > 0 && !UtilsProjeto.PodeAlterarImagemPeca(PecaItemProjetoDAO.Instance.GetElementExt(null, idPecaItemProj, true), item, j + 1, false)) { continue; } string extensao = f.FileName.Substring(f.FileName.LastIndexOf('.')); if (!Arquivos.IsImagem(extensao)) { throw new Exception("Apenas imagens podem ser selecionadas."); } HiddenField h = (HiddenField)grdPecas.Rows[i].FindControl("hdfIdProdPed"); var idPedido = Request["idPedido"].StrParaUint(); var idProdPed = h.Value.StrParaUint(); if (Request["tipo"] == "pedido" && !PedidoEspelhoDAO.Instance.ExisteEspelho(idPedido) && (ProdutosPedidoDAO.Instance.TemProdutoLamComposicao(idPedido) || Request["pecaAvulsa"] == "True")) { var urlImagem = ProdutosPedidoDAO.Instance.ObterUrlImagemSalvar(idProdPed); ManipulacaoImagem.SalvarImagem(urlImagem, f.FileBytes); // Cria Log de alteração da Imagem do Produto Pedido LogAlteracaoDAO.Instance.Insert(new LogAlteracao { Tabela = (int)LogAlteracao.TabelaAlteracao.ImagemProdPed, IdRegistroAlt = (int)idProdPed, Campo = "Imagem Produto Pedido", ValorAtual = f.FileName, DataAlt = DateTime.Now, IdFuncAlt = UserInfo.GetUserInfo.CodUser, Referencia = "Imagem do Produto Pedido " + idProdPed, NumEvento = LogAlteracaoDAO.Instance.GetNumEvento(null, LogAlteracao.TabelaAlteracao.ImagemProdPed, (int)idProdPed) }); } if (Request["tipo"] == "pcp") { ProdutosPedidoEspelho ppe = ProdutosPedidoEspelhoDAO.Instance.GetElementByPrimaryKey(Glass.Conversoes.StrParaUint(h.Value)); if (ppe != null) { var nomeImagem = string.Empty; if (item > 0) { ppe.Item = item; nomeImagem = ppe.ImagemUrlSalvarItem; } else { nomeImagem = ppe.ImagemUrlSalvar; } ManipulacaoImagem.SalvarImagem(Server.MapPath(nomeImagem), f.FileBytes); // Cria Log de alteração da Imagem do Produto Pedido Espelho LogAlteracaoDAO.Instance.Insert(new LogAlteracao { Tabela = (int)LogAlteracao.TabelaAlteracao.ImagemProdPedEsp, IdRegistroAlt = (int)ppe.IdProdPed, Campo = "Imagem Produto Pedido Espelho", ValorAtual = f.FileName, DataAlt = DateTime.Now, IdFuncAlt = UserInfo.GetUserInfo.CodUser, Referencia = "Imagem do Produto Pedido Espelho " + ppe.IdProdPed, NumEvento = LogAlteracaoDAO.Instance.GetNumEvento(null, LogAlteracao.TabelaAlteracao.ImagemProdPedEsp, (int)ppe.IdProdPed) }); if (idPecaItemProj > 0) { LogAlteracaoDAO.Instance.LogImagemProducao(idPecaItemProj, item.ToString(), "Nova imagem atribuída à peça"); } } } } } Glass.MensagemAlerta.ShowMsg("Imagens alteradas.", Page); Response.Redirect(Request.Url.ToString()); } catch (Exception ex) { Glass.MensagemAlerta.ErrorMsg("Falha ao salvar imagem.", ex, Page); } }
private void CriaLinhaTabela(Table tblImagens, bool permitirAlterarImagem, string item, PecaItemProjeto peca, ProdutosPedidoEspelho ppe, ProdutosPedido pp, string msgErro) { TableRow linha = new TableRow(); TableCell cabecalho = new TableCell(); TableCell logPopup = new TableCell(); TableCell botoes = new TableCell(); TableCell upload = new TableCell(); tblImagens.Rows.Add(linha); linha.Cells.AddRange(new TableCell[] { cabecalho, logPopup, botoes }); if (pp != null) { var ctrl = (Controls.ctrlImagemPopup)LoadControl("~/Controls/ctrlImagemPopup.ascx"); ctrl.ImageUrl = pp.ImagemUrl; botoes.Controls.Add(ctrl); ImageButton exc = new ImageButton(); exc.OnClientClick = "if (!confirm('Deseja excluir a imagem atribuída à peça?')) return false;"; exc.ImageUrl = "~/Images/ExcluirGrid.gif"; exc.Click += new ImageClickEventHandler(imgExcluir_Click); exc.PreRender += new EventHandler(imgExcluir_PreRender); // Exibe o Log de alteração da Imagem do Produto Pedido Controls.ctrlLogPopup logPP = (Controls.ctrlLogPopup)LoadControl("~/Controls/ctrlLogPopup.ascx"); logPP.Tabela = LogAlteracao.TabelaAlteracao.ImagemProdPed; logPP.IdRegistro = pp.IdProdPed; logPopup.Controls.Add(logPP); botoes.Controls.Add(exc); FileUpload upl = new FileUpload(); upl.ID = "flu" + (tblImagens.Rows.Count - 1); upload.Controls.Add(upl); linha.Cells.Add(upload); return; } TipoArquivoMesaCorte?tipoArquivo = null; if (peca != null) { tipoArquivo = PecaProjetoModeloDAO.Instance.ObtemTipoArquivoMesaCorte(peca.IdPecaProjMod); } // Caso seja permitido alterar a imagem da peça, é necessário verificar ainda se a peça possui fml associado. if (permitirAlterarImagem && (tipoArquivo == null || (tipoArquivo.Value != TipoArquivoMesaCorte.FML && tipoArquivo != TipoArquivoMesaCorte.DXF))) { if (peca != null) { var flags = FlagArqMesaDAO.Instance.ObtemPorPecaProjMod((int)peca.IdPecaProjMod, true); /* Chamado 24392. */ if (flags.Count(f => f.Descricao == TipoArquivoMesaCorte.FML.ToString()) == 0 && flags.Count(f => f.Descricao == TipoArquivoMesaCorte.DXF.ToString()) == 0) { linha.Cells.Add(upload); } } else { linha.Cells.Add(upload); } } else if (permitirAlterarImagem) { permitirAlterarImagem = false; var geraDXF = PCPConfig.EmpresaGeraArquivoDxf ? "DXF" : string.Empty; var geraFML = PCPConfig.EmpresaGeraArquivoDxf ? "FML" : string.Empty; var tiposArquivoBloquear = !string.IsNullOrEmpty(geraDXF) && !string.IsNullOrEmpty(geraFML) ? $"{geraDXF} ou {geraFML}" : geraDXF + geraFML; msgErro = $@"Não é possível alterar imagens de peças que tenham arquivos de mesa associados {tiposArquivoBloquear}."; } if (!String.IsNullOrEmpty(item)) { cabecalho.Text = "Item " + item; } cabecalho.Attributes.Add("item", item); cabecalho.Attributes.Add("idPecaItemProj", peca != null ? peca.IdPecaItemProj.ToString() : String.Empty); if (peca != null) { Controls.ctrlLogPopup log = (Controls.ctrlLogPopup)LoadControl("~/Controls/ctrlLogPopup.ascx"); log.Tabela = LogAlteracao.TabelaAlteracao.ImagemProducao; peca.Item = item; log.IdRegistro = peca.IdLog; logPopup.Controls.Add(log); } // Exibe o Log de alteração da Imagem do Produto Pedido Espelho Controls.ctrlLogPopup logPPE = (Controls.ctrlLogPopup)LoadControl("~/Controls/ctrlLogPopup.ascx"); logPPE.Tabela = LogAlteracao.TabelaAlteracao.ImagemProdPedEsp; logPPE.IdRegistro = ppe.IdProdPed; logPopup.Controls.Add(logPPE); if (ppe.TemSvgAssociado) { Controls.ctrlImageCadProject ctrl = (Controls.ctrlImageCadProject)LoadControl("~/Controls/ctrlImageCadProject.ascx"); ctrl.IdProdPedEsp = (int)ppe.IdProdPed; ctrl.DiminuirMedidasPopUp = true; ctrl.Legenda = peca != null ? "Ite" + (peca.Item.IndexOf(" ") > -1 ? "ns" : "m") + ": " + peca.Item : string.Empty; if (!string.IsNullOrEmpty(ppe.LegendaImagemPeca)) { ctrl.Legenda = (peca != null ? "<br />" : string.Empty) + ppe.LegendaImagemPeca; } botoes.Controls.Add(ctrl); } else { Controls.ctrlImagemPopup ctrl = (Controls.ctrlImagemPopup)LoadControl("~/Controls/ctrlImagemPopup.ascx"); ctrl.ImageUrl = ppe.ImagemUrl; ctrl.Legenda = peca != null ? "Ite" + (peca.Item.IndexOf(" ") > -1 ? "ns" : "m") + ": " + peca.Item : String.Empty; if (!String.IsNullOrEmpty(ppe.LegendaImagemPeca)) { ctrl.Legenda = (peca != null ? "<br />" : String.Empty) + ppe.LegendaImagemPeca; } botoes.Controls.Add(ctrl); } if (permitirAlterarImagem) { var pedidoExportado = PedidoExportacaoDAO.Instance.GetSituacaoExportacao(null, pp != null ? pp.IdPedido : ppe != null ? ppe.IdPedido : 0) == PedidoExportacao.SituacaoExportacaoEnum.Exportado; if (!pedidoExportado) { ImageButton exc = new ImageButton(); exc.OnClientClick = "if (!confirm('Deseja excluir a imagem atribuída à peça?')) return false;"; exc.ImageUrl = "~/Images/ExcluirGrid.gif"; exc.Click += new ImageClickEventHandler(this.imgExcluir_Click); exc.PreRender += new EventHandler(this.imgExcluir_PreRender); botoes.Controls.Add(exc); // Se o processo da peça for fixo, não permite anexar imagem if (ppe.IdProcesso == null || ppe.IdProcesso != ProjetoConfig.Caixilho.ProcessoCaixilho) { FileUpload upl = new FileUpload(); upl.ID = "flu" + (tblImagens.Rows.Count - 1); upload.Controls.Add(upl); } } else { Label msg = new Label(); msg.Text = "Não é possível alterar imagens de peças de pedidos exportado."; msg.ForeColor = System.Drawing.Color.Red; msg.Style.Value = "display: inline-block; text-align: right; position: relative; left: 6px"; botoes.Controls.Add(msg); } } else { if (ppe.IdProcesso == ProjetoConfig.Caixilho.ProcessoCaixilho) { msgErro = "Caixilhos não tem imagens associadas"; } Label msg = new Label(); msg.Text = msgErro; msg.ForeColor = System.Drawing.Color.Red; msg.Style.Value = "display: inline-block; text-align: right; position: relative; left: 6px"; botoes.Controls.Add(msg); } }
protected void tblImagens_Load(object sender, EventArgs e) { try { Table tblImagens = (Table)sender; GridViewRow row = tblImagens.Parent.Parent as GridViewRow; HiddenField h = (HiddenField)row.FindControl("hdfIdProdPed"); var idPedido = Request["idPedido"].StrParaUint(); if (Request["tipo"] == "pedido" && !PedidoEspelhoDAO.Instance.ExisteEspelho(idPedido) && (ProdutosPedidoDAO.Instance.TemProdutoLamComposicao(idPedido) || Request["pecaAvulsa"] == "True")) { var pp = !IsPostBack ? row.DataItem as ProdutosPedido : ProdutosPedidoDAO.Instance.GetElement(null, h.Value.StrParaUint(), false, true, false); CriaLinhaTabela(tblImagens, true, "", null, null, pp, string.Empty); return; } ProdutosPedidoEspelho ppe = !IsPostBack ? row.DataItem as ProdutosPedidoEspelho : ProdutosPedidoEspelhoDAO.Instance.GetElement(Glass.Conversoes.StrParaUint(h.Value), true); PecaItemProjeto peca = null; if (ppe.IdMaterItemProj > 0) { uint?idPecaItemProj = MaterialItemProjetoDAO.Instance.ObtemIdPecaItemProj(null, ppe.IdMaterItemProj.Value); if (idPecaItemProj.GetValueOrDefault() == 0) { return; } peca = PecaItemProjetoDAO.Instance.GetElementExt(null, idPecaItemProj.Value, true); } string msgErro = "Item possui arquivo de otimização (mesa de<br/ >corte) gerado. Não é possível alterá-lo."; // Mostra imagem apenas se for instalação if (peca != null && peca.Tipo == 1) { // Controla o número da etiqueta de acordo com a quantidade (1/3) int itemEtiqueta = 1; // Para cada item desta peça. Ex.: 1 e 2 ou 3 e 4 foreach (string item in UtilsProjeto.GetItensFromPeca(peca.Item)) { ppe.Item = Glass.Conversoes.StrParaInt(item); bool permitirAlterarImagem = UtilsProjeto.PodeAlterarImagemPeca(peca, ppe.Item, itemEtiqueta++, false, ref msgErro); if (permitirAlterarImagem && Request["tipo"] != "pcp") { permitirAlterarImagem = false; msgErro = "Alteração de imagem apenas no PCP"; } CriaLinhaTabela(tblImagens, permitirAlterarImagem, item, peca, ppe, null, msgErro); } } else if (peca == null) { string result = ppe.EtiquetasLegenda; msgErro = String.IsNullOrEmpty(ppe.EtiquetasLegenda) ? String.Empty : msgErro; // Verifica se é permitido alterar imagem da peça var situacaoPedidoEspelho = PedidoEspelhoDAO.Instance.ObtemSituacao(ppe.IdPedido); var permitirAlterarImagem = situacaoPedidoEspelho == PedidoEspelho.SituacaoPedido.Finalizado || Config.PossuiPermissao(Config.FuncaoMenuPCP.AlterarImagemPecaAposImpressao); if (permitirAlterarImagem) { string[] itens = result != null?result.ToUpper().Replace(" E ", ",").Split(',') : null; itens = itens.Select(f => f.Trim()).ToArray(); permitirAlterarImagem = itens != null && itens.Length > 0 && !string.IsNullOrEmpty(itens[0]); // Recupera o setor de marcação Setor setor = SetorDAO.Instance.ObterSetorPorNome(null, "Marcação"); // Se for permitido alterar imagem da peça, verifica se o item não tem arquivo sag e se não passou pelo setor de marcação if (setor != null && setor.IdSetor > 0 && permitirAlterarImagem && itens != null && itens.Length > 0) { foreach (string etiq in itens) { permitirAlterarImagem = permitirAlterarImagem && !EtiquetaArquivoOtimizacaoDAO.Instance.TemArquivoSAG(etiq) && !LeituraProducaoDAO.Instance.PassouSetor(null, etiq, (uint)setor.IdSetor); } } } else if (PedidoDAO.Instance.IsMaoDeObra(null, ppe.IdPedido)) { permitirAlterarImagem = true; } else { msgErro = String.IsNullOrEmpty(result) ? "Apenas vidros que serão produzidos<br/ >podem ter imagens anexadas." : "Etiqueta já impressa. Não é<br />possível alterar a imagem"; } CriaLinhaTabela(tblImagens, permitirAlterarImagem, "", null, ppe, null, msgErro); } } catch (Exception ex) { MensagemAlerta.ErrorMsg("Falha ao exibir imagens.", ex, Page); var urlErro = Request.Url.ToString() == null || Request.Url.ToString() == "" ? "Sel Imagem Peça" : Request.Url.ToString(); ErroDAO.Instance.InserirFromException(urlErro, ex); } }
protected void btnConfirmar_Click(object sender, EventArgs e) { try { var idPedido = Glass.Conversoes.StrParaUint(Request["idPedido"]); var pcp = !string.IsNullOrEmpty(Request["pcp"]) ? Request["pcp"] == "true" : false; // Recupera os dados da mão de obra var idProdMaoObra = Glass.Conversoes.StrParaUint(hdfIdProdMaoObra.Value); int qtdeMaoObra = Glass.Conversoes.StrParaInt(txtQtdeMaoObra.Text); var valorMaoObra = Glass.Conversoes.StrParaDecimal(txtValorUnitMaoObra.Text); var tipoCalcMaoObra = Glass.Conversoes.StrParaInt(hdfTipoCalcMaoObra.Value); var alturaBenef = !string.IsNullOrEmpty(drpAltBenef.SelectedValue) ? Glass.Conversoes.StrParaInt(drpAltBenef.SelectedValue) : 0; var larguraBenef = !string.IsNullOrEmpty(drpLargBenef.SelectedValue) ? Glass.Conversoes.StrParaInt(drpLargBenef.SelectedValue) : 0; var espBenef = !string.IsNullOrEmpty(txtEspBenef.Text) ? (int?)Glass.Conversoes.StrParaInt(txtEspBenef.Text) : null; for (var i = 1; i <= 10; i++) { var idProdAmbiente = (HiddenField)Master.FindControl("pagina").FindControl("hdfAmbIdProd" + i) != null? Glass.Conversoes.StrParaUint(((HiddenField)Master.FindControl("pagina").FindControl("hdfAmbIdProd" + i)).Value) : 0; if (idProdAmbiente == 0) { continue; } var codAmbiente = (TextBox)Master.FindControl("pagina").FindControl("txtCodAmb" + i) != null ? ((TextBox)Master.FindControl("pagina").FindControl("txtCodAmb" + i)).Text : ""; var descrAmbiente = (HiddenField)Master.FindControl("pagina").FindControl("hdfDescrAmb" + i) != null ? ((HiddenField)Master.FindControl("pagina").FindControl("hdfDescrAmb" + i)).Value : ""; var qtdeAmbiente = (TextBox)Master.FindControl("pagina").FindControl("txtQtde" + i) != null? Glass.Conversoes.StrParaInt(((TextBox)Master.FindControl("pagina").FindControl("txtQtde" + i)).Text) : 0; var alturaAmbiente = (TextBox)Master.FindControl("pagina").FindControl("txtAltura" + i) != null? Glass.Conversoes.StrParaInt(((TextBox)Master.FindControl("pagina").FindControl("txtAltura" + i)).Text) : 0; var larguraAmbiente = (TextBox)Master.FindControl("pagina").FindControl("txtLargura" + i) != null? Glass.Conversoes.StrParaInt(((TextBox)Master.FindControl("pagina").FindControl("txtLargura" + i)).Text) : 0; var idAplicacao = (HiddenField)Master.FindControl("pagina").FindControl("hdfIdAplicacao" + i) != null? Glass.Conversoes.StrParaUintNullable(((HiddenField)Master.FindControl("pagina").FindControl("hdfIdAplicacao" + i)).Value) : 0; var idProcesso = (HiddenField)Master.FindControl("pagina").FindControl("hdfIdProcesso" + i) != null? Glass.Conversoes.StrParaUintNullable(((HiddenField)Master.FindControl("pagina").FindControl("hdfIdProcesso" + i)).Value) : 0; var redondoAmbiente = (CheckBox)Master.FindControl("pagina").FindControl("chkRedondo" + i) != null ? ((CheckBox)Master.FindControl("pagina").FindControl("chkRedondo" + i)).Checked : false; var idAmbiente = new uint(); // Insere o ambiente if (!pcp) { var novo = new AmbientePedido(); novo.IdPedido = idPedido; novo.IdProd = idProdAmbiente; novo.Ambiente = descrAmbiente; novo.Altura = alturaAmbiente; novo.Largura = larguraAmbiente; novo.Qtde = qtdeAmbiente; novo.IdAplicacao = idAplicacao; novo.IdProcesso = idProcesso; novo.Redondo = redondoAmbiente; if (novo.Altura != novo.Largura && redondoAmbiente) { throw new Exception("O beneficiamento Redondo pode ser marcado somente em peças de medidas iguais."); } idAmbiente = AmbientePedidoDAO.Instance.InsertComTransacao(novo); } else { var novo = new AmbientePedidoEspelho(); novo.IdPedido = idPedido; novo.IdProd = idProdAmbiente; novo.Ambiente = descrAmbiente; novo.Altura = alturaAmbiente; novo.Largura = larguraAmbiente; novo.Qtde = qtdeAmbiente; novo.Redondo = redondoAmbiente; if (novo.Altura != novo.Largura && redondoAmbiente) { throw new Exception("O beneficiamento Redondo pode ser marcado somente em peças de medidas iguais."); } idAmbiente = AmbientePedidoEspelhoDAO.Instance.InsertComTransacao(novo); } if (idAmbiente <= 0) { throw new Exception("Ambiente não cadastrado."); } // Insere a mão de obra no ambiente if (!pcp) { ProdutosPedido prod = new ProdutosPedido(); prod.IdPedido = idPedido; prod.IdAmbientePedido = idAmbiente; prod.IdProd = idProdMaoObra; prod.Qtde = qtdeMaoObra; prod.ValorVendido = valorMaoObra; if (tipoCalcMaoObra == (int)Glass.Data.Model.TipoCalculoGrupoProd.M2 || tipoCalcMaoObra == (int)Glass.Data.Model.TipoCalculoGrupoProd.M2Direto || tipoCalcMaoObra == (int)Glass.Data.Model.TipoCalculoGrupoProd.Perimetro) { prod.Altura = alturaAmbiente; prod.Largura = larguraAmbiente; } prod.Espessura = ProdutoDAO.Instance.ObtemEspessura((int)prod.IdProd); prod.AlturaBenef = alturaBenef; prod.LarguraBenef = larguraBenef; prod.EspessuraBenef = espBenef; prod.IdGrupoProd = (uint)ProdutoDAO.Instance.ObtemIdGrupoProd((int)prod.IdProd); prod.IdSubgrupoProd = (uint)ProdutoDAO.Instance.ObtemIdSubgrupoProd((int)prod.IdProd).GetValueOrDefault(0); ProdutosPedidoDAO.Instance.Insert(prod); } else { ProdutosPedidoEspelho prod = new ProdutosPedidoEspelho(); prod.IdPedido = idPedido; prod.IdAmbientePedido = idAmbiente; prod.IdProd = idProdMaoObra; prod.Qtde = qtdeMaoObra * qtdeAmbiente; prod.ValorVendido = valorMaoObra; if (tipoCalcMaoObra == (int)Glass.Data.Model.TipoCalculoGrupoProd.M2 || tipoCalcMaoObra == (int)Glass.Data.Model.TipoCalculoGrupoProd.M2Direto || tipoCalcMaoObra == (int)Glass.Data.Model.TipoCalculoGrupoProd.Perimetro) { prod.Altura = alturaAmbiente; prod.Largura = larguraAmbiente; } prod.Espessura = ProdutoDAO.Instance.ObtemEspessura((int)prod.IdProd); prod.AlturaBenef = alturaBenef; prod.LarguraBenef = larguraBenef; prod.EspessuraBenef = espBenef; prod.IdGrupoProd = (uint)ProdutoDAO.Instance.ObtemIdGrupoProd((int)prod.IdProd); prod.IdSubgrupoProd = (uint)ProdutoDAO.Instance.ObtemIdSubgrupoProd((int)prod.IdProd).GetValueOrDefault(0); ProdutosPedidoEspelhoDAO.Instance.InsertComTransacao(prod); } } // Limpa os controles dos ambientes for (var i = 1; i <= 10; i++) { if ((TextBox)Master.FindControl("pagina").FindControl("txtCodAmb" + i) != null) { ((TextBox)Master.FindControl("pagina").FindControl("txtCodAmb" + i)).Text = ""; } if ((HiddenField)Master.FindControl("pagina").FindControl("hdfAmbIdProd" + i) != null) { ((HiddenField)Master.FindControl("pagina").FindControl("hdfAmbIdProd" + i)).Value = ""; } if ((Label)Master.FindControl("pagina").FindControl("lblDescrAmb" + i) != null) { ((Label)Master.FindControl("pagina").FindControl("lblDescrAmb" + i)).Text = ""; } if ((HiddenField)Master.FindControl("pagina").FindControl("hdfDescrAmb" + i) != null) { ((HiddenField)Master.FindControl("pagina").FindControl("hdfDescrAmb" + i)).Value = ""; } if ((TextBox)Master.FindControl("pagina").FindControl("txtQtde" + i) != null) { ((TextBox)Master.FindControl("pagina").FindControl("txtQtde" + i)).Text = ""; } if ((TextBox)Master.FindControl("pagina").FindControl("txtAltura" + i) != null) { ((TextBox)Master.FindControl("pagina").FindControl("txtAltura" + i)).Text = ""; } if ((TextBox)Master.FindControl("pagina").FindControl("txtLargura" + i) != null) { ((TextBox)Master.FindControl("pagina").FindControl("txtLargura" + i)).Text = ""; } if ((TextBox)Master.FindControl("pagina").FindControl("txtProcIns" + i) != null) { ((TextBox)Master.FindControl("pagina").FindControl("txtProcIns" + i)).Text = ""; } if ((HiddenField)Master.FindControl("pagina").FindControl("hdfIdProcesso" + i) != null) { ((HiddenField)Master.FindControl("pagina").FindControl("hdfIdProcesso" + i)).Value = ""; } if ((TextBox)Master.FindControl("pagina").FindControl("txtAplIns" + i) != null) { ((TextBox)Master.FindControl("pagina").FindControl("txtAplIns" + i)).Text = ""; } if ((HiddenField)Master.FindControl("pagina").FindControl("hdfIdAplicacao" + i) != null) { ((HiddenField)Master.FindControl("pagina").FindControl("hdfIdAplicacao" + i)).Value = ""; } if ((CheckBox)Master.FindControl("pagina").FindControl("chkRedondo" + i) != null) { ((CheckBox)Master.FindControl("pagina").FindControl("chkRedondo" + i)).Checked = false; } } // Atualiza a tela do pedido e exibe a mensagem de sucesso na tela ClientScript.RegisterClientScriptBlock(GetType(), "atualizar", "window.opener.redirectUrl(window.opener.location.href);\n", true); ClientScript.RegisterStartupScript(GetType(), "foco", "FindControl('txtCodAmb1', 'input').focus();\n", true); Glass.MensagemAlerta.ShowMsg("Produtos inseridos com sucesso!", Page); } catch (Exception ex) { Glass.MensagemAlerta.ErrorMsg("Falha ao inserir produtos no pedido.", ex, Page); } }
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()); }