예제 #1
0
        /// <summary>
        /// Obtém a imagem engenharia do projeto, com as quotas posicionadas e calculadas de acordo com o item projeto.
        /// </summary>
        public Imagem[] ObterImagemEngenharia(int idItemProjeto, float percentualImagem)
        {
            var itemProjeto = ItemProjetoDAO.Instance.GetElementByPrimaryKey(idItemProjeto);
            var retorno     = new List <Imagem>();

            var imgUrl = UtilsProjeto.GetFiguraAssociadaUrl((uint)idItemProjeto, itemProjeto.IdProjetoModelo);

            byte[] imagem = Utils.GetImageFromRequest(HttpContext.Current, imgUrl);

            if (imagem.Length == 0)
            {
                return(null);
            }

            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   = (uint)idItemProjeto;
                nova.Imagem1 = imagem;
                retorno.Add(nova);
            }

            return(retorno.ToArray());
        }
예제 #2
0
        /// <summary>
        /// Salva a foto do pedido.
        /// </summary>
        /// <param name="fotoPedido"></param>
        public Glass.Api.Pedido.IFotoPedidoDescritor SalvarFotoPedido(Glass.Api.Pedido.IFotoPedido fotoPedido)
        {
            // Cadastra a foto
            var foto = Glass.Data.Model.IFoto.Nova(Data.Model.IFoto.TipoFoto.Pedido);

            foto.Path      = ServiceLocator.Current.GetInstance <IConfiguracao>().CaminhoFotoPedido;
            foto.IdParent  = (uint)fotoPedido.IdPedido;
            foto.Descricao = fotoPedido.Descricao;
            foto.Extensao  = string.Format(".{0}", fotoPedido.Extensao);

            // Insere entrada de foto e recupera o identificador.
            foto.IdFoto = foto.Insert();

            if (!System.IO.Directory.Exists(foto.Path))
            {
                System.IO.Directory.CreateDirectory(foto.Path);
            }

            var salva = ManipulacaoImagem.SalvarImagem(foto.FilePath, fotoPedido.Imagem);

            if (!salva)
            {
                return(null);
            }

            return(new Glass.Api.Implementacao.Pedido.FotoPedidoDescritor(foto));
        }
예제 #3
0
        public override int Update(GDASession session, ProjetoModelo objUpdate)
        {
            if (objUpdate.Codigo.Contains('§') || objUpdate.Codigo.Contains('+'))
            {
                throw new Exception("O código do Projeto Modelo não pode conter os caracteres '§' e '+'.");
            }

            // Verifica se já existe um modelo com o código informado.
            if (objPersistence.ExecuteScalar(session,
                                             string.Format("SELECT COUNT(*) FROM projeto_modelo WHERE Codigo=?codigo AND IdProjetoModelo<>{0}", objUpdate.IdProjetoModelo),
                                             new GDAParameter("?codigo", objUpdate.Codigo)).ToString().StrParaInt() > 0)
            {
                throw new Exception("Já existe um modelo cadastrado com o código informado.");
            }

            // Verifica se alguma medida foi retirada sendo que a mesma estava sendo usada no projeto
            if (MedidaProjetoModeloDAO.Instance.MedidasRetiradasEmUso(session, objUpdate.IdProjetoModelo, objUpdate.MedidasProjMod))
            {
                throw new Exception("Algumas das medidas retiradas deste modelo de projeto já estão sendo usadas em expressões de cálculo.");
            }

            var projModOld = GetElementByPrimaryKey(session, objUpdate.IdProjetoModelo);

            // Se o código do modelo antigo for diferente do atual, renomeia a figura do modelo e figura engenharia
            if (objUpdate.Codigo != projModOld.Codigo)
            {
                ManipulacaoImagem.RenomearImagem(Utils.GetModelosProjetoPath + projModOld.NomeFigura, Utils.GetModelosProjetoPath + objUpdate.Codigo + ".jpg");
                ManipulacaoImagem.RenomearImagem(Utils.GetModelosProjetoPath + projModOld.NomeFiguraAssociada, Utils.GetModelosProjetoPath + objUpdate.Codigo + "§E.jpg");
                objUpdate.NomeFigura          = objUpdate.Codigo + ".jpg";
                objUpdate.NomeFiguraAssociada = objUpdate.Codigo + "§E.jpg";

                /* Chamado 53479. */
                foreach (var peca in PecaProjetoModeloDAO.Instance.GetByModelo(session, objUpdate.IdProjetoModelo))
                {
                    if (peca.Tipo == 1)
                    {
                        ManipulacaoImagem.RenomearImagem(Utils.GetModelosProjetoPath + projModOld.NomeFigura.Replace(".jpg", string.Format("§{0}.jpg", peca.Item)),
                                                         Utils.GetModelosProjetoPath + objUpdate.Codigo + string.Format("§{0}.jpg", peca.Item));
                    }
                }
            }

            // Salva os tipos de medidas utilizadas neste modelo
            MedidaProjetoModeloDAO.Instance.SalvaMedidas(session, objUpdate.IdProjetoModelo, objUpdate.MedidasProjMod);

            // Se o modelo de projeto não for configurável, não permite alterar alguns campos
            if (!IsConfiguravel(session, objUpdate.IdProjetoModelo))
            {
                objUpdate.TipoMedidasInst  = projModOld.TipoMedidasInst;
                objUpdate.TipoCalcAluminio = projModOld.TipoCalcAluminio;
                objUpdate.TipoDesenho      = projModOld.TipoDesenho;
                objUpdate.EixoPuxador      = projModOld.EixoPuxador;
            }

            objUpdate.TextoOrcamento      = projModOld.TextoOrcamento;
            objUpdate.TextoOrcamentoVidro = projModOld.TextoOrcamentoVidro;

            LogAlteracaoDAO.Instance.LogProjetoModelo(session, objUpdate);
            return(base.Update(session, objUpdate));
        }
