示例#1
0
        protected void Page_PreRender(object sender, EventArgs e)
        {
            lblTitulo.Text = Titulo;
            drpCorVidro.Items[0].Enabled    = IdItemProjeto == null;
            drpCorAluminio.Items[0].Enabled = IdItemProjeto == null;
            drpCorFerragem.Items[0].Enabled = IdItemProjeto == null;

            drpCorVidro.Items.Clear();
            drpCorVidro.DataSource = null;

            if (IdItemProjeto != null && ItemProjetoDAO.Instance.Exists(IdItemProjeto.Value))
            {
                var idProjetoModelo = ItemProjetoDAO.Instance.ObtemIdProjetoModelo(null, IdItemProjeto.Value);
                drpCorVidro.DataSource = CorVidroDAO.Instance.GetForProjeto(idProjetoModelo);
                drpCorVidro.Items.Add(new ListItem("", "0"));
                drpCorVidro.DataBind();

                ItemProjeto item = ItemProjetoDAO.Instance.GetElement(IdItemProjeto.Value);
                drpCorVidro.SelectedValue    = item.IdCorVidro.ToString();
                drpCorAluminio.SelectedValue = item.IdCorAluminio > 0 ? item.IdCorAluminio.ToString() : string.Empty;
                drpCorFerragem.SelectedValue = item.IdCorFerragem > 0 ? item.IdCorFerragem.ToString() : string.Empty;
            }
            else
            {
                drpCorVidro.DataSource = CorVidroDAO.Instance.GetForProjeto(null);
                drpCorVidro.Items.Insert(0, "Não Alterar");
                drpCorVidro.DataBind();
            }
        }
示例#2
0
        /// <summary>
        /// Insere peças do item_projeto passado a partir da lista de peças passada, guardando o id gerado na
        /// lista lstPecaModelo
        /// </summary>
        public void InsertFromPecaModelo(GDASession sessao, ItemProjeto itemProj, ref List <PecaProjetoModelo> lstPecaModelo, bool eCommerce)
        {
            bool inserirPecas = objPersistence.ExecuteSqlQueryCount(sessao, "Select Count(*) From peca_item_projeto Where idItemProjeto=" + itemProj.IdItemProjeto) == 0;

            foreach (PecaProjetoModelo ppm in lstPecaModelo.OrderBy(f => f.Tipo).ThenBy(f => f.IdPecaProjMod).ToList())
            {
                /* Chamado 48920. */
                if (eCommerce && ppm.IdPecaItemProj > 0 && ppm.Tipo != ObtemTipo(sessao, ppm.IdPecaItemProj))
                {
                    throw new Exception("Não é possível alterar o tipo de peça do projeto pelo E-Commerce.");
                }

                // Verifica se há fórmula para calcular a qtd de peças
                var qtdPeca = !string.IsNullOrEmpty(ppm.CalculoQtde) && !itemProj.MedidaExata ? (int)UtilsProjeto.CalcExpressao(sessao, ppm.CalculoQtde, itemProj) : ppm.Qtde;

                /* Chamado 22322. */
                if (!PCPConfig.CriarClone &&
                    !itemProj.MedidaExata &&
                    !string.IsNullOrEmpty(ppm.CalculoQtde) &&
                    itemProj.IdPedidoEspelho.GetValueOrDefault() > 0)
                {
                    qtdPeca = ppm.Qtde;
                }

                if (qtdPeca == 0)
                {
                    // A quantidade de peças deve ser zerada, pois pode ser que o usuário esteja tentando zerar a peça
                    // mas como entra neste continue não estava zerando
                    if (!inserirPecas)
                    {
                        objPersistence.ExecuteCommand(sessao, "Update peca_item_projeto set qtde=0 where idPecaItemProj=" + ppm.IdPecaItemProj);
                    }

                    continue;
                }

                if (inserirPecas || (ppm.IdPecaItemProj == 0 && ppm.IdProd > 0 && ppm.Qtde > 0))
                {
                    PecaItemProjeto pip = new PecaItemProjeto();
                    pip.IdItemProjeto   = itemProj.IdItemProjeto;
                    pip.IdProd          = (uint)ppm.IdProd;
                    pip.Altura          = ppm.Altura;
                    pip.Largura         = ppm.Largura;
                    pip.Qtde            = qtdPeca;
                    pip.Tipo            = ppm.Tipo;
                    pip.Redondo         = ppm.Redondo;
                    pip.Beneficiamentos = ppm.Beneficiamentos.ToPecasItemProjeto();

                    ppm.IdPecaItemProj = Insert(sessao, pip);
                }
                else
                {
                    objPersistence.ExecuteCommand(sessao, "Update peca_item_projeto set idprod=" + ppm.IdProd + ", altura=" + ppm.Altura +
                                                  ", largura=" + ppm.Largura + ", qtde=" + qtdPeca + ", tipo=" + ppm.Tipo + " where idPecaItemProj=" + ppm.IdPecaItemProj);
                }
            }

            // Atualiza este item_projeto com a qtd e m² Vão
            ItemProjetoDAO.Instance.AtualizaQtdM2(sessao, itemProj.IdItemProjeto, itemProj.Qtde, UtilsProjeto.CalculaAreaVao(sessao, itemProj.IdItemProjeto, itemProj.MedidaExata));
        }
