protected void rgAuditAnswers_ItemDataBound(object sender, GridItemEventArgs e)
        {
            if (e.Item is GridDataItem)
            {
                GridDataItem     item = (GridDataItem)e.Item;
                HiddenField      hf;
                LinkButton       lnk;
                Label            lbl;
                EHSAuditQuestion data = (EHSAuditQuestion)e.Item.DataItem;

                lnk = (LinkButton)e.Item.FindControl("lnkAddTask");
                lnk.CommandArgument = data.AuditId.ToString() + "," + data.QuestionId.ToString();
                string buttonText = Resources.LocalizedText.AssignTask + "(" + data.TasksAssigned.ToString() + ")";
                lnk.Text = buttonText;

                lnk = (LinkButton)e.Item.FindControl("lnkAddAttach");
                lnk.CommandArgument = data.AuditId.ToString() + "," + data.QuestionId.ToString();
                buttonText          = Resources.LocalizedText.Attachments + "(" + data.FilesAttached.ToString() + ")";
                lnk.Text            = buttonText;

                lnk = (LinkButton)e.Item.FindControl("lnkUpdateStatus");
                lnk.CommandArgument = data.AuditId.ToString() + "," + data.QuestionId.ToString();
                if (!hdnAuditPerson.Value.ToString().Equals(SessionManager.UserContext.Person.PERSON_ID.ToString()))
                {
                    lnk.Visible = false;
                }

                if (TaskXLATList == null || TaskXLATList.Count == 0)
                {
                    TaskXLATList = SQMBasePage.SelectXLATList(new string[1] {
                        "AUDIT_EXCEPTION_STATUS"
                    });
                }

                lbl = (Label)e.Item.FindControl("lblAnswerStatus");
                if (data.Status == null)
                {
                    lbl.Text = TaskXLATList.Where(l => l.XLAT_GROUP == "AUDIT_EXCEPTION_STATUS" && l.XLAT_CODE == "01").FirstOrDefault().DESCRIPTION;
                }
                else
                {
                    lbl.Text = TaskXLATList.Where(l => l.XLAT_GROUP == "AUDIT_EXCEPTION_STATUS" && l.XLAT_CODE == data.Status.ToString()).FirstOrDefault().DESCRIPTION;
                }

                lbl = (Label)e.Item.FindControl("lblResolutionDate");
                if (data.CompleteDate == null || data.CompleteDate.Year == 1)
                {
                    lbl.Text = "";
                }
                else
                {
                    lbl.Text = data.CompleteDate.ToString("MM/dd/yyyy");
                }
            }
        }
        public void BindTaskUpdate(TASK_STATUS task, string context)
        {
            PSsqmEntities ctx = new PSsqmEntities();

            if (TaskXLATList == null || TaskXLATList.Count == 0)
            {
                TaskXLATList = SQMBasePage.SelectXLATList(new string[5] {
                    "TASK_STATUS", "RECORD_TYPE", "INCIDENT_STATUS", "NOTIFY_SCOPE_TASK", "ACTION_CATEGORY"
                });
            }

            CurrentTask = task;

            pnlUpdateTask.Visible         = true;
            btnTaskUpdate.CommandArgument = btnTaskComplete.CommandArgument = btnTaskAssign.CommandArgument = task.TASK_ID.ToString();

            if (task.STATUS == ((int)TaskStatus.Complete).ToString())
            {
                btnTaskComplete.Visible = btnTaskUpdate.Visible = btnTaskAssign.Visible = false;
                //tbTaskDescription.Enabled = rdpTaskDueDT.Enabled = tbTaskComments.Enabled = false;
                rdpTaskDueDT.Enabled = tbTaskComments.Enabled = false;
            }
            else
            {
                btnTaskComplete.Visible = btnTaskUpdate.Visible = btnTaskAssign.Visible = true;
                //tbTaskDescription.Enabled = rdpTaskDueDT.Enabled = tbTaskComments.Enabled = true;
                rdpTaskDueDT.Enabled = tbTaskComments.Enabled = true;
            }

            switch ((TaskRecordType)task.RECORD_TYPE)
            {
            case TaskRecordType.HealthSafetyIncident:
                lblTaskTypeValue.Text = TaskXLATList.Where(l => l.XLAT_GROUP == "RECORD_TYPE" && l.XLAT_CODE == task.RECORD_TYPE.ToString()).FirstOrDefault().DESCRIPTION;
                if (task.TASK_STEP == "350")
                {                               // corrective action task
                    lblTaskTypeValue.Text += (" - " + TaskXLATList.Where(l => l.XLAT_GROUP == "NOTIFY_SCOPE_TASK" && l.XLAT_CODE == task.TASK_STEP).FirstOrDefault().DESCRIPTION);
                }
                else
                {
                    lblTaskTypeValue.Text += (" - " + TaskXLATList.Where(l => l.XLAT_GROUP == "NOTIFY_SCOPE_TASK" && l.XLAT_CODE == task.TASK_STEP).FirstOrDefault().DESCRIPTION);
                }
                break;

            case TaskRecordType.PreventativeAction:
                lblTaskTypeValue.Text = TaskXLATList.Where(l => l.XLAT_GROUP == "RECORD_TYPE" && l.XLAT_CODE == task.RECORD_TYPE.ToString()).FirstOrDefault().DESCRIPTION;
                if (task.TASK_STEP == "350")
                {                               // corrective action task
                    lblTaskTypeValue.Text += (" - " + TaskXLATList.Where(l => l.XLAT_GROUP == "NOTIFY_SCOPE_TASK" && l.XLAT_CODE == task.TASK_STEP).FirstOrDefault().DESCRIPTION);
                }
                else
                {
                    lblTaskTypeValue.Text += (" - " + TaskXLATList.Where(l => l.XLAT_GROUP == "NOTIFY_SCOPE_TASK" && l.XLAT_CODE == task.TASK_STEP).FirstOrDefault().DESCRIPTION);
                }
                btnTaskLink.CommandArgument = task.RECORD_ID.ToString();
                btnTaskLink.Visible         = true;
                btnTaskAssign.Visible       = btnTaskComplete.Visible = false;
                break;

            case TaskRecordType.Audit:
                //AUDIT audit = EHSAuditMgr.SelectAuditById(ctx, task.RECORD_ID);
                lblTaskTypeValue.Text = TaskXLATList.Where(l => l.XLAT_GROUP == "RECORD_TYPE" && l.XLAT_CODE == task.RECORD_TYPE.ToString()).FirstOrDefault().DESCRIPTION;
                if ((task.RECORD_SUBID.HasValue && task.RECORD_SUBID > 0) || task.TASK_STEP == "350")
                {                               // action required if subid references a specific audit question
                    lblTaskTypeValue.Text += (" - " + TaskXLATList.Where(l => l.XLAT_GROUP == "NOTIFY_SCOPE_TASK" && l.XLAT_CODE == task.TASK_STEP).FirstOrDefault().DESCRIPTION);
                }
                else
                {
                    lblTaskTypeValue.Text += (" - " + TaskXLATList.Where(l => l.XLAT_GROUP == "NOTIFY_SCOPE_TASK" && l.XLAT_CODE == "300").FirstOrDefault().DESCRIPTION);
                }
                break;

            default:
                return;

                break;
            }

            //tbTaskDescription.Text = task.DESCRIPTION;  // command of what to do
            lbTaskDescription.Text  = task.DESCRIPTION;         // command of what to do
            lblTaskDetailValue.Text = task.DETAIL;              // incident description or audit question
            PERSON createBy = null;                             // mt - predeclare create by person to better handle NULL CREATE_ID

            // get the Create By person name and display
            if (task.CREATE_ID.HasValue)
            {
                createBy = SQMModelMgr.LookupPerson(ctx, (decimal)task.CREATE_ID, "", false);
            }
            if (createBy == null)
            {
                lblCreatedByValue.Text = Resources.LocalizedText.AutomatedScheduler;
            }
            else
            {
                lblCreatedByValue.Text = SQMModelMgr.FormatPersonListItem(createBy, false, "LF");
            }

            PERSON assignTo = SQMModelMgr.LookupPerson(ctx, (decimal)task.RESPONSIBLE_ID, "", false);

            if (assignTo == null)
            {
                lblAssignPersonValue.Text = Resources.LocalizedText.AutomatedScheduler;
            }
            else
            {
                lblAssignPersonValue.Text = SQMModelMgr.FormatPersonListItem(assignTo, false, "LF");
            }

            rdpTaskDueDT.SelectedDate = (DateTime)task.DUE_DT;
            lblTaskStatusValue.Text   = TaskXLATList.Where(l => l.XLAT_GROUP == "TASK_STATUS" && l.XLAT_CODE == ((int)TaskMgr.CalculateTaskStatus(task)).ToString()).FirstOrDefault().DESCRIPTION;
            tbTaskComments.Text       = task.COMMENTS;

            int attachCount = SQM.Website.Classes.SQMDocumentMgr.GetAttachmentCountByRecord(CurrentTask.RECORD_TYPE, CurrentTask.RECORD_ID, CurrentTask.TASK_STEP, "");

            lnkAttachments.Text    = attachCount == 0 ? Resources.LocalizedText.Attachments : (Resources.LocalizedText.Attachments + " (" + attachCount.ToString() + ")");
            lnkAttachments.Visible = true;
        }
        protected void rgTaskList_ItemDataBound(object sender, GridItemEventArgs e)
        {
            if (e.Item is GridDataItem)
            {
                GridDataItem item = (GridDataItem)e.Item;
                HiddenField  hf;
                Label        lbl;

                try
                {
                    TASK_STATUS task = (TASK_STATUS)e.Item.DataItem;

                    LinkButton lnk = (LinkButton)e.Item.FindControl("lbTaskId");
                    lnk.Text = WebSiteCommon.FormatID(task.TASK_ID, 6);
                    if (task.DESCRIPTION != null)
                    {
                        if (task.DESCRIPTION.Length > 120)
                        {
                            lbl      = (Label)e.Item.FindControl("lblDescription");
                            lbl.Text = task.DESCRIPTION.Substring(0, 117) + "...";
                        }
                    }
                    lbl = (Label)e.Item.FindControl("lblTaskType");

                    lbl.Text = TaskXLATList.Where(l => l.XLAT_GROUP == "RECORD_TYPE" && l.XLAT_CODE == task.RECORD_TYPE.ToString()).FirstOrDefault().DESCRIPTION;
                    if (task.TASK_STEP == "350" || task.TASK_STEP == "400")
                    {
                        if (task.RECORD_TYPE == (int)TaskRecordType.Audit && task.RECORD_SUBID > 0)
                        {
                            lbl.Text += (" Exception");
                        }
                        lbl.Text += (" - " + TaskXLATList.Where(l => l.XLAT_GROUP == "NOTIFY_SCOPE_TASK" && l.XLAT_CODE == task.TASK_STEP).FirstOrDefault().DESCRIPTION);
                    }

                    lbl = (Label)e.Item.FindControl("lblCreateDT");
                    if (task.CREATE_DT.HasValue)
                    {
                        lbl.Text = Convert.ToDateTime(task.CREATE_DT).ToShortDateString();
                    }
                    lbl = (Label)e.Item.FindControl("lblDueDT");
                    if (task.DUE_DT.HasValue)
                    {
                        lbl.Text = Convert.ToDateTime(task.DUE_DT).ToShortDateString();
                    }

                    lbl      = (Label)e.Item.FindControl("lblStatus");
                    lbl.Text = TaskXLATList.Where(l => l.XLAT_GROUP == "TASK_STATUS" && l.XLAT_CODE == ((int)TaskMgr.CalculateTaskStatus(task)).ToString()).FirstOrDefault().DESCRIPTION_SHORT;

                    lbl = (Label)e.Item.FindControl("lblResponsiblePerson");
                    PERSON responsiblePerson = new PERSON();
                    try
                    {
                        PSsqmEntities entities = new PSsqmEntities();
                        responsiblePerson = SQMModelMgr.LookupPerson((decimal)task.RESPONSIBLE_ID, "");
                    }
                    catch { }

                    if (responsiblePerson != null)
                    {
                        lbl.Text = SQMModelMgr.FormatPersonListItem(responsiblePerson, false, "LF");
                    }
                }
                catch
                {
                }
            }
        }
        public void BindTaskAdd(int recordType, decimal recordID, decimal recordSubID, string taskStep, string taskType, string originalDetail, decimal plantID, string context)
        {
            PSsqmEntities ctx = new PSsqmEntities();

            if (TaskXLATList == null || TaskXLATList.Count == 0)
            {
                TaskXLATList = SQMBasePage.SelectXLATList(new string[5] {
                    "TASK_STATUS", "RECORD_TYPE", "INCIDENT_STATUS", "NOTIFY_SCOPE_TASK", "ACTION_CATEGORY"
                });
            }

            pnlUpdateTask.Visible      = false;
            pnlAddTask.Visible         = true;
            btnTaskAdd.CommandArgument = recordType.ToString() + "~" + recordID.ToString() + "~" + recordSubID.ToString() + "~" + taskStep + "~" + taskType + "~" + plantID.ToString();

            lblTaskTypeValueAdd.Text = TaskXLATList.Where(l => l.XLAT_GROUP == "RECORD_TYPE" && l.XLAT_CODE == recordType.ToString()).FirstOrDefault().DESCRIPTION;

            switch ((TaskRecordType)recordType)
            {
            case TaskRecordType.Audit:
                if ((recordSubID > 0) || taskStep == "350")
                {                               // action required if subid references a specific audit question
                    lblTaskTypeValueAdd.Text += (" - " + TaskXLATList.Where(l => l.XLAT_GROUP == "NOTIFY_SCOPE_TASK" && l.XLAT_CODE == taskStep).FirstOrDefault().DESCRIPTION);
                }
                else
                {
                    lblTaskTypeValueAdd.Text += (" - " + TaskXLATList.Where(l => l.XLAT_GROUP == "NOTIFY_SCOPE_TASK" && l.XLAT_CODE == "300").FirstOrDefault().DESCRIPTION);
                }
                break;

            default:
                return;

                break;
            }

            lblTaskDetailValueAdd.Text   = originalDetail;                                                                                                       // cause of the requirement
            rdpTaskDueDTAdd.SelectedDate = SessionManager.UserContext.LocalTime;                                                                                 // default to today?
            lblTaskStatusValueAdd.Text   = TaskXLATList.Where(l => l.XLAT_GROUP == "TASK_STATUS" && l.XLAT_CODE == (0).ToString()).FirstOrDefault().DESCRIPTION; // default to the "Open" status

            ddlScheduleScopeAdd.Items.Clear();
            mnuScheduleScopeAdd.Items.Clear();

            BusinessLocation location = new BusinessLocation().Initialize(plantID);
            SysPriv          maxPriv  = UserContext.GetMaxScopePrivilege(SysScope.busloc);

            List <BusinessLocation> locationList = SessionManager.PlantList;

            locationList = UserContext.FilterPlantAccessList(locationList);

            if (maxPriv <= SysPriv.config)              // is a plant admin or greater ?
            {
                // AW20170105 - move this up so it can be used by both admin and non admin
                //List<BusinessLocation> locationList = SessionManager.PlantList;
                //locationList = UserContext.FilterPlantAccessList(locationList);

                if (locationList.Select(l => l.Plant.BUS_ORG_ID).Distinct().Count() > 1 && SessionManager.IsUserAgentType("ipad,iphone") == false)
                {
                    ddlScheduleScopeAdd.Visible = false;
                    mnuScheduleScopeAdd.Visible = true;
                    SQMBasePage.SetLocationList(mnuScheduleScopeAdd, locationList, plantID, location.Plant.PLANT_NAME, "TOP", true);
                    //RadMenuItem mi = new RadMenuItem();
                    //mi.Text = (location.Plant.PLANT_NAME);
                    //mi.Value = plantID.ToString();
                    ////mi.ImageUrl = "~/images/defaulticon/16x16/user-alt-2.png";
                    //mnuScheduleScopeAdd.Items[0].Items.Insert(0, mi);
                    //mnuScheduleScopeAdd.Attributes.Add("z-index", "9");
                }
                else
                {
                    ddlScheduleScopeAdd.Visible = true;
                    mnuScheduleScopeAdd.Visible = false;
                    SQMBasePage.SetLocationList(ddlScheduleScopeAdd, locationList, plantID, true);
                }
            }
            else
            {
                ddlScheduleScopeAdd.Visible = true;
                mnuScheduleScopeAdd.Visible = false;
                //ddlScheduleScopeAdd.Items.Insert(0, new RadComboBoxItem((SessionManager.UserContext.Person.FIRST_NAME + " " + SessionManager.UserContext.Person.LAST_NAME), "0"));
                //ddlScheduleScopeAdd.Items[0].ImageUrl = "~/images/defaulticon/16x16/user-alt-2.png";
                SQMBasePage.SetLocationList(ddlScheduleScopeAdd, locationList, plantID, true);
            }

            List <PERSON> personList = SQMModelMgr.SelectPlantPersonList(1, plantID).Where(l => !string.IsNullOrEmpty(l.EMAIL)).OrderBy(l => l.LAST_NAME).ToList();

            SQMBasePage.SetPersonList(ddlAssignPersonAdd, personList, "", 0, false, "LF");

            List <TaskItem> tasklist = TaskMgr.ExceptionTaskListByRecord(recordType, recordID, recordSubID);

            rptTaskList.DataSource = tasklist;
            rptTaskList.DataBind();
            if (tasklist.Count > 0)
            {
                pnlListTasks.Visible = true;
            }
            else
            {
                pnlListTasks.Visible = false;
            }

            btnTaskAdd.Visible    = true;
            btnTaskUpdate.Visible = false;
        }