public JsonResult GuardarEdit(producto model, int[] patologias_selec = null, int[] categorias_selec = null) { var respuesta = new ResponseModel { Respuesta = true, Redirect = "/Productos/Index/", Error = "", ErrorAdicional = "", ErrorEntidad = "" }; if (patologias_selec == null) { ModelState.AddModelError("patologia", "Debe seleccionar por lo menos una patologia"); respuesta.Respuesta = false; respuesta.Error = "Debe seleccionar por lo menos una patologia"; } if (categorias_selec == null) { ModelState.AddModelError("categoria", "Debe seleccionar por lo menos una categoria"); respuesta.Respuesta = false; respuesta.ErrorAdicional = "Debe seleccionar por lo menos una categoria"; } if (ModelState.IsValid) { try { var obtener = new producto(); obtener = db.producto.Where(x => x.id_producto == model.id_producto).SingleOrDefault(); obtener.nombre_producto = model.nombre_producto; obtener.descripcion_producto = model.descripcion_producto; obtener.codigo_producto = model.codigo_producto; obtener.contiene = model.contiene; obtener.precio_venta = model.precio_venta; obtener.undxcajas = model.undxcajas; obtener.id_generico = model.id_generico; obtener.id_laboratorio = model.id_laboratorio; obtener.id_presentacion = model.id_presentacion; obtener.id_umedida = model.id_umedida; //db.Entry(model).State = EntityState.Modified; //Eliminar antiguas patologias y categorias var obtenerCat = db.producto_categoria.Where(x => x.id_producto == model.id_producto).ToList(); var obtenerPat = db.producto_patologia.Where(x => x.id_producto == model.id_producto).ToList(); for (int i = 0; i < obtenerCat.Count; i++) { producto_categoria categoria_P = db.producto_categoria.Find(obtenerCat[i].id_productocategoria); db.producto_categoria.Remove(categoria_P); } for (int i = 0; i < obtenerPat.Count; i++) { producto_patologia patologia_P = db.producto_patologia.Find(obtenerPat[i].id_productopatologia); db.producto_patologia.Remove(patologia_P); } ///////Agregar las nuevas patologias y categorias foreach (var p in patologias_selec) { var pat = new producto_patologia { id_patologia = p, id_producto = model.id_producto }; db.producto_patologia.Add(pat); } foreach (var c in categorias_selec) { var cat = new producto_categoria { id_categoria = c, id_producto = model.id_producto }; db.producto_categoria.Add(cat); } db.SaveChanges(); } catch (Exception) { VerificacionDuplicado verif = new VerificacionDuplicado(); bool rptacodigo; rptacodigo = verif.VerificarProductoCodigoEdit(model.codigo_producto, model.id_producto); if (rptacodigo) { ModelState.AddModelError("codigo_producto", "Ya existe un producto con este codigo, agruegue uno diferente"); respuesta.ErrorEntidad = "Ya existe un producto con este codigo" + model.codigo_producto + ", agruegue uno diferente"; } else { ModelState.AddModelError("errorProducto", "Hubo un error al guardar"); respuesta.ErrorEntidad = "Ocurrio un error al Actualizar"; } respuesta.Respuesta = false; //throw; } } else { respuesta.Respuesta = false; } return(Json(respuesta)); }
public JsonResult Guardar(producto model, int[] patologias_selec = null, int[] categorias_selec = null) { var respuesta = new ResponseModel { Respuesta = true, Redirect = "/Productos/Index/", Error = "", ErrorAdicional = "", ErrorEntidad = "" }; if (patologias_selec != null) { //foreach (var c in patologias_selec) // model.producto_patologia.Add(new producto_patologia { id = c }); } else { ModelState.AddModelError("patologia", "Debe seleccionar por lo menos una patologia"); respuesta.Respuesta = false; respuesta.Error = "Debe seleccionar por lo menos una patologia"; } if (categorias_selec != null) { } else { ModelState.AddModelError("categoria", "Debe seleccionar por lo menos una categoria"); respuesta.Respuesta = false; respuesta.ErrorAdicional = "Debe seleccionar por lo menos una categoria"; } if (ModelState.IsValid) { try { model.estado = true; model.stock = 0; db.producto.Add(model); foreach (var p in patologias_selec) { var pat = new producto_patologia { id_patologia = p }; db.producto_patologia.Add(pat); } foreach (var c in categorias_selec) { var cat = new producto_categoria { id_categoria = c }; db.producto_categoria.Add(cat); } db.SaveChanges(); } catch (Exception) { VerificacionDuplicado verif = new VerificacionDuplicado(); bool rptacodigo; rptacodigo = verif.VerificarProductoCodigo(model.codigo_producto); respuesta.Respuesta = false; if (rptacodigo) { ModelState.AddModelError("codigo_producto", "Ya existe un producto con este codigo, agruegue uno diferente"); respuesta.ErrorEntidad = "Ya existe un producto con este codigo" + model.codigo_producto + ", agruegue uno diferente"; } else { ModelState.AddModelError("errorProducto", "Hubo un error al guardar"); } } } return(Json(respuesta)); }