예제 #4
0
        public Imagem[] GetProjetosModelo(string codigo, string descricao, uint idGrupoProjModelo, int situacao)
        {
            List <ProjetoModelo> lstProjModelos = ProjetoModeloDAO.Instance.GetList(codigo, descricao, idGrupoProjModelo, situacao);
            string criterio = (idGrupoProjModelo > 0 ? " Grupo: " + GrupoModeloDAO.Instance.ObtemDescricao(idGrupoProjModelo) : "  ")
                              + (String.IsNullOrEmpty(codigo) ? " " : " Código: " + codigo + "  ")
                              + (String.IsNullOrEmpty(descricao) ? " " : " Descrição: " + descricao + "  ");

            List <Imagem> retorno = new List <Imagem>();

            foreach (ProjetoModelo pm in lstProjModelos)
            {
                try
                {
                    string path = Utils.GetModelosProjetoPath + pm.NomeFigura;

                    if (File.Exists(path))
                    {
                        byte[] imagem = Utils.GetImageFromFile(path);
                        imagem = ManipulacaoImagem.Redimensionar(imagem, 300, 300, (float)0.75);

                        if (imagem.Length == 0)
                        {
                            continue;
                        }

                        if (retorno.Count > 0 && retorno[retorno.Count - 1].Imagem2 == null)
                        {
                            retorno[retorno.Count - 1].Imagem2     = imagem;
                            retorno[retorno.Count - 1].CodImagem2  = pm.Codigo;
                            retorno[retorno.Count - 1].DescImagem2 = pm.Descricao;
                        }
                        else if (retorno.Count > 0 && retorno[retorno.Count - 1].Imagem3 == null)
                        {
                            retorno[retorno.Count - 1].Imagem3     = imagem;
                            retorno[retorno.Count - 1].CodImagem3  = pm.Codigo;
                            retorno[retorno.Count - 1].DescImagem3 = pm.Descricao;
                        }
                        else
                        {
                            Imagem nova = new Imagem();
                            nova.Chave       = pm.IdProjetoModelo;
                            nova.Imagem1     = imagem;
                            nova.CodImagem1  = pm.Codigo;
                            nova.DescImagem1 = pm.Descricao;
                            nova.Criterio    = criterio;
                            retorno.Add(nova);
                        }
                    }
                }
                catch (Exception ex)
                {
                    throw new Exception(MensagemAlerta.FormatErrorMsg("Falha ao carregar imagens do projeto " + pm.Codigo + ".", ex));
                }
            }

            return(retorno.ToArray());
        }
예제 #5
0
        /// <summary>
        /// Salva a imagem da ferragem.
        /// </summary>
        /// <param name="idFerragem">Identificador da ferragem.</param>
        /// <param name="stream">Stream contendo os dados da imagem que será salva.</param>
        public bool SalvarImagem(int idFerragem, System.IO.Stream stream)
        {
            var arquivo = ObterCaminho(idFerragem);

            // Caso a ferragem já possua imagem, o arquivo deve ser removido, para que seja salva a nova imagem.
            if (File.Exists(arquivo))
            {
                File.Delete(arquivo);
            }

            return(ManipulacaoImagem.SalvarImagem(arquivo, stream));
        }
예제 #6
0
        /// <summary>
        /// Salva o CalcPackage da ferragem.
        /// </summary>
        /// <param name="idFerragem">Identificador da ferragem.</param>
        /// <param name="stream">Stream contendo os dados do CalcPackage que será salva.</param>
        public bool SalvarCalcPackage(int idFerragem, System.IO.Stream stream)
        {
            var arquivo = ObterCaminho(idFerragem);

            // Caso o a ferragem já possua CalcPackage, o arquivo deve ser removido, para que o novo CalcPackage seja inserido.
            if (File.Exists(arquivo))
            {
                File.Delete(arquivo);
            }

            return(ManipulacaoImagem.SalvarImagem(arquivo, stream));
        }