示例#3
0
        protected void VoltarImagem_Click(object sender, EventArgs e)
        {
            // Busca o item projeto passado por query string
            ItemProjeto   itemProj = ItemProjetoDAO.Instance.GetElementByPrimaryKey(Glass.Conversoes.StrParaUint(Request["idItemProjeto"]));
            ProjetoModelo projMod  = ProjetoModeloDAO.Instance.GetElementByPrimaryKey(itemProj.IdProjetoModelo);

            bool   isPcp      = itemProj.IdPedidoEspelho > 0;
            string nomeFigura = String.Empty;
            int    item       = Convert.ToInt32(Request["item"]);

            // Busca o produto pedido espelho para recuperar a URL da imagem
            if (isPcp)
            {
                var produtoPedidoEspelho = ProdutosPedidoEspelhoDAO.Instance.GetByMaterItemProj(
                    MaterialItemProjetoDAO.Instance.GetMaterialByPeca(Convert.ToUInt32(Request["IdPecaItemProj"])).IdMaterItemProj).First();

                produtoPedidoEspelho.Item = item;

                nomeFigura = produtoPedidoEspelho.ImagemUrlSalvarItem;
            }
            else
            {
                uint idProdPed = ProdutosPedidoDAO.Instance.GetIdProdPedByMaterItemProj(itemProj.IdPedido.Value,
                                                                                        MaterialItemProjetoDAO.Instance.GetMaterialByPeca(Convert.ToUInt32(Request["IdPecaItemProj"])).IdMaterItemProj);

                nomeFigura = Data.Helper.Utils.GetPecaComercialVirtualPath + idProdPed.ToString().PadLeft(10, '0') + "_" + item + ".jpg";
            }

            File.Delete(Server.MapPath(nomeFigura));

            LogAlteracaoDAO.Instance.LogImagemProducao(Convert.ToUInt32(Request["IdPecaItemProj"]), Request["Item"], "Atualização da imagem do item " + Request["item"] + " para imagem padrão.");
            PecaItemProjetoDAO.Instance.ImagemEditada(Convert.ToUInt32(Request["IdPecaItemProj"]), false);

            Response.Redirect(Request.RawUrl);
        }
示例#4
0
        protected string NomeFigura()
        {
            // Busca o item projeto passado por query string
            ItemProjeto itemProj = ItemProjetoDAO.Instance.GetElementByPrimaryKey(Glass.Conversoes.StrParaUint(Request["idItemProjeto"]));

            bool   isPcp      = itemProj.IdPedidoEspelho > 0;
            string nomeFigura = String.Empty;
            int    item       = Convert.ToInt32(Request["item"]);

            // Busca o produto pedido espelho para recuperar a URL da imagem
            if (isPcp)
            {
                var produtoPedidoEspelho = ProdutosPedidoEspelhoDAO.Instance.GetByMaterItemProj(
                    MaterialItemProjetoDAO.Instance.GetMaterialByPeca(Convert.ToUInt32(Request["IdPecaItemProj"])).IdMaterItemProj).First();

                produtoPedidoEspelho.Item = item;
                nomeFigura = produtoPedidoEspelho.ImagemUrlSalvarItem;
            }
            else if (itemProj.IdPedido.GetValueOrDefault() > 0)
            {
                uint idProdPed = ProdutosPedidoDAO.Instance.GetIdProdPedByMaterItemProj(itemProj.IdPedido.Value,
                                                                                        MaterialItemProjetoDAO.Instance.GetMaterialByPeca(Convert.ToUInt32(Request["IdPecaItemProj"])).IdMaterItemProj);

                nomeFigura = Data.Helper.Utils.GetPecaComercialVirtualPath + idProdPed.ToString().PadLeft(10, '0') + "_" + item + ".jpg";
            }
            else
            {
                nomeFigura = PCPConfig.GetPecaProjetoVirtualPath + Request["IdPecaItemProj"].ToString().PadLeft(10, '0') + "_" + item + ".jpg";
            }

            return(nomeFigura);
        }
示例#5
0
        /// <summary>
        /// Verifica se todas as medidas foram inseridas
        /// </summary>
        /// <param name="idItemProjeto"></param>
        /// <returns></returns>
        public bool TodasMedidasInseridas(ItemProjeto itemProj)
        {
            int qtdMedidasIns = Glass.Conversoes.StrParaInt(objPersistence.ExecuteScalar(
                                                                "Select Count(*) From medida_item_projeto Where idItemProjeto=" + itemProj.IdItemProjeto).ToString());

            int qtdMedidasProj = Glass.Conversoes.StrParaInt(objPersistence.ExecuteScalar(
                                                                 "Select Count(*) From medida_projeto_modelo Where idProjetoModelo=" + itemProj.IdProjetoModelo).ToString());

            return(qtdMedidasIns == qtdMedidasProj);
        }
示例#6
0
        public ItemProjeto Build()
        {
            var itemProjeto = new ItemProjeto(_projetoId, _produtoId, _coordenadoX, _coordenadaY);

            if (_id > 0)
            {
                var propertyInfo = itemProjeto.GetType().GetProperty("Id");
                propertyInfo.SetValue(itemProjeto, Convert.ChangeType(_id, propertyInfo.PropertyType), null);
            }

            return(itemProjeto);
        }
