public List<TestRepairRequirement> GetFrontRepairTestRequirements(Item item, int jobId, int palletId, int testerMode) 
        {
            ItemDetailsModel model = new ItemDetailsModel();
            List<TestRepairRequirement> testRepairReqs = new List<TestRepairRequirement>();
            
            if (item.ItemInfos.Count() > 1)
            {
                var first = item.ItemInfos.Where(i => i.PartIndex == 1).FirstOrDefault();
                var second = item.ItemInfos.Where(i => i.PartIndex == 2).FirstOrDefault();

                int buildcode1 = (first != null) ? first.Buildcode : 0;
                int buildcode2 = (second != null) ? second.Buildcode : 0;


                //check first part BUX and RU
                //require FAM tester if not BUX
                if (((buildcode2 & (int)Math.Pow(2, 9)) != Math.Pow(2, 9)) && ((buildcode2 & (int)Math.Pow(2, 17)) == Math.Pow(2, 17)))
                {
                    testRepairReqs.Add(new TestRepairRequirement
                    {
                        JobId = jobId,
                        PalletId = palletId,
                        TestId = 3,
                        Group = "FRONT",
                        Repaired = false,
                        Dtm = DateTime.Now,
                        TestName = "1st Row Repair FAM Tester",
                        BuildCode = buildcode2
                    });
                }


                testRepairReqs.Add(new TestRepairRequirement
                {
                    JobId = jobId,
                    PalletId = palletId,
                    TestId = 1,
                    Group = "FRONT",
                    Repaired = false,
                    Dtm = DateTime.Now,
                    TestName = "1st Row Repair Test Driver",
                    BuildCode = buildcode1
                });

                testRepairReqs.Add(new TestRepairRequirement
                {
                    JobId = jobId,
                    PalletId = palletId,
                    TestId = 2,
                    Group = "FRONT",
                    Repaired = false,
                    Dtm = DateTime.Now,
                    TestName = "1st Row Repair Test Passenger",
                    BuildCode = buildcode2
                });

                return testRepairReqs;
            }
            return null;
        }
        public List<JobTrackingItem> GetJobTrackingInfo(int lineId)
        {
            AdminFactory factory = new AdminFactory();
            ItemDetailsModel model = new ItemDetailsModel();

            var lineBuffer = (from s in factory.GetJobTrackingInfo(lineId)
                              select new JobTrackingItem
                              {
                                  Item = s,
                                  ItemDetail = model.GetItemInfo(s.ItemNumber)
                              }).ToList();
            return lineBuffer;
        }
        public RepairRecipeResponse GetReworkRecipes([FromBody]ReworkRecipeRequest request, int actionId)
        {
            ItemDetailsModel model = new ItemDetailsModel();
            RecipeFactory recipeFactory = new RecipeFactory();
            ReworkFactory reworkFactory = new ReworkFactory();

            var recipes = recipeFactory.GetRepairRecipes(request.SkuInfo, request.Disposition, actionId);
            return new RepairRecipeResponse
            {
                RepairRecipes = recipes
            };

        }
Exemple #4
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;
        }
        private string GetSeatSummaryDescription(string itemNumber, int lineId)
        {
            var items = ItemMasterCacheManager.ItemNumberDescriptions.Where(i => i.ItemNumber.Trim() == itemNumber).ToList();
            string description = "";
            ItemDetailsModel model = new ItemDetailsModel();
            var item = model.GetItemInfo(itemNumber);
            if (items.Count() > 0)
            {
                if (lineId == 1)
                {
                    var first = item.ItemInfos.Where(s => s.PartIndex == 1).FirstOrDefault();
                    var second = item.ItemInfos.Where(s => s.PartIndex == 2).FirstOrDefault();
                    if (first != null)
                    {
                        description = model.GetOptionValue(first, 100) + " " + model.GetOptionValue(first, 101) + " " 
                            + model.GetOptionValue(first, 3) + " " + model.GetOptionValue(first, 10);
                    }
                }
                else if (lineId == 2)
                {
                    var first = item.ItemInfos.Where(s => s.PartIndex == 1).FirstOrDefault();
                    var second = item.ItemInfos.Where(s => s.PartIndex == 2).FirstOrDefault();
                    if (first != null)
                    {
                        if (first.ItemType == "2B")
                            description = "BENCH";
                        else
                        {
                            description = model.GetOptionValue(first, 100) + " " + model.GetOptionValue(first, 101) + " "
                                + model.GetOptionValue(first, 10) + " " + model.GetOptionValue(first, 9) + " "
                                + model.GetOptionValue(first, 13) + " " + model.GetOptionValue(first, 11);
                        }

                    }
                }
                else if (lineId == 3)
                {
                    var third = item.ItemInfos.Where(s => s.PartIndex == 3).FirstOrDefault();
                    var fourth = item.ItemInfos.Where(s => s.PartIndex == 4).FirstOrDefault();
                    if (third != null)
                    {
                        description = model.GetOptionValue(third, 100) + " " + model.GetOptionValue(third, 101) + " "
                            + model.GetOptionValue(third, 3) + " " +  model.GetOptionValue(third, 7) + " " 
                            + model.GetOptionValue(third, 9) + " " + model.GetOptionValue(third, 10);
                    }
                }

                return System.Text.RegularExpressions.Regex.Replace(description, @"\s+", " ");

            }

            return "*Unknown Sku* (" + itemNumber + ")";
        }
        public string GetOptionValue(string itemNumber, int optionNum)
        {
            ItemDetailsModel itemDetailsModel = new ItemDetailsModel();
            var item = itemDetailsModel.GetItemInfo(itemNumber);
            string optionString = "";

            if (item == null)
                return optionString;

            if (item.ItemInfos.Count() > 0)
            {
                var firstpart = item.ItemInfos.FirstOrDefault();
                Option option = firstpart.Options.Where(i => i.OptionNumber == optionNum).FirstOrDefault();
                if (option != null)
                {
                    if (option.OptionValue != null)
                        return option.OptionValue.Trim();
                }
            }

            return optionString;
        }
        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;
        }
        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;
        }
