Exemple #1
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.");
        }
Exemple #2
0
        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;
            }
        }
Exemple #3
0
        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";
        }