示例#7
0
        public void ShouldCreateItemProjeto()
        {
            var ItemProjetoExpected = new
            {
                ProjetoId   = _projetoId,
                ProdutoId   = _produtoId,
                CoordenadaX = _coordenadoX,
                CoordenadaY = _coordenadoY
            };

            var itemProjeto = new ItemProjeto(ItemProjetoExpected.ProjetoId, ItemProjetoExpected.ProdutoId, ItemProjetoExpected.CoordenadaX, ItemProjetoExpected.CoordenadaY);

            ItemProjetoExpected.ToExpectedObject().ShouldMatch(itemProjeto);
        }
示例#8
0
        protected void Page_Load(object sender, EventArgs e)
        {
            Ajax.Utility.RegisterTypeForAjax(typeof(Glass.UI.Web.Cadastros.Projeto.DesenhaProjeto1));

            // Busca o item projeto passado por query string
            ItemProjeto   itemProj = ItemProjetoDAO.Instance.GetElementByPrimaryKey(Glass.Conversoes.StrParaUint(Request["idItemProjeto"]));
            ProjetoModelo projMod  = ProjetoModeloDAO.Instance.GetElementByPrimaryKey(itemProj.IdProjetoModelo);

            bool   isPcp      = itemProj.IdPedidoEspelho > 0;
            string nomeFigura = String.Empty;
            int    item       = Convert.ToInt32(Request["item"]);

            // Busca o produto pedido espelho para recuperar a URL da imagem
            if (isPcp)
            {
                var produtoPedidoEspelho = ProdutosPedidoEspelhoDAO.Instance.GetByMaterItemProj(
                    MaterialItemProjetoDAO.Instance.GetMaterialByPeca(Convert.ToUInt32(Request["IdPecaItemProj"])).IdMaterItemProj).First();

                produtoPedidoEspelho.Item = item;
                nomeFigura = produtoPedidoEspelho.ImagemUrlSalvarItem;
            }
            else
            {
                uint idProdPed = ProdutosPedidoDAO.Instance.GetIdProdPedByMaterItemProj(itemProj.IdPedido.Value,
                                                                                        MaterialItemProjetoDAO.Instance.GetMaterialByPeca(Convert.ToUInt32(Request["IdPecaItemProj"])).IdMaterItemProj);

                nomeFigura = Data.Helper.Utils.GetPecaComercialVirtualPath + idProdPed.ToString().PadLeft(10, '0') + "_" + item + ".jpg";
            }

            if (!IsPostBack)
            {
                if (Request["Ajax"] == null)
                {
                    // Carrega imagem na tela
                    if (File.Exists(Server.MapPath(nomeFigura)))
                    {
                        img_inicial.ImageUrl = nomeFigura;
                    }
                    else
                    {
                        // Carrega imagem na tela
                        nomeFigura = !String.IsNullOrEmpty(Request["item"]) ?
                                     projMod.Codigo + "§" + Request["item"] + ".jpg" : projMod.NomeFiguraAssociada;

                        if (!File.Exists(Data.Helper.Utils.GetModelosProjetoPath + nomeFigura))
                        {
                            nomeFigura = projMod.IdProjetoModelo.ToString("0##") + "_" + Request["item"] + ".jpg";
                        }

                        img_inicial.ImageUrl = "../../Handlers/LoadFiguraAssociada.ashx?tipoDesenho=0&path=" + Data.Helper.Utils.GetModelosProjetoPath + nomeFigura;
                    }
                }
                else if (Request["Ajax"] == "SalvarImagem" || Request["Ajax"] == "AbrirBiblioteca")
                {
                    var b = new StringBuilder(Request["base64"].Split(',')[1]);
                    b.Replace("\r\n", String.Empty);
                    b.Replace(" ", String.Empty);

                    var imagem = Convert.FromBase64String(b.ToString());

                    ManipulacaoImagem.SalvarImagem(Server.MapPath(nomeFigura), imagem);

                    LogAlteracaoDAO.Instance.LogImagemProducao(Convert.ToUInt32(Request["IdPecaItemProj"]), Request["Item"], "Edição da imagem do item " + Request["item"] + ".");
                    PecaItemProjetoDAO.Instance.ImagemEditada(Convert.ToUInt32(Request["IdPecaItemProj"]), true);
                }

                MontaTabelaFiguras();
            }
        }
示例#9
0
 /// <summary>
 /// Insere peças do item_projeto passado a partir da lista de peças passada, guardando o id gerado na
 /// lista lstPecaModelo
 /// </summary>
 public void InsertFromPecaModelo(GDASession sessao, ItemProjeto itemProj, ref List <PecaProjetoModelo> lstPecaModelo)
 {
     InsertFromPecaModelo(sessao, itemProj, ref lstPecaModelo, false);
 }
示例#10
0
 /// <summary>
 /// Insere peças do item_projeto passado a partir da lista de peças passada, guardando o id gerado na
 /// lista lstPecaModelo
 /// </summary>
 public void InsertFromPecaModelo(ItemProjeto itemProj, ref List <PecaProjetoModelo> lstPecaModelo)
 {
     InsertFromPecaModelo(null, itemProj, ref lstPecaModelo);
 }
