public SequencingStation GetSequencingStationSettingsById(int id) { PartSequencingDataContext dbSeq = new PartSequencingDataContext(); MesDataContext dbMes = new MesDataContext(); var result = (from s in SequencingSettingsCacheManager.SequencingStationSettings where s.Id == id select s).Single(); var baseStation = SequencingSettingsCacheManager.BaseSequencingStationOffsets.Where(x => x.LineId == result.LineId).Single(); var setting = new SequencingStation { Description = result.Description, Id = result.Id, SequencingLocation = dbSeq.SequencingLocations.Where(x => x.Id == result.SequencingLocationId).Single(), Line = dbSeq.Lines.Where(x => x.Id == result.LineId).Single(), Station = GetStation((int)result.StationId), StationOrder = (int)result.StationOrder, BoxPerSchedule = (int)result.BoxPerSchedule, BoxQty = (int)result.BoxQty, MessageFormat = result.MessageFormat, Obsolete = (bool)result.Obsolete, PartsPerBox = (int)result.PartsPerBox, SeatOptions = (int)result.SeatOptions, SeatOptions2Check = (int)result.SeatOptions2Check, Status = false, Offset = (int)result.Offset, BaseStation = SequencingSettingsCacheManager.SequencingStationSettings.Where(x => x.Id == baseStation.SequencingStationSettingsId).Single() }; return setting; }
public IEnumerable<TempBuffer> GetSequencingBuffer(SequencingStation station) { PartSequencingDataContext dbSeq = new PartSequencingDataContext(); MesDataContext dbMes = new MesDataContext(); SequencingDatabase db = new SequencingDatabase(); List<TempBuffer> lineBuffer = null; string groupLine = station.SequencingLocation.LineGroup.Trim(); int lineId = station.Line.Id; int locationId = station.SequencingLocation.Id; if (station.SequencingLocation.ParentId == null) { lineBuffer = (from s in dbMes.IWS_SP_GetSequencingBufferByLineId(station.Line.Id) select new TempBuffer { Group = groupLine, ItemNumber = s.ItemNumber.Trim(), ItemType = s.ItemType.Trim(), JobId = (int)s.JobId, OrderId = (int)s.OrderId, OrderStatus = (int)s.OrderStatus, Region = s.Region.Trim(), LineId = (int)s.LineId, OrderNumber = s.OrderNumber, BuildDTM = s.BuildDTM == null ? "" : s.BuildDTM.Value.ToString("mm/dd/yyyy hh:mm:ss tt") }).ToList(); } else { lineBuffer = (from s in dbSeq.IWS_GetSequencingStationQueueByLocationId(locationId) select new TempBuffer { ScheduleNum = (int)s.ScheduleNum, BoxNum = (int)s.BoxNum, OrderNumber = s.OrderNumber == null ? "" : s.OrderNumber.Trim(), Group = groupLine, ItemNumber = s.ItemNumber.Trim(), ItemType = s.ItemType.Trim(), JobId = (int)s.JobId, OrderId = (int)s.OrderId, OrderStatus = (int)s.OrderStatus, Region = s.Region.Trim(), LineId = lineId }).ToList(); } return lineBuffer; }
public void UpdateSequencingStationSettingsById(SequencingStation newSetting) { PartSequencingDataContext db = new PartSequencingDataContext(); var setting = (from s in db.SequencingStationSettings where s.Id == newSetting.Id select s).Single(); setting.BoxPerSchedule = newSetting.BoxPerSchedule; setting.BoxQty = newSetting.BoxQty; setting.Description = newSetting.Description; setting.MessageFormat = newSetting.MessageFormat; setting.Obsolete = newSetting.Obsolete; setting.PartsPerBox = newSetting.PartsPerBox; setting.SeatOptions = newSetting.SeatOptions; setting.SeatOptions2Check = newSetting.SeatOptions2Check; setting.StationOrder = newSetting.StationOrder; setting.Offset = newSetting.Offset; db.SubmitChanges(); SequencingSettingsCacheManager.RefreshSequencingStationSettings(); }
//public IEnumerable<TempBuffer> GetSequencingBuffer(SequencingStation station) //{ // PartSequencingDataContext dbSeq = new PartSequencingDataContext(); // MesDataContext dbMes = new MesDataContext(); // SequencingDatabase db = new SequencingDatabase(); // var lineBuffer = (from s in dbSeq.TempBuffers.Where(l => (l.Group.Trim() == station.SequencingLocation.LineGroup.Trim())).ToList().OrderBy(s => s.OrderId).ToList() // select s).ToList(); // return lineBuffer; //} #region Get Sequencing History public IEnumerable<SequencingTrackingItem> GetSequencingHistory(SequencingStation station) { PartSequencingDataContext dbSeq = new PartSequencingDataContext(); var tracking = (dbSeq.SequencingTrackingHistoryDetails.Where( i => i.SequencingStationSettingsId == station.Id).Join( dbSeq.SequencingTrackingHistories, th => th.Id, ti => ti.SequencingTrackingHistoryDetailId, (th, ti) => new SequencingTrackingItem { OrderNumber = ti.OrderNumber, BoxNum = th.BoxNum, DTM = th.DTM, ItemNumber = ti.ItemNumber, ItemType = ti.ItemType, ScheduleNum = th.ScheduleNum, OrderId = ti.OrderId, SequencingStationSettingsId = th.SequencingStationSettingsId, SequencingTrackingHistoryDetailsId = (int)ti.SequencingTrackingHistoryDetailId, SequencingTrackingHistoryId = ti.Id, Type = (int)th.Type })).ToList(); return tracking; }
private void SetScheduleAvailable(SequencingStation station, int validCount) { var jobsRequired = station.PartsPerBox * station.BoxPerSchedule; station.ItemsWaiting = jobsRequired - validCount; if (station.ItemsWaiting <= 0) { station.ScheduleAvailable = true; station.ItemsWaiting = 0; station.ItemsWaitingPercentage = 100; } else { station.ScheduleAvailable = false; station.ItemsWaitingPercentage = (int)((100f * (validCount)) / jobsRequired); if (station.ItemsWaitingPercentage >= 100) station.ItemsWaitingPercentage = 99; } }
private TrimScheduleStatus GetTrimScheduleStatus(SequencingStation station, SequencingStationLookup lookup, List<Seat> seatSchedule) { TrimScheduleStatus status = new TrimScheduleStatus(); if (station.SequencingLocation.ParentId == null) { status.CurrentBoxNumber = lookup.NextBoxNum; status.CurrentScheduleNumber = lookup.NextScheduleNum; } else //from queue table { var firstjob = seatSchedule.FirstOrDefault(); if (firstjob != null) { status.CurrentBoxNumber = firstjob.BoxNum; status.CurrentScheduleNumber = firstjob.ScheduleNum; } else { status.CurrentBoxNumber = lookup.NextBoxNum; status.CurrentScheduleNumber = lookup.NextScheduleNum; } } return status; }
private void UpdateNextSeqScheduleSideBySide(SequencingStation station, List<SideBySide> buffer, int side) { SequencingScheduleFactory factory = new SequencingScheduleFactory(); var tokens = MessageTokensCacheManager.MessageTokens.Where(t => t.LineId == station.Line.Id).ToList(); var itemsinbox = station.PartsPerBox; var boxperschedule = station.BoxPerSchedule; var itemsinschedule = itemsinbox * boxperschedule; SideBySide firstItem = null; if (side ==1) firstItem = buffer.Where(s => s.Complete1 == false).OrderBy(s => s.OrderId).FirstOrDefault(); else firstItem = buffer.Where(s => s.Complete2 == false).OrderBy(s => s.OrderId).FirstOrDefault(); if (firstItem != null) { if(side == 1) firstItem.StartDrawSchedule1 = true; else firstItem.StartDrawSchedule2 = true; var currentBox = station.NextBox.BoxNum; var jobs = buffer.Where(s => s.OrderId >= firstItem.OrderId).OrderBy(s => s.OrderId).Take(itemsinschedule).ToList(); var itemsinscheduleTmp = itemsinschedule; var itemsinboxTmp = itemsinbox; var boxesperscheduleTmp = boxperschedule; foreach (var j in jobs) { if (side == 1) { j.ScheduleNum1 = station.NextBox.ScheduleNum; j.ScheduleCount1 = itemsinschedule; j.StartDrawBox1 = true; j.BoxNum1 = currentBox; } else { j.ScheduleNum2 = station.NextBox.ScheduleNum; j.ScheduleCount2 = itemsinschedule; j.StartDrawBox2 = true; j.BoxNum2 = currentBox; } var message = factory.GetSequencingMessage(station, j.ItemNumber, tokens).Trim(); if (message.ToUpper().IndexOf("*SKIPPED*") < 0) --itemsinboxTmp; --itemsinscheduleTmp; if (itemsinboxTmp > 0 && itemsinscheduleTmp > 0) continue; if (itemsinschedule <= 0) break; itemsinboxTmp = station.PartsPerBox; --boxesperscheduleTmp; if (side == 1) j.StartDrawBox1 = false; else j.StartDrawBox2 = false; if (currentBox + 1 > station.BoxQty) currentBox = 1; else { currentBox++; } } } }
public string GetSequencingMessage(SequencingStation station, string itemNumber, IEnumerable<MessageToken> lineTokens) { ItemDetailsModel itemDetailsModel = new ItemDetailsModel(); var item = itemDetailsModel.GetItemInfo(itemNumber); if (item == null) return String.Format("*Unknown Part* ({0})", itemNumber); string[] tokens = station.MessageFormat.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); var formattedMsg = station.MessageFormat.Trim(); if (tokens[0] == null) throw new NotImplementedException(); var filteredParts = item.ItemInfos.Where( part => ((part.Buildcode & station.SeatOptions) == (part.Buildcode & station.SeatOptions2Check) && (part.Buildcode & station.SeatOptions) == (station.SeatOptions & station.SeatOptions2Check) && part.LineId == station.Line.Id)).OrderBy(part => part.PartIndex).ToList(); List<MessageToken> validLineTokens = lineTokens.Where(t => tokens.Contains(t.Token.Trim())).ToList(); var colourExtensions = MessageTokensCacheManager.ColourExtensions; var trimExtensions = MessageTokensCacheManager.TrimExtensions; if (filteredParts.Count() > 0) { ItemInfo part = null; if (station.Line.Id == 1 || station.Line.Id == 2) part = filteredParts.Where(p => p.PartIndex == 1).FirstOrDefault(); else if (station.Line.Id == 3) { part = filteredParts.Where(p => p.PartIndex == 3).FirstOrDefault(); } if (part != null) { //3Pass ONLY if (part.ItemComponent == "NO-2LH" || part.ItemComponent == "NO-2RH") { return String.Format("NO BUILD ({0})", itemNumber); } //iterate through and look or feneric options number replacement foreach (var specialOption in tokens) { if (specialOption.Contains("OPTION")) { var optionNumberString = new String(specialOption.Where(Char.IsDigit).ToArray()); formattedMsg = formattedMsg.Replace(specialOption.Trim(), GetOptionValue(part, int.Parse(optionNumberString))); } } foreach (var token in validLineTokens) { var _trimstyle = GetOptionValue(part, 100); var _colour = GetOptionValue(part, 101); bool ru = isRU(part.ItemType); switch (token.SpecialValue.Trim()) { case "3PMANSHIELD": #region 3PMANSHIELD if (_colour.Equals("R4") || _colour.Equals("X9") || GetOptionValue(part, 3) == "PWR") formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageTrue.Trim()); formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageFalse.Trim()); break; #endregion case "3PPWRSHIELD": #region 3PPWRSHIELD if (GetOptionValue(part, 3) == "PWR") formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageFalse.Trim()); formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageTrue.Trim()); break; #endregion case "3PMAN!RQ": #region if (GetOptionValue(part, 3) != "PWR") formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageTrue.Trim()); formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageFalse.Trim()); break; #endregion case "3PX9MAN!RQ": #region if (_colour.Equals("R4") || _colour.Equals("X9")) { if (GetOptionValue(part, 3) != "PWR") formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageTrue.Trim()); } formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageFalse.Trim()); break; #endregion case "RMVQD!RQ": #region if (GetOptionValue(part, 11) == "LXQD") formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageTrue.Trim()); formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageFalse.Trim()); break; #endregion case "PWRCARPET": #region if (GetOptionValue(part, 3) == "PWR") { if (_colour.Equals("D1")) formattedMsg = formattedMsg.Replace(token.Token.Trim(), "(X9 Carpet)"); else if (_colour.Equals("X9")) formattedMsg = formattedMsg.Replace(token.Token.Trim(), "(X9 Carpet)"); else if (_colour.Equals("L9")) formattedMsg = formattedMsg.Replace(token.Token.Trim(), "(L5 Carpet)"); else if (_colour.Equals("L5")) formattedMsg = formattedMsg.Replace(token.Token.Trim(), "(L5 Carpet)"); else if (_colour.Equals("TU")) formattedMsg = formattedMsg.Replace(token.Token.Trim(), "(X9 Carpet)"); } else { formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageTrue.Trim()); } formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageFalse.Trim()); break; #endregion case "POWERBOLD": #region POWERBOLD if (GetOptionValue(part, 3) == "PWR") formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageTrue.Trim()); formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageFalse.Trim()); break; #endregion case "SIDESHIELDCLR": #region SIDESHIELD var _shldclr = _colour; if (colourExtensions != null) { var _ext = colourExtensions.Where( cExt => cExt.ColourCode == _shldclr && cExt.ExtensionName == "Side Shield").ToList(); if (_ext.Count() > 0) _shldclr = _ext[0].ColourCodeExt.Trim(); } formattedMsg = formattedMsg.Replace(token.Token.Trim(), _shldclr); break; #endregion case "TRIMCLR": #region TRIMCLR var _trimclr = _colour; if (colourExtensions != null) { var _ext = colourExtensions.Where( cExt => cExt.ColourCode == _trimclr && cExt.ExtensionName == "Trim").ToList(); if (_ext.Count() > 0) _trimclr = _ext[0].ColourCodeExt.Trim(); } formattedMsg = formattedMsg.Replace(token.Token.Trim(), _trimclr); break; #endregion case "FRTSHIELD": #region FRTSHIELD if (_colour.Equals("R4") || _colour.Equals("X9")) formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageTrue.Trim()); formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageFalse.Trim()); break; #endregion case "FRTASHIELD": #region if (_colour.Equals("X9") || _colour.Equals("R4")) formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageTrue); else { var _drvpart = filteredParts.Where(p => p.PartIndex == 1).FirstOrDefault(); var _paspart = filteredParts.Where(p => p.PartIndex == 2).FirstOrDefault(); string partstring1 = string.Empty; string partstring2 = string.Empty; if (GetOptionValue(_drvpart, 1) == "DRV") { if (GetOptionValue(_drvpart, 3) == "PWR") partstring1 = "580298-" + _colour + " PWR (DRV)"; else partstring1 = "580278-" + _colour + " MAN (DRV)"; } if (GetOptionValue(_paspart, 1) == "PASS") { if (GetOptionValue(_paspart, 3) == "PWR") partstring2 = "580288-" + _colour + " PWR (PASS)"; else partstring2 = "580268-" + _colour + " MAN (PASS)"; } formattedMsg = formattedMsg.Replace(token.Token.Trim(), partstring1 + "," + partstring2); } break; #endregion case "FRTCARPET": #region FRTCARPET if (_colour.Equals("D1")) formattedMsg = formattedMsg.Replace(token.Token.Trim(), "550608N-D1,550608N-D1"); else if (_colour.Equals("L5")) formattedMsg = formattedMsg.Replace(token.Token.Trim(), "550608N-L5,550608N-L5"); else if (_colour.Equals("L9")) formattedMsg = formattedMsg.Replace(token.Token.Trim(), "550608N-L9,550608N-L9"); else if (_colour.Equals("TU")) formattedMsg = formattedMsg.Replace(token.Token.Trim(), "550608N-TU,550608N-TU"); else formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageTrue); break; #endregion case "X9R4!RQ": #region X9R4!RQ var sng = GetOptionValue(part, 13); if (sng == "SNG") { if (_colour.Equals("X9") || _colour.Equals("R4")) formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageTrue); } formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageFalse.Trim()); break; #endregion case "ONLYLXQD": #region ONLYLXQD var _lxqd = GetOptionValue(part, 11); if (_lxqd.ToUpper() == "LXQD") formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageFalse.Trim()); formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageTrue.Trim()); break; #endregion case "BENCH": #region BENCH if (part.ItemType == "2B") { if (_colour.Equals("D1") || _colour.Equals("L5") || _colour.Equals("TU")) formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageFalse.Trim()); } formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageTrue.Trim()); break; #endregion case "BENCH!RQ": #region if (part.ItemType == "2B") formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageTrue.Trim()); formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageFalse.Trim()); break; #endregion case "TBENCH!RQ": #region TBENCH!RQ if (part.ItemType == "2B") formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageTrue.Trim()); formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageFalse.Trim()); break; #endregion case "TNOBUILD!RQ": #region if (part.ItemComponent.Trim() == "NO-2LH" || part.ItemComponent.Trim() == "NO-2RH") formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageTrue.Trim()); formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageFalse.Trim()); break; #endregion case "CLOTH!RQ": #region CLOTH!RQ var cloth = GetOptionValue(part, 5); if (cloth.ToUpper() == "CLOTH") { if (GetOptionValue(part, 10).ToUpper() != "HT") formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageTrue.Trim()); } formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageFalse.Trim()); break; #endregion case "H7N7X9!RQ": #region if (_trimstyle.Equals("H7") || _trimstyle.Equals("N7")) { if (_colour.Equals("X9") && GetOptionValue(part, 9) != "BUX") formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageTrue.Trim()); } formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageFalse.Trim()); break; #endregion case "HDRCOLOUR": #region HDRCOLOUR var _hdrcolour = _colour; if (colourExtensions != null) { var _ext = colourExtensions.Where(cExt => cExt.ColourCode == _hdrcolour && cExt.ExtensionName == "Headrest").ToList(); if (_ext.Count() > 0) _hdrcolour = _ext[0].ColourCodeExt.Trim(); } formattedMsg = formattedMsg.Replace(token.Token.Trim(), _hdrcolour); break; #endregion case "HDRTRIM": #region HDRTRIM var _hdrtrim = _trimstyle; if (trimExtensions != null) { var _ext = trimExtensions.Where(tExt => tExt.TrimCode == _hdrtrim && tExt.ExtensionName == "Headrest").ToList(); if (_ext.Count() > 0) _hdrtrim = _ext[0].TrimCodeExt.Trim(); } formattedMsg = formattedMsg.Replace(token.Token.Trim(), _hdrtrim); break; #endregion case "SKU": #region SKU //formattedMsg = formattedMsg.Replace(token.Token.Trim(), "*SKIPPED*"); //formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageTrue.Trim()); formattedMsg = formattedMsg.Replace(token.Token.Trim(), item.ItemNumber); break; #endregion case "X9ARM!RQ": #region X9ARM_NOTREQ //option 101 - colour //option 100 - trim style if ((GetOptionValue(part, 101) == "X9" && GetOptionValue(part, 100) == "H7") || (GetOptionValue(part, 101) == "X9" && GetOptionValue(part, 100) == "AL") || (GetOptionValue(part, 101) == "X9" && GetOptionValue(part, 100) == "ML") || (GetOptionValue(part, 101) == "X9" && GetOptionValue(part, 100) == "TL") || (GetOptionValue(part, 101) == "X9" && GetOptionValue(part, 100) == "JL")) { //skip formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageTrue.Trim()); } else { if ((GetOptionValue(part, 101) == "X9" && GetOptionValue(part, 100) == "N7") || (GetOptionValue(part, 101) == "X9" && GetOptionValue(part, 100) == "ZL") || (GetOptionValue(part, 101) == "X9" && GetOptionValue(part, 100) == "CL")) { formattedMsg = formattedMsg.Replace(token.Token.Trim(), "(92)"); } } formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageFalse.Trim()); break; #endregion case "SHLDCLR": #region SHLDCLR var _clrshield = _colour; if (colourExtensions != null) { var _ext = colourExtensions.Where( cExt => cExt.ColourCode == _clrshield && cExt.ExtensionName == "Side Shield").ToList(); if (_ext.Count() > 0) _clrshield = _ext[0].ColourCodeExt.Trim(); } formattedMsg = formattedMsg.Replace(token.Token.Trim(), _clrshield); break; #endregion case "RHD": #region RHD //option 2 - lhd/rhd var _rhd = (GetOptionValue(part, 2) == "RHD") ? "RHD" : String.Empty; formattedMsg = formattedMsg.Replace(token.Token.Trim(), _rhd); break; #endregion case "LHPWR": #region LHPWR var _lhpart = item.ItemInfos.Where(i => i.PartIndex == 1).FirstOrDefault(); if (_lhpart != null) { formattedMsg = formattedMsg.Replace(token.Token.Trim(), ((_lhpart.Buildcode & 4) == 4) ? token.MessageTrue : token.MessageFalse); } break; #endregion case "RHPWR": #region RHPWR var _rhpart = item.ItemInfos.Where(i => i.PartIndex == 2).FirstOrDefault(); if (_rhpart != null) { formattedMsg = formattedMsg.Replace(token.Token.Trim(), ((_rhpart.Buildcode & 4) == 4) ? token.MessageTrue : token.MessageFalse); } break; #endregion case "BCKPNL": #region BCKPNL //option 330 back panel part number //option 101 - colour var _lhback = "N/A"; var _rhback = "N/A"; if (item.ItemInfos.Where(prt => prt.PartIndex == 1).Count() > 0) _lhback = GetOptionValue(item.ItemInfos.Where(prt => prt.PartIndex == 1).First(), 102); if (item.ItemInfos.Where(prt => prt.PartIndex == 2).Count() > 0) _rhback = GetOptionValue(item.ItemInfos.Where(prt => prt.PartIndex == 2).First(), 102); var _back = String.Format("{0}/{1}", _lhback.Trim(), _rhback.Trim()); if (_back.ToUpper().Equals("MESH/MESH") && GetOptionValue(part, 101) == "X9") { //??? _back += " %LGHT%"; } formattedMsg = formattedMsg.Replace(token.Token.Trim(), _back); break; #endregion case "X9PWR!RQ": #region %9PWR_NOTREQ //option 101 - colour if (GetOptionValue(part, 101) == "X9" || GetOptionValue(part, 101) == "R4") { formattedMsg = formattedMsg.Replace(token.Token.Trim(), (((part.Buildcode & token.SeatOptions) == (token.SeatOptions & token.SeatOptions2Check)) && ((part.Buildcode & token.SeatOptions) == (part.Buildcode & token.SeatOptions2Check))) ? token.MessageTrue.Trim() : token.MessageFalse.Trim()); } else { formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageFalse.Trim()); } break; #endregion case "X9PASSMAN!RQ": #region X9PASSMAN!RQ var _rhpartpassnotreq = item.ItemInfos.Where(i => i.PartIndex == 2).FirstOrDefault(); if (GetOptionValue(_rhpartpassnotreq, 101) == "X9") { if (GetOptionValue(_rhpartpassnotreq, 104) == "MAN") formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageTrue.Trim()); } formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageFalse.Trim()); break; #endregion case "X9MAN!RQ": #region X9MAN_NOTREQ //option 101 - colour if (GetOptionValue(part, 101) == "X9") { if (GetOptionValue(part, 3) == "MAN") formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageTrue.Trim()); } formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageFalse.Trim()); break; #endregion case "X9H7RT!RQ": #region X9H7RT_NOTREQ //option 101 - colour //option 100 - trim style //option 4 - program //option 9 - BUX if (GetOptionValue(part, 101) == "X9" && GetOptionValue(part, 100) == "H7" && GetOptionValue(part, 4) == "RT" && GetOptionValue(part, 9) == "") { formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageTrue.Trim()); } else if (GetOptionValue(part, 101) == "X9" && GetOptionValue(part, 100) == "N7" && GetOptionValue(part, 4) == "RT" && GetOptionValue(part, 9) == "") { formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageTrue.Trim()); } else { formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageFalse.Trim()); } break; #endregion default: #region DEFAULT formattedMsg = formattedMsg.Replace(token.Token.Trim(), (((part.Buildcode & token.SeatOptions) == (token.SeatOptions & token.SeatOptions2Check)) && ((part.Buildcode & token.SeatOptions) == (part.Buildcode & token.SeatOptions2Check))) ? token.MessageTrue.Trim() : token.MessageFalse.Trim()); #endregion break; } } return formattedMsg; } } return String.Format("*Skipped* ({0})", itemNumber); }
public PlasticSeqSchedule GetPlasticScheduleHistoryDetail(SequencingStation station, int scheduleNum) { PartSequencingDataContext dbSeq = new PartSequencingDataContext(); SequencingScheduleFactory factory = new SequencingScheduleFactory(); PlasticSeqSchedule plasticHistorySchedule = new PlasticSeqSchedule(); var tokens = MessageTokensCacheManager.MessageTokens.Where(t => t.LineId == station.Line.Id || t.LineId == 4).ToList(); var boxHistory = (from h in dbSeq.IWS_GetSequencingDetailHistoryBySeqSettingsIdAndScheduleNum(station.Id, scheduleNum) group h by new { h.ScheduleNum, h.BoxNum } into grp select new ScheduleBox { BoxNum = grp.Key.BoxNum, Items = (from s in grp.ToList() select new ScheduleItem { Message = factory.GetSequencingMessage(station, s.ItemNumber.Trim(), tokens), Position = (int)s.Position }).ToList(), }).ToList(); plasticHistorySchedule = new PlasticSeqSchedule { SequencingStation = station, Boxes = boxHistory, Status = true, }; return plasticHistorySchedule; }