/// <summary> /// Create a new ReservationRoom object. /// </summary> /// <param name="id">Initial value of the Id property.</param> /// <param name="idRoomOcupation">Initial value of the IdRoomOcupation property.</param> /// <param name="idReservation">Initial value of the IdReservation property.</param> /// <param name="quantity">Initial value of the Quantity property.</param> public static ReservationRoom CreateReservationRoom(global::System.Int32 id, global::System.Int32 idRoomOcupation, global::System.Int32 idReservation, global::System.Int32 quantity) { ReservationRoom reservationRoom = new ReservationRoom(); reservationRoom.Id = id; reservationRoom.IdRoomOcupation = idRoomOcupation; reservationRoom.IdReservation = idReservation; reservationRoom.Quantity = quantity; return reservationRoom; }
public ActionResult Create(ReservationModel reservation) { ViewBag.Hotels = db.Hotel.OrderBy(u => u.Name); decimal __pricebase = new decimal(); decimal __total = new decimal(); decimal __totalrack = new decimal(); var __rooms = reservation.Rooms.Where(z => z.Name != null); List<ReservationRoom> __listrr = new List<ReservationRoom>(); foreach (var item in __rooms) { if (item.Name != null) { var __room = db.Room.SingleOrDefault(u => u.Id.Equals(item.IdRoom)); IEnumerable<DateTime> __tripdays = EachDay(reservation.Trip.Arrival, reservation.Trip.Departure); __tripdays = __tripdays.Take(__tripdays.Count() - 1); reservation.Trip.Adults = reservation.Trip.Adults + (item.Adultos * item.Quantity); reservation.Trip.Childrens = reservation.Trip.Childrens + (item.Infantes * item.Quantity); foreach (var __day in __tripdays) { RoomOcupation __roomfare = null; RoomOcupation __roomfarec = null; __roomfarec = db.RoomOcupation.Where(u => u.DateStart <= __day && u.DateEnd >= __day && u.Active.Equals(true) && u.IdRoom.Equals(__room.Id) && u.Room.Name.Equals(item.Name) && u.Name.ToLower().Contains("niño")).FirstOrDefault(); __roomfare = db.RoomOcupation.Where(u => u.DateStart <= __day && u.DateEnd >= __day && u.Active.Equals(true) && u.IdRoom.Equals(__room.Id) && u.Room.Name.Equals(item.Name) && u.Name.Contains(item.IdOcup)).FirstOrDefault(); if (item.Adultos > 0) { if (__roomfare != null) { item.Quantity = item.Adultos; decimal __discount = new decimal(); if (!reservation.Trip.Discount.HasValue) if (__tripdays.Count() <= 3) __discount = __roomfare.Discount1; else if (__tripdays.Count() >= 4 && __tripdays.Count() < 7) __discount = __roomfare.Discount2; else __discount = __roomfare.Discount3; else if (reservation.Trip.Discount.Value != 0) __discount = reservation.Trip.Discount.Value; decimal __admon = new decimal(); if (!reservation.Trip.PercentAdmin.HasValue) __admon = __roomfare.PercentAdmin; else if (reservation.Trip.PercentAdmin.Value != 0) __admon = reservation.Trip.PercentAdmin.Value; //descuento decimal __facturabruta = __roomfare.PriceRack - (__roomfare.PriceRack * (__discount / 100)); //gastos admon __facturabruta = __facturabruta + (__facturabruta * (__admon / 100)); //adultos __facturabruta = (__facturabruta * item.Quantity) * 1; //rack __totalrack = ((__roomfare.PriceRack * item.Quantity) * 1) + __totalrack; __total = __total + __facturabruta; decimal __agent = new decimal(); if (!reservation.Trip.PercentAdmin.HasValue) __agent = __roomfare.PercentAgent; else if (reservation.Trip.PercentAgent.Value != 0) __agent = reservation.Trip.PercentAgent.Value; // Porcentaje del Vendedor __pricebase = __pricebase + __roomfare.Price; reservation.Trip.Discount = Convert.ToInt32(__discount); reservation.Trip.PercentAdmin = Convert.ToInt32(__admon); reservation.Trip.PercentAgent = Convert.ToInt32(__agent); reservation.Trip.PriceBase = __pricebase; ReservationRoom __rr = new ReservationRoom(); __rr.Quantity = item.Quantity; __rr.RoomOcupation = __roomfare; __rr.Adults = item.Adultos; __rr.Childrens = item.Infantes; reservation.Trip.ReservationRoom.Add(__rr); } else { ViewBag.Error = "No hay tarifas cargadas para la habitación " + __room.Name + " para la fecha seleccionada. (Adultos)"; return PartialView(); } } if (item.Infantes > 0) { if (__roomfarec != null) { item.Quantity = item.Infantes; decimal __discount = new decimal(); if (!reservation.Trip.Discount.HasValue) if (__tripdays.Count() <= 3) __discount = __roomfarec.Discount1; else if (__tripdays.Count() >= 4 && __tripdays.Count() < 7) __discount = __roomfarec.Discount2; else __discount = __roomfarec.Discount3; else if (reservation.Trip.Discount.Value != 0) __discount = reservation.Trip.Discount.Value; decimal __admon = new decimal(); if (!reservation.Trip.PercentAdmin.HasValue) __admon = __roomfarec.PercentAdmin; else if (reservation.Trip.PercentAdmin.Value != 0) __admon = reservation.Trip.PercentAdmin.Value; //descuento decimal __facturabruta = __roomfarec.PriceRack - (__roomfarec.PriceRack * (__discount / 100)); //gastos admon __facturabruta = __facturabruta + (__facturabruta * (__admon / 100)); //adultos __facturabruta = (__facturabruta * item.Quantity) * 1; //rack __totalrack = ((__roomfarec.PriceRack * item.Quantity) * 1) + __totalrack; __total = __total + __facturabruta; decimal __agent = new decimal(); if (!reservation.Trip.PercentAdmin.HasValue) __agent = __roomfarec.PercentAgent; else if (reservation.Trip.PercentAgent.Value != 0) __agent = reservation.Trip.PercentAgent.Value; // Porcentaje del Vendedor __pricebase = __pricebase + __roomfarec.Price; reservation.Trip.Discount = Convert.ToInt32(__discount); reservation.Trip.PercentAdmin = Convert.ToInt32(__admon); reservation.Trip.PercentAgent = Convert.ToInt32(__agent); reservation.Trip.PriceBase = __pricebase; ReservationRoom __rr = new ReservationRoom(); __rr.Quantity = item.Quantity; __rr.RoomOcupation = __roomfarec; __rr.Adults = 0; __rr.Childrens = item.Infantes; reservation.Trip.ReservationRoom.Add(__rr); } else { ViewBag.Error = "No hay tarifas cargadas para la habitación " + __room.Name + " para la fecha seleccionada. (Niños)"; return PartialView(); } } } } } if (__total > 0) { reservation.Trip.PriceRack = __totalrack; reservation.Trip.Price = __total; reservation.Trip.PriceBase = __pricebase; reservation.Trip.ReservationDate = DateTime.Now; db.Reservation.AddObject(reservation.Trip); db.SaveChanges(); foreach (var item in __listrr) { item.IdReservation = reservation.Trip.Id; db.ReservationRoom.AddObject(item); db.SaveChanges(); } return RedirectToAction("Index"); } else { ViewBag.Error = "No ha seleccionado ninguna habitación."; ViewBag.Customer = db.Customer.ToList(); ViewBag.ReservationStatus = new SelectList(db.ReservationStatus, "Id", "Name"); return View(reservation); } }
/// <summary> /// Deprecated Method for adding a new object to the ReservationRoom EntitySet. Consider using the .Add method of the associated ObjectSet<T> property instead. /// </summary> public void AddToReservationRoom(ReservationRoom reservationRoom) { base.AddObject("ReservationRoom", reservationRoom); }