Exemple #9
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;
        }
Exemple #10
0
        public List<SkuInfo> GetSkuInfo(string sku)
        {
            ItemDetailsModel itemDetailModel = new ItemDetailsModel();
            ReworkFactory reworkFactory = new ReworkFactory();
            var item = itemDetailModel.GetItemInfo(sku);
            if (item == null)
                return null;

            var convertSkuInfo = reworkFactory.GetSkuInfo(item).OrderBy(s => s.PartIndex).ToList();
            return convertSkuInfo;
        }
Exemple #11
0
        public List<SkuInfo> GetSkuInfoByPalletId(int palletId)
        {
            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 item = itemDetailModel.GetItemInfo(jobInfo.SKU);

            var convertSkuInfo = GetSkuInfo(item);
            return convertSkuInfo;
        }
Exemple #12
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;
        }
        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;

        }
        public TrimScheduleInfo GetTrimScheduleHistoryDetail(int locationId, int scheduleNum)
        {
            PartSequencingDataContext dbSeq = new PartSequencingDataContext();
            ItemDetailsModel itemDetailsModel = new ItemDetailsModel();
            SequencingScheduleFactory factory = new SequencingScheduleFactory();

            var seqStation = dbSeq.SequencingStationSettings.Where(i => i.SequencingLocationId == locationId).FirstOrDefault();
            var tokens = MessageTokensCacheManager.MessageTokens.Where(s => s.LineId == seqStation.LineId || s.LineId == 4).ToList();
            var station = factory.UpdateNextBoxBySequencingId(seqStation.Id);

            TrimScheduleInfo trimHistorySchedule = null;

            if (station != null)
            {
                SequencingTrackingItem lastItem = null;
                var tracking = factory.GetSequencingHistory(station);

                if (tracking.Any())
                {
                    lastItem = tracking.OrderByDescending(i => i.OrderId).First();
                    if (lastItem != null)
                    {
                        var historyjobs = (from t in dbSeq.IWS_GetSequencingDetailHistoryBySeqSettingsIdAndScheduleNum(station.Id, scheduleNum)
                                          select new Seat
                                          {
                                            ScheduleNum = t.ScheduleNum,
                                            BoxNum = t.BoxNum,
                                            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),
                                            OrderId = t.OrderId,
                                            Item = itemDetailsModel.GetItemInfoByLineId(t.ItemNumber.Trim(), station.Line.Id)
                                          }).ToList();

                                          

                        //var historyjobs = (from t in tracking
                        //                    select new Seat
                        //                    {
                        //                        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();

                        var firstItem = historyjobs.FirstOrDefault();

                        trimHistorySchedule = new TrimScheduleInfo
                        {
                            Complete = true,
                            ScheduleStatus = new TrimScheduleStatus
                            {
                                CurrentBoxNumber = firstItem == null ? 0 : firstItem.BoxNum,
                                CurrentScheduleNumber = firstItem == null ? 0 : firstItem.ScheduleNum
                            },
                            SeatSchedule = historyjobs,
                            SummaryList = GetSummaryHeaderItems(historyjobs, station.Line.Id),
                        };
                        return trimHistorySchedule;
                    }

                }

            }
            return trimHistorySchedule;

            
        }
        public string GetSequencingMessage(SequencingStation station, string itemNumber, IEnumerable<MessageToken> lineTokens)
        {
            ItemDetailsModel itemDetailsModel = new ItemDetailsModel();
            var item = itemDetailsModel.GetItemInfo(itemNumber);

            if (item == null)
                return String.Format("*Unknown Part* ({0})", itemNumber);

            string[] tokens = station.MessageFormat.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);

            var formattedMsg = station.MessageFormat.Trim();

            if (tokens[0] == null) throw new NotImplementedException();

            var filteredParts = item.ItemInfos.Where(
                                part =>
                                ((part.Buildcode & station.SeatOptions) ==
                                 (part.Buildcode & station.SeatOptions2Check) &&
                                 (part.Buildcode & station.SeatOptions) == (station.SeatOptions & station.SeatOptions2Check) &&
                                 part.LineId == station.Line.Id)).OrderBy(part => part.PartIndex).ToList();

            List<MessageToken> validLineTokens = lineTokens.Where(t => tokens.Contains(t.Token.Trim())).ToList();
            var colourExtensions = MessageTokensCacheManager.ColourExtensions;
            var trimExtensions = MessageTokensCacheManager.TrimExtensions;


            if (filteredParts.Count() > 0)
            {
                ItemInfo part = null;
                if (station.Line.Id == 1 || station.Line.Id == 2)
                    part = filteredParts.Where(p => p.PartIndex == 1).FirstOrDefault();
                else if (station.Line.Id == 3)
                {
                    part = filteredParts.Where(p => p.PartIndex == 3).FirstOrDefault();
                }

                if (part != null)
                {
                    //3Pass ONLY
                    if (part.ItemComponent == "NO-2LH" || part.ItemComponent == "NO-2RH")
                    {
                        return String.Format("NO BUILD ({0})", itemNumber);
                    }

                    //iterate through and look or feneric options number replacement
                    foreach (var specialOption in tokens)
                    {
                        if (specialOption.Contains("OPTION"))
                        {
                            var optionNumberString = new String(specialOption.Where(Char.IsDigit).ToArray());
                            formattedMsg = formattedMsg.Replace(specialOption.Trim(), GetOptionValue(part, int.Parse(optionNumberString)));
                        }
                    }


                    foreach (var token in validLineTokens)
                    {
                        var _trimstyle = GetOptionValue(part, 100);
                        var _colour = GetOptionValue(part, 101);
                        bool ru = isRU(part.ItemType);

                        switch (token.SpecialValue.Trim())
                        {
                            case "3PMANSHIELD":
                                #region 3PMANSHIELD
                                if (_colour.Equals("R4") || _colour.Equals("X9") || GetOptionValue(part, 3) == "PWR")
                                    formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageTrue.Trim());
                                formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageFalse.Trim());
                                break;
                                #endregion
                            case "3PPWRSHIELD":
                                #region 3PPWRSHIELD
                                if (GetOptionValue(part, 3) == "PWR")
                                    formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageFalse.Trim());
                                formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageTrue.Trim());
                                break;
                                #endregion
                            case "3PMAN!RQ":
                                #region
                                if (GetOptionValue(part, 3) != "PWR")
                                    formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageTrue.Trim());
                                formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageFalse.Trim());
                                break;
                                #endregion
                            case "3PX9MAN!RQ":
                                #region
                                if (_colour.Equals("R4") || _colour.Equals("X9"))
                                {
                                    if (GetOptionValue(part, 3) != "PWR")
                                        formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageTrue.Trim());
                                }
                                formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageFalse.Trim());
                                break;
                                #endregion
                            case "RMVQD!RQ":
                                #region
                                if (GetOptionValue(part, 11) == "LXQD")
                                    formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageTrue.Trim());
                                formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageFalse.Trim());
                                break;
                                #endregion
                            case "PWRCARPET":
                                #region
                                if (GetOptionValue(part, 3) == "PWR")
                                {
                                    if (_colour.Equals("D1"))
                                        formattedMsg = formattedMsg.Replace(token.Token.Trim(), "(X9 Carpet)");
                                    else if (_colour.Equals("X9"))
                                        formattedMsg = formattedMsg.Replace(token.Token.Trim(), "(X9 Carpet)");
                                    else if (_colour.Equals("L9"))
                                        formattedMsg = formattedMsg.Replace(token.Token.Trim(), "(L5 Carpet)");
                                    else if (_colour.Equals("L5"))
                                        formattedMsg = formattedMsg.Replace(token.Token.Trim(), "(L5 Carpet)");
                                    else if (_colour.Equals("TU"))
                                        formattedMsg = formattedMsg.Replace(token.Token.Trim(), "(X9 Carpet)");
                                }
                                else
                                {
                                    formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageTrue.Trim());
                                }
                                formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageFalse.Trim());
                                break;
                                #endregion
                            case "POWERBOLD":
                                #region POWERBOLD
                                if (GetOptionValue(part, 3) == "PWR")
                                    formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageTrue.Trim());
                                formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageFalse.Trim());
                                break;
                                #endregion
                            case "SIDESHIELDCLR":
                                #region SIDESHIELD
                                var _shldclr = _colour;
                                if (colourExtensions != null)
                                {
                                    var _ext =
                                        colourExtensions.Where(
                                            cExt =>
                                            cExt.ColourCode == _shldclr && cExt.ExtensionName == "Side Shield").ToList();

                                    if (_ext.Count() > 0)
                                        _shldclr = _ext[0].ColourCodeExt.Trim();
                                }
                                formattedMsg = formattedMsg.Replace(token.Token.Trim(), _shldclr);
                                break;
                                #endregion
                            case "TRIMCLR":
                                #region TRIMCLR
                                var _trimclr = _colour;
                                if (colourExtensions != null)
                                {
                                    var _ext =
                                        colourExtensions.Where(
                                            cExt =>
                                            cExt.ColourCode == _trimclr && cExt.ExtensionName == "Trim").ToList();

                                    if (_ext.Count() > 0)
                                        _trimclr = _ext[0].ColourCodeExt.Trim();
                                }
                                formattedMsg = formattedMsg.Replace(token.Token.Trim(), _trimclr);
                                break;
                                #endregion
                            case "FRTSHIELD":
                                #region FRTSHIELD
                                if (_colour.Equals("R4") || _colour.Equals("X9"))
                                    formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageTrue.Trim());
                                formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageFalse.Trim());
                                break;
                                #endregion
                            case "FRTASHIELD":
                                #region
                                if (_colour.Equals("X9") || _colour.Equals("R4"))
                                    formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageTrue);
                                else
                                {
                                    var _drvpart = filteredParts.Where(p => p.PartIndex == 1).FirstOrDefault();
                                    var _paspart = filteredParts.Where(p => p.PartIndex == 2).FirstOrDefault();

                                    string partstring1 = string.Empty;
                                    string partstring2 = string.Empty;

                                    if (GetOptionValue(_drvpart, 1) == "DRV")
                                    {
                                        if (GetOptionValue(_drvpart, 3) == "PWR")
                                            partstring1 = "580298-" + _colour + " PWR (DRV)";
                                        else
                                            partstring1 = "580278-" + _colour + " MAN (DRV)";
                                    }

                                    if (GetOptionValue(_paspart, 1) == "PASS")
                                    {
                                        if (GetOptionValue(_paspart, 3) == "PWR")
                                            partstring2 = "580288-" + _colour + " PWR (PASS)";
                                        else
                                            partstring2 = "580268-" + _colour + " MAN (PASS)";
                                    }

                                    formattedMsg = formattedMsg.Replace(token.Token.Trim(), partstring1 + "," + partstring2);
                                }
                                break;
                                #endregion
                            case "FRTCARPET":
                                #region FRTCARPET
                                if (_colour.Equals("D1"))
                                    formattedMsg = formattedMsg.Replace(token.Token.Trim(), "550608N-D1,550608N-D1");
                                else if (_colour.Equals("L5"))
                                    formattedMsg = formattedMsg.Replace(token.Token.Trim(), "550608N-L5,550608N-L5");
                                else if (_colour.Equals("L9"))
                                    formattedMsg = formattedMsg.Replace(token.Token.Trim(), "550608N-L9,550608N-L9");
                                else if (_colour.Equals("TU"))
                                    formattedMsg = formattedMsg.Replace(token.Token.Trim(), "550608N-TU,550608N-TU");
                                else
                                    formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageTrue);
                                break;
                                #endregion
                            case "X9R4!RQ":
                                #region X9R4!RQ
                                var sng = GetOptionValue(part, 13);
                                if (sng == "SNG")
                                {
                                    if (_colour.Equals("X9") || _colour.Equals("R4"))
                                        formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageTrue);
                                }
                                formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageFalse.Trim());
                                break;
                                #endregion
                            case "ONLYLXQD":
                                #region ONLYLXQD
                                var _lxqd = GetOptionValue(part, 11);
                                if (_lxqd.ToUpper() == "LXQD")
                                    formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageFalse.Trim());
                                formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageTrue.Trim());
                                break;
                                #endregion
                            case "BENCH":
                                #region BENCH
                                if (part.ItemType == "2B")
                                {
                                    if (_colour.Equals("D1") || _colour.Equals("L5") || _colour.Equals("TU"))
                                        formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageFalse.Trim());
                                }
                                formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageTrue.Trim());
                                break;
                                #endregion
                            case "BENCH!RQ":
                                #region
                                if (part.ItemType == "2B")
                                    formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageTrue.Trim());
                                formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageFalse.Trim());
                                break;
                                #endregion
                            case "TBENCH!RQ":
                                #region TBENCH!RQ
                                if (part.ItemType == "2B")
                                    formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageTrue.Trim());
                                formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageFalse.Trim());
                                break;
                                #endregion
                            case "TNOBUILD!RQ":
                                #region
                                if (part.ItemComponent.Trim() == "NO-2LH" || part.ItemComponent.Trim() == "NO-2RH")
                                    formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageTrue.Trim());
                                formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageFalse.Trim());
                                break;
                                #endregion
                            case "CLOTH!RQ":
                                #region CLOTH!RQ
                                var cloth = GetOptionValue(part, 5);
                                if (cloth.ToUpper() == "CLOTH")
                                {
                                    if (GetOptionValue(part, 10).ToUpper() != "HT")
                                        formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageTrue.Trim());
                                }
                                formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageFalse.Trim());
                                break;
                                #endregion
                            case "H7N7X9!RQ":
                                #region
                                if (_trimstyle.Equals("H7") || _trimstyle.Equals("N7")) 
                                {
                                    if (_colour.Equals("X9") && GetOptionValue(part, 9) != "BUX")
                                        formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageTrue.Trim());
                                }
                                formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageFalse.Trim());
                                break;
                                #endregion
                            case "HDRCOLOUR":
                                #region HDRCOLOUR
                                var _hdrcolour = _colour;
                                if (colourExtensions != null)
                                {
                                    var _ext = colourExtensions.Where(cExt => cExt.ColourCode == _hdrcolour && cExt.ExtensionName == "Headrest").ToList();

                                    if (_ext.Count() > 0)
                                        _hdrcolour = _ext[0].ColourCodeExt.Trim();
                                }
                                formattedMsg = formattedMsg.Replace(token.Token.Trim(), _hdrcolour);
                                break;
                                #endregion
                            case "HDRTRIM":
                                #region HDRTRIM
                                var _hdrtrim = _trimstyle;
                                if (trimExtensions != null)
                                {
                                    var _ext = trimExtensions.Where(tExt => tExt.TrimCode == _hdrtrim && tExt.ExtensionName == "Headrest").ToList();
                                    if (_ext.Count() > 0)
                                        _hdrtrim = _ext[0].TrimCodeExt.Trim();
                                }
                                formattedMsg = formattedMsg.Replace(token.Token.Trim(), _hdrtrim);
                                break;
                                #endregion
                            case "SKU":
                                #region SKU
                                //formattedMsg = formattedMsg.Replace(token.Token.Trim(), "*SKIPPED*");
                                //formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageTrue.Trim());
                                formattedMsg = formattedMsg.Replace(token.Token.Trim(), item.ItemNumber);
                                break;
                                #endregion
                            case "X9ARM!RQ":
                                #region X9ARM_NOTREQ
                                //option 101 - colour
                                //option 100 - trim style
                                if ((GetOptionValue(part, 101) == "X9" && GetOptionValue(part, 100) == "H7") || (GetOptionValue(part, 101) == "X9" && GetOptionValue(part, 100) == "AL") ||
                                    (GetOptionValue(part, 101) == "X9" && GetOptionValue(part, 100) == "ML") || (GetOptionValue(part, 101) == "X9" && GetOptionValue(part, 100) == "TL") ||
                                    (GetOptionValue(part, 101) == "X9" && GetOptionValue(part, 100) == "JL"))
                                {
                                    //skip
                                    formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageTrue.Trim());
                                }
                                else
                                {
                                    if ((GetOptionValue(part, 101) == "X9" && GetOptionValue(part, 100) == "N7") || (GetOptionValue(part, 101) == "X9" && GetOptionValue(part, 100) == "ZL") ||
                                        (GetOptionValue(part, 101) == "X9" && GetOptionValue(part, 100) == "CL"))
                                    {
                                        formattedMsg = formattedMsg.Replace(token.Token.Trim(), "(92)");
                                    }
                                }

                                formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageFalse.Trim());
                                break;
                                #endregion
                            case "SHLDCLR":
                                #region SHLDCLR
                                var _clrshield = _colour;
                                if (colourExtensions != null)
                                {
                                    var _ext =
                                        colourExtensions.Where(
                                            cExt =>
                                            cExt.ColourCode == _clrshield && cExt.ExtensionName == "Side Shield").ToList();

                                    if (_ext.Count() > 0)
                                        _clrshield = _ext[0].ColourCodeExt.Trim();
                                }
                                formattedMsg = formattedMsg.Replace(token.Token.Trim(), _clrshield);
                                break;
                                #endregion
                            case "RHD":
                                #region RHD
                                //option 2 - lhd/rhd
                                var _rhd = (GetOptionValue(part, 2) == "RHD")
                                               ? "RHD"
                                               : String.Empty;
                                formattedMsg = formattedMsg.Replace(token.Token.Trim(), _rhd);
                                break;
                                #endregion
                            case "LHPWR":
                                #region LHPWR
                                var _lhpart = item.ItemInfos.Where(i => i.PartIndex == 1).FirstOrDefault();
                                if (_lhpart != null)
                                {
                                    formattedMsg = formattedMsg.Replace(token.Token.Trim(), ((_lhpart.Buildcode & 4) == 4)
                                                                        ? token.MessageTrue
                                                                        : token.MessageFalse);
                                }
                                break;
                                #endregion
                            case "RHPWR":
                                #region RHPWR
                                var _rhpart = item.ItemInfos.Where(i => i.PartIndex == 2).FirstOrDefault();
                                if (_rhpart != null)
                                {
                                    formattedMsg = formattedMsg.Replace(token.Token.Trim(), ((_rhpart.Buildcode & 4) == 4)
                                                                        ? token.MessageTrue
                                                                        : token.MessageFalse);
                                }
                                break;
                                #endregion
                            case "BCKPNL":
                                #region BCKPNL
                                //option 330 back panel part number
                                //option 101 - colour
                                var _lhback = "N/A";
                                var _rhback = "N/A";

                                if (item.ItemInfos.Where(prt => prt.PartIndex == 1).Count() > 0)
                                    _lhback = GetOptionValue(item.ItemInfos.Where(prt => prt.PartIndex == 1).First(), 102);

                                if (item.ItemInfos.Where(prt => prt.PartIndex == 2).Count() > 0)
                                    _rhback = GetOptionValue(item.ItemInfos.Where(prt => prt.PartIndex == 2).First(), 102);

                                var _back = String.Format("{0}/{1}", _lhback.Trim(), _rhback.Trim());
                                if (_back.ToUpper().Equals("MESH/MESH") && GetOptionValue(part, 101) == "X9")
                                {
                                    //???
                                    _back += " %LGHT%";
                                }
                                formattedMsg = formattedMsg.Replace(token.Token.Trim(), _back);
                                break;
                                #endregion
                            case "X9PWR!RQ":
                                #region %9PWR_NOTREQ
                                //option 101 - colour
                                if (GetOptionValue(part, 101) == "X9" || GetOptionValue(part, 101) == "R4")
                                {
                                    formattedMsg = formattedMsg.Replace(token.Token.Trim(), (((part.Buildcode & token.SeatOptions) ==
                                          (token.SeatOptions & token.SeatOptions2Check)) &&
                                         ((part.Buildcode & token.SeatOptions) ==
                                          (part.Buildcode & token.SeatOptions2Check)))
                                            ? token.MessageTrue.Trim()
                                            : token.MessageFalse.Trim());
                                }
                                else
                                {
                                    formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageFalse.Trim());
                                }
                                break;
                                #endregion
                            case "X9PASSMAN!RQ":
                                #region X9PASSMAN!RQ
                                var _rhpartpassnotreq = item.ItemInfos.Where(i => i.PartIndex == 2).FirstOrDefault();
                                if (GetOptionValue(_rhpartpassnotreq, 101) == "X9")
                                {
                                    if (GetOptionValue(_rhpartpassnotreq, 104) == "MAN")
                                        formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageTrue.Trim());
                                }
                                formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageFalse.Trim());
                                break;
                                #endregion
                            case "X9MAN!RQ":
                                #region X9MAN_NOTREQ
                                //option 101 - colour
                                if (GetOptionValue(part, 101) == "X9")
                                {
                                    if (GetOptionValue(part, 3) == "MAN")
                                        formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageTrue.Trim());
                                    
                                }
                                formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageFalse.Trim());
                                break;
                                #endregion
                            case "X9H7RT!RQ":
                                #region X9H7RT_NOTREQ
                                //option 101 - colour
                                //option 100 - trim style
                                //option 4 - program
                                //option 9 - BUX
                                if (GetOptionValue(part, 101) == "X9" && GetOptionValue(part, 100) == "H7"
                                    && GetOptionValue(part, 4) == "RT" && GetOptionValue(part, 9) == "")
                                {
                                    formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageTrue.Trim());
                                }
                                else if (GetOptionValue(part, 101) == "X9" && GetOptionValue(part, 100) == "N7"
                                    && GetOptionValue(part, 4) == "RT" && GetOptionValue(part, 9) == "")
                                {
                                    formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageTrue.Trim());
                                }
                                else
                                {
                                    formattedMsg = formattedMsg.Replace(token.Token.Trim(), token.MessageFalse.Trim());
                                }
                                break;
                                #endregion
                            default:
                                #region DEFAULT
                                formattedMsg = formattedMsg.Replace(token.Token.Trim(), (((part.Buildcode & token.SeatOptions) ==
                                                                  (token.SeatOptions & token.SeatOptions2Check)) &&
                                                                 ((part.Buildcode & token.SeatOptions) ==
                                                                  (part.Buildcode & token.SeatOptions2Check)))
                                                                    ? token.MessageTrue.Trim()
                                                                   : token.MessageFalse.Trim());
                                #endregion
                                break;
                        }
                    }

                    return formattedMsg;
                }
            }

            return String.Format("*Skipped* ({0})", itemNumber);
        }
        public RepairBarcodeValidateResponse ValidateBarcodeFault([FromBody]ReworkBarcodeValidateRequest request, string barcode)
        {
            ItemDetailsModel model = new ItemDetailsModel();
            RequirementsDataContext db = new RequirementsDataContext();
            RepairBarcodeValidateResponse response = new RepairBarcodeValidateResponse();

            if (request.SkuInfo.Count() > 0) {
                var sku = request.SkuInfo[0].Sku;
                var lineId = request.SkuInfo[0].LineId;
                var cstype = request.BarcodeFault.CSType;
                var bcregex = db.BarcodeRegexes.Where(r=>r.CSType == request.BarcodeFault.CSType && r.LineId == lineId).FirstOrDefault();
                if (bcregex != null) {

                    var regex = new Regex(@bcregex.Regex.Trim());
                    var bcmatch = regex.Match(barcode);
                    if (bcmatch.Success)    //validate barcode
                    {
                        //still need to validate barcode
                        var itemInfo = model.GetItemInfo(sku);
                        var partItem = itemInfo.ItemInfos.Where(p => p.PartIndex == bcregex.PartIndex).FirstOrDefault();

                        switch (cstype)
                        {
                            case 1:
                            case 2:
                                var pretensionerPart = bcmatch.Groups["PART"].Value;
                                var pretensionerTrack = bcmatch.Groups["TRACKING"].Value;

                                if (partItem != null)
                                {
                                    string expectedPretPart = model.GetOptionValue(partItem, (int)bcregex.OptionNumber);

                                    if (expectedPretPart == pretensionerPart)
                                    {
                                        //part okay to update and save
                                        response.Success = true;
                                    }
                                    else
                                    {
                                        response.ErrorMessage = "Ops, Wrong Part Expecting: " + expectedPretPart;
                                        response.ExpectedValue = expectedPretPart;
                                        response.Success = false;
                                    }
                                }

                                break;
                            case 7:
                            case 8:
                                var headrestPart = bcmatch.Groups["PARTNO"].Value;
                                string expectedHeadRestPart = model.GetOptionValue(partItem, (int)bcregex.OptionNumber);
                                if (expectedHeadRestPart.IndexOf(headrestPart) != -1)
                                {
                                    //part okay to update and save
                                    response.Success = true;
                                }
                                else
                                {
                                    response.ErrorMessage = "Ops, Wrong Part Expecting: " + expectedHeadRestPart;
                                    response.ExpectedValue = expectedHeadRestPart;
                                    response.Success = false;
                                }

                                break;
                            case 11:
                            case 12:
                                var backDocusew = bcmatch.Groups["BC"].Value;
                                response.Success = true;
                                break;
                            case 23:
                            case 24:
                                var airbagTrack = bcmatch.Groups["AIRBAGTRCK"].Value;
                                response.Success = true;
                                break;
                            default:
                                break;
                        }

                        return response;
                    }
                    else
                    {
                        return new RepairBarcodeValidateResponse
                        {
                            ErrorMessage = "Error: Incorrect Barcode Pattern Match",
                            Success = false,
                        };
                    }
                }
            }

            return new RepairBarcodeValidateResponse
            {
                ErrorMessage = "Error: Cannot Locate Part Info",
                Success = false,
            };
        }
