public JobOrderLineViewModel GetOrderLineForUidMain(int Uid, int JobOrderCancelHeaderId) { JobOrderCancelHeader header = new JobOrderCancelHeaderService(_unitOfWork).Find(JobOrderCancelHeaderId); var Settings = new JobOrderSettingsService(_unitOfWork).GetJobOrderSettingsForDocument(header.DocTypeId, header.DivisionId, header.SiteId); string[] ContraDocTypeIdArr = null; if (!string.IsNullOrEmpty(Settings.filterContraDocTypes)) { ContraDocTypeIdArr = Settings.filterContraDocTypes.Split(",".ToCharArray()); } else { ContraDocTypeIdArr = new string[] { "NA" }; } var temp = (from p in db.ProductUid where p.ProductUIDId == Uid select new { Rec = (from t in db.JobOrderLine join R in db.JobReceiveLine on new { A = t.JobOrderLineId, B = (int?)Uid } equals new { A = R.JobOrderLineId ?? 0, B = R.ProductUidId } into Rtable from Rtab in Rtable.DefaultIfEmpty() join RT in db.JobReturnLine on Rtab.JobReceiveLineId equals RT.JobReceiveLineId into RTtable from RTtab in RTtable.DefaultIfEmpty() join JOH in db.JobOrderHeader on t.JobOrderHeaderId equals JOH.JobOrderHeaderId into JOHtable from JOHtab in JOHtable.DefaultIfEmpty() where t.JobOrderHeaderId == p.GenDocId && t.JobOrderHeader.DocTypeId == p.GenDocTypeId && t.ProductUidHeaderId == p.ProductUidHeaderId && (string.IsNullOrEmpty(Settings.filterContraDocTypes) ? 1 == 1 : ContraDocTypeIdArr.Contains(JOHtab.DocTypeId.ToString())) && Rtab == null select new JobOrderLineViewModel { JobOrderLineId = t.JobOrderLineId, JobOrderHeaderDocNo = t.JobOrderHeader.DocNo, Specification = t.Specification, Dimension1Name = t.Dimension1.Dimension1Name, Dimension2Name = t.Dimension2.Dimension2Name, Dimension3Name = t.Dimension3.Dimension3Name, Dimension4Name = t.Dimension4.Dimension4Name, ProdOrderBalanceQty = 1, LotNo = p.LotNo, UnitName = p.Product.Unit.UnitName, }).FirstOrDefault() } ).FirstOrDefault(); return(temp.Rec); }
public IEnumerable <ComboBoxList> GetPendingJobOrders(string DocTypes, string term, int JobOrderCancelHeaderId)//DocTypeId { JobOrderCancelHeader header = new JobOrderCancelHeaderService(_unitOfWork).Find(JobOrderCancelHeaderId); return(from p in db.ViewJobOrderBalance join t in db.JobOrderHeader on p.JobOrderHeaderId equals t.JobOrderHeaderId into ProdTable from ProTab in ProdTable.DefaultIfEmpty() where p.BalanceQty > 0 && ProTab.DocNo.ToLower().Contains(term.ToLower()) && p.SiteId == header.SiteId && p.DivisionId == header.DivisionId && p.JobWorkerId == header.JobWorkerId group new { p, ProTab } by p.JobOrderHeaderId into g select new ComboBoxList { Id = g.Key, PropFirst = g.Max(m => m.ProTab.DocNo), } ); }