Exemplo n.º 1
0
        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));
                }
            }
        }