// Обновление данных в базе о ценнике public static async void RoomCostUpdate(this RoomCost unsyRoomCost) { using (HotelContext db = new HotelContext()) { db.RoomCosts.Update(unsyRoomCost); await db.SaveChangesAsync(); } }
[HttpPut("{id}")]// Обновляет данные о ценнике public IActionResult Put(int id, [FromBody] RoomCost roomCost) { if (ModelState.IsValid) { roomCost.RoomCostUpdate(); return(Ok(roomCost)); } return(BadRequest(ModelState)); }
// Поиск в базе public static async Task <RoomCost> FindRoomCost(RoomCost roomCost) { using (HotelContext db = new HotelContext()) { return(await db.RoomCosts.AsNoTracking().FirstOrDefaultAsync( rc => roomCost.CategoryId == rc.CategoryId && roomCost.NumberOfSeats == rc.NumberOfSeats && roomCost.HasMiniBar == rc.HasMiniBar)); } }
// Удаление ценника из базы public static async Task <RoomCost> RoomCostDelete(int id) { using (HotelContext db = new HotelContext()) { RoomCost roomCost = db.RoomCosts.FirstOrDefault(x => x.RoomCostId == id); if (roomCost != null) { roomCost.Cost = 0; db.RoomCosts.Update(roomCost); await db.SaveChangesAsync(); } return(roomCost); } }
private void BillingsTextFields() { decimal Tarriff, BarCharge, TelephoneCharge, WiFiCharge, RoomCost, TarriffSinglePerson, Tarriff2People, TariffExtraPerson, RoomCost2, Days; int NumberOfGuests, GuestIDFK; //BillingID, TarriffSinglePerson = Convert.ToDecimal(txtTariffSinglePerson.Text); Tarriff2People = Convert.ToDecimal(txtTariff2People.Text); TariffExtraPerson = Convert.ToDecimal(txtTariffExtraPerson.Text); RoomCost2 = Convert.ToDecimal(txtRoomCost.Text); Days = Convert.ToDecimal(lblDays.Text); NumberOfGuests = Convert.ToInt16(txtNumberOfGuests.Text); if (NumberOfGuests == 1) { Tarriff = TarriffSinglePerson; } else if (NumberOfGuests == 2) { Tarriff = Tarriff2People; } else { Tarriff = Tarriff2People + (TariffExtraPerson * (NumberOfGuests - 2)); } //BillingID = Convert.ToInt16(txtBillingID.Text); GuestIDFK = Convert.ToInt16(txtGuestID.Text); BarCharge = Convert.ToDecimal(txtBarCharge.Text); WiFiCharge = Convert.ToDecimal(txtWiFiCharge.Text); TelephoneCharge = Convert.ToDecimal(txtTelephoneCharge.Text); RoomCost = (RoomCost2 * Days) + BarCharge + WiFiCharge + Tarriff + TelephoneCharge; myBillings.GuestID = GuestIDFK; myBillings.BarCharge = BarCharge; myBillings.WiFiCharge = WiFiCharge; myBillings.TelephoneCharge = TelephoneCharge; myBillings.RoomCost = RoomCost; lblTotalCost.Text = RoomCost.ToString(); }
[HttpPost]// Добаляет ценник в базу public IActionResult Post([FromBody] RoomCost roomCost) { if (ModelState.IsValid) { RoomCost rmc; if ((rmc = FindRoomCost(roomCost).Result) == null) { roomCost.RoomCostSave(); } else { rmc.Cost = roomCost.Cost; rmc.RoomCostUpdate(); } return(Ok(roomCost)); } return(BadRequest(ModelState)); }
public static List <RoomCost> CreateRoomCost() { RoomCost cost_categ_1_num_1 = new RoomCost { RoomCostId = 1, CategoryId = 1, NumberOfSeats = 1, HasMiniBar = false, Cost = 2000 }; RoomCost cost_categ_1_num_2 = new RoomCost { RoomCostId = 2, CategoryId = 1, NumberOfSeats = 2, HasMiniBar = false, Cost = 3000 }; RoomCost cost_categ_1_num_3 = new RoomCost { RoomCostId = 3, CategoryId = 1, NumberOfSeats = 3, HasMiniBar = false, Cost = 3700 }; RoomCost cost_categ_1_num_4 = new RoomCost { RoomCostId = 4, CategoryId = 1, NumberOfSeats = 4, HasMiniBar = false, Cost = 4200 }; RoomCost cost_categ_1_num_5 = new RoomCost { RoomCostId = 5, CategoryId = 1, NumberOfSeats = 1, HasMiniBar = true, Cost = 3000 }; RoomCost cost_categ_1_num_6 = new RoomCost { RoomCostId = 6, CategoryId = 1, NumberOfSeats = 2, HasMiniBar = true, Cost = 4000 }; RoomCost cost_categ_1_num_7 = new RoomCost { RoomCostId = 7, CategoryId = 1, NumberOfSeats = 3, HasMiniBar = true, Cost = 5700 }; RoomCost cost_categ_1_num_8 = new RoomCost { RoomCostId = 8, CategoryId = 1, NumberOfSeats = 4, HasMiniBar = true, Cost = 6200 }; RoomCost cost_categ_2_num_1 = new RoomCost { RoomCostId = 9, CategoryId = 2, NumberOfSeats = 1, HasMiniBar = false, Cost = 3000 }; RoomCost cost_categ_2_num_2 = new RoomCost { RoomCostId = 10, CategoryId = 2, NumberOfSeats = 2, HasMiniBar = false, Cost = 4000 }; RoomCost cost_categ_2_num_3 = new RoomCost { RoomCostId = 11, CategoryId = 2, NumberOfSeats = 3, HasMiniBar = false, Cost = 5700 }; RoomCost cost_categ_2_num_4 = new RoomCost { RoomCostId = 12, CategoryId = 2, NumberOfSeats = 4, HasMiniBar = false, Cost = 6200 }; RoomCost cost_categ_2_num_5 = new RoomCost { RoomCostId = 13, CategoryId = 2, NumberOfSeats = 1, HasMiniBar = true, Cost = 4500 }; RoomCost cost_categ_2_num_6 = new RoomCost { RoomCostId = 14, CategoryId = 2, NumberOfSeats = 2, HasMiniBar = true, Cost = 5500 }; RoomCost cost_categ_2_num_7 = new RoomCost { RoomCostId = 15, CategoryId = 2, NumberOfSeats = 3, HasMiniBar = true, Cost = 6300 }; RoomCost cost_categ_2_num_8 = new RoomCost { RoomCostId = 16, CategoryId = 2, NumberOfSeats = 4, HasMiniBar = true, Cost = 6800 }; RoomCost cost_categ_3_num_1 = new RoomCost { RoomCostId = 17, CategoryId = 3, NumberOfSeats = 1, HasMiniBar = false, Cost = 5000 }; RoomCost cost_categ_3_num_2 = new RoomCost { RoomCostId = 18, CategoryId = 3, NumberOfSeats = 2, HasMiniBar = false, Cost = 6000 }; RoomCost cost_categ_3_num_3 = new RoomCost { RoomCostId = 19, CategoryId = 3, NumberOfSeats = 3, HasMiniBar = false, Cost = 7700 }; RoomCost cost_categ_3_num_4 = new RoomCost { RoomCostId = 20, CategoryId = 3, NumberOfSeats = 4, HasMiniBar = false, Cost = 8200 }; RoomCost cost_categ_3_num_5 = new RoomCost { RoomCostId = 21, CategoryId = 3, NumberOfSeats = 1, HasMiniBar = true, Cost = 6800 }; RoomCost cost_categ_3_num_6 = new RoomCost { RoomCostId = 22, CategoryId = 3, NumberOfSeats = 2, HasMiniBar = true, Cost = 7200 }; RoomCost cost_categ_3_num_7 = new RoomCost { RoomCostId = 23, CategoryId = 3, NumberOfSeats = 3, HasMiniBar = true, Cost = 8300 }; RoomCost cost_categ_3_num_8 = new RoomCost { RoomCostId = 24, CategoryId = 3, NumberOfSeats = 4, HasMiniBar = true, Cost = 10000 }; List <RoomCost> list = new List <RoomCost> { cost_categ_1_num_1, cost_categ_1_num_2, cost_categ_1_num_3, cost_categ_1_num_4, cost_categ_1_num_5, cost_categ_1_num_6, cost_categ_1_num_7, cost_categ_1_num_8, cost_categ_2_num_1, cost_categ_2_num_2, cost_categ_2_num_3, cost_categ_2_num_4, cost_categ_2_num_5, cost_categ_2_num_6, cost_categ_2_num_7, cost_categ_2_num_8, cost_categ_3_num_1, cost_categ_3_num_2, cost_categ_3_num_3, cost_categ_3_num_4, cost_categ_3_num_5, cost_categ_3_num_6, cost_categ_3_num_7, cost_categ_3_num_8 }; RoomCosts = list; return(list); }
//Steps the day counter for all rooms public static void StepDay(WeekDays curDay) { //reference the reception log for this week. ReceptionLog currentLog = Reception.receptionLogs[Reception.receptionLogs.Count - 1]; //Iterate through each room stepping their day counters if necessary foreach(RoomStats aRoom in allBedrooms) { if(aRoom.daysUnderConstruction > 0) { --aRoom.daysUnderConstruction;//Decrease days under construction if(aRoom.daysUnderConstruction == 0) { aRoom.RemoveIcon("RepairUpgrade"); } } else { aRoom.DegradeRoom (); if(aRoom.daysOccupied > 0) { int roomTypeSelected = 0; float roomPrice = 0; //check if this is a special booking if(aRoom.typeRented == groupType.noneBooked) { RoomCost roomType = new RoomCost();//assign the correct list of prices and discount. switch(aRoom.roomQuality) { case 1:roomType = currentLog.standardRoom; roomTypeSelected = 1; Reception.monthlyReports[Reception.monthlyReports.Count-1].numbRoomLvl1Booked++; break; case 2:roomType = currentLog.doubleRoom; roomTypeSelected = 2; Reception.monthlyReports[Reception.monthlyReports.Count-1].numbRoomLvl2Booked++; break; case 3:roomType = currentLog.deluxeRoom; roomTypeSelected = 3; Reception.monthlyReports[Reception.monthlyReports.Count-1].numbRoomLvl3Booked++; break; case 4:roomType = currentLog.suiteRoom; roomTypeSelected = 4; Reception.monthlyReports[Reception.monthlyReports.Count-1].numbRoomLvl4Booked++; break; case 5:roomType = currentLog.masterSuiteRoom; roomTypeSelected = 5; Reception.monthlyReports[Reception.monthlyReports.Count-1].numbRoomLvl5Booked++; break; } if(curDay <= WeekDays.Wednesday) { //weekday rate. roomPrice = roomType.weekdayRoomCost; //Give discount if 3 days booked or higher: if(aRoom.discount3Days) { //applies the 3 day discount. roomPrice *= (1-roomType.weekday3NightDiscount/100); } if(aRoom.discountNoBreakfast) { //applies the no breakfast discount. roomPrice *= (1-roomType.weekdayNoBreakfastDiscount/100); } if(aRoom.discountNoCancel) { //applies the no cancellation discount. roomPrice *= (1-roomType.weekdayNoCancelDiscount/100); } } else //If it's a weekend, charge weekend rate { //weekend rate. roomPrice = roomType.weekendRoomCost; //Give discount if 3 days booked or higher: if(aRoom.discount3Days) { // applies the 3 night discount. roomPrice *= (1-roomType.weekend3NightDiscount/100); } if(aRoom.discountNoBreakfast) { //applies the no breakfast discount. roomPrice *= (1-roomType.weekendNoBreakfastDiscount/100); } if(aRoom.discountNoCancel) { //applies the no cancellation discount. roomPrice *= (1-roomType.weekendNoCancelDiscount/100); } } } //set price if conference booking. else if(aRoom.typeRented == groupType.conference){ roomTypeSelected = 6; roomPrice = currentLog.conferenceHeadCost; if(curDay <= WeekDays.Wednesday) roomPrice *= (1-currentLog.conferenceWeekendDiscount/100); } //set price if group type booking else if(aRoom.typeRented == groupType.group){ roomTypeSelected = 7; roomPrice = currentLog.groupHeadCost; } //set price if special event booked else if(aRoom.typeRented == groupType.specialEvent){ roomTypeSelected = 8; roomPrice = currentLog.eventsCost; if(curDay <= WeekDays.Wednesday) roomPrice *= (1-currentLog.eventWeekEndDiscount/100); } else{Debug.LogError("Error in groupTypeSelection");} //adds the discount from revenue management tab. roomPrice *= occupancyDiscount; switch(roomTypeSelected){ case 1:Reception.monthlyReports[Reception.monthlyReports.Count-1].revenueRoomLvl1 += roomPrice; break; case 2:Reception.monthlyReports[Reception.monthlyReports.Count-1].revenueRoomLvl2 += roomPrice; break; case 3:Reception.monthlyReports[Reception.monthlyReports.Count-1].revenueRoomLvl3 += roomPrice; break; case 4:Reception.monthlyReports[Reception.monthlyReports.Count-1].revenueRoomLvl4 += roomPrice; break; case 5:Reception.monthlyReports[Reception.monthlyReports.Count-1].revenueRoomLvl5 += roomPrice; break; case 6:Reception.monthlyReports[Reception.monthlyReports.Count-1].revenueConferences += roomPrice; break; case 7:Reception.monthlyReports[Reception.monthlyReports.Count-1].revenueGroups += roomPrice; break; case 8:Reception.monthlyReports[Reception.monthlyReports.Count-1].revenueEvents += roomPrice; break; } MasterReference.accountsReceivable += roomPrice; aRoom.daysOccupied--; //Reset scale when room is available again } if (aRoom.daysOccupied == 0 && aRoom.inUse) { GameObject assetCTR = GameObject.FindGameObjectWithTag("GameController").transform.FindChild("AssetController").gameObject; string currentLayout = ""; aRoom.typeRented = groupType.noneBooked; if (aRoom.roomCleanliness >= 50) { aRoom.GetComponent<Renderer>().material.color = Color.white; if (aRoom.name == "Container") { switch (aRoom.roomQuality) { case 1: currentLayout = "Standard"; break; case 2: currentLayout = "Double"; break; } assetCTR.GetComponent<AssetSwapper>().SwapRoomStatus(aRoom.gameObject, currentLayout, "Clean"); } } else { if (aRoom.name == "Container") { switch (aRoom.roomQuality) { case 1: currentLayout = "Standard"; break; case 2: currentLayout = "Double"; break; } assetCTR.GetComponent<AssetSwapper>().SwapRoomStatus(aRoom.gameObject, currentLayout, "Dirty"); } aRoom.GetComponent<Renderer>().material.color = Color.yellow; } aRoom.inUse = false; } } } ShuffleRooms(); }