예제 #1
0
        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());
        }
예제 #2
0
        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;
            }
        }
예제 #3
0
        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;
        }
예제 #4
0
 /// <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;
 }
예제 #5
0
        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;
        }
예제 #6
0
 public ProdutosPedidoEspelhoRpt(ProdutosPedidoEspelho prodPed, TipoConstrutor tipo)
 {
     switch (tipo)
     {
     case TipoConstrutor.ListaPedidoEspelho:
         ListaPedidos(prodPed);
         break;
     }
 }
예제 #7
0
        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;
        }
예제 #8
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);
            }
        }
예제 #9
0
        private string ObterCorLinha(ProdutosPedidoEspelho produtoImpressaoIndividualEtiqueta)
        {
            using (var sessao = new GDATransaction())
            {
                bool pedidoDeReposicao = PedidoDAO.Instance.IsPedidoReposicao(
                    sessao,
                    produtoImpressaoIndividualEtiqueta.IdPedido.ToString());

                return(pedidoDeReposicao ? "Red" : string.Empty);
            }
        }
예제 #10
0
        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);
            }
        }
예제 #11
0
 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;
 }
예제 #12
0
        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 + "%)";
            }
        }
예제 #13
0
        /// <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);
        }
예제 #14
0
        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;
            }
        }
예제 #15
0
        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);
            }
        }
예제 #16
0
        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);
            }
        }
예제 #17
0
        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);
            }
        }
예제 #18
0
        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);
            }
        }
예제 #19
0
        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());
        }