Beispiel #1
0
        public static int GravaProduto(tbl_Produtos dados)
        {
            try
            {
                using (var banco = new LojaContext())
                {
                    var registro = banco.tbl_Produtos.FirstOrDefault(s => s.codigounico == dados.codigounico);

                    if (registro == null)
                    {
                        registro = banco.tbl_Produtos.Add(dados);
                    }
                    else
                    {
                        registro.CodProduto    = dados.CodProduto;
                        registro.CodRefAntiga  = dados.CodRefAntiga;
                        registro.DatCadastro   = dados.DatCadastro;
                        registro.DesFaz        = dados.DesFaz;
                        registro.DesFornecedor = dados.DesFornecedor;
                        registro.DesLocal      = dados.DesLocal;
                        registro.DesProduto    = dados.DesProduto;
                        registro.EstMinimo     = dados.EstMinimo;
                        registro.Imagem        = dados.Imagem;
                        registro.NCM           = dados.NCM;
                        registro.QtdProduto    = dados.QtdProduto;
                        registro.VlrCusto      = dados.VlrCusto;
                        registro.VlrICMSST     = dados.VlrICMSST;
                        registro.VlrPercent    = dados.VlrPercent;
                        registro.VlrUltPreco   = dados.VlrUltPreco;
                        registro.VlrUnitario   = dados.VlrUnitario;
                    }

                    banco.SaveChanges();

                    return(registro.codigounico);
                }
            }
            catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)
            {
                Exception raise = dbEx;
                foreach (var validationErrors in dbEx.EntityValidationErrors)
                {
                    foreach (var validationError in validationErrors.ValidationErrors)
                    {
                        string message = string.Format("{0}:{1}",
                                                       validationErrors.Entry.Entity.ToString(),
                                                       validationError.ErrorMessage);
                        // raise a new exception nesting
                        // the current instance as InnerException
                        raise = new InvalidOperationException(message, raise);
                    }
                }
                throw raise;
            }
            catch (Exception ex)
            {
                throw new Exception(ex.InnerException != null ? ex.InnerException.Message : ex.Message);
            }
        }
Beispiel #2
0
        public ActionResult DeleteConfirmed(int id)
        {
            tbl_Produtos tbl_Produtos = db.tbl_Produtos.Find(id);
            var          listaImagens = tbl_Produtos.tbl_Imagens;

            //Duvida em relacao ao funcionamento de muitos para muitos (apagar ou nao img da DB)(2 produtos podem usar a mesma img)
            //  db.tbl_Imagens.RemoveRange(listaImagens);
            db.tbl_Produtos.Remove(tbl_Produtos);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Beispiel #3
0
        // GET: tbl_Produtos/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            tbl_Produtos tbl_Produtos = db.tbl_Produtos.Find(id);

            if (tbl_Produtos == null)
            {
                return(HttpNotFound());
            }
            return(View(tbl_Produtos));
        }
Beispiel #4
0
        // GET: tbl_Produtos/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            tbl_Produtos tbl_Produtos = db.tbl_Produtos.Find(id);

            if (tbl_Produtos == null)
            {
                return(HttpNotFound());
            }
            ViewBag.Categoria     = new SelectList(db.tbl_Categoria, "Id_cat", "Nome", tbl_Produtos.Categoria);
            ViewBag.Sub_Categoria = new SelectList(db.tbl_Sub_Categoria, "Id_sub_cat", "Nome", tbl_Produtos.Sub_Categoria);
            ViewBag.Marca         = new SelectList(db.tbl_Marca, "Id", "Nome", tbl_Produtos.Marca);
            return(View(tbl_Produtos));
        }
        public ActionResult Create([Bind(Include = "Id_produto,Nome,Descricao,Preco,Categoria,Sub_Categoria,Stock,Peso,SKU,Marca")] tbl_Produtos tbl_Produtos, HttpPostedFileBase[] file)
        {
            if (ModelState.IsValid)
            {
                //List<tbl_Imagens> listIMG=new List<tbl_Imagens>();

                //tbl_Produtos.tbl_Imagens = new List<tbl_Imagens>();


                //Correr todos os ficheiros disponiveis no formulario
                foreach (HttpPostedFileBase i in file)
                {
                    //se existirem ficheiros
                    if (i != null)
                    {
                        //preparar um novo registo do tipo tbl_Imagens
                        tbl_Imagens intem = new tbl_Imagens();
                        //especificacao de atributos
                        intem.TituloImg = i.FileName;
                        intem.Descricao = "teste";
                        //criar um caminho com o nome do ficheiro concatenado
                        var filePath = Path.Combine((Server.MapPath("~/Imagens/")), i.FileName);
                        //especificacao do caminho
                        intem.Caminho = "/Imagens/" + i.FileName;
                        //guardar o ficheiro no caminho
                        i.SaveAs(filePath);
                        //criar uma nova ligacao de muitos para muitos(tbl.Imagens.ADD)
                        tbl_Produtos.tbl_Imagens.Add(intem);
                        //listIMG.Add(intem);
                    }
                }

                db.tbl_Produtos.Add(tbl_Produtos);
                db.SaveChanges();


                return(RedirectToAction("Index"));
            }

            ViewBag.Categoria     = new SelectList(db.tbl_Categoria, "Id_cat", "Nome", tbl_Produtos.Categoria);
            ViewBag.Sub_Categoria = new SelectList(db.tbl_Sub_Categoria, "Id_sub_cat", "Nome", tbl_Produtos.Sub_Categoria);
            ViewBag.Marca         = new SelectList(db.tbl_Marca, "Id", "Nome", tbl_Produtos.Marca);
            return(View(tbl_Produtos));
        }
