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