Example #1
0
        public IHttpActionResult GetInspectorUnitList()
        {
            using (PowerAppsCMSEntities db = new PowerAppsCMSEntities())
            {
                List <ProductionPlanning> listInspectorUnitList = new List <ProductionPlanning>();
                try
                {
                    var itemProcess = db.Processes.Where(x => x.Unit.IsHold == false && x.Unit.SFSDueDate <= x.Unit.MPSDueDate && x.Status == 4).Select(x => x.Unit).Distinct();
                    foreach (Unit itemUnit in itemProcess)
                    {
                        ProductionPlanning inspectorUnitList = new ProductionPlanning();
                        inspectorUnitList.UnitID       = itemUnit.ID;
                        inspectorUnitList.SerialNumber = itemUnit.SerialNumber;
                        inspectorUnitList.PRO          = itemUnit.PRO.Number;
                        inspectorUnitList.Product      = itemUnit.Product.Name;
                        inspectorUnitList.Customer     = itemUnit.PRO.CustomerListInSODisplayText;// Customer;
                        inspectorUnitList.ProductID    = itemUnit.ProductID;

                        listInspectorUnitList.Add(inspectorUnitList);
                    }
                    return(Ok(listInspectorUnitList));
                }
                catch (Exception ex)
                {
                    return(InternalServerError(ex));
                }
            }
        }
Example #2
0
        public IHttpActionResult GetGroupLeaderProductionPlanning(int processGroupID)
        {
            using (PowerAppsCMSEntities db = new PowerAppsCMSEntities())
            {
                List <ProductionPlanning> listProductionPlanning = new List <ProductionPlanning>();
                List <Process>            selectedProcesslist    = null;
                DateTime now = DateTime.Now;
                try
                {
                    var itemProcess = db.Processes.Where(x => x.MasterProcess.ProcessGroupID == processGroupID && x.Unit.IsHold == false && x.Unit.SFSDueDate <= x.Unit.MPSDueDate).Select(x => x.Unit).Distinct();

                    foreach (Unit itemUnit in itemProcess)
                    {
                        ProductionPlanning productionPlanning = new ProductionPlanning();
                        productionPlanning.UnitID = itemUnit.ID;
                        //productionPlanning.MasterProcessID = productionPlannings.MasterProcessID;
                        //productionPlanning.p = item.Processes;
                        productionPlanning.SerialNumber = itemUnit.SerialNumber;
                        productionPlanning.PRO          = itemUnit.PRO.Number;
                        productionPlanning.Product      = itemUnit.Product.Name;
                        productionPlanning.Customer     = itemUnit.PRO.CustomerListInSODisplayText;// Customer;
                        productionPlanning.ProductID    = itemUnit.ProductID;

                        selectedProcesslist = db.Processes.Where(x => x.MasterProcess.ProductID == productionPlanning.ProductID && x.UnitID == productionPlanning.UnitID && x.MasterProcess.ProcessGroupID == processGroupID).ToList();
                        int countSelectedProcessList = selectedProcesslist.Count();
                        if (selectedProcesslist.Where(x => x.PlanStartDate > now && x.Status == (int)ProcessStatus.NotStarted).Count() == countSelectedProcessList)
                        {
                            productionPlanning.StatusID   = (int)UnitStatus.NotStarted;
                            productionPlanning.StatusName = "Not Started";
                        }
                        else if (selectedProcesslist.Where(x => (x.Status != (int)ProcessStatus.QCPassed || x.Status != (int)ProcessStatus.Finish) && (x.ProcessIssues.Count(y => y.Status == false) > 0)).Count() > 0)
                        {
                            productionPlanning.StatusID   = (int)UnitStatus.Issue;
                            productionPlanning.StatusName = "Issue";
                        }
                        else if (selectedProcesslist.Where(x => now > x.PlanEndDate && (x.Status != (int)ProcessStatus.QCPassed || x.Status != (int)ProcessStatus.Finish)).Count() >= 1)
                        {
                            productionPlanning.StatusID   = (int)UnitStatus.Issue;
                            productionPlanning.StatusName = "Process Late";
                        }
                        else if (selectedProcesslist.Where(x => x.Status == (int)ProcessStatus.QCNotGood).Count() >= 1)
                        {
                            productionPlanning.StatusID   = (int)UnitStatus.QCNotGood;
                            productionPlanning.StatusName = "QC Not Good";
                        }
                        else
                        {
                            productionPlanning.StatusID = (int)UnitStatus.OnProcess;
                        }
                        listProductionPlanning.Add(productionPlanning);
                    }
                    return(Ok(listProductionPlanning));
                }
                catch (Exception ex)
                {
                    return(InternalServerError(ex));
                }
            }
        }