public ActionResult AdminHome()
        {
            db = new EMSEntities12();
            Employee employee = new Employee();
            List<Employee> emplist = new List<Employee>();

              foreach(FullTimeEmployee FtCompleted in db.FullTimeEmployees )
              {
              if (!FtCompleted.Employee.Completed)
              {
                  emplist.Add(FtCompleted.Employee);

              }
              }
              foreach (PartTimeEmployee PtCompleted in db.PartTimeEmployees)
              {
              if (!PtCompleted.Employee.Completed)
              {
                  emplist.Add(PtCompleted.Employee);

              }
              }
              foreach (SeasonalEmployee SesonCompleted in db.SeasonalEmployees)
              {
              if (!SesonCompleted.Employee.Completed)
              {
                  emplist.Add(SesonCompleted.Employee);

              }
              }

              return View(emplist);
        }
 public static void AuditNewBaseEmployee(Employee newEmployee, String Username)
 {
     CompareFields("", newEmployee.FirstName, 3, 1, newEmployee.EmployeeId, Username);
     CompareFields("", newEmployee.LastName, 2, 1, newEmployee.EmployeeId, Username);
     CompareFields("", newEmployee.SIN_BN, 1, 1, newEmployee.EmployeeId, Username);
     CompareFields("", newEmployee.DateOfBirth.ToString(), 4, 1, newEmployee.EmployeeId, Username);
 }
 public static void AuditExistingEmployee(int existingEmpId, Employee newEmployee,String Username)
 {
     Employee existingEmp = db.Employees.Find(existingEmpId);
     CompareFields(existingEmp.FirstName, newEmployee.FirstName, 3, 2, existingEmp.EmployeeId, Username);
     CompareFields(existingEmp.LastName, newEmployee.LastName, 2, 2, existingEmp.EmployeeId, Username);
     CompareFields(existingEmp.SIN_BN.ToString(), newEmployee.SIN_BN.ToString(), 1, 2, existingEmp.EmployeeId, Username);
     CompareFields(existingEmp.DateOfBirth.ToString(), newEmployee.DateOfBirth.ToString(), 4, 2, existingEmp.EmployeeId, Username);
 }
        public ActionResult Index()
        {
            db = new EMSEntities12();
            if (User.IsInRole("Admin")) // find employees that need completion
            {
                Employee employee = new Employee();
                List<Employee> emplist = new List<Employee>();

                foreach (FullTimeEmployee FtCompleted in db.FullTimeEmployees)
                {
                    if (!FtCompleted.Employee.Completed)
                    {
                        emplist.Add(FtCompleted.Employee);

                    }
                }
                foreach (PartTimeEmployee PtCompleted in db.PartTimeEmployees)
                {
                    if (!PtCompleted.Employee.Completed)
                    {
                        emplist.Add(PtCompleted.Employee);

                    }
                }
                foreach (SeasonalEmployee SesonCompleted in db.SeasonalEmployees)
                {
                    if (!SesonCompleted.Employee.Completed)
                    {
                        emplist.Add(SesonCompleted.Employee);

                    }
                }

                return View(emplist);
            }
            else // find employees that need time card entries for this week
            {
                List<Employee> emplist = new List<Employee>();
                List<TimeCard> tcl = db.TimeCards.ToList();
                List<Piece> pl = db.Pieces.ToList();
                DateTime weekOf = DateTime.Now;
                while (weekOf.DayOfWeek != DayOfWeek.Monday)
                {
                    weekOf = weekOf.AddDays(-1);
                }
                Boolean Found = false;
                foreach (FullTimeEmployee ft in db.FullTimeEmployees)
                {
                    if (ft.Employee.Active && ft.Employee.Completed)
                    {
                        foreach (TimeCard tc in tcl)
                        {
                            if (tc.EmployeeRef5Id == ft.EmployeeRefId && tc.WeekOf.Day == weekOf.Day && tc.WeekOf.Month == weekOf.Month && tc.WeekOf.Year == weekOf.Year)
                            {
                                Found = true;
                                if (tc.Mon == null || tc.Sat == null || tc.Sun == null || tc.Thu == null || tc.Tue == null || tc.Wed == null || tc.Fri == null)
                                {
                                    emplist.Add(ft.Employee);
                                }
                            }
                        }
                        if (!Found)
                        {
                            emplist.Add(ft.Employee);

                        }
                        Found = false;
                    }
                }
                foreach (PartTimeEmployee pt in db.PartTimeEmployees)
                {
                    if (pt.Employee.Active && pt.Employee.Completed)
                    {
                        foreach (TimeCard tc in tcl)
                        {
                            if (tc.EmployeeRef5Id == pt.EmployeeRef2Id && tc.WeekOf.Day == weekOf.Day && tc.WeekOf.Month == weekOf.Month && tc.WeekOf.Year == weekOf.Year)
                            {
                                Found = true;
                                if (tc.Mon == null || tc.Sat == null || tc.Sun == null || tc.Thu == null || tc.Tue == null || tc.Wed == null || tc.Fri == null)
                                {
                                    emplist.Add(pt.Employee);
                                }
                            }
                        }
                        if (!Found)
                        {
                            emplist.Add(pt.Employee);

                        }
                        Found = false;
                    }
                }
                foreach (SeasonalEmployee se in db.SeasonalEmployees)
                {
                    if (se.Employee.Active && se.Employee.Completed)
                    {
                        foreach (TimeCard tc in tcl)
                        {
                            if (tc.EmployeeRef5Id == se.EmployeeRef3Id && tc.WeekOf.Day == weekOf.Day && tc.WeekOf.Month == weekOf.Month && tc.WeekOf.Year == weekOf.Year)
                            {
                                Found = true;
                                if (tc.Mon == null || tc.Sat == null || tc.Sun == null || tc.Thu == null || tc.Tue == null || tc.Wed == null || tc.Fri == null)
                                {
                                    emplist.Add(se.Employee);
                                }
                            }
                        }
                        if (!Found)
                        {
                            emplist.Add(se.Employee);

                        }
                        Found = false;
                    }
                }

                return View(emplist);
            }
        }
        public static Boolean ValidateEmployeeComplete(Employee e)
        {
            Boolean complete = true;

            if (e.FirstName == null)
            {
                complete = false;
            }
            else if (e.LastName == null)
            {
                complete = false;
            }
            else if (e.DateOfBirth == null)
            {
                complete = false;
            }
            else if (e.SIN_BN == null)
            {
                complete = false;
            }
            return complete;
        }
        public ActionResult Seasonal(SeasonalEmployee Semployee, string CompList, string SeasonLst, string name, string last, string day, string month, string year, string sin)
        {
            db = new EMSEntities12();
            ViewBag.SeasonName = EMSPSSUtilities.GetSeasonList();
            ViewBag.CompName = EMSPSSUtilities.GetCompList();
            EmployeeType ETemployee = new EmployeeType();
            ViewBag.Employees = GetOptions();

            Employee employee = new Employee();
            employee.FirstName = name;
            employee.LastName = last;
            int Year = 0, Month = 0, Day = 0;

            Int32.TryParse(year, out Year);
            Int32.TryParse(day, out Day);
            Int32.TryParse(month, out Month);

            employee.DateOfBirth = new DateTime(Year, Month, Day);
            employee.SIN_BN = sin;
            employee.Completed = false;

            foreach (Company mycmp in db.Companies)
            {
                if (mycmp.CompanyName == CompList)
                {
                    Semployee.EmployedWith3Id = mycmp.CompanyId;
                }
            }

            foreach (Season myseas in db.Seasons)
            {
                if (myseas.Season1 == SeasonLst)
                {
                    Semployee.SeasonId = myseas.SeasonId;
                }
            }

            ETemployee.CompanyId = Semployee.EmployedWith3Id;
            ETemployee.EmployeeType1 = "Seasonal";
            ETemployee.DateofHire = Semployee.SeasonYear;
            if (CompList == "")
            {
                ModelState.AddModelError("comp", "This field is Required.");
            }
            if (SeasonLst == "")
            {
                ModelState.AddModelError("season", "This field is Required.");
            }
            if (!EMSPSSUtilities.DateIsElapsed(employee.DateOfBirth, Semployee.SeasonYear, 18))
            {
                ModelState.AddModelError("DOH", "A seasonal employee must be at least 18 years old.");
            }
            if (ModelState.IsValid)
            {
                db.Employees.Add(employee);
                db.SaveChanges();
                EMSPSSUtilities.AuditNewBaseEmployee(employee, User.Identity.Name);
                Semployee.EmployeeRef3Id = employee.EmployeeId;
                ETemployee.EmployeeId = Semployee.EmployeeRef3Id;
                EMSPSSUtilities.CompareFields("", Semployee.SeasonId.ToString(), 17, 1, Semployee.EmployeeRef3Id, User.Identity.Name);

                db.SeasonalEmployees.Add(Semployee);
                db.EmployeeTypes.Add(ETemployee);
                db.SaveChanges();
                return RedirectToAction("SearchIndex", "Home", new { FirstName = Semployee.Employee.FirstName, LastName = Semployee.Employee.LastName, SINBN = Semployee.Employee.SIN_BN });
            }

            return View(Semployee);
        }
        public ActionResult PartTime(PartTimeEmployee PTemployee, string CompList, string name, string last, string day, string month, string year, string sin)
        {
            db = new EMSEntities12();
            EmployeeType ETemployee = new EmployeeType();
            ViewBag.Employees = GetOptions();
            ViewBag.CompName = EMSPSSUtilities.GetCompList();

            Employee employee = new Employee();
            employee.FirstName = name;
            employee.LastName = last;
            int Year = 0, Month = 0, Day = 0;

            Int32.TryParse(year, out Year);
            Int32.TryParse(day, out Day);
            Int32.TryParse(month, out Month);

            employee.DateOfBirth = new DateTime(Year, Month, Day);
            employee.SIN_BN = sin;
            employee.Completed = false;

            foreach (Company mycmp in db.Companies)
            {
                if (mycmp.CompanyName == CompList)
                {
                    PTemployee.EmployedWith2Id = mycmp.CompanyId;
                }
            }

            ETemployee.CompanyId = PTemployee.EmployedWith2Id;
            ETemployee.EmployeeType1 = "Part Time";
            ETemployee.DateofHire = PTemployee.DateOfHire;
            PTemployee.Employee = employee;
            if (CompList == "")
            {
                ModelState.AddModelError("comp", "This field is Required.");
            }
            if (!EMSPSSUtilities.DateIsElapsed(employee.DateOfBirth, PTemployee.DateOfHire, 16))
            {
                ModelState.AddModelError("DOH", "A part time employee must be at least 16 years old.");
            }
            if (ModelState.IsValid)
            {
                db.Employees.Add(employee);
                db.SaveChanges();
                EMSPSSUtilities.AuditNewBaseEmployee(employee, User.Identity.Name);
                PTemployee.EmployeeRef2Id = employee.EmployeeId;
                ETemployee.EmployeeId = PTemployee.EmployeeRef2Id;
                EMSPSSUtilities.CompareFields("", PTemployee.DateOfHire.ToString(), 11, 1, PTemployee.EmployeeRef2Id, User.Identity.Name);

                db.PartTimeEmployees.Add(PTemployee);
                db.EmployeeTypes.Add(ETemployee);
                db.SaveChanges();
                return RedirectToAction("SearchIndex", "Home", new { FirstName = PTemployee.Employee.FirstName, LastName = PTemployee.Employee.LastName, SINBN = PTemployee.Employee.SIN_BN });

            }

            return View(PTemployee);
        }
 public ActionResult Fulltime(Employee employee, string name, string last, string day, string month, string year, string sin)
 {
     FullTimeEmployee FTemployee = new FullTimeEmployee();
     ViewBag.Employees = GetOptions();
     ViewBag.CompName = EMSPSSUtilities.GetCompList();
     return View(FTemployee);
 }
        public ActionResult EmployeeCreation(Employee employee, string DDlist )
        {
            db = new EMSEntities12();
            ViewBag.Employees = GetOptions();
            String sin = employee.SIN_BN;
            EMSPSSUtilities.SINValid(ref sin);
            employee.SIN_BN = sin;
            employee.Completed = false;
            if (!EMSPSSUtilities.VerifySIN(employee.SIN_BN))
            {
                ModelState.AddModelError("SIN_BN", employee.SIN_BN + " is not a valid BN.");
            }
            if (!EMSPSSUtilities.DateIsElapsed(Convert.ToDateTime("1900-01-01"), employee.DateOfBirth))
            {
                ModelState.AddModelError("DOB", "Date of Birth must be past the year 1900.");
            }
            if (!EMSPSSUtilities.DateIsElapsed(employee.DateOfBirth, DateTime.Now))
            {
                ModelState.AddModelError("DOB", "Date of Birth must be in the past.");
            }
            if (ModelState.IsValid)
            {
                if ("Seasonal" == DDlist)
                {
                    return RedirectToAction("Seasonal", new { name = employee.FirstName, last = employee.LastName, day = employee.DateOfBirth.Day.ToString(), month = employee.DateOfBirth.Month.ToString(), year = employee.DateOfBirth.Year.ToString(), sin = employee.SIN_BN });
                }
                else if ("PartTime" == DDlist)
                {
                    return RedirectToAction("PartTime", new { name = employee.FirstName, last = employee.LastName, day = employee.DateOfBirth.Day.ToString(), month = employee.DateOfBirth.Month.ToString(), year = employee.DateOfBirth.Year.ToString(), sin = employee.SIN_BN });
                }
                else if ("FullTime" == DDlist)
                {
                    return RedirectToAction("Fulltime", new { name = employee.FirstName, last = employee.LastName, day = employee.DateOfBirth.Day.ToString(), month = employee.DateOfBirth.Month.ToString(), year = employee.DateOfBirth.Year.ToString(), sin = employee.SIN_BN });
                }
            }

            return View(employee);
        }
 public ActionResult EmployeeCreation()
 {
     Employee employee = new Employee();
     ViewBag.Employees = GetOptions();
     return View(employee);
 }