public IQueryable <ComboBoxResult> GetPendingProductsForRateAmndmt(int id, string term)//DocTypeId { var PurchaseOrderAmendmentHeader = new PurchaseOrderAmendmentHeaderService(db).Find(id); var settings = new PurchaseOrderSettingService(_unitOfWork).GetPurchaseOrderSettingForDocument(PurchaseOrderAmendmentHeader.DocTypeId, PurchaseOrderAmendmentHeader.DivisionId, PurchaseOrderAmendmentHeader.SiteId); string[] contraDocTypes = null; if (!string.IsNullOrEmpty(settings.filterContraDocTypes)) { contraDocTypes = settings.filterContraDocTypes.Split(",".ToCharArray()); } else { contraDocTypes = new string[] { "NA" }; } string[] contraSites = null; if (!string.IsNullOrEmpty(settings.filterContraSites)) { contraSites = settings.filterContraSites.Split(",".ToCharArray()); } else { contraSites = new string[] { "NA" }; } string[] contraDivisions = null; if (!string.IsNullOrEmpty(settings.filterContraDivisions)) { contraDivisions = settings.filterContraDivisions.Split(",".ToCharArray()); } else { contraDivisions = new string[] { "NA" }; } int CurrentSiteId = (int)System.Web.HttpContext.Current.Session["SiteId"]; int CurrentDivisionId = (int)System.Web.HttpContext.Current.Session["DivisionId"]; var list = (from p in db.ViewPurchaseOrderBalanceForInvoice join t in db.PurchaseOrderHeader on p.PurchaseOrderHeaderId equals t.PurchaseOrderHeaderId join t2 in db.Product on p.ProductId equals t2.ProductId where (string.IsNullOrEmpty(term) ? 1 == 1 : t2.ProductName.ToLower().Contains(term.ToLower())) && p.BalanceQty > 0 && (string.IsNullOrEmpty(settings.filterContraDocTypes) ? 1 == 1 : contraDocTypes.Contains(t.DocTypeId.ToString())) && (string.IsNullOrEmpty(settings.filterContraSites) ? t.SiteId == CurrentSiteId : contraSites.Contains(t.SiteId.ToString())) && (string.IsNullOrEmpty(settings.filterContraDivisions) ? t.DivisionId == CurrentDivisionId : contraDivisions.Contains(t.DivisionId.ToString())) && (t.SupplierId == PurchaseOrderAmendmentHeader.SupplierId) group new { p, t2 } by p.ProductId into g orderby g.Max(m => m.t2.ProductName) select new ComboBoxResult { text = g.Max(m => m.t2.ProductName), id = g.Key.ToString(), } ); return(list); }
public IEnumerable <PurchaseOrderListViewModel> GetPendingPurchaseOrdersForRateAmndmt(int HeaderId, string term, int Limit)//Product Id { var Header = new PurchaseOrderAmendmentHeaderService(db).Find(HeaderId); var settings = new PurchaseOrderSettingService(_unitOfWork).GetPurchaseOrderSettingForDocument(Header.DocTypeId, Header.DivisionId, Header.SiteId); string[] contraDocTypes = null; if (!string.IsNullOrEmpty(settings.filterContraDocTypes)) { contraDocTypes = settings.filterContraDocTypes.Split(",".ToCharArray()); } else { contraDocTypes = new string[] { "NA" }; } string[] contraSites = null; if (!string.IsNullOrEmpty(settings.filterContraSites)) { contraSites = settings.filterContraSites.Split(",".ToCharArray()); } else { contraSites = new string[] { "NA" }; } string[] contraDivisions = null; if (!string.IsNullOrEmpty(settings.filterContraDivisions)) { contraDivisions = settings.filterContraDivisions.Split(",".ToCharArray()); } else { contraDivisions = new string[] { "NA" }; } int CurrentSiteId = (int)System.Web.HttpContext.Current.Session["SiteId"]; int CurrentDivisionId = (int)System.Web.HttpContext.Current.Session["DivisionId"]; var tem = from p in db.ViewPurchaseOrderBalanceForInvoice join t in db.PurchaseOrderLine on p.PurchaseOrderLineId equals t.PurchaseOrderLineId join t2 in db.Product on p.ProductId equals t2.ProductId join t3 in db.PurchaseOrderHeader on p.PurchaseOrderHeaderId equals t3.PurchaseOrderHeaderId where p.BalanceQty > 0 && (p.SupplierId == Header.SupplierId) && (string.IsNullOrEmpty(term) ? 1 == 1 : (p.PurchaseOrderNo.ToLower().Contains(term.ToLower()) || t2.ProductName.ToLower().Contains(term.ToLower()) || t.Dimension1.Dimension1Name.ToLower().Contains(term.ToLower()) || t.Dimension2.Dimension2Name.ToLower().Contains(term.ToLower()))) && (string.IsNullOrEmpty(settings.filterContraDocTypes) ? 1 == 1 : contraDocTypes.Contains(t3.DocTypeId.ToString())) && (string.IsNullOrEmpty(settings.filterContraSites) ? t3.SiteId == CurrentSiteId : contraSites.Contains(t3.SiteId.ToString())) && (string.IsNullOrEmpty(settings.filterContraDivisions) ? t3.DivisionId == CurrentDivisionId : contraDivisions.Contains(t3.DivisionId.ToString())) orderby p.PurchaseOrderNo select new PurchaseOrderListViewModel { DocNo = p.PurchaseOrderNo, PurchaseOrderLineId = p.PurchaseOrderLineId, Dimension1Name = t.Dimension1.Dimension1Name, Dimension2Name = t.Dimension2.Dimension2Name, ProductName = t2.ProductName, BalanceQty = p.BalanceQty, }; return(tem.Take(Limit).ToList()); }