public IHttpActionResult GetProductionProcessDetail1(int productID, int unitID, string userID)
        {
            using (PowerAppsCMSEntities db = new PowerAppsCMSEntities())
            {
                Guid guidUserID = Guid.Parse(userID.Replace(" ", string.Empty));
                List <ProductionPlanningUnitDetail> listOfProductionPlanningUnitDetail = new List <ProductionPlanningUnitDetail>();
                try
                {
                    List <UserProcessGroup> listProcessGroup = db.UserProcessGroups.Where(x => x.UserID == guidUserID).ToList();
                    foreach (Process processUnitList in db.Processes.Where(x => x.MasterProcess.ProductID == productID && x.UnitID == unitID).ToList())
                    {
                        ProductionPlanningUnitDetail productionPlanningUnitDetail = new ProductionPlanningUnitDetail();
                        productionPlanningUnitDetail.ProcessID      = processUnitList.ID;
                        productionPlanningUnitDetail.ProcessGroupID = processUnitList.MasterProcess.ProcessGroupID;

                        if (listProcessGroup.Where(x => x.ProcessGroupID == productionPlanningUnitDetail.ProcessGroupID).FirstOrDefault() != null)
                        {
                            productionPlanningUnitDetail.IsCanAccess = true;
                        }
                        else
                        {
                            productionPlanningUnitDetail.IsCanAccess = false;
                        }

                        productionPlanningUnitDetail.StatusID = processUnitList.Status;

                        if (productionPlanningUnitDetail.StatusID == (int)ProcessStatus.NotStarted)
                        {
                            productionPlanningUnitDetail.StatusName = "Not Started";
                        }
                        else if (productionPlanningUnitDetail.StatusID == (int)ProcessStatus.OnProcess)
                        {
                            productionPlanningUnitDetail.StatusName = "On Process";
                        }
                        else if (productionPlanningUnitDetail.StatusID == (int)ProcessStatus.OnProcess && processUnitList.PlanEndDate < DateTime.Now)
                        {
                            productionPlanningUnitDetail.StatusName = "On Process (Late)";
                        }
                        else if (productionPlanningUnitDetail.StatusID == (int)ProcessStatus.StopByOperator)
                        {
                            productionPlanningUnitDetail.StatusName = "Stopped By Operator";
                        }
                        else if (productionPlanningUnitDetail.StatusID == (int)ProcessStatus.WaitForQC)
                        {
                            productionPlanningUnitDetail.StatusName = "Wait For QC";
                        }
                        else if (productionPlanningUnitDetail.StatusID == (int)ProcessStatus.QCPassed)
                        {
                            productionPlanningUnitDetail.StatusName = "QC Passed";
                        }
                        else if (productionPlanningUnitDetail.StatusID == (int)ProcessStatus.QCNotGood)
                        {
                            productionPlanningUnitDetail.StatusName = "QC Not Good";
                        }
                        else if (productionPlanningUnitDetail.StatusID == (int)ProcessStatus.Finish)
                        {
                            productionPlanningUnitDetail.StatusName = "Finish";
                        }

                        productionPlanningUnitDetail.ProcessName = processUnitList.MasterProcess.Name;
                        productionPlanningUnitDetail.ManHour     = processUnitList.MasterProcess.ManHour;
                        productionPlanningUnitDetail.ManPower    = processUnitList.MasterProcess.ManPower;

                        decimal?totalMHActual = processUnitList.ProcessAssigns.Sum(x => x.ProcessActivities.Sum(y => y.ActualHours)); // db.ProcessActivities.Where(x => x.ProcessAssign.ProcessID == processUnitList.ID).Sum(x => x.ActualHours);

                        productionPlanningUnitDetail.ManHourActual   = totalMHActual;
                        productionPlanningUnitDetail.MasterProcessID = processUnitList.MasterProcessID;

                        listOfProductionPlanningUnitDetail.Add(productionPlanningUnitDetail);
                    }
                    return(Ok(listOfProductionPlanningUnitDetail));
                }
                catch (Exception ex)
                {
                    return(InternalServerError(ex));
                }
            }
        }
示例#2
0
        public IHttpActionResult GetInspectorUnitDetailIT(int productID, int unitID)
        {
            using (PowerAppsCMSEntities db = new PowerAppsCMSEntities())
            {
                List <ProductionPlanningUnitDetail> listInspectorUnitDetail = new List <ProductionPlanningUnitDetail>();
                try
                {
                    foreach (Process itemProcess in db.Processes.Where(x => x.MasterProcess.ProductID == productID && x.UnitID == unitID))
                    {
                        ProductionPlanningUnitDetail inspectorPlanningUnitDetail = new ProductionPlanningUnitDetail();
                        inspectorPlanningUnitDetail.ProcessID      = itemProcess.ID;
                        inspectorPlanningUnitDetail.ProcessGroupID = itemProcess.MasterProcess.ProcessGroupID;
                        inspectorPlanningUnitDetail.StatusID       = itemProcess.Status;
                        var statusID = inspectorPlanningUnitDetail.StatusID;
                        if (statusID == (int)ProcessStatus.NotStarted)
                        {
                            inspectorPlanningUnitDetail.StatusName = "Not Started";
                        }
                        else if (statusID == (int)ProcessStatus.OnProcess)
                        {
                            inspectorPlanningUnitDetail.StatusName = "On Process";
                        }
                        else if (statusID == (int)ProcessStatus.ONProcessLate)
                        {
                            inspectorPlanningUnitDetail.StatusName = "On Process (Late)";
                        }
                        else if (statusID == (int)ProcessStatus.StopByOperator)
                        {
                            inspectorPlanningUnitDetail.StatusName = "Stopped By Operator";
                        }
                        else if (statusID == (int)ProcessStatus.WaitForQC)
                        {
                            inspectorPlanningUnitDetail.StatusName = "Wait For QC";
                        }
                        else if (statusID == (int)ProcessStatus.QCPassed)
                        {
                            inspectorPlanningUnitDetail.StatusName = "QC Passed";
                        }
                        else if (statusID == (int)ProcessStatus.QCNotGood)
                        {
                            inspectorPlanningUnitDetail.StatusName = "QC Not Good";
                        }
                        else if (statusID == (int)ProcessStatus.Finish)
                        {
                            inspectorPlanningUnitDetail.StatusName = "Finish";
                        }

                        inspectorPlanningUnitDetail.ProcessName     = itemProcess.MasterProcess.Name;
                        inspectorPlanningUnitDetail.ManHour         = itemProcess.MasterProcess.ManHour;
                        inspectorPlanningUnitDetail.ManPower        = itemProcess.MasterProcess.ManPower;
                        inspectorPlanningUnitDetail.MasterProcessID = itemProcess.MasterProcessID;
                        inspectorPlanningUnitDetail.LastModifiedby  = itemProcess.LastModifiedBy;
                        listInspectorUnitDetail.Add(inspectorPlanningUnitDetail);
                    }
                    return(Ok(listInspectorUnitDetail));
                }
                catch (Exception ex)
                {
                    return(InternalServerError(ex));
                }
            }
        }