예제 #7
0
        protected void grdProdutosOrcamento_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
            FileUpload fluImagem = grdProdutosAmbienteOrcamento.Rows[e.RowIndex].FindControl("fluImagem") as FileUpload;

            if (fluImagem == null || !fluImagem.HasFile)
            {
                return;
            }

            var idProd = e.Keys[0].ToString().StrParaInt();

            ManipulacaoImagem.SalvarImagem($"{ Data.Helper.Utils.GetProdutosOrcamentoPath }{ idProd }.jpg", fluImagem.FileBytes);
        }
예제 #8
0
        protected void btnSalvarImagem_Click(object sender, EventArgs e)
        {
            if (!ManipulacaoImagem.SalvarImagem(Server.MapPath(NomeFigura()), file_imagem.PostedFile.InputStream))
            {
                Page.ClientScript.RegisterClientScriptBlock(typeof(string), "msg", "alert('Falha ao salvar imagem.');", true);
                return;
            }

            img_inicial.ImageUrl = NomeFigura();

            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);

            Page.ClientScript.RegisterClientScriptBlock(typeof(string), "msg", "alert('Imagem salva!.');", true);
        }
예제 #9
0
파일: Anexo.cs 프로젝트: ertprs/Estudo
        public static void InserirAnexo(IFoto.TipoFoto tipo, uint idParent, byte[] buffer, string fileName, string descricao)
        {
            // Cadastra a foto
            var foto = IFoto.Nova(tipo);

            foto.IdParent = idParent;

            var extensao = Path.GetExtension(fileName);

            if (string.IsNullOrEmpty(extensao))
            {
                throw new Exception("O arquivo informado não possui extensão.");
            }

            foto.Extensao = extensao;

            if (foto.ApenasImagens && !Arquivos.IsImagem(foto.Extensao))
            {
                throw new Exception("Apenas imagens podem ser cadastradas.");
            }

            if (foto.Tipo == IFoto.TipoFoto.Pedido)
            {
                if (PedidoEspelhoDAO.Instance.IsPedidoImpresso(null, foto.IdParent))
                {
                    throw new Exception("Não é possível inserir imagem em pedidos que já possuam etiqueta(s) impressa(s).");
                }
            }

            foto.Descricao = descricao;
            foto.IdFoto    = foto.Insert();

            if (foto.IdFoto == 0)
            {
                throw new Exception("Falha ao cadastrar foto.");
            }

            try
            {
                // Salva o arquivo da foto
                if (!Directory.Exists(foto.Path))
                {
                    Directory.CreateDirectory(foto.Path);
                }

                ManipulacaoImagem.SalvarImagem(foto.FilePath, buffer);

                if (tipo == IFoto.TipoFoto.Pedido)
                {
                    // Cria o Log de inserção do Anexo imagem Pedido
                    LogAlteracao log = new LogAlteracao();
                    log.Tabela        = (int)LogAlteracao.TabelaAlteracao.Pedido;
                    log.IdRegistroAlt = (int)idParent;
                    log.NumEvento     = LogAlteracaoDAO.Instance.GetNumEvento(LogAlteracao.TabelaAlteracao.Pedido, (int)idParent);
                    log.Campo         = "Anexo Pedido";
                    log.DataAlt       = DateTime.Now;
                    log.IdFuncAlt     = UserInfo.GetUserInfo.CodUser;
                    log.ValorAnterior = null;
                    log.ValorAtual    = string.Format("{0} - Imagem Anexada", foto.IdFoto);
                    log.Referencia    = LogAlteracao.GetReferencia(log.Tabela, idParent);
                    LogAlteracaoDAO.Instance.Insert(log);
                }
            }
            catch (Exception ex)
            {
                foto.Delete();
                throw ex;
            }
        }
예제 #10
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);
            }
        }
예제 #11
0
        /// <summary>
        /// Salva a imagem do funcionário.
        /// </summary>
        /// <param name="idFuncionario">Identificador do funcionário.</param>
        /// <param name="stream">Stream contendo os dados da imagem que será salva.</param>
        public bool SalvarImagem(int idFuncionario, System.IO.Stream stream)
        {
            var arquivo = ObtemCaminho(idFuncionario);

            return(ManipulacaoImagem.SalvarImagem(arquivo, stream));
        }