Exemple #17
0
        public List<TestRepairRequirement> GetRearRepairTestRequirements(Item item, int jobId, int palletId, int testerMode)
        {
            ItemDetailsModel model = new ItemDetailsModel();
            List<TestRepairRequirement> testRepairReqs = new List<TestRepairRequirement>();

            if (item.ItemInfos.Count() > 0)
            {
                var first = item.ItemInfos.Where(i => i.PartIndex == 1).FirstOrDefault();
                var second = item.ItemInfos.Where(i => i.PartIndex == 2).FirstOrDefault();
                var third = item.ItemInfos.Where(i => i.PartIndex == 3).FirstOrDefault();
                var fourth = item.ItemInfos.Where(i => i.PartIndex == 4).FirstOrDefault();


                if (isRU(item.ItemInfos[0].ItemType))
                {
                    if (first != null)
                    {
                        int firstBuildcode = first.Buildcode; //ru
                        //heat
                        var testName = "RU 2nd Row Repair Test";

                        if (model.GetOptionValue(first, 112) == "HT")
                            testName = testName + " Heat";

                        if (model.GetOptionValue(first, 112) != "HT" && model.GetOptionValue(first, 113) == "LXQD")
                            firstBuildcode = 0;


                        if (firstBuildcode != 0)
                        {
                            testRepairReqs.Add(new TestRepairRequirement
                            {
                                JobId = jobId,
                                PalletId = palletId,
                                TestId = 3,
                                Group = "REAR",
                                Repaired = false,
                                Dtm = DateTime.Now,
                                TestName = testName,
                                BuildCode = firstBuildcode
                            });
                        }

                    }

                    if (third != null)
                    {
                        int thirdBuildcode = (int)Math.Pow(2, 14); //ru
                        //heat or pwr
                        if (model.GetOptionValue(third, 112) == "HT" || model.GetOptionValue(third, 103) == "PWR")
                        {

                            var testName = "RU 3rd Row Repair Test";
                            if (model.GetOptionValue(third, 112) == "HT")
                            {
                                thirdBuildcode = thirdBuildcode + (int)Math.Pow(2, 2);
                                testName = testName + " Heat";
                            }
                            if (model.GetOptionValue(third, 103) == "PWR")
                            {
                                thirdBuildcode = thirdBuildcode + (int)Math.Pow(2, 2);
                                testName = testName + " Power";
                            }

                            testRepairReqs.Add(new TestRepairRequirement
                            {
                                JobId = jobId,
                                PalletId = palletId,
                                TestId = 4,
                                Group = "REAR",
                                Repaired = false,
                                Dtm = DateTime.Now,
                                TestName = testName,
                                BuildCode = third.Buildcode
                            });
                        }
                    }
                }
                else
                {
                    #region RT Legacy Code
                    //RT Legacy Code
                    int buildcode1 = 0;

                    if (testerMode == 1) //RT Legacy
                    {
                        if (model.GetOptionValue(first, 10) == "HT" && model.GetOptionValue(first, 11) != "LXQD")
                            buildcode1 = 1 + (int)Math.Pow(2, 9);
                        else if (model.GetOptionValue(first, 10) == "HT" && model.GetOptionValue(first, 11) == "LXQD")
                            buildcode1 = 1 + (int)Math.Pow(2, 11);
                    }
                    else if (testerMode == 2)
                    {
                        if (model.GetOptionValue(first, 10) == "HT")
                            buildcode1 = first.Buildcode;
                    }


                    if (buildcode1 != 0)
                    {
                        testRepairReqs.Add(new TestRepairRequirement
                        {
                            JobId = jobId,
                            PalletId = palletId,
                            TestId = 3,
                            Group = "REAR",
                            Repaired = false,
                            Dtm = DateTime.Now,
                            TestName = "2nd Row Repair Test Heat",
                            BuildCode = buildcode1
                        });
                    }

                    int buildcode2 = 0;

                    if (testerMode == 1 && model.GetOptionValue(third, 103) == "PWR") //RT Legacy
                        buildcode2 = 2;
                    else if (testerMode == 2 && model.GetOptionValue(third, 103) == "PWR")
                        buildcode2 = third.Buildcode;
                    

                    if (buildcode2 != 0)
                    {
                        testRepairReqs.Add(new TestRepairRequirement
                        {
                            JobId = jobId,
                            PalletId = palletId,
                            TestId = 4,
                            Group = "REAR",
                            Repaired = false,
                            Dtm = DateTime.Now,
                            TestName = "3rd Row Repair Test Power",
                            BuildCode = buildcode2
                        });
                    }
                    #endregion
                }


                return testRepairReqs;

            }
            return null;
        }