示例#11
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                // Busca o item projeto passado por query string
                ItemProjeto   itemProj = ItemProjetoDAO.Instance.GetElementByPrimaryKey(Glass.Conversoes.StrParaUint(Request["idItemProjeto"]));
                ProjetoModelo projMod  = ProjetoModeloDAO.Instance.GetElementByPrimaryKey(itemProj.IdProjetoModelo);

                if (!Page.Title.Contains(":"))
                {
                    Page.Title += ": " + projMod.Codigo;
                }

                string nomeFigura = !String.IsNullOrEmpty(Request["item"]) ?
                                    projMod.Codigo + "§" + Request["item"] + ".jpg" : projMod.NomeFiguraAssociada;

                // Carrega imagem na tela
                if (Data.Helper.Utils.ArquivoExiste("~/Upload/PecaProducao/" + nomeFigura))
                {
                    imgFigura.ImageUrl = "../../Handlers/LoadFiguraAssociada.ashx?tipoDesenho=0&path=" + Server.MapPath("~/Upload/PecaProducao/" + nomeFigura);
                }
                else if (File.Exists(Data.Helper.Utils.GetModelosProjetoPath + nomeFigura))
                {
                    imgFigura.ImageUrl = "../../Handlers/LoadFiguraAssociada.ashx?tipoDesenho=0&path=" + Data.Helper.Utils.GetModelosProjetoPath + nomeFigura;
                }
                else
                {
                    nomeFigura = projMod.IdProjetoModelo.ToString("0##") + "_" + Request["item"] + ".jpg";
                    if (Data.Helper.Utils.ArquivoExiste("~/Upload/PecaProducao/" + nomeFigura))
                    {
                        imgFigura.ImageUrl = "../../Handlers/LoadFiguraAssociada.ashx?tipoDesenho=0&path=" + Server.MapPath("~/Upload/PecaProducao/" + nomeFigura);
                    }
                    else
                    {
                        imgFigura.ImageUrl = "../../Handlers/LoadFiguraAssociada.ashx?tipoDesenho=0&path=" + Data.Helper.Utils.GetModelosProjetoPath + nomeFigura;
                    }
                }

                #region Monta tabela com figuras que podem ser selecionada para desenho

                foreach (GrupoFiguraProjeto grupo in GrupoFiguraProjetoDAO.Instance.GetOrdered())
                {
                    Table tb = new Table();
                    tb.ID = "tb" + grupo.IdGrupoFigProj;

                    // Monta o cabeçalho
                    TableRow  trHeader = new TableRow();
                    TableCell tdHeader = new TableCell();
                    tdHeader.Text       = grupo.Descricao;
                    tdHeader.ColumnSpan = 5;
                    tdHeader.Width      = new Unit(200, UnitType.Percentage);
                    tdHeader.Style.Add("text-align", "left");
                    tdHeader.Attributes.Add("nowrap", "nowrap");

                    trHeader.CssClass = "toolGroup";
                    trHeader.Controls.Add(tdHeader);
                    tb.Controls.Add(trHeader);

                    var lstFigura = FiguraProjetoDAO.Instance.GetOrdered(grupo.IdGrupoFigProj);

                    TableRow tr = new TableRow();

                    // Define um id para a tablerow para usar a função exibir/esconder
                    tr.ID = "tr" + grupo.IdGrupoFigProj + "_001";
                    tr.Style.Add("display", "none");
                    string onClickHeader = "exibeEscondeGrupo('" + tr.ID + "');";

                    // Monta as figuras na tabela
                    for (int i = 0; i < lstFigura.Count; i++)
                    {
                        TableCell td = new TableCell();

                        ImageButton tool = new ImageButton();
                        tool.ImageUrl    = Data.Helper.Utils.GetFullUrl(HttpContext.Current, Data.Helper.Utils.GetFigurasProjetoVirtualPath + lstFigura[i].IdFiguraProjeto + ".jpg"); //Utils.GetFigurasProjetoVirtualPath + lstFigura[i].IdFiguraProjeto + ".jpg";
                        tool.CssClass    = "toolNormal";
                        tool.BorderWidth = new Unit(1);
                        tool.ID          = "tool_" + lstFigura[i].IdFiguraProjeto + "_";
                        tool.Attributes.Add("onmouseover", "tool_OnMouseOver(this)");
                        tool.Attributes.Add("onmouseout", "tool_OnMouseOut(this)");
                        tool.OnClientClick = "setTool(this, " + lstFigura[i].IdFiguraProjeto + ", '" + tool.ImageUrl + "'); return false;";

                        td.Controls.Add(tool);
                        tr.Controls.Add(td);

                        // Adiciona imagens à tabela de seu respectivo grupo e cria outra linha na tabela
                        if ((i + 1) % 5 == 0 || lstFigura.Count == i + 1)
                        {
                            tb.Controls.Add(tr);

                            tr    = new TableRow();
                            tr.ID = "tr" + grupo.IdGrupoFigProj + "_" + i.ToString().PadLeft(3, '0');
                            tr.Style.Add("display", "none");

                            if (lstFigura.Count != i + 1)
                            {
                                onClickHeader += "exibeEscondeGrupo('" + tr.ID + "');";
                            }
                        }
                    }

                    // Adiciona comando no header para esconder/exibir imagens
                    trHeader.Attributes.Add("onClick", onClickHeader);

                    // Adiciona tabela de grupo de figura à tabela principal
                    pchTool.Controls.Add(tb);
                }

                #endregion

                #region Desenha figuras já inseridas nesta imagem

                var lstPosicao = FiguraPecaItemProjetoDAO.Instance.GetFigurasByPeca(Glass.Conversoes.StrParaUint(Request["idPecaItemProj"]),
                                                                                    Glass.Conversoes.StrParaInt(Request["item"]));

                if (lstPosicao.Count > 0)
                {
                    string vetIdFiguraProjeto = String.Empty;
                    string vetCoord           = String.Empty;

                    foreach (FiguraPecaItemProjeto p in lstPosicao)
                    {
                        vetIdFiguraProjeto += p.IdFiguraProjeto + ";";
                        vetCoord           += p.CoordX + ";" + p.CoordY + "|";
                    }

                    vetIdFiguraProjeto = vetIdFiguraProjeto.TrimEnd(';');
                    vetCoord           = vetCoord.TrimEnd('|');

                    ClientScript.RegisterStartupScript(typeof(string), "carregar",
                                                       "vetIdFiguraProjetoReload='" + vetIdFiguraProjeto + "'; vetCoordReload='" + vetCoord + "'; carregaFigurasDesenhadas();", true);
                }

                #endregion
            }

            Ajax.Utility.RegisterTypeForAjax(typeof(Glass.UI.Web.Cadastros.Projeto.DesenhaProjeto));
        }
