コード例 #1
0
ファイル: EditarImagem.aspx.cs プロジェクト: ertprs/Estudo
        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);
        }
コード例 #2
0
        public string GetDadosProjetoModelo(string codigo)
        {
            try
            {
                ProjetoModelo projeto = ProjetoModeloDAO.Instance.GetByCodigo(codigo);
                if (projeto == null)
                {
                    throw new Exception("Modelo de projeto não encontrado.");
                }

                return("Ok;" + projeto.IdProjetoModelo + ";" + projeto.DescrGrupo + ";" + projeto.Descricao + ";" + projeto.Espessura);
            }
            catch (Exception ex)
            {
                return("Erro;" + Glass.MensagemAlerta.FormatErrorMsg("Falha ao recuperar dados do modelo de projeto.", ex));
            }
        }
コード例 #3
0
        protected void Page_Load(object sender, EventArgs e)
        {
            hdfIdProjetoModelo.Value = Request["idProjetoModelo"];
            hdfIdPecaProjMod.Value   = Request["idPecaProjMod"];
            hdfItem.Value            = Request["item"];
            hdfTipo.Value            = Request["tipo"];

            if (!IsPostBack)
            {
                if (hdfTipo.Value != "pecaIndividual")
                {
                    // Busca o modelo de projeto passado por querystring
                    ProjetoModelo projMod = ProjetoModeloDAO.Instance.GetElementByPrimaryKey(Glass.Conversoes.StrParaUint(Request["IdProjetoModelo"]));

                    Page.Title += " " + projMod.Codigo;

                    // Busca as peças com seus respectivos posicionamentos
                    List <PosicaoPecaModelo> lstPosicao = PosicaoPecaModeloDAO.Instance.GetPosicoes(projMod.IdProjetoModelo);

                    // Busca a quantidade de peças deste modelo
                    txtQtdInfo.Text = lstPosicao.Count.ToString();

                    // Busca valores coletados anteriormente
                    for (int i = 0; i < lstPosicao.Count; i++)
                    {
                        if (lstPosicao[i] == null)
                        {
                            continue;
                        }

                        ((TextBox)info.FindControl("txtCoordX" + (i + 1))).Text          = lstPosicao[i].CoordX.ToString();
                        ((TextBox)info.FindControl("txtCoordY" + (i + 1))).Text          = lstPosicao[i].CoordY.ToString();
                        ((DropDownList)info.FindControl("drpOrientacao" + (i + 1))).Text = lstPosicao[i].Orientacao.ToString();
                        ((TextBox)info.FindControl("txtCalc" + (i + 1))).Text            = lstPosicao[i].Calc;

                        ((Glass.UI.Web.Controls.ctrlLogPopup)info.FindControl("ctrlLogPopup" + (i + 1))).Tabela     = LogAlteracao.TabelaAlteracao.PosicaoPecaModelo;
                        ((Glass.UI.Web.Controls.ctrlLogPopup)info.FindControl("ctrlLogPopup" + (i + 1))).IdRegistro = (uint?)lstPosicao[i].IdPosicaoPecaModelo;
                    }

                    // Carrega imagem na tela
                    imgFigura.ImageUrl = "../../Handlers/LoadFiguraAssociada.ashx?tipoDesenho=0&path=" +
                                         Data.Helper.Utils.GetModelosProjetoPath + projMod.NomeFiguraAssociada;
                }
                else
                {
                    PecaProjetoModelo peca = PecaProjetoModeloDAO.Instance.GetElementByPrimaryKey(Glass.Conversoes.StrParaUint(Request["idPecaProjMod"]));

                    /* Chamado 47688 - Remover a busca pelo ID quando todas as imagens forem renomeadas */
                    var    codigoProjetoModelo = ProjetoModeloDAO.Instance.ObtemCodigo(Convert.ToUInt32(hdfIdProjetoModelo.Value));
                    string path = Data.Helper.Utils.GetModelosProjetoPath + codigoProjetoModelo + "§" + hdfItem.Value + ".jpg";

                    if (!File.Exists(path))
                    {
                        path = Data.Helper.Utils.GetModelosProjetoPath + hdfIdProjetoModelo.Value.PadLeft(3, '0') + "_" + hdfItem.Value + ".jpg";
                    }

                    if (File.Exists(path))
                    {
                        // Busca as peças com seus respectivos posicionamentos
                        List <PosicaoPecaIndividual> lstPosicao = PosicaoPecaIndividualDAO.Instance.GetPosicoes(Glass.Conversoes.StrParaUint(Request["idPecaProjMod"]),
                                                                                                                Glass.Conversoes.StrParaInt(Request["item"]));

                        // Busca a quantidade de peças deste modelo
                        txtQtdInfo.Text = lstPosicao.Count.ToString();

                        // Busca valores coletados anteriormente
                        for (int i = 0; i < lstPosicao.Count; i++)
                        {
                            if (lstPosicao[i] == null)
                            {
                                continue;
                            }

                            ((TextBox)info.FindControl("txtCoordX" + (i + 1))).Text          = lstPosicao[i].CoordX.ToString();
                            ((TextBox)info.FindControl("txtCoordY" + (i + 1))).Text          = lstPosicao[i].CoordY.ToString();
                            ((DropDownList)info.FindControl("drpOrientacao" + (i + 1))).Text = lstPosicao[i].Orientacao.ToString();
                            ((TextBox)info.FindControl("txtCalc" + (i + 1))).Text            = lstPosicao[i].Calc;

                            ((Glass.UI.Web.Controls.ctrlLogPopup)info.FindControl("ctrlLogPopup" + (i + 1))).Tabela     = LogAlteracao.TabelaAlteracao.PosicaoPecaIndividual;
                            ((Glass.UI.Web.Controls.ctrlLogPopup)info.FindControl("ctrlLogPopup" + (i + 1))).IdRegistro = (uint?)lstPosicao[i].IdPosPecaInd;
                        }

                        // Carrega imagem na tela
                        imgFigura.ImageUrl = "../../Handlers/LoadFiguraAssociada.ashx?tipoFigura=individual&tipoDesenho=0&path=" + path;
                    }
                }
            }

            Ajax.Utility.RegisterTypeForAjax(typeof(Glass.UI.Web.Cadastros.Projeto.CadPosicaoPecaModelo));
        }
