public IHttpActionResult WaitForQC(int processID, string userName) { try { using (PowerAppsCMSEntities db = new PowerAppsCMSEntities()) { DateTime now = DateTime.Now; Process selectedProcess = db.Processes.Where(x => x.ID == processID).SingleOrDefault(); selectedProcess.Status = (int)ProcessStatus.WaitForQC; selectedProcess.LastModified = now; selectedProcess.LastModifiedBy = userName; if (db.SaveChanges() > 0) { ProcessStatusLogs processStatusLogs = new ProcessStatusLogs(); processStatusLogs.ProcessID = processID; processStatusLogs.Description = "Wait for QC"; processStatusLogs.Status = (int)ProcessStatus.WaitForQC; processStatusLogs.StatusName = "Wait for QC"; processStatusLogs.CreatedBy = userName; processStatusLogs.Created = now; db.ProcessStatusLogs.Add(processStatusLogs); db.SaveChanges(); } return(Ok(HttpStatusCode.OK)); } } catch (Exception ex) { return(InternalServerError(ex)); } }
public IHttpActionResult ForceStop(int processAssignID, string userName, string userID) { using (PowerAppsCMSEntities db = new PowerAppsCMSEntities()) { Guid guidUserID = Guid.Parse(userID.Replace(" ", string.Empty)); DateTime now = DateTime.Now; decimal actualHours = 0; ProcessActivity workinLog = db.ProcessActivities.Where(x => x.ProcessAssignID == processAssignID && x.ProcessAssign.UserID == guidUserID).OrderByDescending(x => x.ID).FirstOrDefault(); if (workinLog != null && workinLog.Status == 1) { actualHours = Convert.ToDecimal(now.Subtract(workinLog.ActivityDateTime).TotalSeconds); } ProcessActivity processActivity = new ProcessActivity(); processActivity.Status = (int)ProcessActivityStatus.Stop; processActivity.CreatedBy = processActivity.LastModifiedBy = userName; processActivity.Created = processActivity.LastModified = processActivity.ActivityDateTime = now; processActivity.ActualHours = actualHours; ProcessAssign processAssign = db.ProcessAssigns.Where(x => x.ID == processAssignID).FirstOrDefault(); processAssign.Status = (int)ProcessAssignStatus.Stop; processAssign.LastModified = now; processAssign.LastModifiedBy = userName; processAssign.ProcessActivities.Add(processActivity); if (db.SaveChanges() > 0) { Process selectedProcess = db.Processes.Where(x => x.ID == processAssign.ProcessID).SingleOrDefault(); if (selectedProcess.ProcessAssigns.Where(x => x.Status != (int)ProcessAssignStatus.Stop).Count() == 0) { selectedProcess.Status = (int)ProcessStatus.StopByOperator; selectedProcess.LastModifiedBy = userName; selectedProcess.LastModified = now; } User user = db.Users.Find(processAssign.UserID); user.IsAssign = false; if (db.SaveChanges() > 0) { ProcessStatusLogs processStatusLogs = new ProcessStatusLogs(); processStatusLogs.ProcessID = processAssign.ProcessID; processStatusLogs.Description = "Force Stop"; processStatusLogs.Status = (int)ProcessStatus.StopByOperator; processStatusLogs.StatusName = "Stop by Operator"; processStatusLogs.CreatedBy = userName; processStatusLogs.Created = now; db.ProcessStatusLogs.Add(processStatusLogs); db.SaveChanges(); } } return(Ok(HttpStatusCode.OK)); } }
public IHttpActionResult StartByOperator(int processID, int processAssignID, string userName) { using (PowerAppsCMSEntities db = new PowerAppsCMSEntities()) { DateTime now = DateTime.Now; ProcessActivity processActivity = new ProcessActivity(); processActivity.ProcessAssignID = processAssignID; processActivity.Status = (int)ProcessActivityStatus.Start; processActivity.Created = processActivity.LastModified = processActivity.ActivityDateTime = now; processActivity.CreatedBy = processActivity.LastModifiedBy = userName; ProcessAssign processAssign = db.ProcessAssigns.Where(x => x.ID == processAssignID).FirstOrDefault(); processAssign.Status = (int)ProcessAssignStatus.Start; processAssign.LastModified = now; processAssign.LastModifiedBy = userName; processAssign.ProcessActivities.Add(processActivity); if (db.SaveChanges() > 0) { Process selectedProcess = db.Processes.Where(x => x.ID == processID).SingleOrDefault(); if (selectedProcess.ActualStartDate == null) { selectedProcess.ActualStartDate = now; } if (selectedProcess.Status != (int)ProcessStatus.OnProcess) { selectedProcess.Status = (int)ProcessStatus.OnProcess; selectedProcess.LastModified = now; selectedProcess.LastModifiedBy = userName; } else if (selectedProcess.Status == (int)ProcessStatus.OnProcess) { selectedProcess.LastModified = now; selectedProcess.LastModifiedBy = userName; } if (db.SaveChanges() > 0) { ProcessStatusLogs processStatusLogs = new ProcessStatusLogs(); processStatusLogs.ProcessID = processID; processStatusLogs.Description = "On Process"; processStatusLogs.Status = (int)ProcessStatus.OnProcess; processStatusLogs.StatusName = "On Process"; processStatusLogs.CreatedBy = userName; processStatusLogs.Created = now; db.ProcessStatusLogs.Add(processStatusLogs); db.SaveChanges(); } } return(Ok(HttpStatusCode.OK)); } }
public IHttpActionResult QCCheck(int productID, int unitID, int processID, string userName) { using (PowerAppsCMSEntities db = new PowerAppsCMSEntities()) { DateTime now = DateTime.Now; //Update Status dan ActualEndDate process Process selectedProcess = db.Processes.Where(x => x.ID == processID).SingleOrDefault(); selectedProcess.Status = (int)ProcessStatus.QCPassed; if (selectedProcess.MasterProcess.ProcessGroupID == 3) { selectedProcess.ActualStartDate = selectedProcess.ActualEndDate = selectedProcess.LastModified = now; } selectedProcess.ActualEndDate = selectedProcess.LastModified = now; selectedProcess.LastModifiedBy = userName; db.SaveChanges(); List <Process> selectedProcesslist = db.Processes.Where(x => x.MasterProcess.ProductID == productID && x.UnitID == unitID).ToList(); if (selectedProcesslist.Where(x => x.Status != (int)ProcessStatus.QCPassed).Count() == 0) { //Update ActualDeliveryDate unit Unit selectedUnit = db.Units.Where(x => x.ID == unitID).SingleOrDefault(); selectedUnit.ActualDeliveryDate = selectedUnit.LastModified = now; selectedUnit.LastModifiedBy = userName; if (db.SaveChanges() > 0) { foreach (Process item in selectedProcesslist) { //Update Status process menjadi finish ketika semua process sudah QC Pass item.Status = (int)ProcessStatus.Finish; item.LastModified = now; item.LastModifiedBy = userName; if (db.SaveChanges() > 0) { ProcessStatusLogs processStatusLogs = new ProcessStatusLogs(); processStatusLogs.ProcessID = processID; processStatusLogs.Description = "Finish"; processStatusLogs.Status = (int)ProcessStatus.Finish; processStatusLogs.StatusName = "Finish"; processStatusLogs.CreatedBy = userName; processStatusLogs.Created = now; db.ProcessStatusLogs.Add(processStatusLogs); db.SaveChanges(); } } } } return(Ok(HttpStatusCode.OK)); } }