public ActionResult TimesheetAuthorized(int ResourcesID) { if (TempData["TimeSerachBO"] != null || Request.IsAjaxRequest()) { TimeSheetView timeSheetView1 = new TimeSheetView(); TimeSearchBO TsearchBO = TempData["TimeSerachBO"] as TimeSearchBO; timeSheetView1.timeSheetBBO = timeSheetBL.GetfilterTimeSheet(TsearchBO).Where(x => x.ResourcesID == ResourcesID).SingleOrDefault(); timeSheetView1.timeSheetBBO.MonthID = TsearchBO.MonthID; timeSheetView1.timeSheetBBO.Year = TsearchBO.Year; return(Json(new { success = true, partialview = RenderViewToString("_TimeSheetAuthorized", timeSheetView1.timeSheetBBO), message = "" })); } return(RedirectToAction("TimeSheet")); }
public ActionResult SearchTimeSheet(TimeSearchBO TsearchBO, string ButtonType) { TimeSheetView timeSheetView1 = new TimeSheetView(); timeSheetView1.TsearchBBO = TsearchBO; timeSheetView1.timeSheetView = timeSheetBL.GetfilterTimeSheet(TsearchBO); TempData["TimeSerachBO"] = TsearchBO; if (ButtonType == "Search") { return(PartialView("_TimeSheetView", timeSheetView1.timeSheetView)); } else { viewBagList(); timeSheetView1.graphID = 123; return(PartialView("_GraphView", timeSheetView1.timeSheetView)); } }
//Take a Value from controller & filter the Timesheet List public IEnumerable <TimeSheetBO> GetfilterTimeSheet(TimeSearchBO TsearchBO) { var filterTimeSheetList = getTimeListSample(TsearchBO); if (TsearchBO != null && TsearchBO.ResourcesID != null && TsearchBO.StatusID == null) { return(filterTimeSheetList.Where(x => (x.ResourcesID.Equals(TsearchBO.ResourcesID)))); } if (TsearchBO != null && TsearchBO.ResourcesID == null && TsearchBO.StatusID != null) { return(filterTimeSheetList.Where(x => (x.StatusID.Equals(TsearchBO.StatusID)))); } if (TsearchBO != null && TsearchBO.ResourcesID != null && TsearchBO.StatusID != null) { return(filterTimeSheetList.Where(x => (x.StatusID.Equals(TsearchBO.StatusID) && x.ResourcesID.Equals(TsearchBO.ResourcesID)))); } return(filterTimeSheetList); }
//Get Timesheet List using Filter Options public List <TimeSheetBO> getTimeListSample(TimeSearchBO tsearchBO) { int Intyear = int.Parse(tsearchBO.Year); var MonthLastDate = DateTime.DaysInMonth(Intyear, tsearchBO.MonthID); List <int> MonthDateList = Enumerable.Range(1, MonthLastDate).ToList(); var StrMonthDateList = MonthDateList.ConvertAll(x => x.ToString()); var DBDatedethLine = from fq in db.Common_TimeSheetFrequency where (fq.TimeSheetFrequencyID == 1)select(fq.TimeSheetFrequencyDeadline); string xxx = DBDatedethLine.SingleOrDefault(); int dethLine = int.Parse(xxx); //define a Death date for TimeSheet int DBdethLine; if (MonthDateList.Contains(dethLine)) { DBdethLine = dethLine; } else { DBdethLine = MonthDateList.LastOrDefault(); } int yy = int.Parse(tsearchBO.Year); int mm = tsearchBO.MonthID; int dd = DBdethLine; DateTime dtDethTime = new DateTime(yy, mm, dd); DateTime dtDethTime2 = dtDethTime.AddMonths(-1); int daysInMonth = DateTime.DaysInMonth(yy, mm); int daysInMonth2 = DateTime.DaysInMonth(yy, mm - 1); int DateGaps = (dtDethTime - dtDethTime2).Days; var timeSheetList = (from shift in db.Resource_ShiftSchedule join rs in db.Resource_Employee on shift.EmployeeID equals rs.EmployeeID join ts in db.Resource_TimeSheet.Where(x => x.TimeSheetDate > dtDethTime2 && x.TimeSheetDate <= dtDethTime) on rs.EmployeeID equals ts.ResourceID into authorised from ts in authorised.DefaultIfEmpty() where ((shift.ShiftDate >= dtDethTime2 && shift.ShiftDate < dtDethTime) && shift.ActualOffTime != null) select new TimeSheetBO() { ResourcesID = rs.EmployeeID, ResourcesName = rs.FirstName, FrequencyID = rs.TimeSheetFrequencyID, TimeSheetFrequency = rs.Common_TimeSheetFrequency.TimeSheetFrequencyName, PaymentValueList = db.Resource_EmployeePayment.Where(x => x.EmployeeID == rs.EmployeeID && ((x.StartDate <= dtDethTime2 && x.EndDate >= dtDethTime2) || (x.StartDate <dtDethTime && x.EndDate> dtDethTime) || (x.StartDate >= dtDethTime2 && x.EndDate < dtDethTime) || (x.StartDate < dtDethTime && x.EndDate == null))) .Select(x => new TimeSheetPayment() { PEmpID = rs.EmployeeID, PEmpName = rs.FirstName, Payment = x.PaymentAmount, PstartDate = x.StartDate, PendDate = x.EndDate, Pfrequency = x.Common_PaymentType.PaymentTypeID, }).OrderBy(x => x.PstartDate), PaymentList = db.Resource_TimeSheet.Where(x => x.ResourceID == rs.EmployeeID && x.TimeSheetDate > dtDethTime2 && x.TimeSheetDate <= dtDethTime && x.TimeSheetAuthorizationDate != null).Select(x => x.Payment).ToList(), Payment = ts.Payment, dtDethTime1 = dtDethTime, dtDethTime2 = dtDethTime2, ListOFShift = db.Resource_ShiftSchedule.Where(x => x.EmployeeID == rs.EmployeeID && x.ShiftDate != null && (dtDethTime2 <= x.ShiftDate) && (dtDethTime > x.ShiftDate)).Select(x => x.ShiftDate).ToList(), NoOFShift = db.Resource_ShiftSchedule.Where(x => x.EmployeeID == rs.EmployeeID && x.ShiftDate != null && (dtDethTime2 <= x.ShiftDate) && (dtDethTime > x.ShiftDate)).Select(x => x.ShiftDate).Count(), ListOFTolHoliday = db.Resource_Holiday.Where(x => x.ResourceID == rs.EmployeeID && x.HolidayDate != null && (dtDethTime2 <= x.HolidayDate) && (dtDethTime > x.HolidayDate)).Select(x => x.HolidayDate).Distinct().ToList(), TolHly = db.Resource_Holiday.Where(x => x.ResourceID == rs.EmployeeID && x.HolidayDate != null && (dtDethTime2 <= x.HolidayDate) && (dtDethTime > x.HolidayDate)).Distinct().Count(), ListTolShiftHrs = db.Resource_ShiftSchedule.Where(x => x.EmployeeID == rs.EmployeeID && x.ShiftDate != null && (dtDethTime2 <= x.ShiftDate) && (dtDethTime > x.ShiftDate)).Select(x => x.Resource_ShiftPattern.Duration).ToList(), TolHlyHours = db.Resource_Holiday.Where(x => x.ResourceID == rs.EmployeeID && x.HolidayDate != null && (dtDethTime2 <= x.HolidayDate) && (dtDethTime > x.HolidayDate)).Sum(x => (x.BookingHrs * 60)), ListOFTolHolidayHours = db.Resource_Holiday.Where(x => x.ResourceID == rs.EmployeeID && x.HolidayDate != null && (dtDethTime2 <= x.HolidayDate) && (dtDethTime > x.HolidayDate)).Select(x => x.BookingHrs).ToList(), holidayPattern = db.Resource_Holiday.Where(x => x.ResourceID == rs.EmployeeID && x.HolidayDate != null && (dtDethTime2 <= x.HolidayDate) && (dtDethTime > x.HolidayDate)) .Select(x => new TimeSheetHolidayPattern { HolidayDate = x.HolidayDate, HolidayType = x.Resource_Holiday_Type.HolidayTypeName, Authorized = "", Comment = "", HolidayHours = x.BookingHrs }).ToList(), shiftPattern = db.Resource_ShiftSchedule.Where(x => x.EmployeeID == rs.EmployeeID && x.ShiftDate != null && (dtDethTime2 <= x.ShiftDate) && (dtDethTime > x.ShiftDate)) .Select(x => new TimeSheetShiftPattern { ShiftDate = x.ShiftDate, ShiftStartTime = x.Resource_ShiftPattern.ShiftStartTime, Duration = x.Resource_ShiftPattern.Duration, Description = x.Resource_ShiftPattern.Description }).ToList(), TolShiftHrs = db.Resource_ShiftSchedule.Where(x => x.EmployeeID == rs.EmployeeID && x.ShiftDate != null && (dtDethTime2 <= x.ShiftDate) && (dtDethTime > x.ShiftDate)).Sum(x => x.Resource_ShiftPattern.Duration), dethLine = DBdethLine, TimeSheetDate = ts.TimeSheetDate, TimesheetID = ts.TimeSheetID, locked = ts.LockedDateTime != null ? "Yes" : "No", LockedBy = ts.LockedBy, LockedDateTime = ts.LockedDateTime, Status = ts.TimeSheetAuthorizationDate != null ? "Authorized" : "UnAuthorized", // Authorized,UnAuthorized StatusDate = ts.TimeSheetAuthorizationDate, StatusID = ts.TimeSheetAuthorizationDate != null ? 2 : 4, }).GroupBy(p => p.ResourcesID).Select(grp => grp.FirstOrDefault()).ToList(); return(timeSheetList.Where(x => x.dtDethTime1 <= DateTime.Now).ToList()); }