public ActionResult CreateBeforeChecklist(BeforeRollerIssueChecklist beforeRollerIssueChecklist)
        {
            Schedule schedule = _db.schedules.FirstOrDefault(s => s.scheduleID == beforeRollerIssueChecklist.scheduleID);

            if (schedule == null)
            {
                return(RedirectToAction("CreateSearch"));
            }

            beforeRollerIssueChecklist.dateTime   = DateTime.Now;
            beforeRollerIssueChecklist.preparedBy = getCurrentUser();
            beforeRollerIssueChecklist.Schedule   = schedule;
            _db.beforeRollerIssueChecklists.Add(beforeRollerIssueChecklist);
            schedule.status = ScheduleStatus.ACTIVE;

            // Update roller location
            bool updateLocatResult = CentralUtilities.UpdateRollerLocation(
                beforeRollerIssueChecklist.Schedule.RubberRoller,
                $"Operation Line {beforeRollerIssueChecklist.Schedule.operationLine}"
                );

            int result = _db.SaveChanges();

            if (result > 0 && updateLocatResult)
            {
                // Success - redirect to active operation list page
                TempData["formStatus"]    = true;
                TempData["formStatusMsg"] = "<b>STATUS</b>: New operation record has been successfully added.";
                LogAction.log(this._controllerName, "POST", "Added new before roller issue checklist", User.Identity.GetUserId());
                return(RedirectToAction("ActiveOperation"));
            }
            else
            {
                TempData["formStatus"]    = false;
                TempData["formStatusMsg"] = "<b>ALERT</b>: Oops! Something went wrong. The before issue checklist has not been successfully added.";
                LogAction.log(this._controllerName, "POST", "Error adding new before roller issue checklist", User.Identity.GetUserId());
                return(Redirect(Request.UrlReferrer.ToString()));
            }
        }
        public ActionResult UpdateOperationDetail(FormCollection collection)
        {
            try
            {
                int      schedID  = Int32.Parse(collection["scheduleID"]);
                Schedule schedule = _db.schedules.FirstOrDefault(s => s.scheduleID == schedID);
                if (schedule == null)
                {
                    return(Redirect(Request.UrlReferrer.ToString()));
                }

                // Update schedule detail
                schedule.startDateTime = DateTime.Parse(collection["startDateTime"]);
                schedule.operationLine = Int32.Parse(collection["operationLine"]);
                schedule.product       = collection["product"];
                schedule.tinplateSize  = collection["tinplateSize"];
                schedule.remark        = collection["remark"];

                // Update Before checklist
                BeforeRollerIssueChecklist beforeRollerIssueChecklist;
                if (schedule.BeforeRollerIssueChecklists.Count == 0)
                {
                    beforeRollerIssueChecklist                 = new BeforeRollerIssueChecklist();
                    beforeRollerIssueChecklist.preparedBy      = getCurrentUser();
                    beforeRollerIssueChecklist.dateTime        = DateTime.Now;
                    beforeRollerIssueChecklist.Schedule        = schedule;
                    beforeRollerIssueChecklist.scheduleID      = schedule.scheduleID;
                    beforeRollerIssueChecklist.hubsCondition   = collection["hubsCondition"];
                    beforeRollerIssueChecklist.nutUsed         = collection["nutUsed"];
                    beforeRollerIssueChecklist.rollerRoundness = collection["rollerRoundness"];
                    beforeRollerIssueChecklist.rollerSH        = collection["rollerSH"];
                    _db.beforeRollerIssueChecklists.Add(beforeRollerIssueChecklist);
                }
                else
                {
                    beforeRollerIssueChecklist = schedule.BeforeRollerIssueChecklists.First();
                    beforeRollerIssueChecklist.hubsCondition   = collection["hubsCondition"];
                    beforeRollerIssueChecklist.nutUsed         = collection["nutUsed"];
                    beforeRollerIssueChecklist.rollerRoundness = collection["rollerRoundness"];
                    beforeRollerIssueChecklist.rollerSH        = collection["rollerSH"];
                }

                int result = _db.SaveChanges();
                if (result > 0)
                {
                    TempData["formStatus"]    = true;
                    TempData["formStatusMsg"] = "<b>STATUS</b>: Operation details has been successfully updated!";
                    LogAction.log(this._controllerName, "POST", "Successfully updated operation detail", User.Identity.GetUserId());
                    return(RedirectToAction("ActiveOperation"));
                }
                else
                {
                    TempData["formStatus"]    = false;
                    TempData["formStatusMsg"] = "<b>ALERT</b>: Oops! Something went wrong. The operation details has not been successfully updated.";
                    LogAction.log(this._controllerName, "POST", "Error updating operation detail", User.Identity.GetUserId());
                    return(Redirect(Request.UrlReferrer.ToString()));
                }
            }
            catch (Exception ex)
            {
                LogAction.log(this._controllerName, "POST", "Error: " + ex.Message, User.Identity.GetUserId());
                TempData["formStatus"]    = false;
                TempData["formStatusMsg"] = "<b>ALERT</b>: Oops! Something went wrong.";
                return(Redirect(Request.UrlReferrer.ToString()));
            }
        }