示例#12
0
        protected void Page_Load(object sender, EventArgs e)
        {
            // Busca o item projeto passado por query string
            ItemProjeto   itemProj = ItemProjetoDAO.Instance.GetElementByPrimaryKey(Glass.Conversoes.StrParaUint(Request["idItemProjeto"]));
            ProjetoModelo projMod  = ProjetoModeloDAO.Instance.GetElementByPrimaryKey(itemProj.IdProjetoModelo);

            bool   isPcp      = itemProj.IdPedidoEspelho > 0;
            string nomeFigura = NomeFigura();
            int    item       = Convert.ToInt32(Request["item"]);

            // Busca o produto pedido espelho para recuperar a URL da imagem
            if (isPcp)
            {
                var produtoPedidoEspelho = ProdutosPedidoEspelhoDAO.Instance.GetByMaterItemProj(
                    MaterialItemProjetoDAO.Instance.GetMaterialByPeca(Convert.ToUInt32(Request["IdPecaItemProj"])).IdMaterItemProj).First();

                produtoPedidoEspelho.Item = item;
                nomeFigura = produtoPedidoEspelho.ImagemUrlSalvarItem;
            }
            else if (itemProj.IdPedido.GetValueOrDefault() > 0)
            {
                uint idProdPed = ProdutosPedidoDAO.Instance.GetIdProdPedByMaterItemProj(itemProj.IdPedido.Value,
                                                                                        MaterialItemProjetoDAO.Instance.GetMaterialByPeca(Convert.ToUInt32(Request["IdPecaItemProj"])).IdMaterItemProj);

                nomeFigura = Data.Helper.Utils.GetPecaComercialVirtualPath + idProdPed.ToString().PadLeft(10, '0') + "_" + item + ".jpg";
            }

            if (Request["Ajax"] == null)
            {
                // Se o arquivo já tiver sido editado, busca ele mesmo
                if (File.Exists(Server.MapPath(nomeFigura)))
                {
                    img_inicial.ImageUrl = nomeFigura;
                }
                else
                {
                    // Se o pedido não tiver sido editado ainda, busca a imagem padrão com suas devidas medidas calculadas e inseridas na imagem
                    nomeFigura = !String.IsNullOrEmpty(Request["item"]) ?
                                 projMod.Codigo + "§" + Request["item"] + ".jpg" : projMod.NomeFiguraAssociada;

                    if (!File.Exists(Data.Helper.Utils.GetModelosProjetoPath + nomeFigura))
                    {
                        nomeFigura = projMod.IdProjetoModelo.ToString("0##") + "_" + Request["item"] + ".jpg";
                    }

                    img_inicial.ImageUrl = "../../Handlers/LoadFiguraAssociada.ashx?tipoDesenho=0&path=" + Data.Helper.Utils.GetModelosProjetoPath + nomeFigura
                                           + "&idProjetoModelo=" + Request["IdProjetoModelo"] + "&idPecaItemProj=" + Request["IdPecaItemProj"] + "&Item=" + Request["Item"] + "&IdItemProjeto=" + Request["IdItemProjeto"];
                }
            }
            else if (Request["Ajax"] == "SalvarImagem" || Request["Ajax"] == "AbrirBiblioteca")
            {
                var b = new StringBuilder(Request["base64"].Split(',')[1]);
                b.Replace("\r\n", String.Empty);
                b.Replace(" ", String.Empty);

                var imagem = Convert.FromBase64String(b.ToString());

                if (!ManipulacaoImagem.SalvarImagem(Server.MapPath(nomeFigura), imagem))
                {
                    Response.Write("Falha ao salvar imagem.");
                    Response.End();
                    return;
                }

                LogAlteracaoDAO.Instance.LogImagemProducao(Convert.ToUInt32(Request["IdPecaItemProj"]), Request["Item"], "Edição da imagem do item " + Request["item"] + ".");
                PecaItemProjetoDAO.Instance.ImagemEditada(Convert.ToUInt32(Request["IdPecaItemProj"]), true);

                Response.Write("Imagem salva!");
                Response.End();
            }
            else if (Request["Ajax"] == "UploadImagem")
            {
                img_inicial.ImageUrl = Request["urlUpload"];
            }
        }
