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); }
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); }