public static void AuditExistingContractEmployee(int existingEmpId, ContractEmployee newEmployee, String Username)
 {
     ContractEmployee ce = GetContract(existingEmpId);
     CompareFields(ce.ContractStopDate.ToString(), newEmployee.ContractStopDate.ToString(), 6, 2, newEmployee.Employee.EmployeeId, Username);
     CompareFields(ce.ReasonForLeaving4Id.ToString(), newEmployee.ReasonForLeaving4Id.ToString(), 7, 2, newEmployee.Employee.EmployeeId, Username);
     CompareFields(ce.FixedContractAmount.ToString(), newEmployee.FixedContractAmount.ToString(), 8, 2, newEmployee.Employee.EmployeeId, Username);
 }
        public ActionResult FindEdit(ContractEmployee contractemployee)
        {
            db = new EMSEntities12();
            String sin = contractemployee.Employee.SIN_BN;
            EMSPSSUtilities.SINValid(ref sin);
            contractemployee.Employee.Completed = true;
            contractemployee.Employee.SIN_BN = sin;
            if (contractemployee.ReasonForLeaving4Id == 0)
            {
                contractemployee.ReasonForLeaving4Id = null;
            }
            if (!EMSPSSUtilities.VerifySIN(contractemployee.Employee.SIN_BN) || !EMSPSSUtilities.VerifyBusinessNum(contractemployee.Employee.SIN_BN, contractemployee.Employee.DateOfBirth.ToString("yyyy-MM-dd")))
            {
                ModelState.AddModelError("SIN_BN", contractemployee.Employee.SIN_BN + " is not a valid BN.");
            }
            if (!EMSPSSUtilities.DateIsElapsed(Convert.ToDateTime("1600-01-01"), contractemployee.Employee.DateOfBirth))
            {
                ModelState.AddModelError("DOB", "Date of Incorporation must be past the year 1600.");
            }
            if (!EMSPSSUtilities.DateIsElapsed(contractemployee.Employee.DateOfBirth, DateTime.Now))
            {
                ModelState.AddModelError("DOB", "Date of Incorporation must be in the past.");
            }
            if (!EMSPSSUtilities.DateIsElapsed(contractemployee.Employee.DateOfBirth, contractemployee.ContractStartDate))
            {
                ModelState.AddModelError("CSD", "Contract Start date must be in the future from date of incorporation.");
            }
            if (!EMSPSSUtilities.DateIsElapsed(contractemployee.ContractStartDate, contractemployee.ContractStopDate))
            {
                ModelState.AddModelError("CSD2", "Contract Stop date must be in the future from Contract Start date.");
            }
            if (ModelState.IsValid)
            {
                EMSPSSUtilities.AuditExistingEmployee(contractemployee.EmployeeRef4Id, contractemployee.Employee, User.Identity.Name);
                EMSPSSUtilities.AuditExistingContractEmployee(contractemployee.EmployeeRef4Id, contractemployee, User.Identity.Name);

                contractemployee.Company = db.Companies.Find(contractemployee.EmployedWith4Id);

                db.Entry(contractemployee.Employee).State = EntityState.Modified;
                db.SaveChanges();

                db.Entry(contractemployee).State = EntityState.Modified;
                db.SaveChanges();

                //ModelState.AddModelError( validationError.PropertyName, validationError.ErrorMessage);

                return RedirectToAction("SearchIndex", "Home", new { FirstName = contractemployee.Employee.FirstName, LastName = contractemployee.Employee.LastName, SINBN = contractemployee.Employee.SIN_BN });
            }
            return View(contractemployee);
        }
 public static void AuditNewContractEmployee(ContractEmployee newEmployee, String Username)
 {
     CompareFields("", newEmployee.ContractStopDate.ToString(), 6, 1, newEmployee.Employee.EmployeeId, Username);
     CompareFields("", newEmployee.ReasonForLeaving4Id.ToString(), 7, 1, newEmployee.Employee.EmployeeId, Username);
     CompareFields("", newEmployee.FixedContractAmount.ToString(), 8, 1, newEmployee.Employee.EmployeeId, Username);
 }
        public static Boolean ValidateContractEmployeeComplete(ContractEmployee c)
        {
            Boolean complete = ValidateEmployeeComplete(c.Employee);

            if (c.ContractStartDate == null)
            {
                complete = false;
            }
            else if (c.ContractStopDate == null)
            {
                complete = false;
            }
            else if (c.FixedContractAmount <= 0)
            {
                complete = false;
            }
            return complete;
        }
 //get a part time employee based on id
 public static ContractEmployee GetContract(int id)
 {
     db = new EMSEntities12();
     ContractEmployee contract = new ContractEmployee();
     List<ContractEmployee> cl = db.ContractEmployees.ToList();
     foreach (ContractEmployee c in cl)
     {
         if (c.EmployeeRef4Id == id)
         {
             contract = c;
             break;
         }
     }
     return contract;
 }
        public ActionResult ContractCreation(ContractEmployee ce, string CompList)
        {
            db = new EMSEntities12();
            if (CompList == "")
            {
                ModelState.AddModelError("comp", "This field is Required.");
            }
            ViewBag.CompName = EMSPSSUtilities.GetCompList();
            Employee e = ce.Employee;
            //e.EmployeeId = null;
            e.Completed = true;
            String sin = ce.Employee.SIN_BN;
            EMSPSSUtilities.SINValid(ref sin);
            ce.Employee.SIN_BN = sin;
            if (!EMSPSSUtilities.VerifySIN(ce.Employee.SIN_BN))
            {
                ModelState.AddModelError("SIN_BN", ce.Employee.SIN_BN + " is not a valid BN.");
            }
            if (!EMSPSSUtilities.VerifyBusinessNum(ce.Employee.SIN_BN, ce.Employee.DateOfBirth.ToString("yyyy-MM-dd")))
            {
                ModelState.AddModelError("SIN_BN", "The first two digits of a BN must match the last two digits of their date of incorporation.");
            }
            if (!EMSPSSUtilities.DateIsElapsed(ce.Employee.DateOfBirth, ce.ContractStartDate))
            {
                ModelState.AddModelError("CSD", "Contract Start date must be in the future from date of incorporation.");
            }
            if (!EMSPSSUtilities.DateIsElapsed(ce.ContractStartDate, ce.ContractStopDate))
            {
                ModelState.AddModelError("CSD2", "Contract Stop date must be in the future from Contract Start date.");
            }
            if (ModelState.IsValid)
            {
                db.Employees.Add(e);
                db.SaveChanges();

                foreach (Company mycmp in db.Companies)
                {
                    if (mycmp.CompanyName == CompList)
                    {
                        ce.EmployedWith4Id = mycmp.CompanyId;
                    }
                }
                ce.EmployeeRef4Id = e.EmployeeId;
                EmployeeType et = new EmployeeType();
                et.EmployeeId = e.EmployeeId;
                et.CompanyId = ce.EmployedWith4Id;
                et.DateofHire = ce.ContractStartDate;
                et.EmployeeType1 = "Contract";
                if (ce.ReasonForLeaving4Id == 0)
                {
                    ce.ReasonForLeaving4Id = null;
                }
                if (ModelState.IsValid)
                {
                    EMSPSSUtilities.AuditNewBaseEmployee(ce.Employee, User.Identity.Name);
                    EMSPSSUtilities.AuditNewContractEmployee(ce, User.Identity.Name);
                    db.ContractEmployees.Add(ce);
                    db.EmployeeTypes.Add(et);
                    db.SaveChanges();
                    return RedirectToAction("SearchIndex", "Home", new { FirstName = ce.Employee.FirstName, LastName = ce.Employee.LastName, SINBN = ce.Employee.SIN_BN });
                }

                return View(ce);
            }

            return View(ce);
        }
 public ActionResult ContractCreation()
 {
     ContractEmployee ce = new ContractEmployee();
     ViewBag.CompName = EMSPSSUtilities.GetCompList();
     return View(ce);
 }