public IHttpActionResult DeleteProcessAssign(int processAssignID, string userID)
        {
            try
            {
                using (PowerAppsCMSEntities db = new PowerAppsCMSEntities())
                {
                    Guid     guidUserID = Guid.Parse(userID.Replace(" ", string.Empty));
                    DateTime now        = DateTime.Now;

                    ProcessAssign selectedProcessAssign = db.ProcessAssigns.Where(x => x.ID == processAssignID).SingleOrDefault();
                    db.ProcessAssigns.Remove(selectedProcessAssign);

                    if (db.SaveChanges() > 0)
                    {
                        User selectedUser = db.Users.Where(x => x.ID == guidUserID).SingleOrDefault();
                        selectedUser.IsAssign = false;
                        db.SaveChanges();
                    }
                    return(Ok(HttpStatusCode.OK));
                }
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }
        public IHttpActionResult PostAddedOperator(int processID, string userID, int type, string userName)
        {
            try
            {
                using (PowerAppsCMSEntities db = new PowerAppsCMSEntities())
                {
                    Guid     guidUserID = Guid.Parse(userID.Replace(" ", string.Empty));
                    DateTime now        = DateTime.Now;

                    ProcessAssign processAssign = new ProcessAssign();
                    processAssign.ProcessID = processID;
                    processAssign.UserID    = guidUserID;
                    processAssign.Status    = (int)ProcessAssignStatus.NotStarted;
                    processAssign.Type      = type;
                    processAssign.Created   = processAssign.LastModified = now;
                    processAssign.CreatedBy = processAssign.LastModifiedBy = userName;
                    db.ProcessAssigns.Add(processAssign);

                    if (db.SaveChanges() > 0)
                    {
                        User user = db.Users.Find(guidUserID);
                        user.IsAssign = true;
                        db.SaveChanges();
                    }
                    return(Ok(HttpStatusCode.OK));
                }
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }
        public IHttpActionResult PauseByOperator(int processAssignID, string userName, string userID, int reasonID)
        {
            using (PowerAppsCMSEntities db = new PowerAppsCMSEntities())
            {
                Guid     guidUserID  = Guid.Parse(userID.Replace(" ", string.Empty));
                DateTime now         = DateTime.Now;
                decimal  actualHours = 0;

                var 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.Pause;
                processActivity.CreatedBy     = processActivity.LastModifiedBy = userName;
                processActivity.Created       = processActivity.LastModified = processActivity.ActivityDateTime = now;
                processActivity.ActualHours   = actualHours;
                processActivity.ReasonPauseID = reasonID;

                ProcessAssign processAssign = db.ProcessAssigns.Where(x => x.ID == processAssignID).FirstOrDefault();
                processAssign.Status         = (int)ProcessAssignStatus.Pause;
                processAssign.LastModified   = now;
                processAssign.LastModifiedBy = userName;
                processAssign.ProcessActivities.Add(processActivity);

                db.SaveChanges();

                return(Ok(HttpStatusCode.OK));
            }
        }
        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));
            }
        }
Exemple #6
0
        public IHttpActionResult GetListAssignedUser()
        {
            List <ListAssignedOperator> listAssignedOperator = new List <ListAssignedOperator>();

            using (PowerAppsCMSEntities db = new PowerAppsCMSEntities())
            {
                try
                {
                    foreach (User itemUser in db.Users.Where(x => x.IsAssign == true))
                    {
                        ListAssignedOperator listOperator = new ListAssignedOperator();
                        int checkProcessAssign            = itemUser.ProcessAssigns.Count();

                        if (checkProcessAssign > 0)
                        {
                            ProcessAssign selectedProcessAssign = itemUser.ProcessAssigns.Where(x => x.Status != (int)ProcessActivityStatus.Stop).FirstOrDefault();
                            User          assignBy = db.Users.Where(x => x.EmployeeNumber == selectedProcessAssign.CreatedBy).SingleOrDefault();
                            listOperator.NRP      = itemUser.EmployeeNumber;
                            listOperator.UserName = itemUser.Name;
                            listOperator.StatusID = selectedProcessAssign.Status;
                            if (listOperator.StatusID == (int)ProcessAssignStatus.NotStarted)
                            {
                                listOperator.StatusName = "Not Started";
                            }
                            else if (listOperator.StatusID == (int)ProcessAssignStatus.Start)
                            {
                                listOperator.StatusName = "Start";
                            }
                            else if (listOperator.StatusID == (int)ProcessAssignStatus.Pause)
                            {
                                listOperator.StatusName = "Pause";
                            }
                            else if (listOperator.StatusID == (int)ProcessAssignStatus.Break)
                            {
                                listOperator.StatusName = "Break";
                            }
                            listOperator.PRO         = selectedProcessAssign.Process.Unit.PRO.Number;
                            listOperator.SN          = selectedProcessAssign.Process.Unit.SerialNumber;
                            listOperator.ProcessName = selectedProcessAssign.Process.MasterProcess.Name;
                            listOperator.ProductName = selectedProcessAssign.Process.Unit.Product.Name;
                            listOperator.AssignBy    = assignBy != null? assignBy.Name : selectedProcessAssign.CreatedBy;
                        }
                        else
                        {
                            listOperator.NRP      = itemUser.EmployeeNumber;
                            listOperator.UserName = itemUser.Name;
                            listOperator.StatusID = (int)ProcessAssignStatus.NotAssign;
                            if (listOperator.StatusID == (int)ProcessAssignStatus.NotStarted)
                            {
                                listOperator.StatusName = "Not Started";
                            }
                            else if (listOperator.StatusID == (int)ProcessAssignStatus.Start)
                            {
                                listOperator.StatusName = "Start";
                            }
                            else if (listOperator.StatusID == (int)ProcessAssignStatus.Pause)
                            {
                                listOperator.StatusName = "Pause";
                            }
                            else if (listOperator.StatusID == (int)ProcessAssignStatus.Break)
                            {
                                listOperator.StatusName = "Break";
                            }
                            else if (listOperator.StatusID == (int)ProcessAssignStatus.NotAssign)
                            {
                                listOperator.StatusName = "-";
                            }
                            listOperator.PRO         = "-";
                            listOperator.SN          = "-";
                            listOperator.ProcessName = "-";
                            listOperator.ProductName = "-";
                            listOperator.AssignBy    = "-";
                        }

                        listAssignedOperator.Add(listOperator);
                    }
                    return(Ok(listAssignedOperator));
                }
                catch (Exception ex)
                {
                    return(InternalServerError(ex));
                }
            }
        }