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."); }
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; } }
protected void Page_Load(object sender, EventArgs e) { LoginUsuario login = UserInfo.GetUserInfo; bool visivelMedicao = Config.PossuiPermissao(Config.FuncaoMenuMedicao.EfetuarMedicao) && login.CodUser > 0; bool visivelCompra = Config.PossuiPermissao(Config.FuncaoMenuFinanceiroPagto.ControleFinanceiroPagamento) && login.CodUser > 0; bool visivelCliente = Config.PossuiPermissao(Config.FuncaoMenuCadastro.AnexarArquivosCliente) && login.CodUser > 0; bool visivelPedido = (Config.PossuiPermissao(Config.FuncaoMenuPedido.AnexarArquivoPedido) && login.CodUser > 0) || login.IdCliente > 0; bool visivelLiberacao = Config.PossuiPermissao(Config.FuncaoMenuPedido.AnexarArquivoLiberacaoListaPedido) && login.CodUser > 0; bool visivelOrcamento = Config.PossuiPermissao(Config.FuncaoMenuPedido.AnexarArquivoPedido) && login.CodUser > 0; bool visivelFinanceiroPagto = Config.PossuiPermissao(Config.FuncaoMenuFinanceiroPagto.ControleFinanceiroPagamento); bool visivelFinanceiro = Config.PossuiPermissao(Config.FuncaoMenuFinanceiro.ControleFinanceiroRecebimento); bool visivelFornecedor = Config.PossuiPermissao(Config.FuncaoMenuCadastro.AnexarArquivosFornecedor) && login.CodUser > 0; bool visivelPedidoInterno = Config.PossuiPermissao(Config.FuncaoMenuEstoque.AnexarArquivoPedidoInterno); bool visivelCheque = Request["tipo"] == "cheque"; IFoto.TipoFoto tipo = GetTipo(); // Exibe/Esconde opção de cadastrar/editar/excluir fotos if (Request["crud"] == "0") { trTitle1.Visible = false; } else { trTitle1.Visible = tipo == IFoto.TipoFoto.Medicao ? visivelMedicao : tipo == IFoto.TipoFoto.Compra ? visivelCompra : tipo == IFoto.TipoFoto.Cliente ? visivelCliente : tipo == IFoto.TipoFoto.PedidoInterno ? visivelPedidoInterno : /* Chamado 44690. */ tipo == IFoto.TipoFoto.Sugestao ? visivelCliente : tipo == IFoto.TipoFoto.Cheque ? visivelCheque : tipo == IFoto.TipoFoto.Pedido ? visivelPedido : tipo == IFoto.TipoFoto.ImpostoServ ? visivelFinanceiroPagto : tipo == IFoto.TipoFoto.ConciliacaoBancaria ? visivelFinanceiroPagto : tipo == IFoto.TipoFoto.DevolucaoPagto ? visivelFinanceiro : tipo == IFoto.TipoFoto.Orcamento ? visivelOrcamento : tipo == IFoto.TipoFoto.Obra ? visivelFinanceiro : tipo == IFoto.TipoFoto.Fornecedor ? visivelFornecedor:visivelLiberacao; } trTitle2.Visible = trTitle1.Visible; trCadastro.Visible = trTitle1.Visible; System.Collections.Generic.IList <IFoto> lstFotos; if (tipo == IFoto.TipoFoto.Medicao) { lstFotos = IFoto.GetByParent(Request["id"], tipo); } else { lstFotos = IFoto.GetByParent(Glass.Conversoes.StrParaUint(Request["id"]), tipo); } //Unit larguraFoto = new Unit("160px"); //Unit alturaFoto = new Unit(""); var larguraTabela = new Unit("160px"); var linha = new TableRow(); if (lstFotos.Count > 0) { int contador = 0; foreach (IFoto f in lstFotos) { // Permite inserir no máximo 4 fotos por linha if (contador == 4) { tbFotos.Controls.Add(linha); linha = new TableRow(); contador = 0; } contador++; var celula = new TableCell(); var foto = (CtrlFoto)LoadControl(ResolveClientUrl("~/Controls/ctrlFoto.ascx")); foto.Foto = f; foto.LarguraTabela = larguraTabela; foto.EditVisible = trTitle1.Visible; celula.Controls.Add(foto); celula.Style.Value = "padding: 4px"; linha.Controls.Add(celula); } } else { var celula = new TableCell(); celula.Text = Request["id"] != "0" ? "Não há fotos cadastradas para " + GetSubtitle().Substring(INICIO_SUBTITULO.Length) + "." : ""; linha.Controls.Add(celula); } tbFotos.Controls.Add(linha); tabelaCrud.Visible = Request["id"] != "0"; tblMultFlu.Visible = Request["id"] == "0"; }