public PartialViewResult LichCongTacCanBoTrongNgay(long userId, DateTime date) { AssignUserInfo(); lichCongTacBusiness = Get <LICHCONGTACBusiness>(); LichCongTacByDayViewModel viewModel = new LichCongTacByDayViewModel(); viewModel.startDate = new DateTime(date.Year, date.Month, date.Day); viewModel.currentUserId = currentUser.ID; viewModel.title = "LỊCH CÔNG TÁC CỦA CÁN BỘ TRONG TUẦN"; viewModel.groupDateEntities = lichCongTacBusiness.GetLichCongTacOfUserByWeek(userId, date) .GroupBy(x => x.NGAY_CONGTAC).OrderBy(x => x.Key) .Select(x => new LichCongTacDateEntity() { date = x.Key, title = x.Key.GetNameOfDay() + " (" + x.Key.ToVietnameseDateFormat() + ")", groupOfCalendars = x.OrderBy(y => y.GIO_CONGTAC).ThenBy(y => y.PHUT_CONGTAC).ToList() }).ToList(); return(PartialView("_LichCongTacOfUserByDay", viewModel)); }
public PartialViewResult GetCalendarToRegisterCar(FormCollection collection) { lichCongTacBusiness = Get <LICHCONGTACBusiness>(); LICHCONGTAC_SEARCH searchModel = new LICHCONGTAC_SEARCH(); searchModel.leaderId = collection["CAL_LANHDAO_ID"].ToIntOrNULL(); searchModel.startDate = collection["CAL_NGAYBATDAU"].ToDateTime(); searchModel.endDate = collection["CAL_NGAYKETTHUC"].ToDateTime(); LichCongTacByDayViewModel viewModel = new LichCongTacByDayViewModel(); viewModel.groupDateEntities = lichCongTacBusiness.GetListLichCongTacs(searchModel) .GroupBy(x => x.NGAY_CONGTAC).OrderBy(x => x.Key) .Select(x => new LichCongTacDateEntity() { title = x.Key.GetNameOfDay() + " (" + x.Key.ToVietnameseDateFormat() + ")", groupOfCalendars = x.OrderBy(y => y.GIO_CONGTAC).ThenBy(y => y.PHUT_CONGTAC).ToList() }).ToList(); return(PartialView("_ListLichCongTacRegisterCar", viewModel)); }
public PartialViewResult SearchLichCongTac(LICHCONGTAC_SEARCH searchModel) { AssignUserInfo(); lichCongTacBusiness = Get <LICHCONGTACBusiness>(); DM_THAOTAC userFunction = currentUser.ListThaoTac.Where(o => o.MA_THAOTAC.ToUpper() == "TAO_LICHCONGTAC").FirstOrDefault(); searchModel.queryDeptId = currentUser.DeptParentID; if (searchModel.calendarDay == null) { searchModel.calendarDay = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day); } else { var calendarDayValue = searchModel.calendarDay.Value; searchModel.calendarDay = new DateTime(calendarDayValue.Year, calendarDayValue.Month, calendarDayValue.Day); } var currentDay = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day); var day = searchModel.calendarDay.Value; var groupOfYears = lichCongTacBusiness.GetListYears(day); var groupOfWeeks = Enumerable.Range(1, 52).Select(w => new SelectListItem() { Value = w.ToString(), Text = "Tuần " + w, Selected = (day.GetWeekNumber() == w) }).ToList(); var groupOfMonths = Enumerable.Range(1, 12).Select(m => new SelectListItem() { Value = m.ToString(), Text = "Tháng " + m, Selected = (day.Month == m) }).ToList(); if (searchModel.calendarType == LICH_CONSTANT.NGAY) { //nếu người dùng tìm kiếm không nhập ngày bắt đầu và kết thúc mặc định lấy của tuần này if (searchModel.startDate == null && searchModel.endDate == null) { searchModel.startDate = day.GetStartDayOfWeek(); searchModel.endDate = day.GetEndDayOfWeek(); } LichCongTacByDayViewModel viewModel = new LichCongTacByDayViewModel(); viewModel.currentUserId = currentUser.ID; viewModel.startDate = searchModel.startDate; viewModel.endDate = searchModel.endDate; viewModel.groupOfYears = groupOfYears; viewModel.title = "Từ " + string.Format("{0:dd/MM/yyyy}", searchModel.startDate) + " đến " + string.Format("{0:dd/MM/yyyy}", searchModel.endDate); viewModel.groupDateEntities = lichCongTacBusiness.GetListLichCongTacs(searchModel) .GroupBy(x => x.NGAY_CONGTAC).OrderBy(x => x.Key) .Select(x => new LichCongTacDateEntity() { title = x.Key.GetNameOfDay() + " (" + x.Key.ToVietnameseDateFormat() + ")", isToday = x.Key.Equals(currentDay), groupOfCalendars = x.OrderBy(y => y.GIO_CONGTAC).ThenBy(y => y.PHUT_CONGTAC).ToList() }).ToList(); return(PartialView("_ListLichCongTacByDayOfWeek", viewModel)); } else if (searchModel.calendarType == LICH_CONSTANT.TUAN) { LichCongTacByWeekViewModel viewModel = new LichCongTacByWeekViewModel(); var startOfWeek = day.GetStartDayOfWeek(); var endOfWeek = day.GetEndDayOfWeek(); viewModel.currentUserId = currentUser.ID; viewModel.canCreate = (userFunction != null && userFunction.DM_THAOTAC_ID > 0); viewModel.title = day.GetNameOfWeek() + " (" + startOfWeek.GetNameOfDay() + ", " + startOfWeek.ToVietnameseDateFormat() + " - " + endOfWeek.GetNameOfDay() + ", " + endOfWeek.ToVietnameseDateFormat() + ")"; viewModel.groupOfYears = groupOfYears; viewModel.groupOfWeeks = groupOfWeeks; searchModel.startDate = startOfWeek; searchModel.endDate = endOfWeek; List <LICHCONGTAC_BO> calendars = lichCongTacBusiness.GetListLichCongTacs(searchModel); //lấy các ngày trong tuần viewModel.groupOfDates = new List <DateTime>(); for (var d = startOfWeek; d <= endOfWeek; d = d.AddDays(1)) { viewModel.groupOfDates.Add(d); } //lấy lịch theo từng khung giờ theo từng ngày viewModel.groupWeekHourEntities = new List <LichCongTacByWeekHourEntity>(); for (int h = 0; h <= 23; h++) { LichCongTacByWeekHourEntity hourEntity = new LichCongTacByWeekHourEntity(); hourEntity.title = h.ToString("D2") + "h"; hourEntity.hour = h; hourEntity.groupDateEntities = new List <LichCongTacDateEntity>(); for (var d = startOfWeek; d <= endOfWeek; d = d.AddDays(1)) { LichCongTacDateEntity hourDateEntity = new LichCongTacDateEntity(); hourDateEntity.date = d; hourDateEntity.groupOfCalendars = new List <LICHCONGTAC_BO>(); hourDateEntity.groupOfCalendars.AddRange(calendars .Where(x => x.NGAY_CONGTAC.Day == d.Day && x.GIO_CONGTAC == h) .OrderBy(x => x.GIO_CONGTAC).ThenBy(x => x.PHUT_CONGTAC).ToList()); hourDateEntity.isToday = (d.Equals(currentDay)); hourEntity.groupDateEntities.Add(hourDateEntity); } viewModel.groupWeekHourEntities.Add(hourEntity); } return(PartialView("_ListLichCongTacByWeek", viewModel)); } else { LichCongTacByMonthViewModel viewModel = new LichCongTacByMonthViewModel(); viewModel.currentUserId = currentUser.ID; viewModel.canCreate = (userFunction != null && userFunction.DM_THAOTAC_ID > 0); viewModel.year = day.Year; viewModel.month = day.Month; viewModel.title = "Tháng " + day.Month + ", năm " + day.Year; viewModel.groupOfYears = groupOfYears; viewModel.groupOfMonths = groupOfMonths; //lấy ngày đầu tiên và cuối cùng trong tháng int lastDayInMonth = DateTime.DaysInMonth(day.Year, day.Month); searchModel.startDate = (new DateTime(day.Year, day.Month, 1)); searchModel.endDate = (new DateTime(day.Year, day.Month, lastDayInMonth)); List <LICHCONGTAC_BO> calendars = lichCongTacBusiness.GetListLichCongTacs(searchModel); List <DateTime> datesOfMonth = Enumerable.Range(1, lastDayInMonth) .Select(x => new DateTime(day.Year, day.Month, x)).ToList(); DateTime defaultDate = new DateTime(1, 1, 1); viewModel.groupWeekEntities = new List <LichCongTacByMonthWeekEntity>(); for (int w = 1; w <= 6; w++) { LichCongTacByMonthWeekEntity weekEntity = new LichCongTacByMonthWeekEntity(); List <DateTime> daysOfWeek = datesOfMonth.Where(x => x.GetWeekOfMonth() == w).ToList(); if (daysOfWeek.Any()) { weekEntity.groupDateEntities = new List <LichCongTacDateEntity>(); for (int d = (int)DayOfWeek.Sunday; d <= (int)DayOfWeek.Saturday; d++) { DateTime weekDay = daysOfWeek.Where(x => (int)x.DayOfWeek == d).FirstOrDefault(); LichCongTacDateEntity dateEntity = new LichCongTacDateEntity(); if (weekDay != defaultDate) { dateEntity.isToday = weekDay.Equals(currentDay); dateEntity.date = weekDay; dateEntity.title = weekDay.Day.ToString(); dateEntity.groupOfCalendars = calendars.Where(x => x.NGAY_CONGTAC.Day == weekDay.Day) .OrderBy(x => x.GIO_CONGTAC) .ThenBy(x => x.PHUT_CONGTAC) .ToList(); } weekEntity.groupDateEntities.Add(dateEntity); } viewModel.groupWeekEntities.Add(weekEntity); } } return(PartialView("_ListLichCongTacByMonth", viewModel)); } }