public ActionResult DeleteConfirmed(int id)
        {
            SPA_Encabezado_Reserva sPA_Encabezado_Reserva = db.SPA_Encabezado_Reserva.Find(id);

            db.SPA_Encabezado_Reserva.Remove(sPA_Encabezado_Reserva);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
        public JsonResult ActualizarReserva(SPA_Encabezado_Reserva Det)
        {
            bool status = true;

            try
            {
                var enDB       = db.SPA_Detalle_Reserva.Where(x => x.CodReserva == Det.CodReserva); //Los que están en la BD para comparaciones
                var EnForm     = Det.SPA_Detalle_Reserva.Select(x => x.Numreg).ToArray();           //Cargando el valor "CodReserva" de lo que se trae
                var Nuevos     = Det.SPA_Detalle_Reserva.Where(x => x.Numreg == 0).AsEnumerable();  //Registros con valor "0"
                var Eliminados = enDB.Where(x => !EnForm.Contains(x.Numreg));
                var Aeditar    = Det.SPA_Detalle_Reserva.Where(x => x.Numreg > 0);                  //Cuando trae valores

                //Eliminando:
                db.SPA_Detalle_Reserva.RemoveRange(Eliminados);
                //Actualizando: Editando valores que vienen
                Aeditar = Aeditar.Select(c => { c.CodReserva = Det.CodReserva; return(c); }).AsEnumerable();//Agregando el CodReserva a los detalles
                foreach (var Reg in Aeditar)
                {
                    db.Entry(Reg).State = System.Data.Entity.EntityState.Modified;
                }
                //Insertando
                Nuevos = Nuevos.Select(c => { c.CodReserva = Det.CodReserva; return(c); }).AsEnumerable();//Agregando el CodReserva a los detalles
                db.SPA_Detalle_Reserva.AddRange(Nuevos);

                db.SaveChanges();

                //Actualizando el encabezado con una nueva instancia de la entidad
                ConciergeEntities1 db_Aux = new ConciergeEntities1();
                var Upd = db_Aux.SPA_Encabezado_Reserva.Find(Det.CodReserva);
                if (Upd != null)
                {
                    //Actulizando datos
                    Upd.ReservaOpera  = Det.ReservaOpera;
                    Upd.NomHuesped    = Det.NomHuesped;
                    Upd.NumRoom       = Det.NumRoom;
                    Upd.Checkin       = Det.Checkin;
                    Upd.Checkout      = Det.Checkout;
                    Upd.Alergias      = Det.Alergias;
                    Upd.Observaciones = Det.Observaciones;
                    Upd.NotasCliente  = Det.NotasCliente;
                    Upd.Email         = Det.Email;
                    db_Aux.Entry(Upd).CurrentValues.SetValues(Upd);
                    db_Aux.SaveChanges();
                }

                status = true;
            }
            catch (Exception rx)
            {
                status = false;
            }

            return(new JsonResult {
                Data = new { status = status }
            });
        }
 public ActionResult Edit([Bind(Include = "CodReserva,ReservaOpera,NomHuesped,NumRoom,Checkin,Checkout,FecReg,UsrReg,Alergias,Observaciones,NotasCliente,Email")] SPA_Encabezado_Reserva sPA_Encabezado_Reserva)
 {
     if (ModelState.IsValid)
     {
         db.Entry(sPA_Encabezado_Reserva).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(sPA_Encabezado_Reserva));
 }
        public ActionResult DeleteConfirmed(int id)
        {
            db.SPA_Detalle_Reserva.RemoveRange(db.SPA_Detalle_Reserva.Where(a => a.CodReserva == id));
            db.SaveChanges();
            SPA_Encabezado_Reserva sPA_Encabezado_Reserva = db.SPA_Encabezado_Reserva.Find(id);

            db.SPA_Encabezado_Reserva.Remove(sPA_Encabezado_Reserva);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
        public ActionResult Create([Bind(Include = "CodReserva,ReservaOpera,NomHuesped,NumRoom,Checkin,Checkout,FecReg,UsrReg,Alergias,Observaciones,NotasCliente,Email")] SPA_Encabezado_Reserva sPA_Encabezado_Reserva)
        {
            if (ModelState.IsValid)
            {
                db.SPA_Encabezado_Reserva.Add(sPA_Encabezado_Reserva);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            ViewBag.CodReserva = new SelectList(db.SPA_Detalle_Reserva, "CodReserva", "CodSer", sPA_Encabezado_Reserva.CodReserva);
            return(View(sPA_Encabezado_Reserva));
        }
        // GET: SPA_Encabezado_Reserva/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            SPA_Encabezado_Reserva sPA_Encabezado_Reserva = db.SPA_Encabezado_Reserva.Find(id);

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

            if (sPA_Encabezado_Reserva == null)
            {
                return(HttpNotFound());
            }
            ViewBag.CodReserva = new SelectList(db.SPA_Detalle_Reserva, "CodReserva", "CodSer", sPA_Encabezado_Reserva.CodReserva);
            return(View(sPA_Encabezado_Reserva));
        }
        // GET: SPA_Encabezado_Reserva/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            SPA_Encabezado_Reserva sPA_Encabezado_Reserva = db.SPA_Encabezado_Reserva.Find(id);

            ViewBag.CodSer   = db.SPA_Servicios.ToList();
            ViewBag.CodTerap = db.SPA_Terapeutas.ToList();
            ViewBag.CodSala  = db.SPA_Salas.ToList();

            if (sPA_Encabezado_Reserva == null)
            {
                return(HttpNotFound());
            }
            return(View(sPA_Encabezado_Reserva));
        }
        public JsonResult GuardarReserva(SPA_Encabezado_Reserva Det)
        {
            bool status = true;

            if (ModelState.IsValid)
            {
                try
                {
                    //Guardando
                    Det.UsrReg = Session["UserName"].ToString();//Session["Usr"].ToString();

                    db.SPA_Encabezado_Reserva.Add(Det);
                    db.SaveChanges();
                }
                catch (System.Data.Entity.Validation.DbEntityValidationException e)
                {
                    foreach (var eve in e.EntityValidationErrors)
                    {
                        //Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
                        //    eve.Entry.Entity.GetType().Name, eve.Entry.State);
                        foreach (var ve in eve.ValidationErrors)
                        {
                            //Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"",
                            //    ve.PropertyName, ve.ErrorMessage);
                        }
                    }
                }
                //catch (Exception)
                //{
                //    status = false;
                //}
            }
            return(new JsonResult {
                Data = new { status = status }
            });
        }