public ActionResult AddOrg(AddOrg addOrg)
        {
            if (ModelState.IsValid)
            {
                if (addOrg.GoalID > 0)
                {
                    tblHOTP_EmployeeGoals newEmployeeGoals = new tblHOTP_EmployeeGoals();
                    newEmployeeGoals.GoalID = addOrg.GoalID;
                    newEmployeeGoals.EmployeeID = addOrg.EmployeeID;
                    newEmployeeGoals.Weight = addOrg.Weight;
                    int? score = (db.tblHOTP_Goals.Where(g => g.GoalID == addOrg.GoalID).Select(g => g.Score)).First();
                    decimal rounded = decimal.Round(Convert.ToDecimal(newEmployeeGoals.Weight) * Convert.ToDecimal(score) / 100, 2);
                    newEmployeeGoals.ItemScore = rounded;
                    db.tblHOTP_EmployeeGoals.Add(newEmployeeGoals);
                    db.SaveChanges();
                }
                return RedirectToAction("Index");
            }

            return View(addOrg);
        }
Exemple #2
0
        public ActionResult Cascade(FormCollection formCollection)
        {
            //if (ModelState.IsValid)
            {
                var Employees = (from e in db.tblHOTP_Employees where e.Evaluations orderby e.LastName select e); //).ToList();

                var Goals = (from g in db.tblHOTP_Goals
                             where g.GoalType == "Organizational"
                             join c in db.tblHOTP_Codes on g.Pillar equals c.Code
                             select g);
                string year = "";

                foreach (tblHOTP_Employees emp in Employees)
                {
                    foreach (tblHOTP_Goals goal in Goals)
                    {
                        year = goal.YearEnding;
                        try
                        {
                            string inputField = "MyGoals_" + emp.EmployeeID + "_" + goal.GoalID + "_Weight";
                            string myString = Request.Form[inputField];

                            if (db.tblHOTP_EmployeeGoals.Any(eg => eg.EmployeeID == emp.EmployeeID && eg.GoalID == goal.GoalID))
                            // tblHOTP_EmployeeGoals already exists
                            {
                                if (myString.CompareTo("") == 0)
                                {
                                    // DON'T remove it. They could have added it separately.
                                    //var itemToRemove = db.tblHOTP_EmployeeGoals.SingleOrDefault(eg => eg.EmployeeID == emp.EmployeeID && eg.GoalID == goal.GoalID);
                                    //if (itemToRemove != null)
                                    //{
                                    //    db.tblHOTP_EmployeeGoals.Remove(itemToRemove);
                                    //}
                                }
                                else
                                {
                                    var itemToUpdate = db.tblHOTP_EmployeeGoals.SingleOrDefault(eg => eg.EmployeeID == emp.EmployeeID && eg.GoalID == goal.GoalID);
                                    if (itemToUpdate != null)
                                    {
                                        itemToUpdate.Weight = Convert.ToInt16(myString);
                                    }
                                }
                            }
                            else
                            //Doesn't already exist
                            {
                                if (myString.CompareTo("") == 0)
                                {
                                    // do nothing
                                }
                                else
                                {
                                    var newEmployeeGoal = new tblHOTP_EmployeeGoals();
                                    newEmployeeGoal.EmployeeID = emp.EmployeeID;
                                    newEmployeeGoal.GoalID = goal.GoalID;
                                    newEmployeeGoal.Weight = Convert.ToInt16(myString);
                                    decimal rounded = decimal.Round(Convert.ToDecimal(newEmployeeGoal.Weight) * Convert.ToDecimal(goal.Score) / 100, 2);
                                    newEmployeeGoal.ItemScore = rounded;
                                    db.tblHOTP_EmployeeGoals.Add(newEmployeeGoal);
                                }
                            }

                        }
                        catch { }
                    }
                }
                try
                {
                    // Your code...
                    // Could also be before try if you know the exception occurs in SaveChanges

                    db.SaveChanges();
                }
                catch (DbEntityValidationException e)
                {
                    foreach (var eve in e.EntityValidationErrors)
                    {
                        Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
                            eve.Entry.Entity.GetType().Name, eve.Entry.State);
                        foreach (var ve in eve.ValidationErrors)
                        {
                            Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"",
                                ve.PropertyName, ve.ErrorMessage);
                        }
                    }
                    throw;
                }
                //db.SaveChanges();
                return RedirectToAction("Index", new { year = year });
            }
            //else
            //{
            //    var cascadeGoals = new CascadeGoals();
            //    cascadeGoals.Employees = (from e in db.tblHOTP_Employees where e.Evaluations orderby e.LastName select e).ToList();
            //    cascadeGoals.Goals = (from g in db.tblHOTP_Goals
            //                          where g.GoalType == "Organizational"
            //                          join c in db.tblHOTP_Codes on g.Pillar equals c.Code
            //                          orderby c.Sequence
            //                          select g).ToList();
            //    return View(cascadeGoals);
            //}
            //return View(employees.ToList());
        }
        public ActionResult Create(EvalViewModel returnedEvalViewModel)
        {
            if (ModelState.IsValid)
            {
                tblHOTP_Goals newGoal = new tblHOTP_Goals();
                //var goal = db.tblHOTP_Goals.Find(returnedEvalViewModel.Goal.GoalID);
                newGoal.YearEnding = returnedEvalViewModel.Goal.YearEnding;
                newGoal.GoalType = returnedEvalViewModel.Goal.GoalType;
                newGoal.Pillar = returnedEvalViewModel.Goal.Pillar;
                newGoal.GoalName = returnedEvalViewModel.Goal.GoalName;
                newGoal.PillarGoalName = returnedEvalViewModel.Goal.PillarGoalName;
                newGoal.Goal = returnedEvalViewModel.Goal.Goal;
                newGoal.Status = returnedEvalViewModel.Goal.Status;
                newGoal.ResultsMeasured = returnedEvalViewModel.Goal.ResultsMeasured;
                newGoal.BestRating = returnedEvalViewModel.Goal.BestRating;
                newGoal.YearEndCalculation = returnedEvalViewModel.Goal.YearEndCalculation;
                newGoal.UnitsMeasuredIn = returnedEvalViewModel.Goal.UnitsMeasuredIn;
                newGoal.NumDecimals = returnedEvalViewModel.Goal.NumDecimals;
                newGoal.ResultsEntered = returnedEvalViewModel.Goal.ResultsEntered;
                newGoal.EnteredBy = returnedEvalViewModel.Goal.EnteredBy;
                newGoal.NonEditableByLeader = returnedEvalViewModel.Goal.NonEditableByLeader;

                newGoal.Rating1 = returnedEvalViewModel.Goal.Rating1;
                newGoal.Rating2 = returnedEvalViewModel.Goal.Rating2;
                newGoal.Rating3 = returnedEvalViewModel.Goal.Rating3;
                newGoal.Rating4 = returnedEvalViewModel.Goal.Rating4;
                newGoal.Rating5 = returnedEvalViewModel.Goal.Rating5;
                newGoal.Rating1Suffix = returnedEvalViewModel.Goal.Rating1Suffix;
                newGoal.Rating2End = returnedEvalViewModel.Goal.Rating2End;
                newGoal.Rating3End = returnedEvalViewModel.Goal.Rating3End;
                newGoal.Rating4End = returnedEvalViewModel.Goal.Rating4End;
                newGoal.Rating5Suffix = returnedEvalViewModel.Goal.Rating5Suffix;

                newGoal.Jan = returnedEvalViewModel.Goal.Jan;
                newGoal.Feb = returnedEvalViewModel.Goal.Feb;
                newGoal.Mar = returnedEvalViewModel.Goal.Mar;
                newGoal.Apr = returnedEvalViewModel.Goal.Apr;
                newGoal.May = returnedEvalViewModel.Goal.May;
                newGoal.Jun = returnedEvalViewModel.Goal.Jun;
                newGoal.Jul = returnedEvalViewModel.Goal.Jul;
                newGoal.Aug = returnedEvalViewModel.Goal.Aug;
                newGoal.Sep = returnedEvalViewModel.Goal.Sep;
                newGoal.Oct = returnedEvalViewModel.Goal.Oct;
                newGoal.Nov = returnedEvalViewModel.Goal.Nov;
                newGoal.Dec = returnedEvalViewModel.Goal.Dec;
                db.tblHOTP_Goals.Add(newGoal);
                db.SaveChanges();
                int goalID = newGoal.GoalID;

                tblHOTP_EmployeeGoals newEmployeeGoal = new tblHOTP_EmployeeGoals(); // db.tblHOTP_EmployeeGoals.Find(returnedEvalViewModel.EmployeeGoalID);
                newEmployeeGoal.GoalID = goalID;
                newEmployeeGoal.EmployeeID = returnedEvalViewModel.EmployeeID;
                newEmployeeGoal.Weight = returnedEvalViewModel.Weight;
                newEmployeeGoal.ItemScore = 0; // returnedEvalViewModel.ItemScore;
                db.tblHOTP_EmployeeGoals.Add(newEmployeeGoal);
                db.SaveChanges();
                return RedirectToAction("Index");
            }
            ViewBag.Pillar = PopulateCodesDDL("Pillar");
            ViewBag.YearEnding = PopulateCodesDDL("YearEnding");
            ViewBag.ResultsMeasured = PopulateCodesDDL("ResultsMeasured");
            ViewBag.BestRating = PopulateCodesDDL("BestRating");
            ViewBag.YearEndCalculation = PopulateCodesDDL("YearEndCalculation");
            ViewBag.UnitsMeasuredIn = PopulateCodesDDL("UnitsMeasuredIn");
            ViewBag.ResultsEntered = PopulateCodesDDL("ResultsEntered");
            return View(returnedEvalViewModel);
        }