Exemple #1
0
        public PROB_PREVENT CreateProblemPrevent(ProblemCase theCase)
        {
            this.ProbCase.PROB_PREVENT             = new PROB_PREVENT();
            this.ProbCase.PROB_PREVENT.PROBCASE_ID = this.ProbCase.PROBCASE_ID;
            TASK_STATUS task = theCase.TeamTask.TaskList.Where(l => l.TASK_STEP == "7" && l.TASK_TYPE == "C").FirstOrDefault();

            int itemseq = 0;

            foreach (PLANT plant in SQMModelMgr.SelectPlantList(theCase.Entities, theCase.ProbCase.COMPANY_ID, 0))
            {
                PROB_PREVENT_LIST item = new PROB_PREVENT_LIST();
                item.PROBCASE_ID       = theCase.ProbCase.PROBCASE_ID;
                item.PREVENT_ITEM      = ++itemseq;
                item.PREVENT_ITEM_TYPE = "L";
                item.PREVENT_ITEM_REF  = plant.PLANT_ID;
                if (task != null && task.DUE_DT.HasValue)
                {
                    item.TARGET_DT = task.DUE_DT;
                }
                else
                {
                    item.TARGET_DT = DateTime.Now.AddDays(10);
                }
                this.ProbCase.PROB_PREVENT_LIST.Add(item);
            }

            PROB_PREVENT_LIST docitem = new PROB_PREVENT_LIST();

            docitem.PROBCASE_ID       = theCase.ProbCase.PROBCASE_ID;
            docitem.PREVENT_ITEM_TYPE = "D";
            docitem.PREVENT_ITEM      = 1;
            if (task != null && task.DUE_DT.HasValue)
            {
                docitem.TARGET_DT = task.DUE_DT;
            }
            else
            {
                docitem.TARGET_DT = DateTime.Now.AddDays(10);
            }
            this.ProbCase.PROB_PREVENT_LIST.Add(docitem);

            return(this.ProbCase.PROB_PREVENT);
        }
Exemple #2
0
        public static ProblemCase UpdateProblemCase(ProblemCase theCase)
        {
            ProblemCase retCase = null;

            try
            {
                theCase.ProbCase = (PROB_CASE)SQMModelMgr.SetObjectTimestamp((object)theCase.ProbCase, SessionManager.UserContext.UserName(), CaseState(theCase));
                if (theCase.ProbCase.EntityState == System.Data.EntityState.Added || theCase.ProbCase.EntityState == System.Data.EntityState.Detached)
                {
                    theCase.Entities.AddToPROB_CASE(theCase.ProbCase);
                }
                if (!string.IsNullOrEmpty(theCase.StepComplete))
                {
                    theCase.TeamTask.SetTaskComplete(theCase.StepComplete, "C", 0, true);
                    if (theCase.StepComplete == "8" && theCase.ProbCase.CLOSE_DT.HasValue == false)
                    {
                        DateTime closeDate = DateTime.UtcNow;
                        theCase.ProbCase.PROB_CLOSE.NOTIFY_DT = theCase.ProbCase.CLOSE_DT = closeDate;
                        theCase.ProbCase.PROB_CLOSE.STATUS    = "C";
                        foreach (PROB_OCCUR occur in theCase.ProbCase.PROB_OCCUR)
                        {
                            theCase.Entities.ExecuteStoreCommand("UPDATE INCIDENT SET CLOSE_DATE_8D = {0} WHERE INCIDENT_ID = " + occur.INCIDENT_ID, closeDate);
                        }
                    }
                }
                int progress;

                if (theCase.ProbCase.PROB_CONTAIN != null)
                {
                    for (int n = 0; n < theCase.ProbCase.PROB_CONTAIN.PROB_CONTAIN_ACTION.Count; n++)
                    {
                        PROB_CONTAIN_ACTION contain = theCase.ProbCase.PROB_CONTAIN.PROB_CONTAIN_ACTION.ElementAt(n);
                        if (contain.STATUS == "D")
                        {
                            theCase.Entities.DeleteObject(contain);
                        }
                    }
                }
                if (theCase.ProbCase.PROB_CAUSE_ACTION != null)
                {
                    for (int n = 0; n < theCase.ProbCase.PROB_CAUSE_ACTION.Count; n++)
                    {
                        PROB_CAUSE_ACTION action = theCase.ProbCase.PROB_CAUSE_ACTION.ElementAt(n);
                        if (action.STATUS == "D")
                        {
                            theCase.Entities.DeleteObject(action);
                        }
                    }
                }
                if (theCase.ProbCase.PROB_PREVENT != null)
                {
                    for (int n = 0; n < theCase.ProbCase.PROB_PREVENT_LIST.Count; n++)
                    {
                        PROB_PREVENT_LIST prevent = theCase.ProbCase.PROB_PREVENT_LIST.ElementAt(n);
                        if (prevent.CONFIRM_STATUS == "D")
                        {
                            theCase.Entities.DeleteObject(prevent);
                        }
                    }
                }

                theCase.ProbCase.PROGRESS = theCase.CheckCaseStatus(); // theCase.CheckCaseNextStep();

                theCase.Entities.SaveChanges();

                if (theCase.IsNew)
                {
                    if (SessionManager.DocumentContext == null)
                    {
                        SessionManager.DocumentContext = new SQM.Shared.DocumentScope().CreateNew(SessionManager.UserContext.WorkingLocation.Company.COMPANY_ID, "BLI", 0, "", SessionManager.UserContext.WorkingLocation.Plant.PLANT_ID, "", 0);
                    }
                    SQM.Website.Classes.SQMDocumentMgr.UpdateAttachmentRecordID(theCase.Entities, 21, SessionManager.DocumentContext.SessionID, theCase.ProbCase.PROBCASE_ID);
                }

                theCase.TeamTask.UpdateTaskList(theCase.ProbCase.PROBCASE_ID);

                theCase.UpdateStatus = CaseUpdateStatus.Success;
                retCase              = theCase;
                retCase.IsNew        = false;
                theCase.StepComplete = "";
            }
            catch (Exception e)
            {
                theCase.UpdateStatus = CaseUpdateStatus.SaveError;
                retCase = theCase;
                // SQMLogger.LogException(e);
            }
            return(retCase);
        }