protected IQueryable<ProductionJob> JobsForLookup(JobLookupModel model)
        {
            if (model.IfNotNull(m => m.AnyCriteria) == false)
            {
                return Enumerable.Empty<ProductionJob>().AsQueryable();
            }

            var jobQry = from j in PrdnDBContext.ProductionJobs select j;

            if (model.CustID != null) {
                jobQry = from j in jobQry
                         where j.CustID == model.CustID
                         select j;
            }
            if (!String.IsNullOrWhiteSpace(model.CustLocation)) {
                jobQry = from j in jobQry
                         where j.CustLocation.StartsWith(model.CustLocation)
                         select j;
            }
            if (!String.IsNullOrWhiteSpace(model.OrderNo)) {
                jobQry = from j in jobQry
                         where j.OrderNo.StartsWith(model.OrderNo)
                         select j;
            }
            if (!String.IsNullOrWhiteSpace(model.PurchaseOrder))
            {
                jobQry = from j in jobQry
                         where j.PurchaseOrder.StartsWith(model.PurchaseOrder)
                         select j;
            }
            if (!String.IsNullOrWhiteSpace(model.CstRequestID)) {
                jobQry = from j in jobQry
                         where j.CstRequestID.StartsWith(model.CstRequestID)
                         select j;
            }
            if (!String.IsNullOrWhiteSpace(model.DropShipCustID)) {
                jobQry = from j in jobQry
                         where j.DropShipCustID.StartsWith(model.DropShipCustID)
                         select j;
            }
            if (!String.IsNullOrWhiteSpace(model.SerialNo)) {
                jobQry = from j in jobQry
                         where j.SerialNo.StartsWith(model.SerialNo)
                         select j;
            }
            if (!String.IsNullOrWhiteSpace(model.ProdCD)) {
                jobQry = from j in jobQry
                         where j.ProdCD.StartsWith(model.ProdCD)
                         select j;
            }
            if (!String.IsNullOrWhiteSpace(model.PrdnOrderNo)) {
                jobQry = from j in jobQry
                         where j.Run.PrdnOrderNo.StartsWith(model.PrdnOrderNo)
                         select j;
            }
            if (model.PrdnTypeID != null) {
                jobQry = from j in jobQry
                         where j.Run.PrdnTypeID == model.PrdnTypeID
                         select j;
            }
            if (model.FromShipDt != null) {
                jobQry = from j in jobQry
                         where j.Run.PrdnOrder.ShipDay >= model.FromShipDt
                         select j;
            }
            if (model.ThruShipDt != null) {

                DateTime beforeDt = (DateTime)model.ThruShipDt;
                beforeDt = beforeDt.Date.AddDays(1);
                jobQry = from j in jobQry
                         where j.Run.PrdnOrder.ShipDay < beforeDt
                         select j;
            }
            if (model.RunSeqNo != null) {
                jobQry = from j in jobQry
                         where j.RunSeqNo == model.RunSeqNo
                         select j;
            }
            if (model.JobID != null) {
                jobQry = from j in jobQry
                         where j.ID == model.JobID
                         select j;
            }
            //if (!String.IsNullOrWhiteSpace(statusStr))
            //{
            //    List<string> stati = PrdnJobStatusViewModel.UpperStatuses(statusStr).ToList();
            //    jobs = from j in jobs
            //            where stati.Contains(j.StatusStr)
            //            select j;
            //}

            var jobs = (from j in jobQry
                       orderby j.Run.PrdnOrderNo, j.Run.PrdnType.SortOrder, j.Run.PrdnType.Code, j.RunSeqNo
                       select j).Take(200);

            return jobs;
        }
 protected IEnumerable<PrdnJobListViewModel> JobLookupViewList(JobLookupModel model)
 {
     var jobs = JobsForLookup(model);
     /*var viewJobs = from j in jobs
                    select new PrdnJobListViewModel {
                        PrdnOrderNo = j.Run.PrdnOrder.OrderNo,
                        PrdnShipDay = j.Run.PrdnOrder.ShipDay,
                        RunID = j.Run.ID.ToInt(),
                        PrdnTypeCD = j.Run.PrdnType.Code,
                        JobID = j.ID.ToInt(),
                        RunSeqNo = j.RunSeqNo.ToInt(),
                        SerialNo = j.SerialNo,
                        ProdCD = j.ProdCD,
                        ProdDescr = j.Product.Description,
                        Status = j.Status,
                        StatusDt = j.StatusDt,
                        CustCode = j.Customer.Code,
                        CustLocation = j.CustLocation
                     };
     */
     List<PrdnJobListViewModel> viewJobs = Mapper.Map<List<ProductionJob>, List<PrdnJobListViewModel>>(jobs.ToList());
     return viewJobs;
 }
        public ActionResult FindJob()
        {
            JobLookupModel model = new JobLookupModel();

            var types = from t in PrdnDBContext.ProductionTypes
                        orderby t.SortOrder, t.Code
                        select new {
                            t.ID,
                            Text = t.Code+" - "+t.Description
                        };

            model.PrdnTypes = new SelectList(types.ToList(), "ID", "Text");
            model.CustList = GetCustomerList();

            return View(model);
        }
 protected GridModel JobGridLookup(JobLookupModel model)
 {
     IEnumerable<PrdnJobListViewModel> l = JobLookupViewList(model);
     return new GridModel(l);
 }
 public ActionResult _JobLookup(JobLookupModel model)
 {
     return View(JobGridLookup(model));
 }