Example #1
0
        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"));
        }
Example #2
0
        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));
            }
        }
Example #3
0
        //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);
        }
Example #4
0
        //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());
        }