コード例 #4
0
        protected override Colosoft.Reports.IReportDocument LoadReport(ref LocalReport report, ref List <ReportParameter> lstParam,
                                                                       HttpRequest PageRequest, System.Collections.Specialized.NameValueCollection Request, object[] outrosParametros, LoginUsuario login, string diretorioLogotipos)
        {
            // Verifica qual relatório será chamado
            switch (Request["rel"])
            {
            case "imagemProjeto":
                report.ReportPath = NomeArquivoRelatorioImagemProjeto;

                // Identifica se foi selecionado para imprimir alumínios e ferragens.
                bool imprAlumFerr = Request["imprAlumFerr"] == "true";

                uint                       idProjeto   = !String.IsNullOrEmpty(Request["idProjeto"]) ? Glass.Conversoes.StrParaUint(Request["idProjeto"]) : 0;
                var                        projeto     = idProjeto > 0 ? ProjetoDAO.Instance.GetElement(idProjeto) : new Data.Model.Projeto();
                ItemProjeto[]              itemProjeto = ItemProjetoDAO.Instance.GetByString(Request["idItemProjeto"]);
                List <PecaItemProjeto>     lstPeca     = new List <PecaItemProjeto>();
                List <MaterialItemProjeto> lstMaterial = new List <MaterialItemProjeto>();
                List <Imagem>              lstImagens  = new List <Imagem>();
                List <MedidaItemProjeto>   lstMedidas  = new List <MedidaItemProjeto>();

                // Busca o pedido, se houver, relacionado à este projeto
                projeto.IdPedido = ProjetoDAO.Instance.GetIdPedidoByProjeto(idProjeto);

                if (projeto.IdPedido == 0)
                {
                    // Tenta buscar o pedido pelo item projeto.
                    if (itemProjeto[0].IdPedido > 0)
                    {
                        projeto.IdPedido = itemProjeto[0].IdPedido.Value;
                    }
                    else if (itemProjeto[0].IdPedidoEspelho > 0)
                    {
                        projeto.IdPedido = itemProjeto[0].IdPedidoEspelho.Value;
                    }
                    else if (itemProjeto[0].IdOrcamento > 0)
                    {
                        projeto.IdPedido = PedidoDAO.Instance.GetIdPedidoByOrcamento(itemProjeto[0].IdOrcamento.Value);
                    }
                }

                if (projeto.IdPedido > 0)
                {
                    var idCliente = PedidoDAO.Instance.ObtemIdCliente(null, projeto.IdPedido);

                    projeto.NomeCliente  = ClienteDAO.Instance.GetNome(idCliente);
                    projeto.Rota         = RotaDAO.Instance.ObtemCodRota(idCliente);
                    projeto.NomeFunc     = FuncionarioDAO.Instance.GetNome(PedidoDAO.Instance.ObtemIdFunc(null, projeto.IdPedido));
                    projeto.DataCad      = PedidoDAO.Instance.ObtemDataPedido(null, projeto.IdPedido);
                    projeto.TipoEntrega  = PedidoDAO.Instance.ObtemTipoEntrega(null, projeto.IdPedido);
                    projeto.Obs          = PedidoDAO.Instance.ObtemObs(null, projeto.IdPedido);
                    projeto.ObsLiberacao = PedidoDAO.Instance.ObtemObsLiberacao(projeto.IdPedido);
                }

                for (int i = 0; i < itemProjeto.Length; i++)
                {
                    var           pcp    = itemProjeto[i].IdPedidoEspelho.HasValue;
                    ProjetoModelo modelo = ProjetoModeloDAO.Instance.GetElementByPrimaryKey(itemProjeto[i].IdProjetoModelo);
                    lstPeca.AddRange(PecaItemProjetoDAO.Instance.GetByItemProjetoRpt(itemProjeto[i].IdItemProjeto, itemProjeto[i].IdProjetoModelo, pcp));

                    // Caso a imagem da peça tenha sido editada então a impressão não deve exibir se a peça possui arquivo de otimização.
                    for (var x = 0; x < lstPeca.Count; x++)
                    {
                        var pecaPossuiFiguraAssociada  = PecaItemProjetoDAO.Instance.PossuiFiguraAssociada(null, lstPeca[x].IdPecaItemProj);
                        var pecaPossuiEdicaoCadProject = lstPeca[x].IdProdPed != null ? lstPeca[x].ImagemEditada && ProdutosPedidoEspelhoDAO.Instance.PossuiEdicaoCadProject((uint)lstPeca[x].IdProdPed, pcp):false;
                        var produtoPossuiImagemEditada = pcp && ProdutosPedidoEspelhoDAO.Instance.PossuiImagemAssociada(null, (uint)lstPeca[x]?.IdProdPed.GetValueOrDefault());

                        if (lstPeca[x].IdArquivoMesaCorte > 0 && lstPeca[x].TipoArquivoMesaCorte > 0)
                        {
                            if ((produtoPossuiImagemEditada || lstPeca[x].ImagemEditada || pecaPossuiFiguraAssociada) &&
                                lstPeca[x].TipoArquivoMesaCorte != (int)TipoArquivoMesaCorte.FMLBasico && !pecaPossuiEdicaoCadProject)
                            {
                                lstPeca[x].IdArquivoMesaCorte   = null;
                                lstPeca[x].TipoArquivoMesaCorte = null;
                            }
                        }
                    }

                    int atual = lstMaterial.Count;
                    lstMaterial.AddRange(MaterialItemProjetoDAO.Instance.GetForRptItemProjeto(itemProjeto[i].IdItemProjeto, false));
                    int numeroMateriais = lstMaterial.Count - atual;

                    // Verifica se os materiais do itemProjeto deverão ser impressos também
                    itemProjeto[i].MostrarMateriais = imprAlumFerr && numeroMateriais > 0;

                    // Pega a imagem do projeto com as medidas já desenhadas e o modelo da imagem
                    if (modelo.IdGrupoModelo != (uint)UtilsProjeto.GrupoModelo.Outros)
                    {
                        itemProjeto[i].ImagemProjeto = Data.Helper.Utils.GetImageFromRequest(UtilsProjeto.GetFiguraAssociadaUrl(itemProjeto[i].IdItemProjeto, modelo));

                        // Salva a imagem na memória, recupera os bytes e os salva na propriedade ImagemProjetoModelo.
                        // Chamado 50315 - o nome da imagem deve ser recuperado dentro do try para não retornar erro quando o mesmo for null.
                        try
                        {
                            var arquivo = System.IO.Path.Combine(Glass.Data.Helper.Utils.ModelosProjetoPath(Context), modelo.NomeFigura);
                            if (System.IO.File.Exists(arquivo))
                            {
                                using (var image = new Bitmap(arquivo))
                                    using (var ms = new System.IO.MemoryStream())
                                    {
                                        image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
                                        itemProjeto[i].ImagemProjetoModelo = ms.ToArray();
                                    }
                            }
                        }
                        catch { }

                        itemProjeto[i].ImagemProjetoModelo = Data.Helper.Utils.GetImageFromRequest("../../Handlers/LoadImage.ashx?path=" + Data.Helper.Utils.ModelosProjetoPath(Context) +
                                                                                                   modelo.NomeFigura + "&altura=" + modelo.AlturaFigura + "&largura=" + modelo.LarguraFigura);
                    }

                    // Copia o idPedidoEspelho para o idPedido
                    if (itemProjeto[i].IdPedido == null)
                    {
                        itemProjeto[i].IdPedido = itemProjeto[i].IdPedidoEspelho;
                    }

                    lstImagens.AddRange(ImagemDAO.Instance.GetPecasAlteradas(itemProjeto[i].IdItemProjeto,
                                                                             Glass.Configuracoes.ProjetoConfig.RelatorioImagemProjeto.PercentualTamanhoImagemRelatorio));
                    lstMedidas.AddRange(MedidaItemProjetoDAO.Instance.GetListByItemProjeto(itemProjeto[i].IdItemProjeto));
                }

                lstParam.Add(new ReportParameter("Pedido_PedCli", projeto.IdPedido > 0 ? PedidoDAO.Instance.ObtemPedCli(null, projeto.IdPedido) : string.Empty));
                lstParam.Add(new ReportParameter("FastDelivery", PedidoDAO.Instance.IsFastDelivery(null, projeto.IdPedido).ToString()));
                lstParam.Add(new ReportParameter("ExibirImagemModelo", (true).ToString()));
                lstParam.Add(new ReportParameter("CorObs", Glass.Configuracoes.ProjetoConfig.RelatorioImagemProjeto.CorObsNoRelatorio));
                lstParam.Add(new ReportParameter("TemEdicaoCadProject", "true"));
                lstParam.Add(new ReportParameter("ImagensPecasIndividuais", "true"));
                lstParam.Add(new ReportParameter("AgruparBeneficiamentos", PedidoConfig.RelatorioPedido.AgruparBenefRelatorio.ToString()));

                report.DataSources.Add(new ReportDataSource("Projeto", new Data.Model.Projeto[] { projeto }));
                report.DataSources.Add(new ReportDataSource("ItemProjeto", itemProjeto));
                report.DataSources.Add(new ReportDataSource("PecaItemProjeto", lstPeca.ToArray()));
                report.DataSources.Add(new ReportDataSource("MaterialItemProjeto", lstMaterial.ToArray()));
                report.DataSources.Add(new ReportDataSource("Imagem", lstImagens.ToArray()));
                report.DataSources.Add(new ReportDataSource("MedidaItemProjeto", lstMedidas.ToArray()));
                break;

            case "totaisProjeto":
                report.ReportPath = Data.Helper.Utils.CaminhoRelatorio("Relatorios/Projeto/rptTotaisProjeto{0}.rdlc");
                bool exibirCusto = UserInfo.GetUserInfo.TipoUsuario == (uint)Data.Helper.Utils.TipoFuncionario.Administrador ||
                                   UserInfo.GetUserInfo.TipoUsuario == (uint)Data.Helper.Utils.TipoFuncionario.Gerente;

                string titulo      = String.Empty;
                string nomeCliente = String.Empty;
                string tipoEntrega = String.Empty;
                float  taxaPrazo   = 0;

                uint idProjeto_Totais       = Glass.Conversoes.StrParaUint(Request["idProjeto"]);
                uint idOrcamento_Totais     = Glass.Conversoes.StrParaUint(Request["idOrcamento"]);
                uint idPedido_Totais        = Glass.Conversoes.StrParaUint(Request["idPedido"]);
                uint idPedidoEspelho_Totais = Glass.Conversoes.StrParaUint(Request["idPedidoEspelho"]);

                if (idProjeto_Totais > 0)
                {
                    var projeto_Totais = ProjetoDAO.Instance.GetElementByPrimaryKey(idProjeto_Totais);
                    titulo      = "Impressão Projeto N.º " + idProjeto_Totais;
                    nomeCliente = projeto_Totais.IdCliente > 0 ? ClienteDAO.Instance.GetNome(projeto_Totais.IdCliente.Value) : projeto_Totais.NomeCliente;
                    tipoEntrega = projeto_Totais.DescrTipoEntrega;
                    taxaPrazo   = projeto_Totais.TaxaPrazo;
                }
                else if (idOrcamento_Totais > 0)
                {
                    var orcamento_Totais = OrcamentoDAO.Instance.GetElementByPrimaryKey(idOrcamento_Totais);
                    titulo      = "Impressão dos Projetos do Orçamento N.º " + idOrcamento_Totais;
                    nomeCliente = orcamento_Totais.IdCliente > 0 ? orcamento_Totais.IdCliente + " - " + ClienteDAO.Instance.GetNome(orcamento_Totais.IdCliente.Value) : orcamento_Totais.NomeCliente;
                    tipoEntrega = orcamento_Totais.DescrTipoEntrega;
                    taxaPrazo   = orcamento_Totais.TaxaPrazo;
                }
                else if (idPedido_Totais > 0 || idPedidoEspelho_Totais > 0)
                {
                    Glass.Data.Model.Pedido pedido_Totais = PedidoDAO.Instance.GetElementByPrimaryKey(idPedido_Totais > 0 ? idPedido_Totais : idPedidoEspelho_Totais);
                    titulo = idPedido_Totais > 0 ? "Impressão dos Projetos do Pedido N.º " + idPedido_Totais :
                             "Impressão dos Projetos da Conferência do Pedido N.º " + idPedidoEspelho_Totais;
                    nomeCliente = pedido_Totais.IdCli + " - " + ClienteDAO.Instance.GetNome(pedido_Totais.IdCli);
                    tipoEntrega = pedido_Totais.DescrTipoEntrega;
                    taxaPrazo   = pedido_Totais.TaxaPrazo;
                }

                lstParam.Add(new ReportParameter("Titulo", titulo));
                lstParam.Add(new ReportParameter("NomeCliente", nomeCliente));
                lstParam.Add(new ReportParameter("TipoEntrega", tipoEntrega));
                lstParam.Add(new ReportParameter("TaxaPrazo", taxaPrazo.ToString()));
                lstParam.Add(new ReportParameter("ExibirCusto", exibirCusto.ToString()));
                lstParam.Add(new ReportParameter("ExibirJuros", "false"));
                lstParam.Add(new ReportParameter("ExibirLinhaVermelhaSaida", "true"));

                List <MaterialItemProjeto> lstMaterial_Totais = MaterialItemProjetoDAO.Instance.GetForRptTotaisItens(idProjeto_Totais,
                                                                                                                     idOrcamento_Totais, idPedido_Totais, idPedidoEspelho_Totais);

                report.DataSources.Add(new ReportDataSource("MaterialItemProjeto", lstMaterial_Totais.ToArray()));
                break;

            case "ImpressaoModeloProjeto":
                report.ReportPath = "Relatorios/Projeto/rptImpressaoModeloProjeto.rdlc";

                ProjetoModelo projModelo = ProjetoModeloDAO.Instance.GetByCodigo(Request["projModeloCod"]);

                if (projModelo.IdGrupoModelo != (uint)UtilsProjeto.GrupoModelo.Outros)
                {
                    // Salva a imagem na memória, recupera os bytes e os salva na propriedade ImagemProjetoModelo.
                    // Chamado 50315 - o nome da imagem deve ser recuperado dentro do try para não retornar erro quando o mesmo for null.
                    try
                    {
                        var arquivo = System.IO.Path.Combine(Glass.Data.Helper.Utils.ModelosProjetoPath(Context), projModelo.NomeFigura);
                        if (System.IO.File.Exists(arquivo))
                        {
                            using (var image = new Bitmap(arquivo))
                                using (var ms = new System.IO.MemoryStream())
                                {
                                    image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
                                    projModelo.ImagemProjetoModelo = ms.ToArray();
                                }
                        }
                    }
                    catch { }
                }

                report.DataSources.Add(new ReportDataSource("ProjetoModelo", new ProjetoModelo[] { projModelo }));

                PecaProjetoModelo[] pecasModelo = PecaProjetoModeloDAO.Instance.GetByModelo(projModelo.IdProjetoModelo).ToArray();
                report.DataSources.Add(new ReportDataSource("PecaProjetoModelo", pecasModelo));

                MaterialProjetoModelo[] materialModelo = MaterialProjetoModeloDAO.Instance.GetByProjetoModelo(projModelo.IdProjetoModelo, null).ToArray();
                report.DataSources.Add(new ReportDataSource("MaterialProjetoModelo", materialModelo));

                MedidaProjetoModelo[] medidaModelo = MedidaProjetoModeloDAO.Instance.GetByProjetoModelo(projModelo.IdProjetoModelo, false).ToArray();
                report.DataSources.Add(new ReportDataSource("MedidaProjetoModelo", medidaModelo));

                Imagem[] imagensPecasModelo = ImagemDAO.Instance.GetPecasModelo(projModelo.IdProjetoModelo);
                report.DataSources.Add(new ReportDataSource("Imagem", imagensPecasModelo));
                break;

            case "LstModeloProjeto":
                report.ReportPath = "Relatorios/Projeto/rptLstModeloProjeto.rdlc";
                Imagem[] imagensProjModelo = ImagemDAO.Instance.GetProjetosModelo(Request["cod"], Request["desc"],
                                                                                  Glass.Conversoes.StrParaUint(Request["grupo"]), Request["situacao"].StrParaInt());
                report.DataSources.Add(new ReportDataSource("Imagem", imagensProjModelo));
                break;
            }

            // Atribui parâmetros ao relatório
            lstParam.Add(new ReportParameter("Logotipo", Logotipo.GetReportLogo(PageRequest)));
            lstParam.Add(new ReportParameter("TextoRodape", Geral.TextoRodapeRelatorio(login.Nome)));
            lstParam.Add(new ReportParameter("CorRodape", "DimGray"));

            return(null);
        }
