Ejemplo n.º 1
0
        public static void CreateOrUpdateTask(decimal auditId, decimal responsiblePersonId, int recordTypeId, DateTime dueDate, string status)
        {
            var entities = new PSsqmEntities();

            AUDIT      audit   = SelectAuditById(entities, auditId);
            AUDIT_TYPE type    = SelectAuditTypeById(entities, audit.AUDIT_TYPE_ID);
            var        taskMgr = new TaskStatusMgr();

            taskMgr.Initialize(recordTypeId, auditId);
            taskMgr.LoadTaskList(recordTypeId, auditId);
            TASK_STATUS task = taskMgr.FindTask("0", "T", responsiblePersonId);

            if (task == null)
            {
                task        = taskMgr.CreateTask("0", "T", 0, type.TITLE.ToString(), dueDate, responsiblePersonId);
                task.STATUS = ((int)TaskMgr.CalculateTaskStatus(task)).ToString();
            }
            else
            {
                switch (status)
                {
                case "C":
                    task.STATUS = ((int)TaskStatus.Complete).ToString();
                    taskMgr.SetTaskComplete(task, responsiblePersonId);
                    break;
                }
                //task = taskMgr.UpdateTask(task, dueDate, responsiblePersonId, audit.AUDIT_TYPE_ID.ToString());
            }

            taskMgr.UpdateTaskList(auditId);
        }
Ejemplo n.º 2
0
        public static void SetTaskComplete(decimal incidentId, int recordTypeId)
        {
            var taskMgr = new TaskStatusMgr();

            taskMgr.Initialize(recordTypeId, incidentId);
            taskMgr.LoadTaskList(recordTypeId, incidentId);
            TASK_STATUS task = taskMgr.FindTask("0", "T", 0);

            if (task != null)
            {
                taskMgr.UpdateTaskStatus(task, TaskMgr.CalculateTaskStatus(task));
                taskMgr.SetTaskComplete("0", "T", 0, true);
                taskMgr.UpdateTaskList(incidentId);
            }
        }
Ejemplo n.º 3
0
        public int CheckCaseStatus()
        {
            int isComplete = 0;

            if (this.TeamTask != null)
            {
                foreach (TASK_STATUS task in this.TeamTask.TaskList)
                {
                    switch (TaskMgr.CalculateTaskStatus(task))
                    {
                    case TaskStatus.Complete:
                        ++isComplete;
                        break;

                    default:
                        break;
                    }
                }
            }

            return(isComplete);
        }
Ejemplo n.º 4
0
        private void SetupPage()
        {
            int nextStep = CaseCtl().problemCase.CheckCaseNextStep();
            int progress = CaseCtl().problemCase.CheckCaseStatus();

            if (CaseCtl().isDirected)
            {
                uclSearchBar.SetButtonsEnabled(false, false, false, false, false, false);
            }
            uclPageTabs.TabsPanel.Visible = true;
            uclPageTabs.SetTabLabelsFromList(WebSiteCommon.GetXlatList("caseStep", "", "short"));
            uclPageTabs.SetAllTabsEnabled(true);

            if (CaseCtl().problemCase.TeamTask != null)
            {
                TaskStatus status;
                foreach (TASK_STATUS task in CaseCtl().problemCase.TeamTask.TaskList.Where(l => l.TASK_TYPE == "C" && l.TASK_SEQ == 0))
                {
                    if ((status = TaskMgr.CalculateTaskStatus(task)) < TaskStatus.New)
                    {
                        string imageURL = TaskMgr.TaskStatusImage(status);
                        uclPageTabs.SetTabImage(Convert.ToInt32(task.TASK_STEP), imageURL, status.ToString());
                    }
                }
            }

            SessionManager.EffLocation = SessionManager.UserContext.WorkingLocation;  /// is this true ??

            if (CaseCtl().isNew)
            {
                uclCaseHdr.ProblemCaseHdr.Visible = true;
            }
            else
            {
                uclCaseHdr.ProblemCaseHdr.Visible = true;
                uclCaseHdr.BindProblemCaseHeader(CaseCtl().problemCase, true);
            }
        }
        public void gvIssueList_OnRowDataBound(object sender, System.Web.UI.WebControls.GridViewRowEventArgs e)
        {
            if ((!e.Row.RowType.ToString().Trim().Equals(System.Web.UI.WebControls.ListItemType.Header.ToString())) & (!e.Row.RowType.ToString().Trim().Equals(System.Web.UI.WebControls.ListItemType.Footer.ToString())))
            {
                try
                {
                    Label       lbl;
                    HiddenField hf = (HiddenField)e.Row.Cells[0].FindControl("hfIssueID");

                    LinkButton lnk = (LinkButton)e.Row.Cells[0].FindControl("lnkViewIssue_out");
                    lnk.Text = WebSiteCommon.FormatID(Convert.ToInt32(hf.Value), 6);

                    lbl = (Label)e.Row.Cells[0].FindControl("lblDisposition_Out");
                    string tempDisposition = lbl.Text;
                    lbl.Text = WebSiteCommon.GetXlatValue("NCDisposition", lbl.Text);

                    lnk      = (LinkButton)e.Row.Cells[0].FindControl("lnkIssueDate_Out");
                    lnk.Text = WebSiteCommon.LocalTime(Convert.ToDateTime(lnk.Text), SessionManager.UserContext.TimeZoneID).ToShortDateString();

                    lnk      = (LinkButton)e.Row.Cells[0].FindControl("lnkIssueTask_out");
                    lnk.Text = WebSiteCommon.GetXlatValueLong("taskType", lnk.Text);

                    TASK_STATUS task = new TASK_STATUS();
                    hf           = (HiddenField)e.Row.Cells[0].FindControl("hfTaskStatus");
                    task.TASK_ID = Convert.ToDecimal(hf.Value);
                    hf           = (HiddenField)e.Row.Cells[0].FindControl("hfTaskDueDate");
                    task.DUE_DT  = WebSiteCommon.LocalTime(Convert.ToDateTime(hf.Value), SessionManager.UserContext.TimeZoneID);
                    Image      img    = (Image)e.Row.Cells[0].FindControl("imgTaskStatus");
                    TaskStatus status = TaskMgr.CalculateTaskStatus(task);
                    img.ImageUrl = TaskMgr.TaskStatusImage(status);
                    img.ToolTip  = status.ToString();
                }
                catch
                {
                }
            }
        }