예제 #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
        /// <summary>
        /// Salva a imagem do funcionário.
        /// </summary>
        /// <param name="idFuncionario">Identificador do funcionário.</param>
        /// <param name="stream">Stream contendo os dados da imagem que será salva.</param>
        public bool SalvarImagem(int idLoja, bool cor, Stream stream)
        {
            var arquivo = ObtemCaminho(idLoja, cor);

            return(ManipulacaoImagem.SalvarImagem(arquivo, stream));
        }
예제 #14
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());
        }
예제 #15
0
        /// <summary>
        /// Salva o arquivo do relatório.
        /// </summary>
        /// <param name="idRelatorioDinamico">Identificador do relatório.</param>
        /// <param name="stream">Stream contendo os dados do arquivo que será salvo.</param>
        public bool SalvarArquivo(int idRelatorioDinamico, System.IO.Stream stream)
        {
            var arquivo = ObterCaminho(idRelatorioDinamico);

            return(ManipulacaoImagem.SalvarImagem(arquivo, stream));
        }
예제 #16
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();
            }
        }
예제 #17
0
        private string InserirMult(string descricao, IFoto.TipoFoto tipo)
        {
            var hfc = Request.Files;
            var arquivosNaoAnexados = "";

            for (var i = 0; i < hfc.Count; i++)
            {
                // Cadastra a foto.
                var foto = IFoto.Nova(tipo);

                // Recupera os dados do arquivo.
                var arquivo = hfc[i];

                // Recupera o nome do arquivo, que deve ser exatamente o id da referência.
                var idReferencia = Conversoes.StrParaUint(arquivo.FileName.Split('-', '.', ' ')[0]);

                // Verifica se são arquivos de pedidos ou de liberações.
                switch (Request["tipo"])
                {
                case "pedido":

                    if (PedidoEspelhoDAO.Instance.IsPedidoImpresso(null, foto.IdParent))
                    {
                        return("Não é possível inserir imagem em pedidos que já possuam etiqueta(s) impressa(s).");
                    }

                    // Se o tipo for pedido e o nome do arquivo não for o id de um pedido válido então o arquivo não é anexado.
                    else if (!PedidoDAO.Instance.Exists(idReferencia))
                    {
                        arquivosNaoAnexados += arquivo.FileName + ", ";
                        continue;
                    }

                    break;

                case "liberacao":
                    // Se o tipo for pedido e o nome do arquivo não for o id de uma liberação válida então o arquivo não é anexado.
                    if (!LiberarPedidoDAO.Instance.Exists(idReferencia))
                    {
                        arquivosNaoAnexados += arquivo.FileName + ", ";
                        continue;
                    }

                    break;

                default:
                    continue;
                }

                foto.IdParent = idReferencia;
                foto.Extensao = arquivo.FileName.Substring(arquivo.FileName.LastIndexOf('.'));

                if (foto.ApenasImagens && !Arquivos.IsImagem(foto.Extensao))
                {
                    arquivosNaoAnexados += arquivo.FileName + ", ";
                    continue;
                }

                foto.Descricao = descricao;
                foto.IdFoto    = foto.Insert();

                if (foto.IdFoto == 0)
                {
                    arquivosNaoAnexados += arquivo.FileName + ", ";
                    foto.Delete();
                    continue;
                }

                try
                {
                    ManipulacaoImagem.SalvarImagem(foto.FilePath, arquivo.InputStream);
                }
                catch
                {
                    foto.Delete();
                    arquivosNaoAnexados += arquivo.FileName + ", ";
                    continue;
                }
            }

            return(arquivosNaoAnexados = !String.IsNullOrEmpty(arquivosNaoAnexados)
                ? "Arquivos não anexados: " + arquivosNaoAnexados.Trim(' ').Trim(',') +
                                         ".\\n\\nCertifique-se de que os nomes dos arquivos estão corretos."
                : "Arquivos anexados com sucesso.");
        }
예제 #18
0
        /// <summary>
        /// Salva a imagemd o produto.
        /// </summary>
        /// <param name="idProd">Identificador do produto.</param>
        /// <param name="stream">Stream contendo os dados da imagem que será salva.</param>
        public bool SalvarImagem(int idProdBaixaEst, System.IO.Stream stream)
        {
            var arquivo = ObtemCaminho(idProdBaixaEst);

            return(ManipulacaoImagem.SalvarImagem(arquivo, stream));
        }
예제 #19
0
        /// <summary>
        /// Salva a imagem do cliente.
        /// </summary>
        /// <param name="idCliente">Identificador do cliente.</param>
        /// <param name="stream">Stream contendo os dados da imagem que será salva.</param>
        public bool SalvarImagem(int idCliente, System.IO.Stream stream)
        {
            var arquivo = ObterCaminho(idCliente);

            return(ManipulacaoImagem.SalvarImagem(arquivo, stream));
        }