示例#13
0
        public string GetAmbientes(string idPedidoStr, string linhaAmbiente)
        {
            try
            {
                string retorno    = "";
                string javaScript = "";

                uint idPedido    = Glass.Conversoes.StrParaUint(idPedidoStr);
                bool usarEspelho = PedidoEspelhoDAO.Instance.ExisteEspelho(idPedido);
                bool isMaoObra   = PedidoDAO.Instance.IsMaoDeObra(null, idPedido);

                bool usarAmbientePedido = PedidoConfig.DadosPedido.AmbientePedido;
                var  produtos           = ProdutosPedidoDAO.Instance.GetByPedidoLite(idPedido, usarEspelho);

                if (!PedidoConfig.DadosPedido.AmbientePedido)
                {
                    bool temProdutoSemProjeto = produtos.Any(x => (!usarEspelho ? x.IdAmbientePedido : x.IdAmbientePedidoEspelho) == null);

                    if (temProdutoSemProjeto)
                    {
                        string tabelaProdutos = "";

                        if (produtos.Count > 0)
                        {
                            tabelaProdutos = "<table id='produtos_" + linhaAmbiente + "' cellspacing='6' cellpadding='0' width='100%'><tr><th></th>" +
                                             "<th>Cód.</th><th>Produto</th><th>Qtd.</th><th>Largura</th><th>Altura</th></tr>";

                            foreach (ProdutosPedido p in produtos)
                            {
                                if ((!usarEspelho ? p.IdAmbientePedido : p.IdAmbientePedidoEspelho) > 0)
                                {
                                    usarAmbientePedido = true;
                                    continue;
                                }

                                tabelaProdutos += "<tr><td><input type='checkbox' value='" + p.IdProdPed + "' checked='checked'></td><td>" + p.CodInterno + "</td><td width='100%'>" +
                                                  p.DescrProduto + " " + p.DescrBeneficiamentos + "</td><td>" + p.Qtde + (isMaoObra ? " x " +
                                                                                                                          p.QtdeAmbiente + " peça(s) de vidro" : "") + "</td><td>" + p.Largura + "</td><td>" + p.AlturaLista + "</td></tr>";
                            }

                            tabelaProdutos += "</table>";
                        }

                        retorno += "<tr><td>" + tabelaProdutos + "</td></tr>";
                    }
                    else
                    {
                        usarAmbientePedido = true;
                    }
                }

                if (usarAmbientePedido)
                {
                    foreach (AmbientePedido a in AmbientePedidoDAO.Instance.GetByPedido(idPedido, usarEspelho))
                    {
                        string funcaoJavaScript   = "exibirProdutosAmbiente({0}, " + a.IdAmbientePedido + ", " + linhaAmbiente + ")";
                        string funcaoApenasVidros = "apenasVidros({0}, " + a.IdAmbientePedido + ", " + linhaAmbiente + ")";

                        var produtosAmb = produtos.Where(x => (!usarEspelho ? x.IdAmbientePedido : x.IdAmbientePedidoEspelho) == a.IdAmbientePedido).ToList();

                        bool   temProdutos    = false;
                        string tabelaProdutos = "";

                        if (produtosAmb.Count > 0)
                        {
                            tabelaProdutos = "<table id='produtosAmbiente_" + a.IdAmbientePedido + "_" + linhaAmbiente + "' cellspacing='6' cellpadding='0' width='100%'" +
                                             "style='margin-left: 32px; padding-right: 32px'><tr><th></th><th>Cód.</th><th>Produto</th><th>Qtd.</th><th>Largura</th><th>Altura</th></tr>";

                            foreach (ProdutosPedido p in produtosAmb)
                            {
                                temProdutos     = true;
                                tabelaProdutos += "<tr><td><input type='checkbox' value='" + p.IdProdPed + "' checked='checked'" + (a.IdItemProjeto > 0 ? " disabled='true'" +
                                                                                                                                    (Glass.Data.DAL.GrupoProdDAO.Instance.IsVidro((int)p.IdGrupoProd) ? " isVidro='true'" : "") : "") + "></td><td>" + p.CodInterno + "</td><td width='100%'>" +
                                                  p.DescrProduto + " " + p.DescrBeneficiamentos + "</td><td>" + p.Qtde + (isMaoObra ? " x " + p.QtdeAmbiente +
                                                                                                                          " peça(s) de vidro" : "") + "</td><td>" + p.Largura + "</td><td>" + p.AlturaLista + "</td></tr>";
                            }

                            tabelaProdutos += "</table>";

                            if (ProjetoConfig.ControleModeloProjeto.ApenasVidrosPadrao)
                            {
                                javaScript += String.Format(funcaoApenasVidros, "true") + "; ";
                            }
                        }

                        string opcoesCheckbox = temProdutos ? " checked='checked'" : " disabled='true'";

                        ItemProjeto item = null;
                        if (a.IdItemProjeto > 0)
                        {
                            item = ItemProjetoDAO.Instance.GetElementByPrimaryKey(a.IdItemProjeto.Value);
                        }

                        retorno += "<tr><td><input type='checkbox' value='" + a.IdAmbientePedido + "' id='ambientePed_" + a.IdAmbientePedido + "'" + opcoesCheckbox + " " +
                                   "isAmbiente='true' onclick='" + String.Format(funcaoJavaScript, "this.checked") + "'>" +
                                   "<label for='ambientePed_" + a.IdAmbientePedido + "'>" + a.Ambiente + "</label>" + (item == null ? "" :
                                                                                                                       "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type='checkbox' id='apenasVidros_" + a.IdAmbientePedido + "' isAmbiente='true' " +
                                                                                                                       "onclick='" + String.Format(funcaoApenasVidros, "this.checked") + "'" + (ProjetoConfig.ControleModeloProjeto.ApenasVidrosPadrao || item.ApenasVidros ? " checked='checked'" : "") +
                                                                                                                       (item.ApenasVidros ? " disabled='true'" : "") + " /><label for='apenasVidros_" + a.IdAmbientePedido + "'>Apenas vidros</label>") +
                                   tabelaProdutos + "</td></tr>";

                        if (!temProdutos)
                        {
                            javaScript += String.Format(funcaoJavaScript, "false") + "; UnTip(); ";
                        }
                    }
                }

                return("<table>" + retorno + "</table>¬" + javaScript);
            }
            catch
            {
                return("");
            }
        }
