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));
            }
        }
예제 #2
0
        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));
        }