Esempio n. 1
0
        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;
        }
Esempio n. 2
0
        public List<TempBuffer> GetJobTrackingInfo(int lineId)
        {
            MesDataContext dbMes = new MesDataContext();
            string groupLine = "REAR";
            if (lineId == 1)
                groupLine = "FRONT";

            List<TempBuffer> lineBuffer = null;
            lineBuffer = (from s in dbMes.IWS_SP_GetSequencingBufferByLineId(lineId)
                          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();

            return lineBuffer;
        }
Esempio n. 3
0
        public Employee GetEmployeeInfo(int employeeId)
        {
            MesDataContext db = new MesDataContext();

            return (from e in db.Employees
                    where e.EmployeeId == employeeId.ToString()
                    select e).Single();
        }
Esempio n. 4
0
        public List<ItemNumberDescription> GetItemNumberDescriptions()
        {
            MesDataContext db = new MesDataContext();
            var descriptions = (from i in db.ItemMasterTables.Where(i => i.Item_Type.Trim() == "SKU-F" || i.Item_Type.Trim() == "SKU-R")
                                select new ItemNumberDescription {
                                    Description = i.Description.Trim(),
                                    ItemNumber = i.Item_Nbr.Trim(),
                                    ItemType = i.Item_Type.Trim()
                                }).ToList();

            return descriptions;
        }
Esempio n. 5
0
 public SPReturnResult UpdatePalletChange(PalletChangeRequest request)
 {
     MesDataContext db = new MesDataContext();
     string rtrnMsg = "";
     bool? rtrnCode = false;
     db.MES_SP_S_Swap_Damaged_Pallets(request.OldPalletId, request.NewPalletId, request.Comment, false, ref rtrnMsg, ref rtrnCode);
     return new SPReturnResult
     {
         Code = (bool)rtrnCode,
         Message = rtrnMsg,
     };
 }
        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 bool IsScheduleReadyBySequencingStationId(int id)
        {
            PartSequencingDataContext dbSeq = new PartSequencingDataContext();
            SequencingScheduleFactory maker = new SequencingScheduleFactory();
            MesDataContext dbMes = new MesDataContext();

            var seqStations = dbSeq.SequencingStationSettings.Where(i => i.SequencingLocationId == id).ToList();
            if (seqStations.Count() > 0)
            {
                var seqStation = seqStations.FirstOrDefault();
                if (seqStation != null)
                {
                    var station = maker.UpdateNextBoxBySequencingId(seqStation.Id);
                    if (!station.Status)
                    {
                        if (station.ItemsWaiting != 0)
                            return false;
                    }
                    
                    var scheduleStatus = dbSeq.SequencingStationLookups.Where(s => s.SequenceStationSettingsId == station.Id).FirstOrDefault();
                    var tokens = MessageTokensCacheManager.MessageTokens.Where(s => s.LineId == station.Line.Id || s.LineId == 4).ToList();

                    var lineBuffer = maker.GetSequencingBuffer(station);

                    SequencingTrackingItem lastItem = null;
                    var tracking = maker.GetSequencingHistory(station);

                    if (tracking.Any())
                        lastItem = tracking.OrderByDescending(i => i.OrderId).First();

                    var lastJobId = Int32.MinValue;

                    if (lastItem != null)
                        lastJobId = lastItem.OrderId;

                    if (lineBuffer != null)
                    {
                        var itemsinbox = station.PartsPerBox;
                        var boxperschedule = station.BoxPerSchedule;
                        var itemsinschedule = itemsinbox * boxperschedule;

                        var jobs = lineBuffer.Where(i => i.OrderId >= station.NextBox.OrderId).Take(itemsinschedule).ToList();
                        if (itemsinschedule == jobs.Count())
                            return true;
                    }
                }
            }

            return false;
        }
        public IEnumerable<Statistic> ProductionSummary (int locationId) 
        {
            MesDataContext db = new MesDataContext();
            PartSequencingDataContext dbSeq = new PartSequencingDataContext();

            var station = dbSeq.SequencingLocations.Where(s => s.Id == locationId).SingleOrDefault();
            if (station == null)
                return null;

            var results = (from s in db.GetProductionSummaryByGroup(station.LineGroup.Trim()).Where(i=>i.PointValue != null && i.PointValue != "")
                           select new Statistic
                           {
                               Name = s.PointName.Trim(),
                               Value = s.PointValue == null ? "" : s.PointValue.Trim(),
                           }).ToList();

            return results;
        }
Esempio n. 9
0
  public int GetMinJobIdByGroup(string groupType)
  {
      try
      {
          MesDataContext dbMes = new MesDataContext();
          var minValue = (from s in dbMes.RegionToStations.Where(s => s.Group == groupType)
                          join p in dbMes.MES_data_Regions on s.Region equals p.Region
                          select new
                          {
                              JobId = p.Job_ID
                          }).Min(x => x.JobId);
          return minValue;
      }
      catch (Exception ex)
      {
          return int.MinValue;
      }
 
  }
Esempio n. 10
0
        public PalletChange GetPalletChange(int palletId)
        {
            DispositionDataContext db = new DispositionDataContext();
            IntegramMESDataContext trackDb = new IntegramMESDataContext();
            MesDataContext dbMes = new MesDataContext();
            ItemDetailsModel itemDetailModel = new ItemDetailsModel();
            ReworkFactory reworkFactory = new ReworkFactory();

            var palletHdr = (from p in dbMes.PalletInfos
                             where p.PalletNbr == palletId && (p.Pallet_Type == "S1" || p.Pallet_Type == "S2")
                             select p).FirstOrDefault();

            if (palletHdr == null)
                return null;

            var jobInfo = (from j in dbMes.MasterJobTables
                           where j.Job_ID == palletHdr.Job_ID
                           select j).FirstOrDefault();

            if (jobInfo == null)
                return null;

            var item = itemDetailModel.GetItemInfo(jobInfo.SKU);
            var convertSkuInfo = reworkFactory.GetSkuInfo(item).OrderBy(s=>s.PartIndex).ToList();

            var palletChangeHistory = trackDb.PalletChangeHistories.Where(p => p.JobId == jobInfo.Job_ID).ToList();

            PalletChange palletChange = new PalletChange
            {
                PalletId = palletId,
                Sku = jobInfo.SKU,
                JobId = jobInfo.Job_ID,
                OrderNumber = jobInfo.Order_Nbr,
                SkuInfo = convertSkuInfo,
                FinishDTM = (DateTime)jobInfo.FinishBld_DTTM,
                PalletChangeHistory = palletChangeHistory
            };

            return palletChange;
        }
Esempio n. 11
0
 public List<ItemMaster> GetItemMasters()
 {
     MesDataContext db = new MesDataContext();
     //var items = (from i in db.ItemMasters
     //             select i).ToList();
     var items = (from s in db.IWS_SP_GetAllSkuInfo()
                  select new ItemMaster
                  {
                      Active = (bool)s.Active,
                      ItemDescription = s.Description,
                      ItemComponent = s.PartNumber,
                      ItemNumber = s.Sku,
                      ItemType = s.ItemType,
                      LineId = s.LineId,
                      OptionNumber = s.OptionNumber,
                      OptionValue = s.OptionValue,
                      PartIndex = s.PartIndex,
                      ShortDescription = s.OptionShortDescription,
                      Description = s.OptionDescription,
                      Buildcode = (int)s.Buildcode
                  }).ToList();
     return items;
 }
Esempio n. 12
0
 private List<JobSerial> GetRearJobSerialByJobId(int jobId)
 {
     MesDataContext db = new MesDataContext();
     var serials = (from b in db.MES_SP_RPT_Complete_Job_History_Serial("", "", jobId, 0)
                    select new JobSerial
                    {
                         CompletedDTM = (DateTime)b.DTTM,
                         CSType = (int)b.CS_Type,
                         Description = b.Description,
                         SerialNumber = b.Serial_Nbr,
                         StationId = b.Stn_ID
                    }).ToList();
     return serials;
 }
Esempio n. 13
0
 private List<JobSerial> GetFrontJobSerialByJobId(int jobId)
 {
     MesDataContext db = new MesDataContext();
     var serials = (from b in db.IWS_SP_GetJobSerialByJobId(jobId)
                    select new JobSerial
                    {
                        CompletedDTM = (DateTime)b.DTTM,
                        CSType = (int)b.CS_Type,
                        Description = b.Description.Trim(),
                        SerialNumber = b.Serial_Nbr,
                        StationId = b.Stn_ID
                    }).ToList();
     return serials;
 }
Esempio n. 14
0
        //public void GetRepairInfo(int jobId)
        //{
        //    RepairReportingDataContext db = new RepairReportingDataContext();
        //    var repairHeader = db.RPT_GetRepairInfoHeader(jobId).ToList();
            
        //    foreach(var header in repairHeader)
        //    {
        //        dynamic Repair = new
        //        {
        //            HeaderInfo = header,
        //            RepairHistory = new
        //            {

        //            }
        //        };
        //    }


        //}

        public PalletHistoryInfo GetPalletInfoByJobId(long jobId)
        {
            ReworkFactory reworkFactory = new ReworkFactory();
            RepairFaults faults = new RepairFaults();
            DispositionDataContext db = new DispositionDataContext();
            REWORK_REPORTINGEntities reworkEntities = new REWORK_REPORTINGEntities();
            MesDataContext dbMes = new MesDataContext();
            ItemDetailsModel itemDetailModel = new ItemDetailsModel();

            var jobInfo = (from j in dbMes.MasterJobTables
                           where j.Job_ID == jobId
                           select j).FirstOrDefault();

            if (jobInfo == null)
                return null;

            var palletInfo = GetPalletInfo(jobInfo);
            return palletInfo;
        }
        public void UpdateOffsetStationById(int id, int direction, int offset)
        {
            PartSequencingDataContext dbSeq = new PartSequencingDataContext();
            MesDataContext dbMes = new MesDataContext();

            var station = UpdateNextBoxBySequencingId(id);
            var scheduleStatus = dbSeq.SequencingStationLookups.Where(s => s.SequenceStationSettingsId == station.Id).FirstOrDefault();

            SequencingTrackingItem lastItem = null;
            var tracking = GetSequencingHistory(station);
            var lineBuffer = GetSequencingBuffer(station);

            if (tracking.Any())
            {
                lastItem = tracking.OrderByDescending(i => i.OrderId).First();

                if (direction == 0) //down
                {
                    var buffer = lineBuffer.Where(item => item.OrderId > lastItem.OrderId).ToList();
                    buffer = buffer.OrderBy(item => item.OrderId).Take(offset).ToList();

                    if (buffer.Count() == offset)   //enough schedule to move it
                    {
                        var lastBuffer = buffer.Last();
                        SequencingTrackingHistoryDetail histDetail = new SequencingTrackingHistoryDetail
                        {
                            BoxNum = -1, //scheduleStatus.NextBoxNum - 1 == 0 ? 4 : scheduleStatus.NextBoxNum - 1,
                            DTM = DateTime.Now,
                            ScheduleNum = -1, //scheduleStatus.NextScheduleNum - 1,
                            SequencingStationSettingsId = station.Id,
                            Type = 2
                        };
                        dbSeq.SequencingTrackingHistoryDetails.InsertOnSubmit(histDetail);

                        int position = 1;
                        foreach (var seat in buffer)
                        {
                            SequencingTrackingHistory hist = new SequencingTrackingHistory
                            {
                                OrderNumber = seat.OrderNumber,
                                ItemNumber = seat.ItemNumber,
                                ItemType = seat.ItemType,
                                Position = position,
                                JobId = seat.JobId,
                                OrderId = seat.OrderId,
                                OrderStatus = (int)seat.OrderStatus,
                                SequencingTrackingHistoryDetail = histDetail,
                            };

                            dbSeq.SequencingTrackingHistories.InsertOnSubmit(hist);
                            position++;
                        }

                        scheduleStatus.NextOrderId = lastBuffer.OrderId + 1;
                        dbSeq.SubmitChanges();
                    }
                }
                else if (direction == 1) //up
                {

                    var buffer = tracking.OrderByDescending(i => i.OrderId).Take(offset).ToList();
                    if (buffer.Count() == offset)   //enough schedule to move it up
                    {
                        var lastBuffer = buffer.Last();

                        foreach (var seat in buffer)
                        {
                            var deleteSeat = dbSeq.SequencingTrackingHistories.Where(s=>s.Id == seat.SequencingTrackingHistoryId).FirstOrDefault();
                            if (deleteSeat != null)
                                dbSeq.SequencingTrackingHistories.DeleteOnSubmit(deleteSeat);
                        }

                        if (lastBuffer.Type == 2)
                        {
                            scheduleStatus.NextOrderId = lastBuffer.OrderId;
                        }

                        dbSeq.SubmitChanges();

                        var histDetailId = buffer.First().SequencingTrackingHistoryDetailsId;
                        var root = dbSeq.SequencingTrackingHistoryDetails.Where(s => s.Id == histDetailId).FirstOrDefault();
                        if (root != null)
                        {
                            if (root.SequencingTrackingHistories.Count() == 0)
                            {
                                dbSeq.SequencingTrackingHistoryDetails.DeleteOnSubmit(root);
                                dbSeq.SubmitChanges();
                            }
                        }

                    }
                }


            }
            else
            {
                if (lineBuffer.Any())
                {
                    if (direction == 0) //down
                    {
                        var buffer = lineBuffer.Take(offset).ToList();
                        if (buffer.Count() == offset)
                        {
                            var lastBuffer = buffer.Last();
                            SequencingTrackingHistoryDetail histDetail = new SequencingTrackingHistoryDetail
                            {
                                BoxNum = -1, //scheduleStatus.NextBoxNum - 1 == 0 ? 4 : scheduleStatus.NextBoxNum - 1,
                                DTM = DateTime.Now,
                                ScheduleNum = -1, //scheduleStatus.NextScheduleNum - 1,
                                SequencingStationSettingsId = station.Id,
                                Type = 2
                            };
                            dbSeq.SequencingTrackingHistoryDetails.InsertOnSubmit(histDetail);

                            int position = 1;
                            foreach (var seat in buffer)
                            {
                                SequencingTrackingHistory hist = new SequencingTrackingHistory
                                {
                                    OrderNumber = seat.OrderNumber,
                                    ItemNumber = seat.ItemNumber,
                                    ItemType = seat.ItemType,
                                    Position = position,
                                    JobId = seat.JobId,
                                    OrderId = seat.OrderId,
                                    OrderStatus = (int)seat.OrderStatus,
                                    SequencingTrackingHistoryDetail = histDetail,
                                };

                                dbSeq.SequencingTrackingHistories.InsertOnSubmit(hist);
                                position++;
                            }

                            scheduleStatus.NextOrderId = lastBuffer.OrderId + 1;
                            dbSeq.SubmitChanges();
                        }
                    }
                    else if (direction == 1)
                    {
                        //cannot go move up when there is no tracking
                    }
                }
            }

            //send broadcast to clients to update/refresh screen
            var context = GlobalHost.ConnectionManager.GetHubContext<FrontTrimSeqHub>();
            context.Clients.All.frontTrimReceiveBroadcast(999, station.SequencingLocation.Id, "Refresh Command");
            //context.Clients.All.frontTrimReceiveBroadcast(998, 1, "Maintenance");

        }
Esempio n. 16
0
        public PalletHistoryInfo GetPalletInfoByPalletId(int palletId)
        {
            ReworkFactory reworkFactory = new ReworkFactory();
            RepairFaults faults = new RepairFaults();
            DispositionDataContext db = new DispositionDataContext();
            REWORK_REPORTINGEntities reworkEntities = new REWORK_REPORTINGEntities();
            MesDataContext dbMes = new MesDataContext();
            ItemDetailsModel itemDetailModel = new ItemDetailsModel();

            var palletHdr = (from p in dbMes.PalletInfos
                             where p.PalletNbr == palletId && (p.Pallet_Type == "S1" || p.Pallet_Type == "S2")
                             select p).FirstOrDefault();

            if (palletHdr == null)
                return null;

            var jobInfo = (from j in dbMes.MasterJobTables
                           where j.Job_ID == palletHdr.Job_ID
                           select j).FirstOrDefault();

            if (jobInfo == null)
                return null;

            var palletInfo = GetPalletInfo(jobInfo);
            return palletInfo;
        }
Esempio n. 17
0
        private PalletHistoryInfo GetPalletInfo(MasterJobTable jobInfo)
        {
            ReworkFactory reworkFactory = new ReworkFactory();
            RepairFaults faults = new RepairFaults();
            DispositionDataContext db = new DispositionDataContext();
            REWORK_REPORTINGEntities reworkEntities = new REWORK_REPORTINGEntities();
            MesDataContext dbMes = new MesDataContext();
            ItemDetailsModel itemDetailModel = new ItemDetailsModel();

            var item = itemDetailModel.GetItemInfo(jobInfo.SKU);

            var convertSkuInfo = reworkFactory.GetSkuInfo(item).OrderBy(x => x.PartIndex).ToList();
            var lineInfos = reworkFactory.GetLineInfo(jobInfo);

            //RepairTorqueDetails = Count = 0

            reworkEntities.Configuration.ProxyCreationEnabled = false;
            reworkEntities.Configuration.LazyLoadingEnabled = false;
            var repairHistory = reworkEntities.RepairHistories
                .Include("RepairFaultXrefRepairHistories")
                .Include("RepairFaultXrefRepairHistories.RepairFault")
                .Include("RepairFaultXrefRepairHistories.RepairFault.FaultType")
                .Include("RepairFaultXrefRepairHistories.RepairFault.RepairFaultDetails")
                .Include("RepairFaultXrefRepairHistories.RepairFault.RepairDispositionDetails")
                .Include("RepairFaultXrefRepairHistories.RepairFault.RepairRecipes")
                //.Include("RepairFaultXrefRepairHistories.RepairFault.RepairRecipes.RepairBarcodeDetails")
                //.Include("RepairFaultXrefRepairHistories.RepairFault.RepairRecipes.RepairTorqueDetails")
                .Include("RepairTestRequirements")
                .Include("RepairTestRequirements.RepairTestRequirementDetails")
                .Where(r => r.JobId == jobInfo.Job_ID)
                .Select(i => new
                {
                    i.ArriveDtm,
                    i.CompletedDtm,
                    i.EmployeeId,
                    i.EmployeeName,
                    i.JobId,
                    i.PalletId,
                    RepairFaultXrefRepairHistories = i.RepairFaultXrefRepairHistories.Select(j => new
                    {
                        RepairFault = new
                        {
                            FaultType = j.RepairFault.FaultType,
                            RepairDispositionDetails = j.RepairFault.RepairDispositionDetails,
                            RepairFaultDetails = j.RepairFault.RepairFaultDetails,
                            RepairRecipes = j.RepairFault.RepairRecipes
                        }
                    }).ToList(),
                    RepairTestRequirements = i.RepairTestRequirements.Select(k => new
                    {
                        k.TestId,
                        k.TestName,
                        k.TestResult,
                        k.TestStatus,
                        k.Buildcode,
                        RepairTestRequirementDetails = k.RepairTestRequirementDetails
                    }).ToList(),
                }).ToList();

            dynamic extract = new List<dynamic>();
            foreach (var j in repairHistory)
            {
                dynamic onejob = new
                {
                    PalletId = j.PalletId,
                    JobId = j.JobId,
                    CompletedDtm = j.CompletedDtm,
                    EmployeeName = j.EmployeeName,
                    RepairTestRequirements = (from t in j.RepairTestRequirements
                                             select new {
                                                 TestId = t.TestId,
                                                 TestName = t.TestName,
                                                 TestResult = t.TestResult,
                                                 TestStatus = t.TestStatus,
                                                 Buildcode = t.Buildcode,
                                                 RepairTestRequirementDetails = (from d in t.RepairTestRequirementDetails
                                                                                select new
                                                                                {
                                                                                    BitNo = d.BitNo,
                                                                                    Description = d.Description,
                                                                                    Result = d.Result
                                                                                }).ToList(),
                                             }).ToList(),
                    RepairFaultXrefRepairHistories = from s in j.RepairFaultXrefRepairHistories
                                                     select new
                                                     {
                                                         RepairFault = new {
                                                             FaultType = new {
                                                                 Id = s.RepairFault.FaultType.Id,
                                                                 Description = s.RepairFault.FaultType.Description,
                                                             },
                                                             RepairRecipes = from r in s.RepairFault.RepairRecipes
                                                                             select new {
                                                                                 Description = r.Description,
                                                                                 RepairBarcodeDetails = (from b in r.RepairBarcodeDetails
                                                                                                        select new
                                                                                                        {
                                                                                                            Description = b.Description,
                                                                                                            OriginalBarcode = b.OriginalBarcode,
                                                                                                            ReplaceBarcode = b.ReplaceBarcode
                                                                                                        }).ToList(),
                                                                                 RepairTorqueDetails = (from t in r.RepairTorqueDetails
                                                                                                        select new
                                                                                                        {
                                                                                                            Angle = t.Angle,
                                                                                                            AngleStatus = t.AngleStatus,
                                                                                                            CompletedDTM = t.CompletedDTM,
                                                                                                            ControllerName = t.ControllerName,
                                                                                                            Pset = t.Pset,
                                                                                                            TighteningID = t.TighteningID,
                                                                                                            TighteningStatus = t.TighteningStatus,
                                                                                                            Torque = t.Torque,
                                                                                                            TorqueStatus = t.TorqueStatus
                                                                                                        }).ToList(),
                                                                             },
                                                             RepairFaultDetails = (from d in s.RepairFault.RepairFaultDetails
                                                                                  select new
                                                                                  {
                                                                                      Station = d.Station,
                                                                                      Description = d.Description
                                                                                  }).ToList(),
                                                             RepairDispositionDetails = (from disp in s.RepairFault.RepairDispositionDetails
                                                                                        select new
                                                                                        {
                                                                                            Type = disp.Type,
                                                                                            Side = disp.Side,
                                                                                            SeatPortion = disp.SeatPortion,
                                                                                            Commodity = disp.Commodity,
                                                                                            Defect = disp.Defect,
                                                                                            DefectDetail = disp.DefectDetail,
                                                                                            Responsibility = disp.Responsibility
                                                                                        }).ToList()
                                                         }
                                                     }
                };
                extract.Add(onejob);
            }

            PalletHistoryInfo palletInfo = new PalletHistoryInfo
            {
                OrderNumber = jobInfo.Order_Nbr,
                FinishDTM = (DateTime)jobInfo.FinishBld_DTTM,
                JobId = jobInfo.Job_ID,
                Sku = jobInfo.SKU,
                PalletId = (int)jobInfo.Ship_Pallet,
                SkuInfo = convertSkuInfo,
                LineInfo = lineInfos,
                RepairHistory = extract
            };

            return palletInfo;
        }
Esempio n. 18
0
 private List<JobTorque> GetJobTorquesByJobId(int jobId)
 {
     MesDataContext db = new MesDataContext();
     var torques = (from t in db.MES_SP_RPT_Complete_Job_History_Torque(jobId, "", "", 0)
                    select new JobTorque
                    {
                        Angle = (int)t.Angle,
                        AngleStatus = (int)t.AngleStatus,
                        OverallStatus = (bool)t.OverallStatus,
                        Pset = (int)t.Pset,
                        StationId = t.Stn_ID,
                        TighteningStatus = (int)t.TighteningStatus,
                        Torque = Math.Round((double)t.Torque, 2),
                        TorqueStatus = (int)t.TorqueStatus
                    }).ToList();
     return torques;
 }
Esempio n. 19
0
 private List<JobActivity> GetJobActivitiesByJobId(int jobId)
 {
     MesDataContext db = new MesDataContext();
     var activities = (from a in db.MES_SP_RPT_Complete_Job_Activity(jobId, "", "", 0)
                       select new JobActivity
                       {
                           InsertedDTM = (DateTime)a.Inserted_DT,
                           Message = a.Message.Trim(),
                           User = a.Name.Trim(),
                           StationId = a.Stn_ID.Trim(),
                           UserId = a.User_ID
                       }).OrderBy(x => x.InsertedDTM).ToList();
     return activities;
 }
Esempio n. 20
0
        public IEnumerable<SideBySide> GetSequencingTracking2StationsByLineId(int lineId, int seqId1, int seqId2)
        {
            MesDataContext dbMes = new MesDataContext();
            SequencingScheduleFactory factory = new SequencingScheduleFactory();

            var results = (from s in dbMes.IWS_SP_GetWIPSequencingTracking2StationsByLineId(lineId, seqId1, seqId2)
                           select new SideBySide
                           {
                               Complete1 = s.ScheduleNum1 == -1 ? false : true,
                               Complete2 = s.ScheduleNum2 == -1 ? false : true,
                               BoxNum1 = s.BoxNum1,
                               BoxNum2 = s.BoxNum2,
                               Group = s.Group,
                               ItemNumber = s.ItemNumber,
                               ItemType = s.ItemType,
                               JobId = (int)s.JobId,
                               LineId = (int)s.LineId,
                               OrderId = (int)s.OrderId,
                               OrderStatus = (int)s.OrderStatus,
                               OrderNumber = s.OrderNumber,
                               Position1 = s.Position1,
                               Position2 = s.Position2,
                               Region = s.Region,
                               ScheduleNum1 = s.ScheduleNum1,
                               ScheduleNum2 = s.ScheduleNum2,
                               Type1 = s.Type1,
                               Type2 = s.Type2,
                           }).ToList();

            var station1 = factory.UpdateNextBoxBySequencingId(seqId1);
            var station2 = factory.UpdateNextBoxBySequencingId(seqId2);

            UpdateNextSeqScheduleSideBySide(station1, results, 1);
            UpdateNextSeqScheduleSideBySide(station2, results, 2);


            var scheduleNum1 = -1;
            var scheduleNum2 = -1;
            var boxNum1 = -1;
            var boxNum2 = -1;

            var itemsinschedule1 = station1.PartsPerBox * station1.BoxPerSchedule;
            var itemsinschedule2 = station2.PartsPerBox * station2.BoxPerSchedule;

            //Schedule calc
            for (var i = 0; i < results.Count(); i++)
            {

                if (results[i].ScheduleNum1 != scheduleNum1)
                {

                    results[i].StartDrawSchedule1 = true;

                    var countSchedule = 0;
                    for (var j = i; j < results.Count(); j++)
                    {
                        if (results[j].ScheduleNum1 == results[i].ScheduleNum1)
                        {
                            countSchedule++;
                        }
                        else
                        {
                            break;
                        }
                    }

                    if (results[i].Complete1)
                        results[i].ScheduleCount1 = countSchedule;
                    else
                    {
                        if (countSchedule > itemsinschedule1)
                            results[i].ScheduleCount1 = itemsinschedule1;
                        else
                            results[i].ScheduleCount1 = countSchedule;
                    }

                    scheduleNum1 = results[i].ScheduleNum1;
                }
                else
                {
                    results[i].StartDrawSchedule1 = false;
                }

                if (results[i].ScheduleNum2 != scheduleNum2)
                {

                    results[i].StartDrawSchedule2 = true;

                    var countSchedule = 0;
                    for (var j = i; j < results.Count(); j++)
                    {
                        if (results[j].ScheduleNum2 == results[i].ScheduleNum2)
                        {
                            countSchedule++;
                        }
                        else
                        {
                            break;
                        }
                    }

                    if (results[i].Complete2)
                        results[i].ScheduleCount2 = countSchedule;
                    else
                    {
                        if (countSchedule > itemsinschedule2)
                            results[i].ScheduleCount2 = itemsinschedule2;
                        else
                            results[i].ScheduleCount2 = countSchedule;
                    }

                    scheduleNum2 = results[i].ScheduleNum2;
                }
                else
                {
                    results[i].StartDrawSchedule2 = false;
                }


            }

            //Box Calc
            scheduleNum1 = -1;
            scheduleNum2 = -1;
            for (var i = 0; i < results.Count(); i++)
            {
                if (results[i].BoxNum1 != boxNum1 || results[i].ScheduleNum1 != scheduleNum1)
                {
                    results[i].StartDrawBox1 = true;

                    var countBox = 0;

                    for (var j = i; j < results.Count(); j++)
                    {
                        if (results[j].BoxNum1 == results[i].BoxNum1 && results[j].ScheduleNum1 == results[i].ScheduleNum1)
                        {
                            countBox++;
                        }

                    }
                    results[i].BoxCount1 = countBox;

                    boxNum1 = results[i].BoxNum1;
                    scheduleNum1 = results[i].ScheduleNum1;

                }
                else
                {
                    results[i].StartDrawBox1 = false;
                }

                if (results[i].BoxNum2 != boxNum2 || results[i].ScheduleNum2 != scheduleNum2)
                {
                    results[i].StartDrawBox2 = true;

                    var countBox = 0;

                    for (var j = i; j < results.Count(); j++)
                    {
                        if (results[j].BoxNum2 == results[i].BoxNum2 && results[j].ScheduleNum2 == results[i].ScheduleNum2)
                        {
                            countBox++;
                        }

                    }
                    results[i].BoxCount2 = countBox;

                    boxNum2 = results[i].BoxNum2;
                    scheduleNum2 = results[i].ScheduleNum2;

                }
                else
                {
                    results[i].StartDrawBox2 = false;
                }
            }



            return results;
        }
        public PlasticSeqSchedule GetPlasticSeqScheduleBySequencingStationId(int id)
        {
            PartSequencingDataContext dbSeq = new PartSequencingDataContext();
            MesDataContext dbMes = new MesDataContext();
            PlasticSeqSchedule schedule = null;

            var station = UpdateNextBoxBySequencingId(id);
            var scheduleStatus = dbSeq.SequencingStationLookups.Where(s => s.SequenceStationSettingsId == station.Id).FirstOrDefault();

            var tokens = MessageTokensCacheManager.MessageTokens.Where(s => s.LineId == station.Line.Id || s.LineId == 4).ToList();

            var lineBuffer = GetSequencingBuffer(station);

            schedule = new PlasticSeqSchedule
            {
                SequencingStation = station,
            };

            SequencingTrackingItem lastTrackItem = null;
            var tracking = GetSequencingHistory(station);

            if (tracking.Any())
            {
                lastTrackItem = tracking.OrderByDescending(i => i.OrderId).FirstOrDefault();
                if (lastTrackItem != null)
                {
                    if (lastTrackItem.Type == 2)
                    {
                        var lastRealJob = tracking.Where(o => o.OrderId < lastTrackItem.OrderId).OrderByDescending(f => f.OrderId).Where(x => x.ScheduleNum > 0).FirstOrDefault();

                        if (lastRealJob != null)
                        {
                            var unassignedBuffer = tracking.Where(o => o.OrderId <= lastTrackItem.OrderId && o.OrderId > lastRealJob.OrderId).OrderBy(f => f.OrderId).ToList();
                            if (unassignedBuffer.Count() > 0)
                            {
                                var unassignbox = new ScheduleBox(1, 1);
                                var items = unassignedBuffer.Select(item => GetSequencingMessage(station, item.ItemNumber, tokens).Trim());
                                int unassignPosition = 1;
                                foreach (var message in items)
                                {
                                    if (message.ToUpper().IndexOf("*SKIPPED*") < 0)
                                    {
                                        //string[] msg = message.Split(',');
                                        unassignbox.Items.Add(new ScheduleItem(unassignPosition, message));
                                        unassignPosition++;
                                    }

                                }
                                schedule.OffsetBoxes = unassignbox;
                            }
                        }


                        //var unassignedBuffer = tracking.Where(o => o.OrderId <= lastTrackItem.OrderId).OrderBy(f => f.OrderId).Where(x => x.ScheduleNum == -1).ToList();
                        //if (unassignedBuffer.Count() > 0)
                        //{
                        //    var unassignbox = new ScheduleBox(1, 1);
                        //    var items = unassignedBuffer.Select(item => GetSequencingMessage(station, item.ItemNumber, tokens).Trim());
                        //    int unassignPosition = 1;
                        //    foreach (var message in items)
                        //    {
                        //        if (message.ToUpper().IndexOf("*SKIPPED*") < 0)
                        //        {
                        //            //string[] msg = message.Split(',');
                        //            unassignbox.Items.Add(new ScheduleItem(unassignPosition, message));
                        //            unassignPosition++;
                        //        }
                                
                        //    }
                        //    schedule.OffsetBoxes = unassignbox;
                        //}

                    }
                }
            }

            //var lastJobId = Int32.MinValue;

            //if (lastItem != null)
            //    lastJobId = lastItem.OrderId;

            //var unassignedBuffer = lineBuffer.Where(i => i.OrderId > lastJobId && i.OrderId < station.NextBox.OrderId).ToList();
            
            //if (unassignedBuffer.Count() > 0)
            //{
            //    var unassignbox = new ScheduleBox(1, 1);

            //    var items = unassignedBuffer.Select(item => GetSequencingMessage(station, item.ItemNumber, tokens).Trim());
            //    int unassignPosition = 1;
            //    foreach (var message in items)
            //    {
            //        if (message.ToUpper().IndexOf("*SKIPPED*") < 0)
            //        {
            //            string[] msg = message.Split(',');
            //            unassignbox.Items.Add(new ScheduleItem(unassignPosition, msg[0]));
            //        }
            //        unassignPosition++;
            //    }
            //    schedule.OffsetBoxes = unassignbox;
            //}

            if (lineBuffer != null)
            {
                //check for not assigned parts for schedule
                var itemsinbox = station.PartsPerBox;
                var boxperschedule = station.BoxPerSchedule;
                var itemsinschedule = itemsinbox * boxperschedule;

                var jobs = lineBuffer.Where(i => i.OrderId >= station.NextBox.OrderId).Take(itemsinschedule).ToList();
                var boxPosition = 1;
                var boxperpage = boxperschedule;

                do
                {
                    var currentbox = station.NextBox.BoxNum;
                    var box = new ScheduleBox(boxPosition, currentbox);

                    var items = jobs.Select(item => GetSequencingMessage(station, item.ItemNumber.Trim(), tokens).Trim());
                    if (!items.Any())
                        break;


                    foreach (var message in items)
                    {
                        if (message.ToUpper().IndexOf("*SKIPPED*") < 0)
                        {
                            box.Items.Add(new ScheduleItem((station.PartsPerBox - itemsinbox + 1), message));
                            --itemsinbox;
                        }

                        --itemsinschedule;
                        if (itemsinbox > 0 && itemsinschedule > 0) continue;
                        itemsinbox = station.PartsPerBox;
                        currentbox = currentbox >= station.BoxQty ? 1 : (++currentbox);
                        schedule.Boxes.Add(box);
                        --boxperschedule;
                        if (boxperschedule > 0 && itemsinschedule > 0)
                        {
                            --boxperpage;
                            boxPosition++;
                            box = new ScheduleBox(boxPosition, currentbox);
                        }
                        else
                        {
                            boxperpage = 0;
                            boxPosition = 1;
                            break;
                        }
                    }
                } while (boxperpage > 1);

            }

            return schedule;

        }
Esempio n. 22
0
        public BarcodeSwap GetSwapBarcodeSerial(int palletId, string original, string replace)
        {
            MesDataContext dbMes = new MesDataContext();
            RequirementsDataContext db = new RequirementsDataContext();

            int lineId = 0;
            if (palletId > 5000)
                lineId = 1;

            var palletHdr = (from p in dbMes.PalletInfos
                             where p.PalletNbr == palletId && (p.Pallet_Type == "S1" || p.Pallet_Type == "S2")
                             select p).FirstOrDefault();

            if (palletHdr != null)
            {

                var jobInfo = (from j in dbMes.MasterJobTables
                               where j.Job_ID == palletHdr.Job_ID
                               select j).FirstOrDefault();

                if (jobInfo != null)
                {
                    var bcregex = db.BarcodeRegexes.ToList();
                    foreach (var reg in bcregex)
                    {
                        var regex = new Regex(reg.Regex.Trim());
                        var bcmatch = regex.Match(original);
                        if (bcmatch.Success)    //validate barcode
                        {
                            //pretensioner
                            if (reg.CSType == 1 || reg.CSType == 2)
                            {
                                var pretensionerTrack = bcmatch.Groups["TRACKING"].Value;
                                original = pretensionerTrack;
                                break;
                            }
                        }
                    }

                    var result = (from b in dbMes.IWS_SP_GetJobSerialByJobId(jobInfo.Job_ID).Where(s=>s.Serial_Nbr.Trim() == original.Trim())
                                join t in dbMes.EDS_cfg_Component_Serialization_Types on b.CS_Type equals t.CS_Type
                                select new BarcodeSwap {
                                    Description = t.Description_Short.Trim(),
                                    JobId = jobInfo.Job_ID,
                                    OriginalBarcode = original,
                                    ReplaceBarcode = replace
                                }).FirstOrDefault();

                    if (result != null)
                        return result;
                }
            }



            throw new HttpResponseException(
                            HttpErrorResponse.GetHttpErrorResponse(
                            HttpStatusCode.NotFound, "Error", string.Format("Error Has Occured")));
        }
Esempio n. 23
0
        public TrimScheduleInfo GetNextTrimSchedule(int locationId)
        {
            PartSequencingDataContext dbSeq = new PartSequencingDataContext();
            SequencingScheduleFactory factory = new SequencingScheduleFactory();
            MesDataContext dbMes = new MesDataContext();
            ItemDetailsModel itemDetailsModel = new ItemDetailsModel();
            TrimScheduleInfo nextTrimScheduleInfo = null;

            var seqStations = dbSeq.SequencingStationSettings.Where(i => i.SequencingLocationId == locationId).ToList();
            if (seqStations.Count() > 0)
            {
                var seqStation = seqStations.FirstOrDefault();
                if (seqStation != null)
                {
                    var station = factory.UpdateNextBoxBySequencingId(seqStation.Id);
                    var scheduleStatus = dbSeq.SequencingStationLookups.Where(s => s.SequenceStationSettingsId == station.Id).FirstOrDefault();
                    var tokens = MessageTokensCacheManager.MessageTokens.Where(s => s.LineId == station.Line.Id || s.LineId == 4).ToList();

                    var lineBuffer = factory.GetSequencingBuffer(station);

                    if (lineBuffer != null)
                    {
                        var itemsinbox = station.PartsPerBox;
                        var boxperschedule = station.BoxPerSchedule;
                        var itemsinschedule = itemsinbox * boxperschedule;
                        var boxqty = station.BoxQty;

                        var currentjobs = (from j in lineBuffer.Where(i => i.OrderId >= station.NextBox.OrderId).Take(itemsinschedule).ToList()
                                           select new Seat
                                           {
                                               OrderStatus = (int)j.OrderStatus,
                                               Complete = false,
                                               TrimStyle = GetOptionValue(j.ItemNumber.Trim(), 100),
                                               Colour = GetOptionValue(j.ItemNumber.Trim(), 101),
                                               OrderNumber = j.OrderNumber == null ? "" : j.OrderNumber.Trim(),
                                               ItemNumber = j.ItemNumber.Trim(),
                                               ItemType = j.ItemType.Trim(),
                                               DescLine1 = j.ItemNumber.Trim(),
                                               DescLine2 = factory.GetSequencingMessage(station, j.ItemNumber.Trim(), tokens),
                                               JobId = (int)j.JobId,
                                               OrderId = j.OrderId,
                                               Item = itemDetailsModel.GetItemInfoByLineId(j.ItemNumber.Trim(), station.Line.Id),
                                           }).OrderBy(s => s.OrderId).ToList();

                        if (currentjobs.Count() != itemsinschedule)
                            return null;

                        var lastcurrentjob = currentjobs.Last();

                        var nextjobs = (from j in lineBuffer.Where(i => i.OrderId > lastcurrentjob.OrderId).Take(itemsinschedule).ToList()
                                        select new Seat
                                        {
                                            OrderStatus = (int)j.OrderStatus,
                                            Complete = false,
                                            TrimStyle = GetOptionValue(j.ItemNumber.Trim(), 100),
                                            Colour = GetOptionValue(j.ItemNumber.Trim(), 101),
                                            OrderNumber = j.OrderNumber == null ? "" : j.OrderNumber.Trim(),
                                            ItemNumber = j.ItemNumber.Trim(),
                                            ItemType = j.ItemType.Trim(),
                                            DescLine1 = j.ItemNumber.Trim(),
                                            DescLine2 = factory.GetSequencingMessage(station, j.ItemNumber.Trim(), tokens),
                                            JobId = (int)j.JobId,
                                            OrderId = j.OrderId,
                                            Item = itemDetailsModel.GetItemInfoByLineId(j.ItemNumber.Trim(), station.Line.Id)
                                        }).OrderBy(s => s.OrderId).ToList();

                        if (nextjobs.Count() == itemsinschedule)
                        {
                            nextTrimScheduleInfo = new TrimScheduleInfo
                            {
                                Complete = false,
                                SeatSchedule = nextjobs,
                                SummaryList = GetSummaryHeaderItems(nextjobs, station.Line.Id),
                                ScheduleStatus = new TrimScheduleStatus
                                {
                                    CurrentBoxNumber = (scheduleStatus.NextBoxNum + 1) > boxqty ? 1 : scheduleStatus.NextBoxNum + 1,
                                    CurrentScheduleNumber = scheduleStatus.NextScheduleNum + 1
                                }
                            };
                        }
                        else
                        {
                            return null;
                        }

                        for (int i = 0; i < nextjobs.Count(); i++)
                            nextjobs[i].Index = i;

                        return nextTrimScheduleInfo;

                    }
                }
            }
            return null;
        }
        public void CompleteSequencingStation(int id)
        {
            PartSequencingDataContext dbSeq = new PartSequencingDataContext();
            MesDataContext dbMes = new MesDataContext();

            var station = UpdateNextBoxBySequencingId(id);
            var completeDTM = DateTime.Now;

            var lookup = dbSeq.SequencingStationLookups.Where(s => s.SequenceStationSettingsId == station.Id).Single();

            var lineBuffer = GetSequencingBuffer(station);

            if (station.ScheduleAvailable)
            {
                var itemsinbox = station.PartsPerBox;
                var boxperschedule = station.BoxPerSchedule;
                var itemsinschedule = itemsinbox * boxperschedule;

                var currentBox = station.NextBox.BoxNum;

                var jobs = lineBuffer.Where(i => i.OrderId >= station.NextBox.OrderId).Take(itemsinschedule).ToList();

                var tokens = MessageTokensCacheManager.MessageTokens.Where(t => t.LineId == station.Line.Id).ToList();

                SequencingTrackingHistoryDetail histDetail = new SequencingTrackingHistoryDetail
                {
                    BoxNum = currentBox,
                    DTM = completeDTM,
                    ScheduleNum = station.NextBox.ScheduleNum,
                    SequencingStationSettingsId = station.Id,
                    Type = 1
                };

                dbSeq.SequencingTrackingHistoryDetails.InsertOnSubmit(histDetail);
                dbSeq.SubmitChanges();

                int position = 1;
                foreach (var job in jobs)
                {
                    var message = GetSequencingMessage(station, job.ItemNumber, tokens).Trim();

                    SequencingTrackingHistory hist = new SequencingTrackingHistory
                    {
                        OrderNumber = job.OrderNumber,
                        ItemNumber = job.ItemNumber,
                        ItemType= job.ItemType,
                        JobId = job.JobId,
                        Position = position,
                        OrderId = job.OrderId,
                        SequencingTrackingHistoryDetail = histDetail,
                    };
                    position++;
                    dbSeq.SequencingTrackingHistories.InsertOnSubmit(hist);
                    dbSeq.SubmitChanges();

                    if (message.ToUpper().IndexOf("*SKIPPED*") < 0)
                        --itemsinbox;

                    --itemsinschedule;

                    if (itemsinbox > 0 && itemsinschedule > 0) continue;
                    if (itemsinschedule <= 0)
                        break;

                    itemsinbox = station.PartsPerBox;
                    --boxperschedule;

                    if (currentBox + 1 > station.BoxQty)
                        currentBox = 1;
                    else
                    {
                        currentBox++;
                        position = 1;
                    }

                    histDetail = new SequencingTrackingHistoryDetail
                    {
                        Type = 1,
                        BoxNum = currentBox,
                        DTM = completeDTM,
                        ScheduleNum = station.NextBox.ScheduleNum,
                        SequencingStationSettingsId = station.Id,
                    };

                }

                lookup.NextOrderId = jobs.Last().OrderId + 1;
                dbSeq.SubmitChanges();

            }
        }
        public SequencingStation UpdateNextBoxBySequencingId(int id)
        {
            PartSequencingDataContext dbSeq = new PartSequencingDataContext();
            MesDataContext dbMes = new MesDataContext();
            PlasticSeqDatabase dbPlasticSeq = new PlasticSeqDatabase();

            SequencingTrackingItem lastItem = null;
            SequencingTrackingItem firstItem = null;

            var station = (from s in SequencingSettingsCacheManager.SequencingStationSettings
                           where s.Obsolete == false && s.Id == id
                           select new SequencingStation
                           {
                               Description = s.Description,
                               ScheduleAvailable = false,
                               ItemsWaiting = 0,
                               ItemsWaitingPercentage = 0,
                               Id = s.Id,
                               SequencingLocation = dbSeq.SequencingLocations.Where(x => x.Id == s.SequencingLocationId).Single(),
                               Line = dbSeq.Lines.Where(x => x.Id == s.LineId).Single(),
                               Station = dbPlasticSeq.GetStation((int)s.StationId),
                               StationOrder = (int)s.StationOrder,
                               BoxPerSchedule = (int)s.BoxPerSchedule,
                               BoxQty = (int)s.BoxQty,
                               MessageFormat = s.MessageFormat,
                               Obsolete = (bool)s.Obsolete,
                               PartsPerBox = (int)s.PartsPerBox,
                               SeatOptions = (int)s.SeatOptions,
                               SeatOptions2Check = (int)s.SeatOptions2Check,
                               BaseStation = SequencingSettingsCacheManager.SequencingStationSettings.Where(i=>i.Id == SequencingSettingsCacheManager.BaseSequencingStationOffsets.Where(x=>x.LineId == s.LineId).Single().SequencingStationSettingsId).Single(),
                               Offset = (int)s.Offset,
                           }).Single();

            var tracking = GetSequencingHistory(station);
            var lineBuffer = GetSequencingBuffer(station);

            var minBuffer = lineBuffer.OrderBy(j => j.OrderId).FirstOrDefault();

            var scheduleStatus = dbSeq.SequencingStationLookups.Where(s => s.SequenceStationSettingsId == station.Id).FirstOrDefault();

            if (tracking.Any())
            {
                lastItem = tracking.OrderByDescending(j => j.OrderId).First();
                firstItem = tracking.OrderBy(j => j.OrderId).First();
            }

            station.NextBox = new SequenceBox();

            if (scheduleStatus == null)
            {
                int nextOrderId = Int16.MinValue;

                if (lineBuffer.Count() > 0)
                    nextOrderId = lineBuffer.First().OrderId;


                if (lastItem != null)
                {
                    if (lastItem.OrderId > nextOrderId) {
                        nextOrderId = lastItem.OrderId + 1;
                    }
                }

                scheduleStatus = new SequencingStationLookup
                {
                    SequenceStationSettingsId = station.Id,
                    NextBoxNum = 1,
                    NextScheduleNum = 1,
                    NextOrderId = nextOrderId
                };

                station.NextBox.BoxNum = scheduleStatus.NextBoxNum;
                station.NextBox.OrderId = scheduleStatus.NextOrderId;
                station.NextBox.ScheduleNum = scheduleStatus.NextScheduleNum;
                SetScheduleAvailable(station, lineBuffer.Count());

                dbSeq.SequencingStationLookups.InsertOnSubmit(scheduleStatus);
                dbSeq.SubmitChanges();
            }
            else
            {
                if (lastItem != null)
                {
                    if (lastItem.Type == 2)
                    {
                        var lastRealJob = tracking.Where(o => o.OrderId < lastItem.OrderId).OrderByDescending(f => f.OrderId).Where(x => x.ScheduleNum > 0).FirstOrDefault();
                        if (lastRealJob != null)
                        {
                            station.NextBox.ScheduleNum = lastRealJob.ScheduleNum + 1;
                            station.NextBox.BoxNum = lastRealJob.BoxNum + 1;
                            station.NextBox.OrderId = lastItem.OrderId + 1;
                        }
                        else
                        {
                            station.NextBox.ScheduleNum = scheduleStatus.NextScheduleNum;
                            station.NextBox.BoxNum = scheduleStatus.NextBoxNum;
                            station.NextBox.OrderId = lastItem.OrderId + 1;
                        }
                    }
                    else
                    {
                        if ((lastItem.BoxNum + station.BoxPerSchedule) > station.BoxQty)
                            station.NextBox.BoxNum = 1;
                        else
                            station.NextBox.BoxNum = (lastItem.BoxNum + 1);

                        station.NextBox.ScheduleNum = lastItem.ScheduleNum + 1;
                        station.NextBox.OrderId = lastItem.OrderId + 1;
                    }
                    

                }
                else
                {
                    if (minBuffer != null)
                    {
                        station.NextBox.OrderId = minBuffer.OrderId;
                        station.NextBox.BoxNum = 1;
                        station.NextBox.ScheduleNum = 1;
                    }
                    else
                    {
                        station.NextBox.OrderId = scheduleStatus.NextOrderId;
                        station.NextBox.BoxNum = scheduleStatus.NextBoxNum;
                        station.NextBox.ScheduleNum = scheduleStatus.NextScheduleNum;
                    }

                }

                scheduleStatus.NextBoxNum = station.NextBox.BoxNum;
                scheduleStatus.NextScheduleNum = station.NextBox.ScheduleNum;
                scheduleStatus.NextOrderId = station.NextBox.OrderId;

                dbSeq.SubmitChanges();

                var validBuffer = (from l in lineBuffer
                                   where l.OrderId >= station.NextBox.OrderId
                                   select l).ToList();

                SetScheduleAvailable(station, validBuffer.Count());

            }


            return station;

        }
        public JobBuffer ScheduleAdminView(int id)
        {
            PartSequencingDataContext dbSeq = new PartSequencingDataContext();
            MesDataContext dbMes = new MesDataContext();
            ItemDetailsModel itemDetailsModel = new ItemDetailsModel();
            var station = UpdateNextBoxBySequencingId(id);

            var tokens = MessageTokensCacheManager.MessageTokens.Where(t => t.LineId == station.Line.Id || t.LineId == 4).ToList();

            var lineBuffer = GetSequencingBuffer(station);

            var boxBuffer = new JobBuffer
            {
                CurrentBoxNum = station.NextBox.BoxNum,
                CurrentScheduleNum = station.NextBox.ScheduleNum,
                SequencingStation = station,
                Buffer = new List<SequenceItem>()
            };

            var tracking = GetSequencingHistory(station);

            boxBuffer.Buffer = (lineBuffer.GroupJoin(tracking, jb => jb.OrderId, st => st.OrderId, (jb, g) => new { _jb = jb, g }).
            SelectMany(t => t.g.DefaultIfEmpty(), (t, st) => new SequenceItem
            {
                BoxNum = st == null ? 0 : st.BoxNum,
                OrderId = t._jb.OrderId,
                Complete = true,
                OrderNumber = t._jb.OrderNumber == null ? "" : t._jb.OrderNumber,
                ScheduleNum = st == null ? 0 : st.ScheduleNum,
                ItemNumber = t._jb.ItemNumber,
                JobId = (int)t._jb.JobId,
                Region = t._jb.Region.Trim(),
                Type = st == null ? 0 : (int)st.Type,
                Message = GetSequencingMessage(station, t._jb.ItemNumber, tokens),
                Item = itemDetailsModel.GetItemInfo(t._jb.ItemNumber)
            })).ToList();

            boxBuffer.Buffer = boxBuffer.Buffer.OrderBy(s => s.OrderId).ToList();

            var itemsinbox = station.PartsPerBox;
            var boxperschedule = station.BoxPerSchedule;
            var itemsintheschedule = itemsinbox * boxperschedule;
            if (station.NextBox != null)
            {

                var currentbox = station.NextBox.BoxNum;

                var jobs = boxBuffer.Buffer.Where(i => i.OrderId >= station.NextBox.OrderId).Take(itemsintheschedule).OrderBy(s => s.OrderId).ToList();

                foreach (var item in jobs)
                {
                    item.Complete = false;
                    item.BoxNum = currentbox;
                    item.ScheduleNum = station.NextBox.ScheduleNum;

                    if (item.Message.ToUpper().IndexOf("*SKIPPED*") < 0)
                    {
                        item.Skipped = false;
                        --itemsinbox;
                    }
                    else
                        item.Skipped = true;


                    if (itemsinbox > 0 && itemsintheschedule > 0) continue;
                    if (itemsintheschedule <= 1)
                    {
                        break;
                    }

                    itemsinbox = station.PartsPerBox;
                    --boxperschedule;
                    currentbox = currentbox >= station.BoxQty ? 1 : ++currentbox;

                }

            }

            var scheduleNum = -1;
            var boxNum = -1;
            var initialJobId = Int32.MinValue;

            for(var i=0;i<boxBuffer.Buffer.Count(); i++) {
                if (i == 0) {
                    initialJobId = boxBuffer.Buffer[i].JobId;
                }

                if (boxBuffer.Buffer[i].ScheduleNum != scheduleNum)
                {
                    
                    boxBuffer.Buffer[i].StartDrawSchedule = true;
                    boxBuffer.Buffer[i].InitialJobId = initialJobId;

                    var countSchedule = 0;
                    for(var j=i; j<boxBuffer.Buffer.Count();j++) {
                        if (boxBuffer.Buffer[j].ScheduleNum == boxBuffer.Buffer[i].ScheduleNum) {
                            countSchedule++;
                        } else {
                            break;
                        }
                    }

                    if (boxBuffer.Buffer[i].Complete)
                        boxBuffer.Buffer[i].ScheduleCount = countSchedule;
                    else
                    {
                        if (countSchedule > itemsintheschedule)
                            boxBuffer.Buffer[i].ScheduleCount = itemsintheschedule;
                        else
                            boxBuffer.Buffer[i].ScheduleCount = countSchedule;
                    }
                    initialJobId = boxBuffer.Buffer[i].JobId;
                    scheduleNum = boxBuffer.Buffer[i].ScheduleNum;
                }
                else
                {
                    boxBuffer.Buffer[i].StartDrawSchedule = false;

                }
            }

            scheduleNum = -1;
            for (var i = 0; i < boxBuffer.Buffer.Count(); i++)
            {
                if (boxBuffer.Buffer[i].BoxNum != boxNum || boxBuffer.Buffer[i].ScheduleNum != scheduleNum)
                {
                    boxBuffer.Buffer[i].StartDrawBox = true;

                    var countBox = 0;
                    for (var j = i; j < boxBuffer.Buffer.Count(); j++)
                    {
                        if (boxBuffer.Buffer[j].BoxNum == boxBuffer.Buffer[i].BoxNum && boxBuffer.Buffer[j].ScheduleNum == boxBuffer.Buffer[i].ScheduleNum)
                        {
                            countBox++;
                        }
                        else
                            break;
                    }
                    boxBuffer.Buffer[i].BoxCount = countBox;
                    boxNum = boxBuffer.Buffer[i].BoxNum;
                    scheduleNum = boxBuffer.Buffer[i].ScheduleNum;
                }
                else
                {
                    boxBuffer.Buffer[i].StartDrawBox = false;
                }
            }
            
            return boxBuffer;

        }
Esempio n. 27
0
 public MesRepository(MesDataContext context)
 {
     _context = context;
 }
        public void AutoCorrectSeqScheduleBySequencingStationId(int id)
        {
            PartSequencingDataContext dbSeq = new PartSequencingDataContext();
            MesDataContext dbMes = new MesDataContext();
            
            var station = UpdateNextBoxBySequencingId(id);
            var scheduleStatus = dbSeq.SequencingStationLookups.Where(s => s.SequenceStationSettingsId == station.Id).FirstOrDefault();

            var baseStation = UpdateNextBoxBySequencingId((int)station.BaseStation.Id);
            var baseStatus = dbSeq.SequencingStationLookups.Where(s => s.SequenceStationSettingsId == baseStation.Id).FirstOrDefault();

            var lineBuffer = GetSequencingBuffer(station);

            //calculate offset
            var correctOffset = station.Offset;
            int offsetDifference = 0;

            if (lineBuffer.Any())
            {
                var baseFirst = lineBuffer.Where(itm => itm.OrderId >= baseStatus.NextOrderId).FirstOrDefault();
                var stationFirst = lineBuffer.Where(itm => itm.OrderId >= scheduleStatus.NextOrderId).FirstOrDefault();


                if (baseFirst.OrderId >= stationFirst.OrderId) //behind base station
                {
                    offsetDifference = lineBuffer.Where(itm => itm.OrderId >= scheduleStatus.NextOrderId && itm.OrderId < baseStatus.NextOrderId).Count();

                    int amountAbleToMove = lineBuffer.Where(itm => itm.OrderId >= scheduleStatus.NextOrderId).Count();
                    int adjustOffset = correctOffset + offsetDifference;

                    if (adjustOffset <= amountAbleToMove) 
                    {
                        if (adjustOffset > 0) //should move down 
                            UpdateOffsetStationById(station.Id, 0, adjustOffset);
                    }
                    else //not enough to move
                    {
                        throw new HttpResponseException(
                            HttpErrorResponse.GetHttpErrorResponse(
                            HttpStatusCode.NotFound, "Buffer not large enough", string.Format("Buffer = {0}, Adjust = {1}", amountAbleToMove, adjustOffset)));
                    }
                }
                else //ahead of base station
                {
                    offsetDifference = lineBuffer.Where(itm => itm.OrderId >= baseStatus.NextOrderId && itm.OrderId < scheduleStatus.NextOrderId).Count();
                    int adjustOffset = offsetDifference - correctOffset;
                    if (adjustOffset == 0)
                    {
                        //do nothing
                    }
                    else if (adjustOffset > 0)
                        UpdateOffsetStationById(station.Id, 1, adjustOffset);
                    else
                        UpdateOffsetStationById(station.Id, 0, Math.Abs(adjustOffset));
                    
                }
            }

            
        }
Esempio n. 29
0
        public TrimSchedule GetTrimSchedule(int id)
        {
            PartSequencingDataContext dbSeq = new PartSequencingDataContext();
            SequencingScheduleFactory factory = new SequencingScheduleFactory();
            MesDataContext dbMes = new MesDataContext();
            ItemDetailsModel itemDetailsModel = new ItemDetailsModel();
            TrimSchedule trimSchedule = null;
            List<Seat> offsetSeats = null;
            List<Seat> currentjobs = null;

            var seqStations = dbSeq.SequencingStationSettings.Where(i => i.SequencingLocationId == id).ToList();
            if (seqStations.Count() > 0)
            {
                var seqStation = seqStations.FirstOrDefault();
                if (seqStation != null)
                {
                    var station = factory.UpdateNextBoxBySequencingId(seqStation.Id);
                    var scheduleStatus = dbSeq.SequencingStationLookups.Where(s => s.SequenceStationSettingsId == station.Id).FirstOrDefault();
                    var tokens = MessageTokensCacheManager.MessageTokens.Where(s => s.LineId == station.Line.Id || s.LineId == 4).ToList();

                    var lineBuffer = factory.GetSequencingBuffer(station);

                    if (lineBuffer != null)
                    {
                        var itemsinbox = station.PartsPerBox;
                        var boxperschedule = station.BoxPerSchedule;
                        var itemsinschedule = itemsinbox * boxperschedule;
                        var boxqty = station.BoxQty;

                        trimSchedule = new TrimSchedule
                        {

                        };


                        //trimSchedule.PreviousSchedule = new TrimScheduleInfo();

                        //SequencingTrackingItem lastItem = null;
                        //var tracking = factory.GetSequencingHistory(station);

                        //if (tracking.Any())
                        //{
                        //    lastItem = tracking.OrderByDescending(i => i.OrderId).First();
                        //    if (lastItem != null)
                        //    {
                        //        int previousScheduleNum = lastItem.ScheduleNum;
                        //        var previousjobs = (from t in tracking.Where(i=>i.ScheduleNum == previousScheduleNum)
                        //                           select new Seat {
                        //                               OrderNumber = t.OrderNumber,
                        //                               OrderStatus = t.OrderStatus,
                        //                               Complete = false,
                        //                               TrimStyle = GetOptionValue(t.ItemNumber.Trim(), 100),
                        //                               Colour = GetOptionValue(t.ItemNumber.Trim(), 101),
                        //                               ItemNumber = t.ItemNumber.Trim(),
                        //                               ItemType = t.ItemType.Trim(),
                        //                               DescLine1 = t.ItemNumber.Trim(),
                        //                               DescLine2 = factory.GetSequencingMessage(station, t.ItemNumber.Trim(), tokens),
                        //                               JobId = (int)t.JobId,
                        //                               OrderId = t.OrderId,
                        //                               Item = itemDetailsModel.GetItemInfoByLineId(t.ItemNumber.Trim(), station.Line.Id)
                        //                           }).ToList();
                        //        trimSchedule.PreviousSchedule.SeatSchedule = previousjobs;
                        //        trimSchedule.PreviousSchedule.SummaryList = GetSummaryHeaderItems(previousjobs, station.Line.Id);
                        //        trimSchedule.PreviousSchedule.ScheduleStatus = new TrimScheduleStatus
                        //        {
                        //            CurrentBoxNumber = lastItem.BoxNum,
                        //            CurrentScheduleNumber = lastItem.ScheduleNum
                        //        };
                        //    }

                        //}
                        //else
                        //{
                        //    trimSchedule.PreviousSchedule = null;
                        //}
                        var tracking = factory.GetSequencingHistory(station);
                        if (tracking.Any()) 
                        {
                            var lastTrackItem = tracking.LastOrDefault();
                            if (lastTrackItem != null)
                            {
                                if (lastTrackItem.Type == 2)
                                {
                                    var lastRealJob = tracking.Where(o => o.OrderId < lastTrackItem.OrderId).OrderByDescending(f => f.OrderId).Where(x => x.ScheduleNum > 0).FirstOrDefault();

                                    if (lastRealJob != null)
                                    {
                                        var unassignedBuffer = tracking.Where(o => o.OrderId <= lastTrackItem.OrderId && o.OrderId >lastRealJob.OrderId).OrderBy(f => f.OrderId).ToList();
                                        if (unassignedBuffer.Count() > 0)
                                        {
                                            var offsetjobs = (from j in unassignedBuffer
                                                              select new Seat
                                                              {
                                                                  OrderStatus = (int)j.OrderStatus,
                                                                  Complete = false,
                                                                  TrimStyle = GetOptionValue(j.ItemNumber.Trim(), 100),
                                                                  Colour = GetOptionValue(j.ItemNumber.Trim(), 101),
                                                                  OrderNumber = j.OrderNumber == null ? "" : j.OrderNumber.Trim(),
                                                                  ItemNumber = j.ItemNumber.Trim(),
                                                                  ItemType = j.ItemType.Trim(),
                                                                  DescLine1 = j.ItemNumber.Trim(),
                                                                  DescLine2 = factory.GetSequencingMessage(station, j.ItemNumber.Trim(), tokens),
                                                                  JobId = (int)j.JobId,
                                                                  OrderId = j.OrderId,
                                                                  Item = itemDetailsModel.GetItemInfoByLineId(j.ItemNumber.Trim(), station.Line.Id)
                                                              }).ToList();

                                            offsetSeats = offsetjobs;
                                        }
                                    }

                                }
                            }


                        }


                        if (station.SequencingLocation.ParentId == null)
                        {
                            currentjobs = (from j in lineBuffer.Where(i => i.OrderId >= station.NextBox.OrderId).Take(itemsinschedule).ToList()
                                           select new Seat
                                           {
                                               OrderStatus = (int)j.OrderStatus,
                                               Complete = false,
                                               TrimStyle = GetOptionValue(j.ItemNumber.Trim(), 100),
                                               Colour = GetOptionValue(j.ItemNumber.Trim(), 101),
                                               OrderNumber = j.OrderNumber == null ? "" : j.OrderNumber.Trim(),
                                               ItemNumber = j.ItemNumber.Trim(),
                                               ItemType = j.ItemType.Trim(),
                                               DescLine1 = j.ItemNumber.Trim(),
                                               DescLine2 = factory.GetSequencingMessage(station, j.ItemNumber.Trim(), tokens),
                                               JobId = (int)j.JobId,
                                               OrderId = j.OrderId,
                                               Item = itemDetailsModel.GetItemInfoByLineId(j.ItemNumber.Trim(), station.Line.Id),
                                           }).OrderBy(s => s.OrderId).ToList();
                        }
                        else //from queue
                        {
                            currentjobs = (from j in lineBuffer.Where(i => i.OrderId >= station.NextBox.OrderId).Take(itemsinschedule).ToList()
                                            select new Seat
                                            {
                                                ScheduleNum = j.ScheduleNum,
                                                BoxNum = j.BoxNum,
                                                OrderStatus = (int)j.OrderStatus,
                                                Complete = false,
                                                TrimStyle = GetOptionValue(j.ItemNumber.Trim(), 100),
                                                Colour = GetOptionValue(j.ItemNumber.Trim(), 101),
                                                OrderNumber = j.OrderNumber == null ? "" : j.OrderNumber.Trim(),
                                                ItemNumber = j.ItemNumber.Trim(),
                                                ItemType = j.ItemType.Trim(),
                                                DescLine1 = j.ItemNumber.Trim(),
                                                DescLine2 = factory.GetSequencingMessage(station, j.ItemNumber.Trim(), tokens),
                                                JobId = (int)j.JobId,
                                                OrderId = j.OrderId,
                                                Item = itemDetailsModel.GetItemInfoByLineId(j.ItemNumber.Trim(), station.Line.Id),
                                            }).OrderBy(s => s.OrderId).ToList();
                        }

                        //var currentjobs = (from j in lineBuffer.Where(i => i.OrderId >= station.NextBox.OrderId).Take(itemsinschedule).ToList()
                        //                   select new Seat {
                                              
                        //                       OrderStatus = (int)j.OrderStatus,
                        //                       Complete = false,
                        //                       TrimStyle = GetOptionValue(j.ItemNumber.Trim(), 100),
                        //                       Colour = GetOptionValue(j.ItemNumber.Trim(), 101),
                        //                       OrderNumber = j.OrderNumber == null ? "" : j.OrderNumber.Trim(),
                        //                       ItemNumber = j.ItemNumber.Trim(),
                        //                       ItemType = j.ItemType.Trim(),
                        //                       DescLine1 = j.ItemNumber.Trim(),
                        //                       DescLine2 = factory.GetSequencingMessage(station, j.ItemNumber.Trim(), tokens),
                        //                       JobId = (int)j.JobId,
                        //                       OrderId = j.OrderId,
                        //                       Item = itemDetailsModel.GetItemInfoByLineId(j.ItemNumber.Trim(), station.Line.Id),
                        //                   }).OrderBy(s=>s.OrderId).ToList();

                        if (currentjobs.Count() != itemsinschedule)
                            return null;

                        //var lastcurrentjob = currentjobs.Last();

                        //var nextjobs = (from j in lineBuffer.Where(i => i.OrderId > lastcurrentjob.OrderId).Take(itemsinschedule).ToList()
                        //                select new Seat
                        //                {
                        //                    OrderStatus = (int)j.OrderStatus,
                        //                    Complete = false,
                        //                    TrimStyle = GetOptionValue(j.ItemNumber.Trim(), 100),
                        //                    Colour = GetOptionValue(j.ItemNumber.Trim(), 101),
                        //                    OrderNumber = j.OrderNumber == null ? "" : j.OrderNumber.Trim(),
                        //                    ItemNumber = j.ItemNumber.Trim(),
                        //                    ItemType = j.ItemType.Trim(),
                        //                    DescLine1 = j.ItemNumber.Trim(),
                        //                    DescLine2 = factory.GetSequencingMessage(station, j.ItemNumber.Trim(), tokens),
                        //                    JobId = (int)j.JobId,
                        //                    OrderId = j.OrderId,
                        //                    Item = itemDetailsModel.GetItemInfoByLineId(j.ItemNumber.Trim(), station.Line.Id)
                        //                }).OrderBy(s => s.OrderId).ToList();

                        //if (nextjobs.Count() == itemsinschedule)
                        //{
                        //    trimSchedule.NextSchedule = new TrimScheduleInfo
                        //    {
                        //        Complete = false,
                        //        SeatSchedule = nextjobs,
                        //        SummaryList = GetSummaryHeaderItems(nextjobs, station.Line.Id),
                        //        ScheduleStatus = new TrimScheduleStatus
                        //        {
                        //            CurrentBoxNumber = (scheduleStatus.NextBoxNum + 1) > boxqty ? 1 : scheduleStatus.NextBoxNum + 1,
                        //            CurrentScheduleNumber = scheduleStatus.NextScheduleNum + 1
                        //        }
                        //    };
                        //}
                        //else
                        //{
                        //    trimSchedule.NextSchedule = null;
                        //}

                        //for (int i = 0; i < nextjobs.Count(); i++)
                        //    nextjobs[i].Index = i;

                        for(int i=0; i<currentjobs.Count(); i++)
                            currentjobs[i].Index = i;

                        trimSchedule.CurrentSchedule = new TrimScheduleInfo
                        {
                            Complete = false,
                            SeatSchedule = currentjobs,
                            SummaryList = GetSummaryHeaderItems(currentjobs, station.Line.Id),
                            ScheduleStatus = GetTrimScheduleStatus(station, scheduleStatus, currentjobs),
                            OffsetSeats = offsetSeats
                        };

                        return trimSchedule;

                    }
                }
            }
            return null;
        }
Esempio n. 30
0
 public MesMoRepository(MesDataContext context) : base(context)
 {
     _context = context;
 }
Esempio n. 31
0
        public IEnumerable<SequencingStation> GetSequencingStationsBySequencingLocationId(int id)
        {
            PartSequencingDataContext dbSeq = new PartSequencingDataContext();
            MesDataContext dbMes = new MesDataContext();
            SequencingScheduleFactory factory = new SequencingScheduleFactory();
            List<SequencingStation> listStations = new List<SequencingStation>();

            var results = (from s in SequencingSettingsCacheManager.SequencingStationSettings
                               where s.SequencingLocationId == id
                               select s).ToList();

            foreach (var seqStation in results)
            {
                var station = factory.UpdateNextBoxBySequencingId(seqStation.Id);
                listStations.Add(station);
            }

            return listStations;
        }
Esempio n. 32
0
        private List<JobTest> GetJobTestByJobId(int jobId)
        {
            MesDataContext db = new MesDataContext();
            var tests = (from t in db.MES_SP_RPT_Electrical_Test_History("", "", jobId, 0)
                         select new JobTest
                         {
                             StartDTM = (DateTime)t.Start_DTTM,
                             StationId = t.Stn_ID,
                             TestFunction = t.Test_Function,
                             TestStatus = t.IndivStatus.ToString().Trim(),
                             TestValue = t.Test_Value,
                             UserId = t.UserId
                         }).ToList();

            return tests;
        }