Beispiel #6
0
        public ActionResult Edit([Bind(Include = "Id_produto,Nome,Descricao,Preco,Categoria,Sub_Categoria,Stock,Peso,SKU,Marca")] tbl_Produtos tbl_Produtos, FormCollection collection, HttpPostedFileBase[] file)
        {
            if (ModelState.IsValid)
            {
                //recolha das check boxs ativas
                var checks = collection.GetValues("check");

                //guardar referencia da base de dados do produto que estamos a trabalhar
                var original = db.tbl_Produtos.Include(c => c.tbl_Imagens).SingleOrDefault(c => c.Id_produto == tbl_Produtos.Id_produto);

                //Lista de imagens para extrair (Questão de muitos para muitos)
                List <tbl_Imagens> listToDel = new List <tbl_Imagens>(original.tbl_Imagens);

                //Limpar a navegacao da chave estrangeira
                original.tbl_Imagens.Clear();
                tbl_Produtos.tbl_Imagens.Clear();


                //para cada checkbox ativa
                if (checks != null)
                {
                    foreach (var idd in checks)
                    {
                        //retiramos da lista para eliminar
                        listToDel.Remove(db.tbl_Imagens.Find(Int64.Parse(idd)));
                        original.tbl_Imagens.Add(db.tbl_Imagens.Find(Int64.Parse(idd)));
                        // tbl_Produtos.tbl_Imagens.Add(db.tbl_Imagens.Find(Int64.Parse(idd)));


                        //criar uma nova navegacao de chave estrangeira para as imagens do formulario
                        db.tbl_Imagens.Attach(db.tbl_Imagens.Find(Int64.Parse(idd)));
                    }
                }



                //para cada ficheiro carregado
                foreach (HttpPostedFileBase i in file)
                {
                    if (i != null)
                    {
                        tbl_Imagens intem = new tbl_Imagens();
                        intem.TituloImg = i.FileName;
                        intem.Descricao = "teste";
                        var filePath = Path.Combine((Server.MapPath("~/Imagens/")), i.FileName);
                        intem.Caminho = "/Imagens/" + i.FileName;
                        i.SaveAs(filePath);
                        original.tbl_Imagens.Add(intem);
                        tbl_Produtos.tbl_Imagens.Add(intem);
                        //listIMG.Add(intem);
                    }
                }

                //guardar referencia do produto a editar

                var prod = db.tbl_Produtos.Find(tbl_Produtos.Id_produto);

                // fazer uma tentativa de update ao produto da referencia
                if (TryUpdateModel(prod))
                {
                    //original = tbl_Produtos;
                    //db.Entry(tbl_Produtos).State = EntityState.Modified;


                    //atualizar a base de dados
                    db.SaveChanges();

                    return(RedirectToAction("Index"));
                }
            }
            ViewBag.Categoria     = new SelectList(db.tbl_Categoria, "Id_cat", "Nome", tbl_Produtos.Categoria);
            ViewBag.Sub_Categoria = new SelectList(db.tbl_Sub_Categoria, "Id_sub_cat", "Nome", tbl_Produtos.Sub_Categoria);
            ViewBag.Marca         = new SelectList(db.tbl_Marca, "Id", "Nome", tbl_Produtos.Marca);
            return(View(tbl_Produtos));
        }