public ModelSOTEmpList GetEmpPending(ViewUserEmp LoggedInUser, int?PayrollPeriodID, int DeptID) { // Varibale Initilization ModelSOTEmpList vm = new ModelSOTEmpList(); List <short?> deptIds = new List <short?>(); List <short?> divIds = new List <short?>(); List <int?> empIds = new List <int?>(); List <EmpView> totalEmps = new List <EmpView>(); List <EmpView> emps = new List <EmpView>(); List <PR_PayrollPeriod> activePeriods = new List <PR_PayrollPeriod>(); List <int?> activePeriodIds = new List <int?>(); PR_PayrollPeriod prp = new PR_PayrollPeriod(); int SelectedPeriodID = 0; List <ViewDailyOTEntry> otList = new List <ViewDailyOTEntry>(); deptIds.Add((short)DeptID); divIds = OTHelperManager.GetDivisionIDs(deptIds, db.HR_Section.ToList()); totalEmps = db.EmpViews.Where(aa => aa.Status == "Active").ToList(); // Get Payroll Period SelectedPeriodID = Convert.ToInt32(Session["PRID"].ToString()); if (PayrollPeriodID == null) { PayrollPeriodID = SelectedPeriodID; } else { Session["PRID"] = PayrollPeriodID.ToString(); } activePeriodIds = db.ViewDailyOTEntries.Where(aa => (aa.SupervisorID == LoggedInUser.EmployeeID && aa.StatusID == "P") || (aa.StatusID == "F" && aa.ForwardToID == LoggedInUser.EmployeeID)).Select(aa => aa.PeriodID).Distinct().ToList(); activePeriods = OTHelperManager.GetActivePeriods(db.PR_PayrollPeriod.ToList(), activePeriodIds); prp = OTHelperManager.GetPayrollPeriod(activePeriods, (int)PayrollPeriodID); empIds = db.ViewDailyOTEntries.Where(aa => aa.OTDate >= prp.PStartDate && aa.OTDate <= prp.PEndDate && aa.SecID == DeptID && ((aa.SupervisorID == LoggedInUser.EmployeeID && aa.StatusID == "P") || (aa.StatusID == "F" && aa.ForwardToID == LoggedInUser.EmployeeID))).Select(aa => aa.EmployeeID).Distinct().ToList(); emps = OTHelperManager.GetEmployeeConvertedFromIds(empIds, totalEmps); otList = db.ViewDailyOTEntries.Where(aa => aa.OTDate >= prp.PStartDate && aa.OTDate <= prp.PEndDate && aa.SecID == DeptID && ((aa.SupervisorID == LoggedInUser.EmployeeID && aa.StatusID == "P") || (aa.StatusID == "F" && aa.ForwardToID == LoggedInUser.EmployeeID))).ToList(); vm.DeptID = (int)DeptID; if (prp.FinYearID != null) { vm.DivRemainingBudget = OTHelperManager.GetDivRemainingBudget(divIds, db.BG_OTDivision.ToList(), (int)prp.FinYearID); } vm.List = OTHelperRecommended.GetConvertedOTListEmp(otList, emps); //if (DateTime.Today > prp.SupervisorCutOffDate) // vm.IsLate = true; //else vm.IsLate = false; if (vm.List.Count() > 1) { vm.TotalOTAmount = vm.List.Sum(aa => aa.OTAmount); vm.SystemOT = OTHelperManager.ConverMinIntoHours(vm.List.Sum(aa => aa.SystemOTMins)); vm.ClaimedOT = OTHelperManager.ConverMinIntoHours(vm.List.Sum(aa => aa.ClaimedOTMins)); vm.TotalEmps = vm.List.Count().ToString(); } vm.Count = vm.List.Count; ViewBag.DecisionID = new SelectList(OTHelperManager.GetOTStatusForApprover(db.Att_OTStatus.ToList()), "PSID", "StatusName", "F"); ViewBag.RecommendID = new SelectList(OTHelperManager.GetUsersForRecommender(db.ViewUserEmps.Where(aa => aa.EmpStatus == "Active").ToList()), "UserID", "FullName"); ViewBag.PayrollPeriodID = new SelectList(activePeriods, "PID", "PName", PayrollPeriodID); return(vm); }
public ActionResult HAOTDeptList(int?PayrollPeriodID) { ViewUserEmp LoggedInUser = Session["LoggedUser"] as ViewUserEmp; List <short?> deptIds = new List <short?>(); List <short?> divIds = new List <short?>(); List <int?> empIds = new List <int?>(); List <EmpView> totalEmps = new List <EmpView>(); List <EmpView> emps = new List <EmpView>(); List <PR_PayrollPeriod> activePeriods = new List <PR_PayrollPeriod>(); List <int?> activePeriodIds = new List <int?>(); int SelectedPeriodID = 0; List <ViewDailyOTEntry> otList = new List <ViewDailyOTEntry>(); PR_PayrollPeriod prp = new PR_PayrollPeriod(); ModelRDeptPending vm = new ModelRDeptPending(); totalEmps = db.EmpViews.Where(aa => aa.Status == "Active").ToList(); if (LoggedInUser.UserType != "H" && LoggedInUser.UserType != "A") { totalEmps = OTHelperManager.GetEmployees(totalEmps, LoggedInUser); } SelectedPeriodID = Convert.ToInt32(Session["PRID"].ToString()); if (PayrollPeriodID == null) { PayrollPeriodID = SelectedPeriodID; } else { Session["PRID"] = PayrollPeriodID.ToString(); } //activePeriodIds = db.ViewDailyOTEntries.Where(aa => ((aa.SupervisorID == LoggedInUser.EmployeeID && aa.StatusID == "P") || (aa.StatusID == "F" && aa.ForwardToID == LoggedInUser.EmployeeID))).Select(aa => aa.PeriodID).Distinct().ToList(); //activePeriods = OTHelperManager.GetActivePeriods(db.PR_PayrollPeriod.ToList(), activePeriodIds); prp = OTHelperManager.GetPayrollPeriod(db.PR_PayrollPeriod.ToList(), (int)PayrollPeriodID); empIds = db.ViewDailyOTEntries.Where(aa => aa.OTProcessingPeriodID == prp.PID && aa.StatusID == "A").Select(aa => aa.EmployeeID).Distinct().ToList(); emps = OTHelperManager.GetEmployeeConvertedFromIds(empIds, totalEmps); deptIds = OTHelperManager.GetDeptIDs(emps); divIds = OTHelperManager.GetDivisionIDs(deptIds, db.HR_Section.ToList()); if (deptIds.Count == 1) { return(RedirectToAction("HAOTEmpList", new { DeptID = deptIds.First(), PayrollPeriodID = prp.PID })); } else { otList = db.ViewDailyOTEntries.Where(aa => aa.OTProcessingPeriodID == prp.PID && aa.StatusID == "A").ToList(); vm.List = OTHelperRecommended.GetConvertedOTListDepts(otList, emps, deptIds); vm.Count = vm.List.Count; vm.PayrollPeriodID = (int)PayrollPeriodID; if (prp.FinYearID != null) { vm.DivRemainingBudget = OTHelperManager.GetDivRemainingBudget(divIds, db.BG_OTDivision.ToList(), (int)prp.FinYearID); } vm.TotalOTAmount = OTHelperManager.GetTotalOTAmount(vm.List); ViewBag.PayrollPeriodID = new SelectList(activePeriods, "PID", "PName", PayrollPeriodID); ViewBag.DecisionID = new SelectList(OTHelperManager.GetOTStatusForSupervisor(db.Att_OTStatus.ToList()), "PSID", "StatusName", "F"); //ViewBag.RecommendID = new SelectList(OTHelperManager.GetUsersForSupervisor(db.ViewUserEmps.Where(aa => aa.EmpStatus == "Active" && aa.UserType == "R" && aa.sec).ToList()), "UserID", "FullName"); vm.Message = new List <string>(); return(View(vm)); } }
public ModelSOTPEmpDetail GetDetailPending(int prid, int EmpID, ViewUserEmp LoggedInUser) { ModelSOTPEmpDetail vm = new ModelSOTPEmpDetail(); PR_PayrollPeriod prp = OTHelperManager.GetPayrollPeriod(db.PR_PayrollPeriod.ToList(), prid); HR_Employee emp = db.HR_Employee.First(aa => aa.EmployeeID == EmpID); //if (DateTime.Today > prp.SupervisorCutOffDate) // vm.IsLate = true; //else vm.IsLate = false; vm.EmpID = (int)EmpID; vm.EmpName = emp.FullName; vm.DeptID = (int)emp.SectionID; vm.List = OTHelperRecommended.GetConvertedDailyOTList(db.ViewDailyOTEntries.Where(aa => aa.EmployeeID == vm.EmpID && aa.OTDate >= prp.PStartDate && aa.OTDate <= prp.PEndDate).ToList()); if (vm.List.Count > 0) { vm.SystemOT = OTHelperManager.ConverMinIntoHours(vm.List.Sum(aa => aa.SystemOTMins)); vm.ClaimedOT = OTHelperManager.ConverMinIntoHours(vm.List.Sum(aa => aa.ClaimedOTMins)); vm.TotalDays = vm.List.Count(); vm.TotalAmount = vm.List.Sum(aa => aa.OTAmount); } vm.DivRemainingBudget = OTHelperManager.GetDivRemainingBudget(OTHelperManager.GetDivisionIDs(OTHelperManager.ConvertDeptIDList(emp.SectionID), db.HR_Section.ToList()), db.BG_OTDivision.ToList(), (int)prp.FinYearID); vm.PeriodName = prp.PName; vm.PeriodID = prp.PID; vm.OTPolicy = "OT Days Forward Policy: Maximum Days in Week = " + emp.Att_OTPolicy.DaysInWeek.ToString() + " , Maximum Days in Month = " + emp.Att_OTPolicy.DaysInMonth.ToString(); vm.OTPolicyDays = "OT Claimed Hours Policy: Normal Day= " + OTHelperManager.ConverMinIntoHours((int)emp.Att_OTPolicy.PerDayOTStartLimitHour) + " to " + OTHelperManager.ConverMinIntoHours((int)emp.Att_OTPolicy.PerDayOTEndLimitHour) + ", Rest & GZ Day= " + OTHelperManager.ConverMinIntoHours((int)emp.Att_OTPolicy.PerDayGOTStartLimitHour) + " to " + OTHelperManager.ConverMinIntoHours((int)emp.Att_OTPolicy.PerDayGOTEndLimitHour); vm.Count = vm.List.Count; ViewBag.DecisionID = new SelectList(OTHelperManager.GetOTStatusForApprover(db.Att_OTStatus.ToList()), "PSID", "StatusName", "F"); ViewBag.RecommendID = new SelectList(OTHelperManager.GetUsersForRecommender(db.ViewUserEmps.Where(aa => aa.EmpStatus == "Active").ToList()), "UserID", "FullName"); return(vm); }
public ActionResult DeleteConfirmed(int id) { PR_PayrollPeriod pr_payrollperiod = db.PR_PayrollPeriod.Find(id); db.PR_PayrollPeriod.Remove(pr_payrollperiod); db.SaveChanges(); return(RedirectToAction("Index")); }
// GET: /Attendance/PRPeriod/Details/5 public ActionResult Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } PR_PayrollPeriod pr_payrollperiod = db.PR_PayrollPeriod.Find(id); if (pr_payrollperiod == null) { return(HttpNotFound()); } return(View(pr_payrollperiod)); }
public ActionResult Create([Bind(Include = "PID,PName,PStartDate,PEndDate,PStageID")] PR_PayrollPeriod pr_payrollperiod) { if (ModelState.IsValid) { db.PR_PayrollPeriod.Add(pr_payrollperiod); db.SaveChanges(); ViewUserEmp loggedUser = Session["LoggedUser"] as ViewUserEmp; AuditManager.SaveAuditLog(loggedUser.UserID, Convert.ToInt16(AuditManager.AuditForm.OT_Period), Convert.ToInt16(AuditManager.AuditOperation.Add), DateTime.Now, (int)pr_payrollperiod.PID); return(RedirectToAction("Index")); } ViewBag.PStageID = new SelectList(GetPeriodStage(), "ID", "Name"); return(View(pr_payrollperiod)); }
public ActionResult Edit([Bind(Include = "PID,PName,PStartDate,PEndDate,PStageID,SupervisorCutOffDate,RecommendCutOffDate,ApprovedCutOffDate")] PR_PayrollPeriod pr_payrollperiod) { if (ModelState.IsValid) { db.Entry(pr_payrollperiod).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); ViewUserEmp loggedUser = Session["LoggedUser"] as ViewUserEmp; AuditManager.SaveAuditLog(loggedUser.UserID, Convert.ToInt16(AuditManager.AuditForm.OT_Period), Convert.ToInt16(AuditManager.AuditOperation.Edit), DateTime.Now, (int)pr_payrollperiod.PID); return(RedirectToAction("Index")); } ViewBag.PStageID = new SelectList(GetPeriodStage(), "ID", "Name", pr_payrollperiod.PStageID); return(View(pr_payrollperiod)); }
public ModelSOTEmpList GetEmpPendingHR(ViewUserEmp LoggedInUser, int PayrollPeriodID, int DeptID) { ModelSOTEmpList vm = new ModelSOTEmpList(); int CurrentPID = Convert.ToInt32(Session["PRID"].ToString()); if (PayrollPeriodID == null) { PayrollPeriodID = CurrentPID; } else { Session["PRID"] = PayrollPeriodID.ToString(); } List <EmpView> emps = db.EmpViews.Where(aa => aa.Status == "Active" && aa.SecID == DeptID).ToList(); PR_PayrollPeriod prp = OTHelperManager.GetPayrollPeriod(db.PR_PayrollPeriod.ToList(), (int)PayrollPeriodID); vm.DeptID = (int)DeptID; emps = emps.Where(aa => aa.SecID == DeptID).ToList(); List <ViewDailyOTEntry> otList = new List <ViewDailyOTEntry>(); vm.DivRemainingBudget = OTHelperManager.GetDivRemainingBudget(OTHelperManager.ConvertDeptIDList(DeptID), db.BG_OTDivision.ToList(), (int)prp.FinYearID); otList = db.ViewDailyOTEntries.Where(aa => aa.OTProcessingPeriodID == PayrollPeriodID).ToList(); if (LoggedInUser.UserType == "H" || LoggedInUser.UserType == "A") { ViewBag.DecisionID = new SelectList(OTHelperManager.GetOTStatusForSupervisor(db.Att_OTStatus.ToList()), "PSID", "StatusName", "F"); ViewBag.RecommendID = new SelectList(OTHelperManager.GetUsersForSupervisor(db.ViewUserEmps.Where(aa => aa.EmpStatus == "Active").ToList()), "UserID", "FullName"); } else { ViewBag.DecisionID = new SelectList(OTHelperManager.GetOTStatusForSupervisor(db.Att_OTStatus.ToList()), "PSID", "StatusName", "F"); ViewBag.RecommendID = new SelectList(OTHelperManager.GetUsersForSupervisor(db.ViewUserEmps.Where(aa => aa.EmpStatus == "Active").ToList()), "UserID", "FullName"); List <int?> empIds = db.ViewDailyOTEntries.Where(aa => aa.OTProcessingPeriodID == PayrollPeriodID).Select(aa => aa.EmployeeID).Distinct().ToList(); emps = OTHelperManager.GetEmployees(emps, LoggedInUser); emps = OTHelperManager.GetEmployeeConvertedFromIds(empIds, emps); } vm.List = OTHelperRecommended.GetConvertedOTListEmpHR(otList, emps); if (vm.List.Count() > 0) { vm.TotalOTAmount = OTHelperManager.GetTotalOTAmount(vm.List); } vm.Count = vm.List.Count; vm.PayrollPeriodID = (int)PayrollPeriodID; if (vm.List.Count() > 0) { vm.RecommendID = (int)LoggedInUser.ReportingToID; vm.RecommenderName = db.EmpViews.First(aa => aa.EmployeeID == LoggedInUser.ReportingToID).FullName; } ViewBag.PayrollPeriodID = new SelectList(db.PR_PayrollPeriod.ToList(), "PID", "PName", PayrollPeriodID); return(vm); }
// GET: /Attendance/PRPeriod/Edit/5 public ActionResult Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } PR_PayrollPeriod pr_payrollperiod = db.PR_PayrollPeriod.Find(id); if (pr_payrollperiod == null) { return(HttpNotFound()); } ViewBag.PStageID = new SelectList(GetPeriodStage(), "ID", "Name", pr_payrollperiod.PStageID); return(View(pr_payrollperiod)); }
public ActionResult HROTDeptList(int?PayrollPeriodID) { ViewUserEmp LoggedInUser = Session["LoggedUser"] as ViewUserEmp; List <short?> deptIds = new List <short?>(); List <short?> divIds = new List <short?>(); ModelRDeptPending vm = new ModelRDeptPending(); List <EmpView> emps = db.EmpViews.Where(aa => aa.Status == "Active").ToList(); int CurrentPID = Convert.ToInt32(Session["PRID"].ToString()); if (PayrollPeriodID == null) { PayrollPeriodID = CurrentPID; } else { Session["PRID"] = PayrollPeriodID.ToString(); } PR_PayrollPeriod prp = OTHelperManager.GetPayrollPeriod(db.PR_PayrollPeriod.ToList(), (int)PayrollPeriodID); List <ViewDailyOTEntry> otList = new List <ViewDailyOTEntry>(); otList = db.ViewDailyOTEntries.Where(aa => aa.OTProcessingPeriodID == PayrollPeriodID).ToList(); if (LoggedInUser.UserType == "H" || LoggedInUser.UserType == "A") { ViewBag.DecisionID = new SelectList(OTHelperManager.GetOTStatusForSupervisor(db.Att_OTStatus.ToList()), "PSID", "StatusName", "F"); ViewBag.RecommendID = new SelectList(OTHelperManager.GetUsersForSupervisor(db.ViewUserEmps.Where(aa => aa.EmpStatus == "Active").ToList()), "UserID", "FullName"); } else { List <int?> empIds = db.ViewDailyOTEntries.Where(aa => aa.OTProcessingPeriodID == PayrollPeriodID).Select(aa => aa.EmployeeID).Distinct().ToList(); emps = OTHelperManager.GetEmployees(emps, LoggedInUser); emps = OTHelperManager.GetEmployeeConvertedFromIds(empIds, emps); } deptIds = OTHelperManager.GetDeptIDs(emps); divIds = OTHelperManager.GetDivisionIDs(deptIds, db.HR_Section.ToList()); vm.List = OTHelperRecommended.GetConvertedOTListDeptsHR(otList, emps, deptIds); vm.Count = vm.List.Count; vm.PayrollPeriodID = (int)PayrollPeriodID; vm.DivRemainingBudget = OTHelperManager.GetDivRemainingBudget(deptIds, db.BG_OTDivision.ToList(), (int)prp.FinYearID); vm.TotalOTAmount = OTHelperManager.GetTotalOTAmount(vm.List); ViewBag.PayrollPeriodID = new SelectList(db.PR_PayrollPeriod.ToList(), "PID", "PName", PayrollPeriodID); vm.Message = new List <string>(); return(View(vm)); }
internal static bool IsValidWeekPolicy(List <ViewDailyOTEntry> attOts, PR_PayrollPeriod prp, byte?days) { DateTime dts = prp.PStartDate.Value; bool FindMonday = false; bool checkForPreWeek = false; while (dts <= prp.PEndDate) { if (FindMonday == false) { if (dts.Date.DayOfWeek == DayOfWeek.Monday) { FindMonday = true; } } if (FindMonday == true) { DateTime dtStart = dts; if (attOts.Where(aa => aa.OTDate >= prp.PStartDate && aa.OTDate < dtStart).Count() > days) { checkForPreWeek = true; } while (dtStart <= prp.PEndDate) { DateTime dtEndDate = dtStart.AddDays(7); if (attOts.Where(aa => aa.OTDate >= dtStart && aa.OTDate < dtEndDate).Count() > days) { checkForPreWeek = true; } dtStart = dtStart.AddDays(7); } break; } dts = dts.AddDays(1); } return(checkForPreWeek); }
public ModelSOTPEmpDetail GetDetailPendingHR(int prid, int EmpID, ViewUserEmp LoggedInUser) { ModelSOTPEmpDetail vm = new ModelSOTPEmpDetail(); PR_PayrollPeriod prp = OTHelperManager.GetPayrollPeriod(db.PR_PayrollPeriod.ToList(), prid); HR_Employee emp = db.HR_Employee.First(aa => aa.EmployeeID == EmpID); if (DateTime.Today > prp.SupervisorCutOffDate) { vm.IsLate = true; } else { vm.IsLate = false; } vm.EmpID = (int)EmpID; vm.EmpName = emp.FullName; int amount = 0; if (LoggedInUser.UserType == "H" || LoggedInUser.UserType == "A") { ViewBag.DecisionID = new SelectList(OTHelperManager.GetOTStatusForSupervisor(db.Att_OTStatus.ToList()), "PSID", "StatusName", "F"); ViewBag.RecommendID = new SelectList(OTHelperManager.GetUsersForSupervisor(db.ViewUserEmps.Where(aa => aa.EmpStatus == "Active").ToList()), "UserID", "FullName"); } else { ViewBag.DecisionID = new SelectList(OTHelperManager.GetOTStatusForSupervisor(db.Att_OTStatus.ToList()), "PSID", "StatusName", "F"); ViewBag.RecommendID = new SelectList(OTHelperManager.GetUsersForSupervisor(db.ViewUserEmps.Where(aa => aa.EmpStatus == "Active").ToList()), "UserID", "FullName"); } vm.List = OTHelperRecommended.GetConvertedDailyOTListSimple(db.ViewDailyOTEntries.Where(aa => aa.EmpID == EmpID && aa.OTProcessingPeriodID == prp.PID).ToList()); vm.DivRemainingBudget = OTHelperManager.GetDivRemainingBudget(OTHelperManager.ConvertDeptIDList(emp.SectionID), db.BG_OTDivision.ToList(), (int)prp.FinYearID); vm.PeriodName = prp.PName; vm.PeriodID = prp.PID; vm.OTPolicy = "Policy Details: Maximum Days in Week = " + emp.Att_OTPolicy.DaysInWeek.ToString() + " , Maximum Days in Month = " + emp.Att_OTPolicy.DaysInMonth.ToString(); vm.TotalAmount = amount; vm.Count = vm.List.Count; return(vm); }
public ActionResult AOTDetailList(ModelSOTPEmpDetail model) { List <string> messages = new List <string>(); ViewUserEmp LoggedInUser = Session["LoggedUser"] as ViewUserEmp; var checkedEmpDates = Request.Form.GetValues("cbEmployee"); HR_Employee emp = db.HR_Employee.First(aa => aa.EmployeeID == model.EmpID); PR_PayrollPeriod prp = OTHelperManager.GetPayrollPeriod(db.PR_PayrollPeriod.ToList(), model.PeriodID); model.Certified = true; messages = IsValidate(model, checkedEmpDates); if (messages.Count == 0) { List <Att_OTDailyEntry> attOts = db.Att_OTDailyEntry.Where(aa => aa.EmpID == model.EmpID && aa.OTDate >= prp.PStartDate && aa.OTDate <= prp.PEndDate).ToList(); List <Att_OTDailyEntry> TempattOts = new List <Att_OTDailyEntry>(); foreach (var id in checkedEmpDates) { int chNo = Convert.ToInt32(id); string EmpDate = Request.Form["ED" + (chNo - 1).ToString()].ToString(); string COTHour = Request.Form["ClaimOT" + (chNo - 1).ToString()].ToString(); int COTMins = OTHelperManager.ConvertStringTimeToMin(COTHour); Att_OTDailyEntry obj = attOts.First(aa => aa.EmpDate == EmpDate); obj.ApprovedOTMin = COTMins; obj.OTAmount = OTHelperManager.GetOTAmount(emp.HR_Grade, obj.ApprovedOTMin, obj.DutyCode); TempattOts.Add(obj); } if (emp.Att_OTPolicy.DaysInMonth > 0) { List <Att_OTDailyEntry> atoTemp = new List <Att_OTDailyEntry>(); atoTemp.AddRange(TempattOts); //atoTemp.AddRange(attOts.Where(aa => aa.StatusID == "F" || aa.StatusID == "A").ToList()); // check for Monthly Limit if (atoTemp.Count > emp.Att_OTPolicy.DaysInMonth) { messages.Add("Your Monthly overtime claim limit exceeds."); } else { // check for weekly limit if (emp.Att_OTPolicy.DaysInWeek > 0) { if (OTHelperManager.IsValidWeekPolicy(atoTemp.OrderByDescending(aa => aa.OTDate).ToList(), prp, emp.Att_OTPolicy.DaysInWeek)) { messages.Add("Your weekly overtime claim limit exceeds."); } } } } // check for daily ot limit { List <string> msgs = OTHelperManager.IsValidDailyOT(TempattOts, emp.Att_OTPolicy); if (msgs.Count > 0) { messages.AddRange(msgs); } } if (checkedEmpDates != null) { if (messages.Count == 0) { int CurrentPeriodID = db.PR_PayrollPeriod.OrderByDescending(aa => aa.PID).First().PID; foreach (var id in checkedEmpDates) { int chNo = Convert.ToInt32(id); string oldStatus = "P"; string EmpDate = Request.Form["ED" + (chNo - 1).ToString()].ToString(); string COTHour = Request.Form["ClaimOT" + (chNo - 1).ToString()].ToString(); Att_OTDailyEntry atot = attOts.First(aa => aa.EmpDate == EmpDate); // Save Log db.Att_OTDForward.Add(OTHelperManager.CreateOTLog(atot, LoggedInUser, model.RecommendID, model.Justification, model.DecisionID, "Recommend", CurrentPeriodID)); oldStatus = atot.StatusID; atot.StatusID = model.DecisionID; if (LoggedInUser.UserType == "R") { if (atot.StatusID == "R") { atot.FtoARDateTime = DateTime.Now; atot.FtoARUserID = LoggedInUser.UserID; atot.CancelByID = LoggedInUser.UserID; atot.OTProcessingPeriodID = CurrentPeriodID; } else { if (model.IsLate == true) { atot.Remarks = model.Justification; } atot.ApprovedByID = LoggedInUser.UserID; atot.OTProcessingPeriodID = CurrentPeriodID; atot.FtoARDateTime = DateTime.Now; atot.FtoARUserID = LoggedInUser.UserID; } } } db.SaveChanges(); // Cancel All others foreach (var item in attOts.Where(aa => aa.EmpID == model.EmpID && aa.StatusID == "P").ToList()) { item.StatusID = "R"; item.PtoFCDateTime = DateTime.Now; item.PtoFCUserID = LoggedInUser.UserID; item.CancelByID = LoggedInUser.UserID; item.OTProcessingPeriodID = CurrentPeriodID; } db.SaveChanges(); return(Json("OK")); } } else { messages.Add("No Entry Selected"); } } return(Json(messages)); }
public ActionResult AOTEmpList(ModelSOTEmpList model) { ViewUserEmp LoggedInUser = Session["LoggedUser"] as ViewUserEmp; var empsChecked = Request.Form.GetValues("cbEmployee"); List <EmpView> emps = db.EmpViews.Where(aa => aa.Status == "Active").ToList(); List <EmpView> tempEmps = new List <EmpView>(); PR_PayrollPeriod prp = OTHelperManager.GetPayrollPeriod(db.PR_PayrollPeriod.ToList(), (int)model.PayrollPeriodID); List <ViewDailyOTEntry> otList = new List <ViewDailyOTEntry>(); List <string> messages = new List <string>(); model.Certified = true; messages = IsValidateEmpList(model, empsChecked); if (messages.Count == 0) { foreach (var id in empsChecked) { int chNo = Convert.ToInt32(id); tempEmps.Add(emps.First(aa => aa.EmployeeID == chNo)); } otList = db.ViewDailyOTEntries.Where(aa => aa.OTDate >= prp.PStartDate && aa.OTDate <= prp.PEndDate && aa.StatusID != "C").ToList(); List <ViewDailyOTEntry> vdat = OTHelperManager.GetOTListEmp(otList, tempEmps); foreach (var emp in tempEmps) { //DeptID = (int)emp.SecID; if (emp.DaysInMonth > 0) { // check for Monthly Limit if (vdat.Where(aa => aa.EmpID == emp.EmployeeID).Count() > emp.DaysInMonth) { messages.Add("Your Monthly overtime claim limit exceeds for:" + emp.FullName); } else { // check for weekly limit if (emp.DaysInWeek > 0) { if (OTHelperManager.IsValidWeekPolicy(vdat.Where(aa => aa.EmpID == emp.EmployeeID).OrderByDescending(aa => aa.OTDate).ToList(), prp, emp.DaysInWeek)) { messages.Add("Your weekly overtime claim limit exceeds for:" + emp.FullName); } } } } // check for daily ot limit { if (OTHelperManager.IsValidDailyOT(vdat.Where(aa => aa.EmpID == emp.EmployeeID), emp)) { messages.Add("Your daily overtime claim limit exceeds for:" + emp.FullName); } } } } if (messages.Count == 0) { int CurrentPeriodID = db.PR_PayrollPeriod.OrderByDescending(aa => aa.PID).First().PID; List <Att_OTDailyEntry> attOts = db.Att_OTDailyEntry.Where(aa => aa.OTDate >= prp.PStartDate && aa.OTDate <= prp.PEndDate && (aa.StatusID == "F" || aa.StatusID == "P")).ToList(); foreach (var emp in tempEmps) { foreach (var atot in attOts.Where(aa => aa.EmpID == emp.EmployeeID).ToList()) { // Save Log db.Att_OTDForward.Add(OTHelperManager.CreateOTLog(atot, LoggedInUser, model.RecommendID, model.Justification, model.DecisionID, "Recommend", CurrentPeriodID)); string oldStatus = "P"; oldStatus = atot.StatusID; atot.StatusID = model.DecisionID; if (atot.StatusID == "R") { atot.FtoARDateTime = DateTime.Now; atot.FtoARUserID = LoggedInUser.UserID; atot.CancelByID = LoggedInUser.UserID; atot.OTProcessingPeriodID = CurrentPeriodID; } else { if (model.IsLate == true) { atot.Remarks = model.Justification; } atot.ApprovedByID = LoggedInUser.UserID; atot.OTProcessingPeriodID = CurrentPeriodID; atot.FtoARDateTime = DateTime.Now; atot.FtoARUserID = LoggedInUser.UserID; } } db.SaveChanges(); // Cancel All others foreach (var item in attOts.Where(aa => aa.EmpID == emp.EmployeeID && aa.StatusID == "F").ToList()) { item.StatusID = "C"; item.FtoFCDateTime = DateTime.Now; item.FtoFCUserID = LoggedInUser.UserID; item.CancelByID = LoggedInUser.UserID; item.OTProcessingPeriodID = CurrentPeriodID; } db.SaveChanges(); } return(Json("OK")); } else { } return(Json(messages)); }
private void CreateNewPayrollPeriod(PR_FinYear pr_financialyear) { //DateTime cdt = pr_financialyear.StartDate.Value; //int cMonth = 1; //while (cdt <= pr_financialyear.EndDate) //{ // if(cdt.Month) // cdt = cdt.AddDays(1); //} { PR_PayrollPeriod prp = new PR_PayrollPeriod(); prp.PStartDate = new DateTime(pr_financialyear.StartDate.Value.Year, 7, 1); prp.PEndDate = new DateTime(pr_financialyear.StartDate.Value.Year, 7, 31); prp.FinYearID = pr_financialyear.PFinYearID; prp.PStageID = "H"; db.PR_PayrollPeriod.Add(prp); db.SaveChanges(); } { PR_PayrollPeriod prp = new PR_PayrollPeriod(); prp.PStartDate = new DateTime(pr_financialyear.StartDate.Value.Year, 8, 1); prp.PEndDate = new DateTime(pr_financialyear.StartDate.Value.Year, 8, 31); prp.FinYearID = pr_financialyear.PFinYearID; prp.PStageID = "H"; db.PR_PayrollPeriod.Add(prp); db.SaveChanges(); } { PR_PayrollPeriod prp = new PR_PayrollPeriod(); prp.PStartDate = new DateTime(pr_financialyear.StartDate.Value.Year, 9, 1); prp.PEndDate = new DateTime(pr_financialyear.StartDate.Value.Year, 9, 30); prp.FinYearID = pr_financialyear.PFinYearID; prp.PStageID = "H"; db.PR_PayrollPeriod.Add(prp); db.SaveChanges(); } { PR_PayrollPeriod prp = new PR_PayrollPeriod(); prp.PStartDate = new DateTime(pr_financialyear.StartDate.Value.Year, 10, 1); prp.PEndDate = new DateTime(pr_financialyear.StartDate.Value.Year, 10, 31); prp.FinYearID = pr_financialyear.PFinYearID; prp.PStageID = "H"; db.PR_PayrollPeriod.Add(prp); db.SaveChanges(); } { PR_PayrollPeriod prp = new PR_PayrollPeriod(); prp.PStartDate = new DateTime(pr_financialyear.StartDate.Value.Year, 11, 1); prp.PEndDate = new DateTime(pr_financialyear.StartDate.Value.Year, 11, 30); prp.FinYearID = pr_financialyear.PFinYearID; prp.PStageID = "H"; db.PR_PayrollPeriod.Add(prp); db.SaveChanges(); } { PR_PayrollPeriod prp = new PR_PayrollPeriod(); prp.PStartDate = new DateTime(pr_financialyear.StartDate.Value.Year, 12, 1); prp.PEndDate = new DateTime(pr_financialyear.StartDate.Value.Year, 12, 31); prp.FinYearID = pr_financialyear.PFinYearID; prp.PStageID = "H"; db.PR_PayrollPeriod.Add(prp); db.SaveChanges(); } { PR_PayrollPeriod prp = new PR_PayrollPeriod(); prp.PStartDate = new DateTime(pr_financialyear.EndDate.Value.Year, 1, 1); prp.PEndDate = new DateTime(pr_financialyear.EndDate.Value.Year, 1, 31); prp.FinYearID = pr_financialyear.PFinYearID; prp.PStageID = "H"; db.PR_PayrollPeriod.Add(prp); db.SaveChanges(); } { PR_PayrollPeriod prp = new PR_PayrollPeriod(); prp.PStartDate = new DateTime(pr_financialyear.EndDate.Value.Year, 2, 1); int daysInMonths = DateTime.DaysInMonth(prp.PStartDate.Value.Year, 2); prp.PEndDate = new DateTime(pr_financialyear.EndDate.Value.Year, 2, daysInMonths); prp.FinYearID = pr_financialyear.PFinYearID; prp.PStageID = "H"; db.PR_PayrollPeriod.Add(prp); db.SaveChanges(); } { PR_PayrollPeriod prp = new PR_PayrollPeriod(); prp.PStartDate = new DateTime(pr_financialyear.EndDate.Value.Year, 3, 1); prp.PEndDate = new DateTime(pr_financialyear.EndDate.Value.Year, 3, 31); prp.FinYearID = pr_financialyear.PFinYearID; prp.PStageID = "H"; db.PR_PayrollPeriod.Add(prp); db.SaveChanges(); } { PR_PayrollPeriod prp = new PR_PayrollPeriod(); prp.PStartDate = new DateTime(pr_financialyear.EndDate.Value.Year, 4, 1); prp.PEndDate = new DateTime(pr_financialyear.EndDate.Value.Year, 4, 30); prp.FinYearID = pr_financialyear.PFinYearID; prp.PStageID = "H"; db.PR_PayrollPeriod.Add(prp); db.SaveChanges(); } { PR_PayrollPeriod prp = new PR_PayrollPeriod(); prp.PStartDate = new DateTime(pr_financialyear.EndDate.Value.Year, 5, 1); prp.PEndDate = new DateTime(pr_financialyear.EndDate.Value.Year, 5, 31); prp.FinYearID = pr_financialyear.PFinYearID; prp.PStageID = "H"; db.PR_PayrollPeriod.Add(prp); db.SaveChanges(); } { PR_PayrollPeriod prp = new PR_PayrollPeriod(); prp.PStartDate = new DateTime(pr_financialyear.EndDate.Value.Year, 6, 1); prp.PEndDate = new DateTime(pr_financialyear.EndDate.Value.Year, 6, 30); prp.FinYearID = pr_financialyear.PFinYearID; prp.PStageID = "H"; db.PR_PayrollPeriod.Add(prp); db.SaveChanges(); } }
public ActionResult HROTEmpList(int?PayrollPeriodID) { ViewUserEmp LoggedInUser = Session["LoggedUser"] as ViewUserEmp; var empsChecked = Request.Form.GetValues("cbEmployee"); List <EmpView> emps = db.EmpViews.Where(aa => aa.Status == "Active").ToList(); List <EmpView> tempEmps = new List <EmpView>(); PR_PayrollPeriod prp = OTHelperManager.GetPayrollPeriod(db.PR_PayrollPeriod.ToList(), (int)PayrollPeriodID); List <ViewDailyOTEntry> otList = new List <ViewDailyOTEntry>(); List <string> messages = new List <string>(); string val = Request.Form["Certified"].ToString(); int DeptID = Convert.ToInt32(Request.Form["DeptID"].ToString()); if (val == "true,false") { foreach (var id in empsChecked) { int chNo = Convert.ToInt32(id); tempEmps.Add(emps.First(aa => aa.EmployeeID == chNo)); } otList = db.ViewDailyOTEntries.Where(aa => aa.OTDate >= prp.PStartDate && aa.OTDate <= prp.PEndDate && (aa.StatusID == "P")).ToList(); if (LoggedInUser.UserType == "N" || LoggedInUser.UserType == "R") { List <ViewDailyOTEntry> vdat = OTHelperManager.GetOTListEmp(otList, tempEmps); foreach (var emp in tempEmps) { //DeptID = (int)emp.SecID; if (emp.DaysInMonth > 0) { // check for Monthly Limit if (vdat.Where(aa => aa.EmpID == emp.EmployeeID).Count() > emp.DaysInMonth) { messages.Add("Your Monthly overtime claim limit exceeds."); } else { // check for weekly limit if (emp.DaysInWeek > 0) { if (OTHelperManager.IsValidWeekPolicy(vdat.Where(aa => aa.EmpID == emp.EmployeeID).OrderByDescending(aa => aa.OTDate).ToList(), prp, emp.DaysInWeek)) { messages.Add("Your weekly overtime claim limit exceeds."); } } } } // check for daily ot limit { if (OTHelperManager.IsValidDailyOT(vdat.Where(aa => aa.EmpID == emp.EmployeeID), emp)) { messages.Add("Your daily overtime claim limit exceeds."); } } } if (messages.Count == 0) { List <Att_OTDailyEntry> attOts = db.Att_OTDailyEntry.Where(aa => aa.OTDate >= prp.PStartDate && aa.OTDate <= prp.PEndDate).ToList(); foreach (var emp in tempEmps) { foreach (var atot in attOts.Where(aa => aa.EmpID == emp.EmployeeID).ToList()) { atot.StatusID = Request.Form["DecisionID"].ToString(); if (atot.StatusID == "C") { //atot.NtoPDateTime = DateTime.Now; atot.CancelByID = LoggedInUser.UserID; } else { atot.ForwardToID = Convert.ToInt32(Request.Form["RecommendID"]); //atot.NtoPDateTime = DateTime.Now; //atot.NtoPUserID = LoggedInUser.UserID; //atot.OTProcessingPeriod = PayrollPeriodID; } } db.SaveChanges(); } } else { } } } else { messages.Add("Please verify, this employee does not claim daily allowance on these dates"); } // ModelSOTEmpList vm = new ModelSOTEmpList(); //vm = GetEmpPending(LoggedInUser, (int)PayrollPeriodID, (int)DeptID); vm.Message = messages; return(View(vm)); }
public ActionResult HROTDetailList(ModelSOTPEmpDetail model) { List <string> messages = new List <string>(); ViewUserEmp LoggedInUser = Session["LoggedUser"] as ViewUserEmp; var checkedEmpDates = Request.Form.GetValues("cbEmployee"); HR_Employee emp = db.HR_Employee.First(aa => aa.EmployeeID == model.EmpID); PR_PayrollPeriod prp = OTHelperManager.GetPayrollPeriod(db.PR_PayrollPeriod.ToList(), model.PeriodID); //messages = IsValidate(model); if (messages.Count == 0) { List <Att_OTDailyEntry> attOts = db.Att_OTDailyEntry.Where(aa => aa.EmpID == model.EmpID && aa.OTDate >= prp.PStartDate && aa.OTDate <= prp.PEndDate).ToList(); List <Att_OTDailyEntry> TempattOts = new List <Att_OTDailyEntry>(); foreach (var id in checkedEmpDates) { int chNo = Convert.ToInt32(id); string EmpDate = Request.Form["ED" + (chNo - 1).ToString()].ToString(); string COTHour = Request.Form["ClaimOT" + (chNo - 1).ToString()].ToString(); TempattOts.Add(attOts.First(aa => aa.EmpDate == EmpDate)); } if (emp.Att_OTPolicy.DaysInMonth > 0) { // check for Monthly Limit if (TempattOts.Count > emp.Att_OTPolicy.DaysInMonth) { messages.Add("Your Monthly overtime claim limit exceeds."); } else { // check for weekly limit if (emp.Att_OTPolicy.DaysInWeek > 0) { if (OTHelperManager.IsValidWeekPolicy(TempattOts.OrderByDescending(aa => aa.OTDate).ToList(), prp, emp.Att_OTPolicy.DaysInWeek)) { messages.Add("Your weekly overtime claim limit exceeds."); } } } } // check for daily ot limit { //if (OTHelperManager.IsValidDailyOT(TempattOts, emp.Att_OTPolicy)) // messages.Add("Your daily overtime claim limit exceeds."); } if (checkedEmpDates != null) { if (messages.Count == 0) { foreach (var id in checkedEmpDates) { int chNo = Convert.ToInt32(id); string EmpDate = Request.Form["ED" + (chNo - 1).ToString()].ToString(); string COTHour = Request.Form["ClaimOT" + (chNo - 1).ToString()].ToString(); Att_OTDailyEntry atot = attOts.First(aa => aa.EmpDate == EmpDate); atot.StatusID = Request.Form["DecisionID"].ToString(); if (LoggedInUser.UserType == "N") { if (atot.StatusID == "C") { //atot.NtoPDateTime = DateTime.Now; atot.CancelByID = LoggedInUser.UserID; } else { atot.ForwardToID = Convert.ToInt32(Request.Form["RecommendID"]); //atot.NtoPDateTime = DateTime.Now; //atot.NtoPUserID = LoggedInUser.UserID; //atot.OTProcessingPeriod = model.PeriodID; } } else if (LoggedInUser.UserType == "R") { if (atot.StatusID == "R") { atot.PtoFCDateTime = DateTime.Now; atot.RejectByID = LoggedInUser.UserID; } else { atot.ForwardToID = Convert.ToInt32(Request.Form["RecommendID"]); atot.PtoFCDateTime = DateTime.Now; atot.PtoFCUserID = LoggedInUser.UserID; atot.OTProcessingPeriodID = model.PeriodID; } } else if (LoggedInUser.UserType == "P") { if (atot.StatusID == "R") { atot.FtoARDateTime = DateTime.Now; atot.RejectByID = LoggedInUser.UserID; } else { atot.ApprovedByID = LoggedInUser.UserID; atot.FtoARDateTime = DateTime.Now; atot.FtoARUserID = LoggedInUser.UserID; atot.OTProcessingPeriodID = model.PeriodID; } } db.SaveChanges(); } return(RedirectToAction("REmpPending", new { DeptID = emp.SectionID, PayrollPeriodID = prp.PID })); } } } ModelSOTPEmpDetail vm = new ModelSOTPEmpDetail(); //vm = GetDetailPending(model.PeriodID, (int)emp.EmployeeID, LoggedInUser); vm.Message = messages; return(View(vm)); }