Ejemplo n.º 6
0
        public static void CreateOrUpdateTask(decimal incidentId, decimal responsiblePersonId, int recordTypeId, DateTime dueDate)
        {
            var entities = new PSsqmEntities();

            INCIDENT incident = SelectIncidentById(entities, incidentId);

            var taskMgr = new TaskStatusMgr();

            taskMgr.Initialize(recordTypeId, incidentId);
            taskMgr.LoadTaskList(recordTypeId, incidentId);
            TASK_STATUS task = taskMgr.FindTask("0", "T", 0);

            if (task == null)
            {
                task        = taskMgr.CreateTask("0", "T", 0, incident.ISSUE_TYPE, dueDate, responsiblePersonId);
                task.STATUS = ((int)TaskMgr.CalculateTaskStatus(task)).ToString();
            }
            else
            {
                task = taskMgr.UpdateTask(task, dueDate, responsiblePersonId, incident.ISSUE_TYPE);
            }

            taskMgr.UpdateTaskList(incidentId);
        }
Ejemplo n.º 7
0
        private void uclCaseEdit_OnSaveClick(string cmdArg)
        {
            bool bNotify;

            CaseCtl().problemCase.UpdateStatus = CaseUpdateStatus.Success;
            switch (cmdArg)
            {
            case "0":
                CaseCtl().problemCase = uclCaseEdit.UpdateCase0(CaseCtl().problemCase);
                if (CaseCtl().problemCase.UpdateStatus == CaseUpdateStatus.Success)
                {
                    CaseCtl().Update();
                    uclCaseEdit.BindCase0();
                }
                break;

            case "1":
                CaseCtl().problemCase = uclCaseEdit.UpdateCase1(CaseCtl().problemCase, out bNotify);
                if (CaseCtl().problemCase.UpdateStatus == CaseUpdateStatus.Success)
                {
                    CaseCtl().Update();
                    uclCaseEdit.BindCase1(bNotify);
                    if (CaseCtl().problemCase.UpdateStatus == CaseUpdateStatus.Success && bNotify)
                    {
                        try
                        {
                            string appUrl = SQMSettings.SelectSettingByCode(entities, "MAIL", "TASK", "MailURL").VALUE;
                            PERSON person = null;
                            PLANT  plant  = SQMModelMgr.LookupPlant((decimal)CaseCtl().problemCase.IncidentList[0].DETECT_PLANT_ID);
                            int    emailStatus;
                            bool   bUpdateTasks = false;
                            foreach (TASK_STATUS task in CaseCtl().problemCase.TeamTask.TaskList.Where(t => t.TASK_TYPE == "C" && t.TASK_SEQ == 0).ToList())
                            {
                                if (task.RESPONSIBLE_ID.HasValue && (person = SQMModelMgr.LookupPerson((decimal)task.RESPONSIBLE_ID, "")) != null && !task.NOTIFY_DT.HasValue)
                                {
                                    task.NOTIFY_DT = DateTime.UtcNow;
                                    List <TaskItem> taskList = new List <TaskItem>();
                                    TaskItem        taskItem = new TaskItem();
                                    taskItem.RecordID    = CaseCtl().problemCase.ProbCase.PROBCASE_ID;
                                    taskItem.RecordKey   = CaseCtl().problemCase.ProbCase.PROBCASE_ID.ToString();
                                    taskItem.RecordType  = 21;
                                    taskItem.NotifyType  = TaskNotification.Owner;
                                    taskItem.Taskstatus  = TaskMgr.CalculateTaskStatus(task);
                                    taskItem.Detail      = SQMModelMgr.FormatPersonListItem(person);
                                    taskItem.Description = WebSiteCommon.FormatID(CaseCtl().problemCase.ProbCase.PROBCASE_ID, 6) + " / " + WebSiteCommon.GetXlatValue("caseStep", task.TASK_STEP);
                                    taskItem.Plant       = plant;
                                    taskItem.Task        = task;
                                    //  taskItem.Task = task;
                                    taskList.Add(taskItem);
                                    Thread thread = new Thread(() => TaskMgr.MailTaskList(taskList, person.EMAIL, "web"));
                                    thread.IsBackground = true;
                                    thread.Start();
                                    bUpdateTasks = true;
                                    //  if ((emailStatus = TaskMgr.MailTaskList(taskList, person.EMAIL, "web")) > 0)
                                    //      bUpdateTasks = true;
                                }
                            }
                            if (bUpdateTasks)
                            {
                                CaseCtl().Update();     // save task notify dates
                            }
                        }
                        catch (Exception ex)
                        {
                            //  SQMLogger.LogException(ex);
                        }
                    }
                }
                break;

            case "2":
                CaseCtl().problemCase = uclCaseEdit.UpdateCase2(CaseCtl().problemCase);
                if (CaseCtl().problemCase.UpdateStatus == CaseUpdateStatus.Success)
                {
                    CaseCtl().Update();
                    uclCaseEdit.BindCase2();
                }
                break;

            case "3":
                CaseCtl().problemCase = uclCaseEdit.UpdateCase3(CaseCtl().problemCase);
                if (CaseCtl().problemCase.UpdateStatus == CaseUpdateStatus.Success)
                {
                    CaseCtl().Update();
                    uclCaseEdit.BindCase3();
                }
                break;

            case "4":
                CaseCtl().problemCase = uclCaseEdit.UpdateCase4(CaseCtl().problemCase);
                if (CaseCtl().problemCase.UpdateStatus == CaseUpdateStatus.Success)
                {
                    CaseCtl().Update();
                    uclCaseEdit.BindCase4();
                }
                break;

            case "5":
                CaseCtl().problemCase = uclCaseEdit.UpdateCase5(CaseCtl().problemCase);
                if (CaseCtl().problemCase.UpdateStatus == CaseUpdateStatus.Success)
                {
                    CaseCtl().Update();
                    uclCaseEdit.BindCase5();
                }
                break;

            case "6":
                CaseCtl().problemCase = uclCaseEdit.UpdateCase6(CaseCtl().problemCase);
                if (CaseCtl().problemCase.UpdateStatus == CaseUpdateStatus.Success)
                {
                    CaseCtl().Update();
                    uclCaseEdit.BindCase6();
                }
                break;

            case "7":
                CaseCtl().problemCase = uclCaseEdit.UpdateCase7(CaseCtl().problemCase, true);
                if (CaseCtl().problemCase.UpdateStatus == CaseUpdateStatus.Success)
                {
                    CaseCtl().Update();
                    uclCaseEdit.BindCase7();
                }
                break;

            case "8":
                CaseCtl().problemCase = uclCaseEdit.UpdateCase8(CaseCtl().problemCase, out bNotify);
                CaseCtl().Update();
                uclCaseEdit.BindCase8(bNotify);
                if (bNotify && CaseCtl().problemCase != null)
                {
                    List <decimal?> teamList = new List <decimal?>();
                    teamList = CaseCtl().problemCase.TeamTask.TaskList.Where(l => l.TASK_TYPE == "C" && l.RESPONSIBLE_ID > 0).Select(l => l.RESPONSIBLE_ID).Distinct().ToList();
                    PERSON person = null;
                    // string emailStatus;
                    foreach (decimal?personID in teamList)
                    {
                        if ((person = SQMModelMgr.LookupPerson((decimal)personID, "")) != null)
                        {
                            Thread thread = new Thread(() => WebSiteCommon.SendEmail(person.EMAIL, CaseCtl().problemCase.ProbCase.PROB_CLOSE.MESSAGE_TITLE, CaseCtl().problemCase.ProbCase.PROB_CLOSE.MESSAGE, ""));
                            thread.IsBackground = true;
                            thread.Start();
                        }
                    }
                }
                break;

            default:
                break;
            }

            if (CaseCtl().problemCase.UpdateStatus == CaseUpdateStatus.Success)
            {
                ScriptManager.RegisterStartupScript(this, GetType(), "showalert", "alertResult('hfAlertSaveSuccess');", true);
                SetupPage();
            }
            else
            {
                ErrorAlert(CaseCtl().problemCase.UpdateStatus);
            }
        }
Ejemplo n.º 8
0
        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 += ("&nbsp;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 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;
        }