public void Clear() { Username = ""; start = DateTime.Now.AddYears(-1); end = DateTime.Now; Report = new CheckInInfoExpanded(); }
public CheckInInfoExpanded GetReport(DateTime start, DateTime end) { end = end.AddDays(1).AddSeconds(-1); CheckInInfoExpanded checkInInfo = new CheckInInfoExpanded(); var checksIn = db.ChecksIn.GetList().Where(i => i.EndDate >= start && i.EndDate <= end); foreach (CheckIn checkIn in checksIn) { checkInInfo.TotalRoomRevenue += checkIn.RoomCost; checkInInfo.TotalServiceRevenue += checkIn.ServicesCost; } checkInInfo.Info = (from ci in db.ChecksIn.GetList() join g in db.Rooms.GetList() on ci.RoomId equals g.RoomId join ac in db.Accounts.GetList() on ci.LastEmployeeId equals ac.AccountId join m in db.Modifiers.GetList() on ac.ModifierId equals m.ModifierId where ci.EndDate >= start && ci.EndDate <= end select new CheckInInfo() { Id = ci.CheckInId, Dates = "Н.: " + ci.StartDate.ToString("dd.MM.yyyy") + "\nК.: " + ci.EndDate.ToString("dd.MM.yyyy"), Room = g.RoomNumber, LastEmployee = ac.Surname.TrimEnd(' ') + " " + ac.Username[0] + ". " + ac.Patronymic[0] + ". [id: " + ac.AccountId + "]", Prices = "Комната: " + ci.RoomCost + "\n" + "Доп. услуги: " + ci.ServicesCost + "\n" + "Всего: " + (ci.ServicesCost + ci.RoomCost) }).ToList(); foreach (CheckInInfo info in checkInInfo.Info) { List <string> guests = (from g in db.Guests.GetList() join c in db.CheckInGuests.GetList() on g.GuestId equals c.GuestID where c.CheckInId == info.Id select g.Surname.TrimEnd(' ') + " " + g.GuestName[0] + ". " + g.Patronymic[0] + ".\n" ).ToList(); string guestResult = ""; foreach (string str in guests) { guestResult += str; checkInInfo.GuestNumber++; } info.Guests = guestResult.TrimEnd('\n'); List <string> services = (from g in db.Services.GetList() join c in db.CheckInServices.GetList() on g.ServiceId equals c.ServiceId where c.CheckInId == info.Id select g.ServiceName.TrimEnd(' ') + " (" + c.Number + ")" + "\n" ).ToList(); string serviceResult = ""; foreach (string str in services) { serviceResult += str; } info.Services = serviceResult.TrimEnd('\n'); } return(checkInInfo); }