示例#14
0
        public void Inserir(GDASession sessao, uint idProdNf, string idsItemProjeto)
        {
            foreach (string id in idsItemProjeto.Split(','))
            {
                ProdutoNfItemProjeto item = new ProdutoNfItemProjeto
                {
                    IdProdNf      = idProdNf,
                    IdItemProjeto = Glass.Conversoes.StrParaUint(id)
                };

                #region Gera o novo item de projeto se for "apenas vidros"

                if (ItemProjetoDAO.Instance.ApenasVidros(item.IdItemProjeto) && FiscalConfig.NotaFiscalConfig.UsarProdutoCestaSeApenasVidros)
                {
                    ItemProjeto   ip = ItemProjetoDAO.Instance.GetElementByPrimaryKey(sessao, item.IdItemProjeto);
                    ProjetoModelo pm = ProjetoModeloDAO.Instance.GetElementByPrimaryKey(sessao, ip.IdProjetoModelo);

                    uint?idCliente   = ip.IdCliente;
                    int? tipoEntrega = ip.TipoEntrega;

                    uint?idObra = ip.IdPedido > 0 ? PedidoDAO.Instance.GetIdObra(null, ip.IdPedido.Value) :
                                  ip.IdPedidoEspelho > 0 ? PedidoDAO.Instance.GetIdObra(null, ip.IdPedidoEspelho.Value) :
                                  null;

                    ip.IdOrcamento     = null;
                    ip.IdPedido        = null;
                    ip.IdPedidoEspelho = null;
                    ip.IdProjeto       = null;

                    ip.ApenasVidros  = false;
                    ip.IdCorAluminio = (uint)CorAluminioDAO.Instance.GetAll().FirstOrDefault().IdCorAluminio;
                    ip.IdCorFerragem = (uint)CorFerragemDAO.Instance.GetAll().FirstOrDefault().IdCorFerragem;

                    List <PecaItemProjeto> pecasItemProjeto = PecaItemProjetoDAO.Instance.GetByItemProjeto(item.IdItemProjeto, ip.IdProjetoModelo);

                    // Corrige projetos de medida exata, calculando área do vão
                    // Segundo Sidinei, usar altura da peça item "1" e largura somada de todas
                    // as outras peças
                    bool medidaExata = ip.MedidaExata;
                    var  medidas     = ((List <MedidaItemProjeto>)MedidaItemProjetoDAO.Instance.GetListByItemProjeto(item.IdItemProjeto)).ToArray();

                    if (medidaExata)
                    {
                        ip.MedidaExata = false;
                        int altura = 0, largura = 0;

                        if (pecasItemProjeto.Count > 0)
                        {
                            PecaItemProjeto p = pecasItemProjeto.Find(x =>
                            {
                                string[] itens = UtilsProjeto.GetItensFromPeca(x.Item);
                                return(Array.Exists(itens, y => y == "1"));
                            });

                            altura = p != null ? p.Altura : pecasItemProjeto[0].Altura;
                            pecasItemProjeto.ForEach(x => largura += x.Largura);
                        }

                        ip.M2Vao = Glass.Global.CalculosFluxo.ArredondaM2(largura, altura, ip.Qtde, 0, false);

                        #region Corrige as medidas do projeto

                        var idLarguraVao = 2;
                        var idAlturaVao  = 3;

                        if (Array.FindIndex(medidas, x => x.IdMedidaProjeto == idLarguraVao) == -1)
                        {
                            idLarguraVao = (int)MedidaProjetoDAO.Instance.FindByDescricao(0, "larg vão").GetValueOrDefault();
                        }

                        if (Array.FindIndex(medidas, x => x.IdMedidaProjeto == idAlturaVao) == -1)
                        {
                            idAlturaVao = (int)MedidaProjetoDAO.Instance.FindByDescricao(0, "alt vão").GetValueOrDefault();
                        }

                        // Qtde
                        int index = Array.FindIndex(medidas, x => x.IdMedidaProjeto == 1);
                        if (index > -1)
                        {
                            medidas[index].Valor = ip.Qtde;
                        }

                        // Largura
                        index = Array.FindIndex(medidas, x => x.IdMedidaProjeto == idLarguraVao);
                        if (index > -1)
                        {
                            medidas[index].Valor = largura;
                        }

                        // Altura
                        index = Array.FindIndex(medidas, x => x.IdMedidaProjeto == idAlturaVao);
                        if (index > -1)
                        {
                            medidas[index].Valor = altura;
                        }

                        #endregion
                    }

                    ip.IdItemProjeto = ItemProjetoDAO.Instance.Insert(sessao, ip);

                    foreach (MedidaItemProjeto m in medidas)
                    {
                        MedidaItemProjetoDAO.Instance.InsereMedida(sessao, ip.IdItemProjeto, m.IdMedidaProjeto, m.Valor);
                    }

                    List <PecaProjetoModelo> pecasModelo = PecaProjetoModeloDAO.Instance.GetByModelo(pm.IdProjetoModelo);

                    //Preenche a altura e largura da peça para que o sistema crie corretamente o
                    //material item projeto para dar baixa nas peças de cesta
                    foreach (var pecas in pecasModelo)
                    {
                        if (pecas.Altura == 0 || pecas.Largura == 0)
                        {
                            pecas.Altura  = 1;
                            pecas.Largura = 1;
                        }
                    }

                    foreach (PecaItemProjeto p in pecasItemProjeto)
                    {
                        pecasModelo.Find(x => x.IdPecaProjMod == p.IdPecaProjMod).IdProd = p.IdProd.GetValueOrDefault();
                        pecasModelo.Find(x => x.IdPecaProjMod == p.IdPecaProjMod).Qtde   = p.Qtde;

                        p.Beneficiamentos = p.Beneficiamentos;
                        p.IdPecaItemProj  = 0;
                        p.IdItemProjeto   = ip.IdItemProjeto;

                        // Utiliza apenas peças com qtd maior que zero
                        if (p.Qtde > 0)
                        {
                            PecaItemProjetoDAO.Instance.Insert(sessao, p);
                        }
                    }

                    // Calcula os materiais do projeto, muda para medida exata para que a altura e largura dos materiais tenham
                    // valor, caso contrário apenas as folgas serão salvas nos campos altura e largura
                    ip.MedidaExata = true;
                    MaterialItemProjetoDAO.Instance.InserePecasVidro(sessao, idObra, idCliente, tipoEntrega, ip, pm, pecasModelo.Where(f => f.Qtde > 0).ToList(), true);
                    ip.MedidaExata = false;

                    foreach (MaterialItemProjeto m in ItemProjetoDAO.Instance.CalculaMateriais(sessao, ip, idCliente, tipoEntrega, true))
                    {
                        MaterialItemProjetoDAO.Instance.InsertFromNovoItemProjeto(sessao, m);
                    }

                    item.IdItemProjeto = ip.IdItemProjeto;
                }

                #endregion

                Insert(sessao, item);
            }
        }
