public ActionResult AddOrEditCat(ReglaCatalogo reglaCatalogo, FormCollection fcol) { var usuario = db.Usuarios.Where(u => u.NombreUsuario == User.Identity.Name).FirstOrDefault().UsuarioId; string[] fc = fcol.GetValues("FC"); string[] fs = fcol.GetValues("FS"); string[] il = fcol.GetValues("IL"); string[] sb = fcol.GetValues("SB"); var fcTipo = 0; var fsTipo = 0; var ilTipo = 0; var sbTipo = 0; if (fc != null) { fcTipo = 1; } if (fs != null) { fsTipo = 2; } if (il != null) { ilTipo = 3; } if (sb != null) { sbTipo = 4; } if (reglaCatalogo.ReglaCatalogoId == 0) { movimiento = "Agregando Característica"; MovementsHelper.MovimientosBitacora(usuario, modulo, movimiento); if (string.IsNullOrEmpty(reglaCatalogo.Valor)) { reglaCatalogo.SiNo = true; reglaCatalogo.Valor = "SI / NO"; } else { reglaCatalogo.SiNo = false; } db.ReglasCatalogo.Add(reglaCatalogo); var response = DBHelper.SaveChanges(db); if (response.Succeeded) { var cat = reglaCatalogo.Categoria; var reglaIdTienda = reglaCatalogo.ReglaCatalogoId; MovementsHelper.AgregarReglasCaracteristicas(reglaIdTienda, cat); MovementsHelper.AgregarTiendasCaracteristicas(reglaIdTienda, cat, fcTipo, fsTipo, ilTipo, sbTipo, true); movimiento = "Característica Agregada " + reglaIdTienda + " " + reglaCatalogo.Nombre + " / " + cat; MovementsHelper.MovimientosBitacora(usuario, modulo, movimiento); return(Json(new { success = true, message = "CARACTERÍSTICA AGREGADA" }, JsonRequestBehavior.AllowGet)); } else { return(Json(new { success = true, message = response.Message }, JsonRequestBehavior.AllowGet)); } } else { movimiento = "Actualizando Característica " + reglaCatalogo.Nombre; MovementsHelper.MovimientosBitacora(usuario, modulo, movimiento); if (string.IsNullOrEmpty(reglaCatalogo.Valor)) { reglaCatalogo.SiNo = true; reglaCatalogo.Valor = "SI / NO"; } else { reglaCatalogo.SiNo = false; } db.Entry(reglaCatalogo).State = EntityState.Modified; var response = DBHelper.SaveChanges(db); if (response.Succeeded) { var cat = reglaCatalogo.Categoria; var reglaIdTienda = reglaCatalogo.ReglaCatalogoId; MovementsHelper.AgregarReglasCaracteristicas(reglaIdTienda, cat); if (cat == "EQUITY") { cat = "FRANQUICIAS"; } else if (cat == "FRANQUICIAS") { cat = "EQUITY"; } else { cat = string.Empty; } var caracteristicasEliminar = db.Database.SqlQuery <spReglaCaracteristicasEliminar>("spGetReglasCaracteristicasAEliminar @Categoria, @ReglaCatalogoId", new SqlParameter("@Categoria", cat), new SqlParameter("@ReglaCatalogoId", reglaIdTienda)).ToList(); if (caracteristicasEliminar.Count > 0) { foreach (var caracteristicaEliminar in caracteristicasEliminar) { var reglaCaracteristica = db.ReglasCaracteristicas.Find(caracteristicaEliminar.ReglaCaracteristicaId); db.ReglasCaracteristicas.Remove(reglaCaracteristica); db.SaveChanges(); } } MovementsHelper.AgregarTiendasCaracteristicas(reglaIdTienda, cat, fcTipo, fsTipo, ilTipo, sbTipo, false); movimiento = "Característica Actualizada " + reglaCatalogo.ReglaCatalogoId + " " + reglaCatalogo.Nombre + " / " + reglaCatalogo.Categoria; MovementsHelper.MovimientosBitacora(usuario, modulo, movimiento); return(Json(new { success = true, message = "CARACTERÍSTICA ACTUALIZADA" }, JsonRequestBehavior.AllowGet)); } else { return(Json(new { success = true, message = response.Message }, JsonRequestBehavior.AllowGet)); } } }