Exemplo n.º 1
0
        public ActionResult Caracteristicas(FormCollection fc)
        {
            var usuario = db.Usuarios.Where(u => u.NombreUsuario == User.Identity.Name).FirstOrDefault().UsuarioId;
            var id      = Session["reglaid"];

            var reglasListCurrent = db.Database.SqlQuery <spReglasCaracteristicas>("spReglasCaracteristicas @ReglaId",
                                                                                   new SqlParameter("@ReglaId", id)).OrderBy(x => x.ReglaCatalogoId).ToList();

            var textMovimiento = string.Empty;

            var reglaNombre = string.Empty;

            foreach (var item in reglasListCurrent)
            {
                reglaNombre = item.Regla;
            }

            movimiento = "Modificando Características Regla : " + reglaNombre;
            MovementsHelper.MovimientosBitacora(usuario, modulo, movimiento);

            string[] reglaCaractersiticaId = fc.GetValues("ReglaCaractersiticaId");
            //string[] seleccionado = fc.GetValues("Seleccionado");
            string[] isTrue  = fc.GetValues("IsTrue");
            string[] isFalse = fc.GetValues("IsFalse");

            var selec = false;

            for (var i = 0; i < reglaCaractersiticaId.Length; i++)
            {
                ReglaCaracteristica reglaCaracteristica = db.ReglasCaracteristicas.Find(Convert.ToInt32(reglaCaractersiticaId[i]));

                //var reglaId = reglaCaracteristica.ReglaId;

                if (isTrue == null)
                {
                    selec = false;

                    reglaCaracteristica.IsTrue = selec;

                    db.Entry(reglaCaracteristica).State = EntityState.Modified;

                    db.SaveChanges();
                }
                else
                {
                    for (var j = 0; j < isTrue.Length; j++)
                    {
                        if (reglaCaractersiticaId[i] == isTrue[j])
                        {
                            selec = true;

                            reglaCaracteristica.IsTrue = selec;

                            db.Entry(reglaCaracteristica).State = EntityState.Modified;
                            db.SaveChanges();

                            break;
                        }
                        else
                        {
                            selec = false;

                            reglaCaracteristica.IsTrue = selec;

                            db.Entry(reglaCaracteristica).State = EntityState.Modified;
                            db.SaveChanges();
                        }
                    }
                    if (!selec)
                    {
                        selec = false;

                        reglaCaracteristica.IsTrue = selec;

                        db.Entry(reglaCaracteristica).State = EntityState.Modified;
                        db.SaveChanges();
                    }
                }
                if (isFalse == null)
                {
                    selec = false;

                    reglaCaracteristica.IsFalse = selec;

                    db.Entry(reglaCaracteristica).State = EntityState.Modified;

                    db.SaveChanges();
                }
                else
                {
                    for (var j = 0; j < isFalse.Length; j++)
                    {
                        if (reglaCaractersiticaId[i] == isFalse[j])
                        {
                            selec = true;

                            reglaCaracteristica.IsFalse = selec;

                            db.Entry(reglaCaracteristica).State = EntityState.Modified;
                            db.SaveChanges();

                            break;
                        }
                        else
                        {
                            selec = false;

                            reglaCaracteristica.IsFalse = selec;

                            db.Entry(reglaCaracteristica).State = EntityState.Modified;
                            db.SaveChanges();
                        }
                    }
                    if (!selec)
                    {
                        selec = false;

                        reglaCaracteristica.IsFalse = selec;

                        db.Entry(reglaCaracteristica).State = EntityState.Modified;
                        db.SaveChanges();
                    }
                }
            }

            var regla = db.ReglasCaracteristicas.Find(Convert.ToInt32(reglaCaractersiticaId[1]));

            var reglaId = regla.ReglaId;

            var articuloId = db.Reglas.Find(reglaId);

            var articuloKFCId = db.ArticuloKFCs.Where(x => x.ArticuloKFCId == articuloId.ArticuloKFCId).FirstOrDefault().ArticuloKFCId;

            var restauranteId = 0;

            var categoria = string.Empty;

            var campaña = db.Campañas.Where(x => x.Generada == "NO").FirstOrDefault();

            EliminarMateriales(articuloKFCId, campaña);

            MovementsHelper.AgregarMaterialesTiendaCampañaExiste(articuloKFCId, restauranteId, categoria);

            var material = db.ArticuloKFCs.Where(x => x.ArticuloKFCId == articuloId.ArticuloKFCId).FirstOrDefault();

            if (campaña != null)
            {
                var campañaId = campaña.CampañaId;

                MovementsHelper.AgregarArticuloCampañas(material, campañaId);
            }

            var reglasListActualizado = db.Database.SqlQuery <spReglasCaracteristicas>("spReglasCaracteristicas @ReglaId",
                                                                                       new SqlParameter("@ReglaId", id)).OrderBy(x => x.ReglaCatalogoId).ToList();

            textMovimiento = string.Empty;

            reglaNombre = string.Empty;

            var valorIsTrue  = string.Empty;
            var valorIsFalse = string.Empty;

            for (int i = 0; i < reglasListCurrent.Count; i++)
            {
                var caracteristica = reglasListActualizado.Where(x => x.ReglaCatalogoId == reglasListCurrent[i].ReglaCatalogoId).FirstOrDefault();

                if (caracteristica.IsFalse != reglasListCurrent[i].IsFalse || caracteristica.IsTrue != reglasListCurrent[i].IsTrue)
                {
                    if (caracteristica.IsTrue == true)
                    {
                        valorIsTrue = "ACTIVADO";
                    }
                    else
                    {
                        valorIsTrue = "DEACTIVADO";
                    }

                    if (caracteristica.IsFalse == true)
                    {
                        valorIsFalse = "ACTIVADO";
                    }
                    else
                    {
                        valorIsFalse = "DESACTIVADO";
                    }

                    textMovimiento += " " + caracteristica.Caracteristica + " SI : " + valorIsTrue + " - NO : " + valorIsFalse + " / ";
                }

                reglaNombre = caracteristica.Regla;
            }

            if (textMovimiento == string.Empty)
            {
                textMovimiento = "Sin Modificaciones";
            }

            movimiento = "Características Asignadas Regla : " + reglaNombre + " / " + textMovimiento.ToString();
            MovementsHelper.MovimientosBitacora(usuario, modulo, movimiento);

            Session["reglaid"] = string.Empty;

            return(Json(new { success = true, message = "CARACTERÍSTICAS ASIGNADAS" }, JsonRequestBehavior.AllowGet));
        }