Exemple #18
0
 public List<SkuInfo> GetSkuInfo(Item item)
 {
     ItemDetailsModel model = new ItemDetailsModel();
     List<SkuInfo> skuInfo = new List<SkuInfo>();
     foreach(var part in item.ItemInfos) {
         skuInfo.Add(new SkuInfo {
             LineId = part.LineId,
             BitmapGUID = GetBitmapGUID(part.LineId),
             BuildCode = model.GetBuildcodeOption(part),
             Description = part.ItemDescription,
             PartIndex = (short)part.PartIndex,
             PartNum = part.ItemComponent,
             Sku = part.ItemNumber,
             TrimColour = model.GetOptionValue(part, 101),
             TrimStyle = model.GetOptionValue(part, 100),
         });
     }
     return skuInfo;
 }
Exemple #19
0
        public RepairPalletInfo GetPalletInfo(int palletId, int mode, int entryMode)
        {
            RepairFaults faults = new RepairFaults();
            DispositionDataContext db = new DispositionDataContext();
            DispositionDatabase dbDisposition = new DispositionDatabase();
            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) //Check by job id when in manual mode and no ship pallet exists
            {
                if (entryMode == 2)
                {
                    var jobInfo = (from j in dbMes.MasterJobTables
                                   where j.Job_ID == palletId
                                   select j).FirstOrDefault();

                    if (jobInfo == null)
                        return null;

                    var itemMaster = dbMes.ItemMasterTables.Where(c => c.Item_Nbr == jobInfo.SKU).FirstOrDefault();
                    var item = itemDetailModel.GetItemInfo(jobInfo.SKU);

                    var carline = (itemMaster == null) ? "UNKNOWN" : itemMaster.Carline;

                    var convertSkuInfo = GetSkuInfo(item);
                    var lineInfos = GetLineInfo(jobInfo);

                    return new RepairPalletInfo
                    {
                        RULabelVerification = (carline == "RU") ? GetRULabelVerification(jobInfo.Job_ID, item.LineId) : null,
                        Carline = carline,
                        PalletId = 0,
                        JobId = jobInfo.Job_ID,
                        LineInfos = lineInfos,
                        OrderNumber = jobInfo.Order_Nbr.Trim(),
                        SkuInfo = convertSkuInfo,
                        FinalQuestions = new List<FinalQuestionResult>(),
                        RepairFaults = GetEmptyRepairFaults(jobInfo, item, convertSkuInfo, lineInfos, 0, mode),
                        PalletDescription = new PalletDescription(convertSkuInfo, 0, jobInfo.Job_ID, jobInfo.Create_DTTM.ToString("yyyy-mm-dd h:mm:ss tt"), DateTime.Now.ToString("yyyy-mm-dd h:mm:ss tt")),
                    };
                }

                return null;
            }
            else
            {
                var jobInfo = (from j in dbMes.MasterJobTables
                               where j.Job_ID == palletHdr.Job_ID
                               select j).FirstOrDefault();

                if (jobInfo == null)
                    return null;

                var itemMaster = dbMes.ItemMasterTables.Where(c => c.Item_Nbr == jobInfo.SKU).FirstOrDefault();
                var item = itemDetailModel.GetItemInfo(jobInfo.SKU);

                if (item == null)
                {
                    throw new HttpResponseException(
                        HttpErrorResponse.GetHttpErrorResponse(
                        HttpStatusCode.NotFound, "SKU Error", string.Format("SKU = {0} is setup incorrectly", jobInfo.SKU)));
                }

                var carline = (itemMaster == null) ? "UNKNOWN" : itemMaster.Carline;

                var convertSkuInfo = GetSkuInfo(item);
                var lineInfos = GetLineInfo(jobInfo);

                return new RepairPalletInfo
                {
                    RULabelVerification = (carline == "RU") ? GetRULabelVerification(jobInfo.Job_ID, item.LineId) : null,
                    Carline = carline,
                    PalletId = palletId,
                    JobId = jobInfo.Job_ID,
                    LineInfos = lineInfos,
                    OrderNumber = jobInfo.Order_Nbr.Trim(),
                    SkuInfo = convertSkuInfo,
                    FinalQuestions = dbDisposition.GetFinalQuestionsResult(jobInfo.Group),
                    RepairFaults = GetRepairFaults(jobInfo, item, convertSkuInfo, lineInfos, palletId, mode, carline),
                    PalletDescription = new PalletDescription(convertSkuInfo, palletHdr.PalletNbr, jobInfo.Job_ID, jobInfo.Create_DTTM.ToString("yyyy-mm-dd h:mm:ss tt"), palletHdr.Assigned_DTTM.Value.ToString("yyy-mm-dd h:mm:ss tt")),
                };
            }
        }
 public void GetSkuInfo()
 {
     ItemDetailsModel model = new ItemDetailsModel();
     var what = model.GetItemInfo("2226");
 }
Exemple #21
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;
        }