public JsonResult FetchGridInfo(int productionLineId, DateTime week) { List <ProductionLineScheduleWeekly> items = new List <ProductionLineScheduleWeekly>(); List <ProductionLineScheduleDto> entities; List <ProductionShiftDto> shifts; using (ProductionShiftService service = new ProductionShiftService()) shifts = service.GetAllByPlantId(CurrentPlantId); foreach (ProductionShiftDto shift in shifts) { using (ProductionLineScheduleService service = new ProductionLineScheduleService()) entities = service.GetWeekly(CurrentPlantId, shift.ID, productionLineId, GetFirstDayOfWeek(week)); if (entities.Count == 0) { items.Add(CreateWeeklyInfo(shift)); } else { items.Add(PopulateWeeklyInfo(shift, entities)); } } return(Json(items, JsonRequestBehavior.AllowGet)); }
public JsonResult ResetAllDefaultShift() { TPO.Web.Core.ResponseMessage responseMessage; try { using (ProductionLineScheduleService service = new ProductionLineScheduleService()) { var dtos = service.GetAllByPlantId(CurrentPlantId); foreach (var dto in dtos) { service.ResetShiftDefaults(dto); } } responseMessage = SetResponseMesssage(ActionTypeMessage.SuccessfulSave); } catch (Exception exc) { responseMessage = SetResponseMesssage(ActionTypeMessage.FailedSave, exc.Message); } return(Json(responseMessage, JsonRequestBehavior.AllowGet)); }
public JsonResult GetWorkOrderShiftData(int lineID, int shiftID, int workOrderID, DateTime prodDate) { WorkOrderShiftDataModel model = new WorkOrderShiftDataModel(); //Set default units of measure using (UnitOfMeasureService svc = new UnitOfMeasureService()) { var lengthDefault = svc.GetDefaultByTypeCode("L"); if (lengthDefault != null) { model.LengthUnitOfMeasure = lengthDefault.Code; } var weightDefault = svc.GetDefaultByTypeCode("W"); if (weightDefault != null) { model.WeightUnitOfMeasure = weightDefault.Code; } } //Get production line ProductionLinesDto lineDto = null; using (ProductionLineService lineSvc = new ProductionLineService()) { lineDto = lineSvc.Get(lineID); } if (lineDto != null) { List <TPOCProductRollDto> rollDtos = new List <TPOCProductRollDto>(); using (TPOCProductRollService rollSvc = new TPOCProductRollService()) { if (lineDto.TPOMorC == "M") { //Get master rolls rollDtos.AddRange(rollSvc.GetMasterRollsByShift(lineID, shiftID, prodDate)); } else { //Get child rolls rollDtos.AddRange(rollSvc.GetChildRollsByShift(lineID, shiftID, prodDate)); } } //Filter for rolls specific to the work order var workOrderRolls = rollDtos.Where(r => r.WorkOrderID == workOrderID).ToList(); model.RollCount1 = workOrderRolls.Count; model.Length1 = workOrderRolls.Sum(r => r.Length); model.Weight1 = workOrderRolls.Sum(r => r.Weight); model.ShiftRollWeight = rollDtos.Sum(r => r.Weight); //Get scraps List <TPOLineScrapDto> scrapDtos = new List <TPOLineScrapDto>(); using (TPOLineScrapService scrapSvc = new TPOLineScrapService()) { scrapDtos.AddRange(scrapSvc.GetByShift(shiftID, prodDate)); } //Filter for scraps specific to the work order var woScraps = scrapDtos.Where(s => s.WorkOrderID == workOrderID).ToList(); for (int i = 0; i < woScraps.Count; i++) { switch (woScraps[i].TPOLineScrapTypeDescription) { case "Second": { model.Length2 += woScraps[i].Length; model.Weight2 += woScraps[i].Weight; } break; case "Third": { model.Length3 += woScraps[i].Length; model.Weight3 += woScraps[i].Weight; } break; case "Fourth": { model.Length4 += woScraps[i].Length; model.Weight4 += woScraps[i].Weight; } break; } } model.ShiftScrapWeight = scrapDtos.Sum(s => s.Weight); //Get downtime List <DownTimeDto> dtDtos = new List <DownTimeDto>(); using (DownTimeService dtSvc = new DownTimeService()) { dtDtos.AddRange(dtSvc.GetByShift(lineID, shiftID, prodDate)); } var woDowntime = dtDtos.Where(dt => dt.WorkOrderID == workOrderID).ToList(); model.DownTimeMinutes = woDowntime.Sum(dt => dt.DownTimeMinutes); model.ShiftDownTimeMinutes = dtDtos.Sum(dt => dt.DownTimeMinutes); //Get production line schedule List <ProductionLineScheduleDto> plSchedDtos = new List <ProductionLineScheduleDto>(); using (ProductionLineScheduleService plSchedSvc = new ProductionLineScheduleService()) { plSchedDtos.AddRange(plSchedSvc.GetByShift(lineID, shiftID, prodDate)); } model.ScheduledRunTime = plSchedDtos.Sum(s => s.MinutesScheduled); //Check if feeder entry forms need to be used if (lineDto.LineDescCode == "TPO") { model.RMUse = true; List <TPOFormulationLineProductDto> formDtos = new List <TPOFormulationLineProductDto>(); using (TPOFormulationLineProductService formSvc = new TPOFormulationLineProductService()) { formDtos.AddRange(formSvc.GetByWorkOrder(lineID, workOrderID)); } if (formDtos.Count > 0) { model.Form = formDtos.First().TPOFormulationID; model.Extruders = formDtos.First().TPOFormulationExtruders; } List <WorkOrderShiftDataDto> eorDtos = new List <WorkOrderShiftDataDto>(); using (WorkOrderShiftDataService eorSvc = new WorkOrderShiftDataService()) { eorDtos.AddRange(eorSvc.GetByShift(lineID, shiftID, prodDate)); if (eorDtos.Count == 0) { eorSvc.Add(new WorkOrderShiftDataDto() { LineID = lineID, ProductionDate = prodDate, ShiftID = shiftID, WorkOrderID = workOrderID, PlantID = CurrentPlantId, EnteredBy = CurrentUser, DateEntered = DateTime.Now, ModifiedBy = CurrentUser, LastModified = DateTime.Now }); } else { model.ScrimA = eorDtos.First().ScrimAreaUsed; model.ScrimW = eorDtos.First().ScrimWeightUsed; model.Resin = eorDtos.First().DrainedResin; } } } } return(Json(model, JsonRequestBehavior.AllowGet)); }
public JsonResult SaveGridInformation(int productionLineId, DateTime week, IEnumerable <ProductionLineScheduleWeekly> rows) { ResponseMessage responseMessage; try { //now wee need to go through each day of the of each row and save it foreach (ProductionLineScheduleWeekly row in rows) { for (int idx = 0; idx <= 6; idx++) { ProductionLineScheduleDto item = new ProductionLineScheduleDto(); item.PlantID = CurrentPlantId; item.LineID = productionLineId; item.ShiftID = row.ShiftId; item.ProductionDate = week.AddDays(idx); item.ModifiedBy = CurrentUser; item.LastModified = DateTime.Now; switch (idx) { case 0: item.ID = row.Day1Id; item.MinutesScheduled = row.Day1; break; case 1: item.ID = row.Day2Id; item.MinutesScheduled = row.Day2; break; case 2: item.ID = row.Day3Id; item.MinutesScheduled = row.Day3; break; case 3: item.ID = row.Day4Id; item.MinutesScheduled = row.Day4; break; case 4: item.ID = row.Day5Id; item.MinutesScheduled = row.Day5; break; case 5: item.ID = row.Day6Id; item.MinutesScheduled = row.Day6; break; case 6: item.ID = row.Day7Id; item.MinutesScheduled = row.Day7; break; } using (ProductionLineScheduleService service = new ProductionLineScheduleService()) { if (item.ID == 0) { item.EnteredBy = CurrentUser; item.DateEntered = DateTime.Now; service.Add(item); } else { service.Update(item); } } } } responseMessage = SetResponseMesssage(ActionTypeMessage.SuccessfulSave); } catch (Exception exc) { responseMessage = SetResponseMesssage(ActionTypeMessage.FailedSave, exc.Message); } return(Json(responseMessage, JsonRequestBehavior.DenyGet)); }