public WeeklyHoursUI(WeeklyHours model) { Week = model; Mondays.ClosedFieldCaption = model.ClosedFieldCaption; Mondays.ClosedFieldDescription = model.ClosedFieldDescription; Mondays.AdditionalFieldCaption = model.AdditionalFieldCaption; Mondays.AdditionalFieldDescription = model.AdditionalFieldDescription; Tuesdays.ClosedFieldCaption = model.ClosedFieldCaption; Tuesdays.ClosedFieldDescription = model.ClosedFieldDescription; Tuesdays.AdditionalFieldCaption = model.AdditionalFieldCaption; Tuesdays.AdditionalFieldDescription = model.AdditionalFieldDescription; Wednesdays.ClosedFieldCaption = model.ClosedFieldCaption; Wednesdays.ClosedFieldDescription = model.ClosedFieldDescription; Wednesdays.AdditionalFieldCaption = model.AdditionalFieldCaption; Wednesdays.AdditionalFieldDescription = model.AdditionalFieldDescription; Thursdays.ClosedFieldCaption = model.ClosedFieldCaption; Thursdays.ClosedFieldDescription = model.ClosedFieldDescription; Thursdays.AdditionalFieldCaption = model.AdditionalFieldCaption; Thursdays.AdditionalFieldDescription = model.AdditionalFieldDescription; Fridays.ClosedFieldCaption = model.ClosedFieldCaption; Fridays.ClosedFieldDescription = model.ClosedFieldDescription; Fridays.AdditionalFieldCaption = model.AdditionalFieldCaption; Fridays.AdditionalFieldDescription = model.AdditionalFieldDescription; Saturdays.ClosedFieldCaption = model.ClosedFieldCaption; Saturdays.ClosedFieldDescription = model.ClosedFieldDescription; Saturdays.AdditionalFieldCaption = model.AdditionalFieldCaption; Saturdays.AdditionalFieldDescription = model.AdditionalFieldDescription; Sundays.ClosedFieldCaption = model.ClosedFieldCaption; Sundays.ClosedFieldDescription = model.ClosedFieldDescription; Sundays.AdditionalFieldCaption = model.AdditionalFieldCaption; Sundays.AdditionalFieldDescription = model.AdditionalFieldDescription; }
public WeeklyHours SearchWeeklyEmpHours(string EmployeeName, DateTime SearchDate, string ManagerName = "") { WeeklyHours SearchResultWH = new WeeklyHours(); //Search logic return(SearchResultWH); }
public Model() { DateTimeReq = DateTime.UtcNow; DateTimeOpt = DateTime.UtcNow; DateTimeRO = DateTime.UtcNow; DateReq = DateTime.UtcNow; DateOpt = DateTime.UtcNow; DateRO = DateTime.UtcNow; TimeReq = DateTime.UtcNow; TimeOpt = DateTime.UtcNow; TimeRO = DateTime.UtcNow; TimeOfDayReq = new TimeOfDay(9, 0, 0); TimeOfDay = new TimeOfDay(9, 0, 0); TimeOfDayRO = new TimeOfDay(9, 0, 0); TimeSpanRO = new TimeSpan(3, 13, 25, 11, 933); TimeSpanHMSRO = new TimeSpan(0, 13, 25, 11, 933); OpeningHours = new WeeklyHours(); }
public override string ToString() { return(Code + " " + Title + " - " + WeeklyHours.ToString() + (WeeklyHours == 1 ? " hour":" hours") + " per week"); }
public async Task <WeeklyHoursViewModel> GetViewModel(DateTime dt, int pageIndex = 1, int pageSize = 10) { var ci = System.Threading.Thread.CurrentThread.CurrentCulture; try { if (_listCollectionPage == null) { _listCollectionPage = await _reportHoursRepository.GetItemsAsync(dt, pageSize); } // Check to see if a new date is being requested if (_listCollectionPage.QueryDate != dt.ToString("yyyyMM")) { _listCollectionPage = await _reportHoursRepository.GetItemsAsync(dt, pageSize); } if ((pageIndex - _listCollectionPage.CurrentPageIndex) == 1) { // Move next _listCollectionPage = await _reportHoursRepository.GetNextItemsAsync(_listCollectionPage); } else if ((_listCollectionPage.CurrentPageIndex - pageIndex) == 1) { // Move previous _listCollectionPage = await _reportHoursRepository.GetPreviousItemsAsync(_listCollectionPage); } else if (pageIndex > 2) // Increment until we find the correct page. { while (_listCollectionPage.CurrentPageIndex < pageIndex) { _listCollectionPage = await _reportHoursRepository.GetNextItemsAsync(_listCollectionPage); } } // Create the DataTable MyWeeklyHoursDataTableData dataTableData = new MyWeeklyHoursDataTableData(); // This is the WeeklyHoursListData. List <WeeklyHoursListData> weeklyHrsListData = new List <WeeklyHoursListData>(); // Get an array tagging each item of the month with the Week number int[] dateWeekNumber = this.GetDayOfMonthWeekAssignmentArray(dt); var myWeekNumber = dateWeekNumber[dt.Day - 1]; var weeklyHrsList = new List <WeeklyHours>(); //var items = await this._reportHoursRepository.GetItemsAsync(dt); // Group Report hours by individual User data using DisplayName var monthDate = from item in _listCollectionPage.DataList group item by item.Fields.DisplayName into data select data; DateTime weekStartDate = dt; DateTime weekEndDate = weekStartDate; while (weekEndDate.DayOfWeek != DayOfWeek.Saturday) { weekEndDate = weekEndDate.AddDays(1); } //var groupings = monthDate.ToList().Where(k => DateTime.ParseExact(k.Contains, "yyyyMMdd", ci).Date >= LweekStEndDt["weekStDate"].Date && DateTime.ParseExact(k.Fields.Date, "yyyyMMdd", ci).Date <= LweekStEndDt["weekEndDate"].Date); // Process the data for each user foreach (var grouping in monthDate) { var thisGrouping = new WeeklyHoursListData(); int SundayMins = 0; int SundayHours = 0; int MondayMins = 0; int MondayHours = 0; int TuesdayMins = 0; int TuesdayHours = 0; int WednesdayMins = 0; int WednesdayHours = 0; int ThursdayMins = 0; int ThursdayHours = 0; int FridayMins = 0; int FridayHours = 0; int SaturdayMins = 0; int SaturdayHours = 0; var weekTotalMns = 0; var TotalMins = 0; var weekTotalHrs = 0; var TotalHours = 0; var weeklyHrs = new WeeklyHours(); var thisWeekData = grouping.Where(k => DateTime.ParseExact(k.Fields.Date, "yyyyMMdd", ci).Date >= weekStartDate.Date && DateTime.ParseExact(k.Fields.Date, "yyyyMMdd", ci).Date <= weekEndDate.Date); //var resultLastWeek = grouping.Where(k => DateTime.ParseExact(k.Fields.Date, "yyyyMMdd", ci).Date >= weekStartDate.Date && DateTime.ParseExact(k.Fields.Date, "yyyyMMdd", ci).Date <= LweekStEndDt["weekEndDate"].Date); //Add the computed object(for each employee) to the list of weekly hours for the HR weeklyHrsList.Add(weeklyHrs); weeklyHrs.EmpName = grouping.Key; //foreach (var item in grouping) foreach (var item in thisWeekData) { thisGrouping.ENm = item.Fields.DisplayName.ToString(); thisGrouping.MNm = item.Fields.ManagerDisplayName.ToString(); Dictionary <string, short> hrsMins = new Dictionary <string, short>(); //call to get Final hours for ReportHours Repository data hrsMins = HoursComputeHelper.GetFinalHrsMins(item); var totalHours = hrsMins["FinalTotalHrs"]; var totalMins = hrsMins["FinalTotalMins"]; if (weeklyHrs.MgrName == null) { weeklyHrs.MgrName = item.Fields.ManagerDisplayName; } var itemDate = DateTime.ParseExact(item.Fields.Date, "yyyyMMdd", ci); //var theWeekNumber = dateWeekNumber[itemDate.Day - 1]; //if (dateWeekNumber[itemDate.Day - 1] == myWeekNumber) //{ switch (itemDate.DayOfWeek) { case System.DayOfWeek.Sunday: weeklyHrs.SundayHours += totalHours; weeklyHrs.SundayMins += totalMins; break; case System.DayOfWeek.Monday: weeklyHrs.MondayHours += totalHours; weeklyHrs.MondayMins += totalMins; break; case System.DayOfWeek.Tuesday: weeklyHrs.TuesdayHours += totalHours; weeklyHrs.TuesdayMins += totalMins; break; case System.DayOfWeek.Wednesday: weeklyHrs.WednesdayHours += totalHours; weeklyHrs.WednesdayMins += totalMins; break; case System.DayOfWeek.Thursday: weeklyHrs.ThursdayHours += totalHours; weeklyHrs.ThursdayMins += totalMins; break; case System.DayOfWeek.Friday: weeklyHrs.FridayHours += totalHours; weeklyHrs.FridayMins += totalMins; break; default: weeklyHrs.SaturdayHours += totalHours; weeklyHrs.SaturdayMins += totalMins; break; } SundayMins = (short)(weeklyHrs.SundayMins % 60); SundayHours = (short)(weeklyHrs.SundayHours + (weeklyHrs.SundayMins / 60)); MondayMins = (short)(weeklyHrs.MondayMins % 60); MondayHours = (short)(weeklyHrs.MondayHours + (weeklyHrs.MondayMins / 60)); TuesdayMins = (short)(weeklyHrs.TuesdayMins % 60); TuesdayHours = (short)(weeklyHrs.TuesdayHours + (weeklyHrs.TuesdayMins / 60)); WednesdayMins = (short)(weeklyHrs.WednesdayMins % 60); WednesdayHours = (short)(weeklyHrs.WednesdayHours + (weeklyHrs.WednesdayMins / 60)); ThursdayMins = (short)(weeklyHrs.ThursdayMins % 60); ThursdayHours = (short)(weeklyHrs.ThursdayHours + (weeklyHrs.ThursdayMins / 60)); FridayMins = (short)(weeklyHrs.FridayMins % 60); FridayHours = (short)(weeklyHrs.FridayHours + (weeklyHrs.FridayMins / 60)); SaturdayMins = (short)(weeklyHrs.SaturdayMins % 60); SaturdayHours = (short)(weeklyHrs.SaturdayHours + (weeklyHrs.SaturdayMins / 60)); weekTotalMns = (SundayMins + MondayMins + TuesdayMins + WednesdayMins + ThursdayMins + FridayMins + SaturdayMins) % 60; TotalMins = (short)weekTotalMns; weekTotalHrs = (SundayHours + MondayHours + TuesdayHours + WednesdayHours + ThursdayHours + FridayHours + SaturdayHours) + (weekTotalMns / 60); TotalHours = (short)weekTotalHrs; // This is what the view needs. } // end for each grouping. var weeklySundayHrMns = SundayHours + "h " + SundayMins + "m"; var weeklyMondayHrMns = MondayHours + "h " + MondayMins + "m"; var weeklyTuesdayHrMns = TuesdayHours + "h " + TuesdayMins + "m"; var weeklyWednesdayHrMns = WednesdayHours + "h " + WednesdayMins + "m"; var weeklyThursdayHrMns = ThursdayHours + "h " + ThursdayMins + "m"; var weeklyFridayHrMns = FridayHours + "h " + FridayMins + "m"; var weeklySaturdayHrMns = SaturdayHours + "h " + SaturdayMins + "m"; var weeklylyTotalHrMns = TotalHours + "h " + TotalMins + "m"; thisGrouping.suHM = weeklySundayHrMns.ToString(); thisGrouping.MonHM = weeklyMondayHrMns.ToString(); thisGrouping.TuHM = weeklyTuesdayHrMns.ToString(); thisGrouping.weHM = weeklyWednesdayHrMns.ToString(); thisGrouping.ThHM = weeklyThursdayHrMns.ToString(); thisGrouping.frHM = weeklyFridayHrMns.ToString(); thisGrouping.SaHM = weeklySaturdayHrMns.ToString(); thisGrouping.TotHM = weeklylyTotalHrMns.ToString(); //Add the computed object(for each employee) to the list of monthly hours for the HR weeklyHrsListData.Add(thisGrouping); SundayMins = 0; SundayHours = 0; MondayMins = 0; MondayHours = 0; TuesdayMins = 0; TuesdayHours = 0; WednesdayMins = 0; WednesdayHours = 0; ThursdayMins = 0; ThursdayHours = 0; FridayMins = 0; FridayHours = 0; SaturdayMins = 0; SaturdayHours = 0; weekTotalMns = 0; TotalMins = 0; weekTotalHrs = 0; TotalHours = 0; } //dataTableData.draw = draw; dataTableData.recordsTotal = (pageIndex * pageSize) + weeklyHrsListData.Count + 1; int recordsFiltered = (pageIndex * pageSize) + weeklyHrsListData.Count + 1; dataTableData.recordsFiltered = recordsFiltered; dataTableData.data = weeklyHrsListData; var weeklyHoursViewModel = new WeeklyHoursViewModel { MyWeeklyHoursDataTableData = dataTableData, PaginationInfo = new PaginationInfoViewModel { CurrentPage = pageIndex, PageSize = pageSize, Next = "is-disabled", Previous = "is-disabled" } }; return(weeklyHoursViewModel); } catch (Exception ex) { _logger.LogError("Error getting the weekly hours view model: " + ex.Message); return(new WeeklyHoursViewModel()); } }
public async Task <WeeklyHoursViewModel> GetWeeklyReportHours(DateTime dt, int pageIndex, int pageSize = 10) { var ci = System.Threading.Thread.CurrentThread.CurrentCulture; // Get an array tagging each item of the month with the Week number int[] dateWeekNumber = this.GetDayOfMonthWeekAssignmentArray(dt); var myWeekNumber = dateWeekNumber[dt.Day - 1]; var weeklyHrsList = new List <WeeklyHours>(); //var items = await this._reportHoursRepository.GetItemsAsync(dt); // Group Report hours by individual User data using DisplayName var groupings = from item in _listCollectionPage.DataList group item by item.Fields.DisplayName into data select data; // Process the data for each user foreach (var grouping in groupings) { var weeklyHrs = new WeeklyHours(); //Add the computed object(for each employee) to the list of weekly hours for the HR weeklyHrsList.Add(weeklyHrs); weeklyHrs.EmpName = grouping.Key; foreach (var item in grouping) { Dictionary <string, short> hrsMins = new Dictionary <string, short>(); //call to get Final hours for ReportHours Repository data hrsMins = HoursComputeHelper.GetFinalHrsMins(item); var totalHours = hrsMins["FinalTotalHrs"]; var totalMins = hrsMins["FinalTotalMins"]; if (weeklyHrs.MgrName == null) { weeklyHrs.MgrName = item.Fields.ManagerDisplayName; } var itemDate = DateTime.ParseExact(item.Fields.Date, "yyyyMMdd", ci); var theWeekNumber = dateWeekNumber[itemDate.Day - 1]; if (dateWeekNumber[itemDate.Day - 1] == myWeekNumber) { switch (itemDate.DayOfWeek) { case System.DayOfWeek.Sunday: weeklyHrs.SundayHours += totalHours; weeklyHrs.SundayMins += totalMins; break; case System.DayOfWeek.Monday: weeklyHrs.MondayHours += totalHours; weeklyHrs.MondayMins += totalMins; break; case System.DayOfWeek.Tuesday: weeklyHrs.TuesdayHours += totalHours; weeklyHrs.TuesdayMins += totalMins; break; case System.DayOfWeek.Wednesday: weeklyHrs.WednesdayHours += totalHours; weeklyHrs.WednesdayMins += totalMins; break; case System.DayOfWeek.Thursday: weeklyHrs.ThursdayHours += totalHours; weeklyHrs.ThursdayMins += totalMins; break; case System.DayOfWeek.Friday: weeklyHrs.FridayHours += totalHours; weeklyHrs.FridayMins += totalMins; break; default: weeklyHrs.SaturdayHours += totalHours; weeklyHrs.SaturdayMins += totalMins; break; } } } } return(new WeeklyHoursViewModel() { WeeklyHrs = weeklyHrsList }); }
/* * public async Task<IActionResult> Weekly(string dt) * { * if (User.Identity.IsAuthenticated) * { * // Get UserProfile details * _userProfile = await _dataServiceClient.GetUserProfile(User, HttpContext); * ViewData["Email"] = _userProfile.Fields.Upn; * ViewData["IsManager"] = _userProfile.Fields.IsManager; * ViewData["IsHr"] = _userProfile.Fields.IsHr; * ViewData["IsAdmin"] = _userProfile.Fields.IsAdmin; * ViewData["UserImage"] = _userProfile.Fields.UserPicture; * * DateTime selDt = DateTime.Now.AddDays(-DateTime.Now.Day); * if (dt != null) * { * selDt = Convert.ToDateTime(dt.ToString()); * } * * * var viewModel = await _dataServiceClient.GetWeeklyReportHours( * User, * HttpContext, * selDt); * viewModel.ComputeTotalHrs(); * viewModel.SelectedDate = selDt; * return View(viewModel); * } * else * { * ErrorViewModel EVM = new ErrorViewModel(); * * return View(EVM); * } * } */ //public async Task<IActionResult> Weekly(string dt) public async Task <IActionResult> Weekly(string selMonthDt, string empNameFilter = default(string), int pageId = 0, int pageSize = 10, ListCollectionPage <ReportHours> reportHours = null, int status = 0) { var ci = System.Threading.Thread.CurrentThread.CurrentCulture; if (User.Identity.IsAuthenticated) { // Get UserProfile details if (_userProfile == null) { _userProfile = await _userProfileRepository.GetItemAsync(); } ViewData["Email"] = _userProfile.Fields.Upn; ViewData["IsManager"] = _userProfile.Fields.IsManager; ViewData["IsHr"] = _userProfile.Fields.IsHr; ViewData["IsAdmin"] = _userProfile.Fields.IsAdmin; ViewData["UserImage"] = _userProfile.Fields.UserPicture; DateTime selDt = DateTime.Now.AddDays(-DateTime.Now.Day); int startDay = (int)selDt.DayOfWeek; int dayOfMonth = (int)selDt.Day; while ((startDay > 0) && (dayOfMonth > 1)) { selDt = selDt.AddDays(-1); startDay--; dayOfMonth--; } if (selMonthDt != null) { selDt = Convert.ToDateTime(selMonthDt.ToString()); startDay = (int)selDt.DayOfWeek; dayOfMonth = (int)selDt.Day; while ((startDay > 0) && (dayOfMonth > 1)) { selDt = selDt.AddDays(-1); startDay--; dayOfMonth--; } } //DateTime date = Convert.ToDateTime(selMonthDt); // Get an array tagging each item of the month with the Week number int[] dateWeekNumber = _dataServiceClient.GetDayOfMonthWeekAssignmentArray(selDt); // Get an array tagging each item of the month with the Week number var myWeekNumber = dateWeekNumber[selDt.Day - 1]; var weeklyHrsList = new List <WeeklyHours>(); WeeklyHoursViewModel weeklyViewModel = new WeeklyHoursViewModel(); ListCollectionPage <ReportHours> weeklyTemp = null; //if (Request.Query.Count != 0) //{ //var json = Request.Query["reportHours"]; //weeklyTemp = JsonConvert.DeserializeObject<ListCollectionPage<ReportHours>>(json); //} if (status == 0) { reportHours = await _dataServiceClient.GetWeeklyPageView(selDt, empNameFilter, pageId, pageSize, null, 0); } else if (status == 1) { reportHours = await _dataServiceClient.GetWeeklyPageView(selDt, empNameFilter, pageId, pageSize, reportHours, 1); } else if (status == 2) { reportHours = await _dataServiceClient.GetWeeklyPageView(selDt, empNameFilter, pageId, pageSize, reportHours, 2); } /* * if (teamHours == null) * { * myTeamsHoursViewModel.UserInfo = _userProfile; * return View(myTeamsHoursViewModel); * } */ ViewData["ReportHoursCollection"] = reportHours; IList <ReportHours> reportHoursList = reportHours.DataList; // Group Monthly Report hours by individual User data using DisplayName var groupings = from item in reportHoursList group item by item.Fields.DisplayName into data select data; // Process the data for each user foreach (var grouping in groupings) { var weeklyHrs = new WeeklyHours(); //Add the computed object(for each employee) to the list of weekly hours for the HR weeklyHrsList.Add(weeklyHrs); weeklyHrs.EmpName = grouping.Key; foreach (var item in grouping) { Dictionary <string, short> hrsMins = new Dictionary <string, short>(); //call to get Final hours for ReportHours Repository data hrsMins = HoursComputeHelper.GetFinalHrsMins(item); var totalHours = hrsMins["FinalTotalHrs"]; var totalMins = hrsMins["FinalTotalMins"]; if (weeklyHrs.MgrName == null) { weeklyHrs.MgrName = item.Fields.ManagerDisplayName; } var itemDate = DateTime.ParseExact(item.Fields.Date, "yyyyMMdd", ci); var theWeekNumber = dateWeekNumber[itemDate.Day - 1]; if (dateWeekNumber[itemDate.Day - 1] == myWeekNumber) { switch (itemDate.DayOfWeek) { case System.DayOfWeek.Saturday: weeklyHrs.SundayHours += totalHours; weeklyHrs.SundayMins += totalMins; break; case System.DayOfWeek.Monday: weeklyHrs.MondayHours += totalHours; weeklyHrs.MondayMins += totalMins; break; case System.DayOfWeek.Tuesday: weeklyHrs.TuesdayHours += totalHours; weeklyHrs.TuesdayMins += totalMins; break; case System.DayOfWeek.Wednesday: weeklyHrs.WednesdayHours += totalHours; weeklyHrs.WednesdayMins += totalMins; break; case System.DayOfWeek.Thursday: weeklyHrs.ThursdayHours += totalHours; weeklyHrs.ThursdayMins += totalMins; break; case System.DayOfWeek.Friday: weeklyHrs.FridayHours += totalHours; weeklyHrs.FridayMins += totalMins; break; default: weeklyHrs.SaturdayHours += totalHours; weeklyHrs.SaturdayMins += totalMins; break; } } } } if (selMonthDt == null) { weeklyViewModel.SelectedDate = fnGetLastMonthLastWeekSunDate(); // Start on Sunday. } else { weeklyViewModel.SelectedDate = selDt; } //weeklyViewModel.u = _userProfile; //WeeklyHrs = weeklyHrsList; weeklyViewModel.WeeklyHrs = weeklyHrsList; return(View(weeklyViewModel)); } else { ErrorViewModel EVM = new ErrorViewModel(); return(View(EVM)); } }