コード例 #5
0
        protected void odsProjetoModelo_Inserted(object sender, Colosoft.WebControls.VirtualObjectDataSourceStatusEventArgs e)
        {
            if (e.Exception != null)
            {
                Glass.MensagemAlerta.ErrorMsg("Falha ao inserir modelo de projeto.", e.Exception, Page);
                e.ExceptionHandled = true;
                return;
            }

            ProjetoModelo projMod = ProjetoModeloDAO.Instance.GetElement(Glass.Conversoes.StrParaUint(e.ReturnValue.ToString()));

            try
            {
                #region Figura Engenharia

                FileUpload fluFiguraEngenharia = (FileUpload)dtvProjetoModelo.FindControl("fluFiguraEngenharia");

                if (fluFiguraEngenharia.HasFile && e.ReturnValue != null)
                {
                    if (fluFiguraEngenharia.PostedFile.FileName.Substring(fluFiguraEngenharia.PostedFile.FileName.LastIndexOf(".")).ToLower() != ".jpg")
                    {
                        Glass.MensagemAlerta.ShowMsg("Imagem inválida.", Page);
                        return;
                    }

                    /* Chamado 47688 - Remover a busca pelo ID quando todas as imagens forem renomeadas */
                    string fotoPath = Data.Helper.Utils.GetModelosProjetoPath + projMod.IdProjetoModelo.ToString().PadLeft(3, '0') + ".jpg";
                    if (File.Exists(fotoPath))
                    {
                        File.Delete(fotoPath);
                    }

                    fotoPath = Data.Helper.Utils.GetModelosProjetoPath + projMod.Codigo + "§E.jpg";
                    if (File.Exists(fotoPath))
                    {
                        File.Delete(fotoPath);
                    }

                    fluFiguraEngenharia.SaveAs(fotoPath);

                    if (File.Exists(fotoPath))
                    {
                        ProjetoModeloDAO.Instance.AtualizaNomeFigura(projMod.IdProjetoModelo, projMod.Codigo + "§E.jpg", null);
                    }
                }

                #endregion

                #region Figura Modelo

                FileUpload fluFiguraModelo = (FileUpload)dtvProjetoModelo.FindControl("fluFiguraModelo");

                if (fluFiguraModelo.HasFile && e.ReturnValue != null)
                {
                    if (fluFiguraModelo.PostedFile.FileName.Substring(fluFiguraModelo.PostedFile.FileName.LastIndexOf(".")).ToLower() != ".jpg")
                    {
                        Glass.MensagemAlerta.ShowMsg("Imagem inválida.", Page);
                        return;
                    }

                    string fotoPath = Data.Helper.Utils.GetModelosProjetoPath + projMod.Codigo + ".jpg";

                    if (System.IO.File.Exists(fotoPath))
                    {
                        System.IO.File.Delete(fotoPath);
                    }

                    fluFiguraModelo.SaveAs(fotoPath);

                    if (File.Exists(fotoPath))
                    {
                        ProjetoModeloDAO.Instance.AtualizaNomeFigura(projMod.IdProjetoModelo, null, projMod.Codigo + ".jpg");
                    }
                }

                #endregion
            }
            catch (Exception ex)
            {
                Glass.MensagemAlerta.ErrorMsg("Falha ao cadastrar figura.", ex, Page);
                ProjetoModeloDAO.Instance.DeleteByPrimaryKey(projMod.IdProjetoModelo);
                return;
            }

            hdfIdProjetoModelo.Value = e.ReturnValue.ToString();
            Response.Redirect("CadModeloProjeto.aspx?idProjetoModelo=" + hdfIdProjetoModelo.Value);
        }
コード例 #6
0
ファイル: DesenhaProjeto1.aspx.cs プロジェクト: ertprs/Estudo
        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();
            }
        }
コード例 #7
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));
        }
コード例 #8
0
ファイル: EditarImagem.aspx.cs プロジェクト: ertprs/Estudo
        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"];
            }
        }
コード例 #9
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);
            }
        }