示例#15
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());
        }
示例#16
0
        /// <summary>
        /// Recupera os IDs dos itens de projeto que serão atualizados de um projeto/orçamento/pedido/pedido espelho.
        /// Retorna também o tipo de entrega e o cliente do item pesquisado.
        /// </summary>
        /// <param name="idItemProjeto"></param>
        /// <param name="idProjeto"></param>
        /// <param name="idOrcamento"></param>
        /// <param name="idPedido"></param>
        /// <param name="idPedidoEspelho"></param>
        /// <param name="tipoEntrega"></param>
        /// <param name="idCliente"></param>
        /// <returns></returns>
        private static uint[] GetIdsItensProjeto(uint?idItemProjeto, uint?idProjeto, uint?idOrcamento, uint?idPedido, uint?idPedidoEspelho, out int?tipoEntrega, out uint?idCliente)
        {
            if (idItemProjeto != null && ItemProjetoDAO.Instance.Exists(idItemProjeto.Value))
            {
                ItemProjeto item = ItemProjetoDAO.Instance.GetElementByPrimaryKey(idItemProjeto.Value);
                GetTipoEntregaCliente(item.IdProjeto, item.IdOrcamento, item.IdPedido, item.IdPedidoEspelho, out tipoEntrega, out idCliente);

                return(new uint[] { idItemProjeto.Value });
            }
            else if (idProjeto != null)
            {
                GetTipoEntregaCliente(idProjeto, null, null, null, out tipoEntrega, out idCliente);

                var         itens = ItemProjetoDAO.Instance.GetByProjeto(idProjeto.Value);
                List <uint> ids   = new List <uint>();

                foreach (ItemProjeto i in itens)
                {
                    ids.Add(i.IdItemProjeto);
                }

                return(ids.ToArray());
            }
            else if (idOrcamento != null)
            {
                GetTipoEntregaCliente(null, idOrcamento, null, null, out tipoEntrega, out idCliente);

                var         itens = ItemProjetoDAO.Instance.GetByOrcamento(idOrcamento.Value);
                List <uint> ids   = new List <uint>();

                foreach (ItemProjeto i in itens)
                {
                    ids.Add(i.IdItemProjeto);
                }

                return(ids.ToArray());
            }
            else if (idPedido != null)
            {
                GetTipoEntregaCliente(null, null, idPedido, null, out tipoEntrega, out idCliente);

                var         itens = ItemProjetoDAO.Instance.GetByPedido(idPedido.Value);
                List <uint> ids   = new List <uint>();

                foreach (ItemProjeto i in itens)
                {
                    ids.Add(i.IdItemProjeto);
                }

                return(ids.ToArray());
            }
            else if (idPedidoEspelho != null)
            {
                GetTipoEntregaCliente(null, null, null, idPedidoEspelho, out tipoEntrega, out idCliente);

                var         itens = ItemProjetoDAO.Instance.GetByPedido(idPedidoEspelho.Value);
                List <uint> ids   = new List <uint>();

                foreach (ItemProjeto i in itens)
                {
                    ids.Add(i.IdItemProjeto);
                }

                return(ids.ToArray());
            }

            tipoEntrega = null;
            idCliente   = null;
            return(new uint[0]);
        }