public List <DisbursedInventoryBO> getDisListByDepId(string depId) //To get disbursement list { List <DisbursedInventoryBO> b = new List <DisbursedInventoryBO>(); List <string> itemNumberwithorders = new List <string>(); var query = (from x in context.Disbursements join y in context.InventoryStocks on x.ItemNumber equals y.ItemNumber where x.DepartmentID.Equals(depId) && x.Status.Equals("Ready for collection") select new { y.ItemName, y.ItemNumber, x.RequisitionID, y.ItemUOM, x.OrderQuantity, x.DisbursementQuantity }).ToList(); foreach (var q in query) { itemNumberwithorders.Add(q.ItemNumber); //3rd feb OutstandingInfo q2 = (from x in context.OutstandingInfoes where x.DepartmentID.Equals(depId) && x.ItemNumber.Equals(q.ItemNumber) select x).FirstOrDefault(); DisbursedInventoryBO di = new DisbursedInventoryBO(); di.ItemName = q.ItemName; di.ItemNumber = q.ItemNumber; di.ItemUOM = q.ItemUOM; di.OrderQuantity = Convert.ToInt32(q.OrderQuantity); di.DisbursementQuantity = Convert.ToInt32(q.DisbursementQuantity); if (q2 == null) { di.OutstandingQuantity = 0; } else { di.OutstandingQuantity = Convert.ToInt32(q2.Quantity); } di.RequisitionId = q.RequisitionID; b.Add(di); } List <DisbursedInventoryBO> b1 = getOutstandingWithoutOrders(depId, itemNumberwithorders); //3rd feb foreach (DisbursedInventoryBO dbo in b1) { b.Add(dbo); } return(b); }
public List <DisbursedInventoryBO> getOutstandingWithoutOrders(string depId, List <string> itemNumberwithorders) //To et outstanding qty with ite not ordered { var q2 = (from x in context.OutstandingInfoes where x.DepartmentID.Equals(depId) && x.Status != "Pending" select x); List <OutstandingInfo> list = q2.ToList(); List <DisbursedInventoryBO> l = new List <DisbursedInventoryBO>(); foreach (OutstandingInfo o in list) { if (!(itemNumberwithorders.Contains(o.ItemNumber))) { if (o.Quantity != 0) { DisbursedInventoryBO b = new DisbursedInventoryBO(); b.ItemNumber = o.ItemNumber; b.ItemName = getItemNameByItemNumber(o.ItemNumber); b.ItemUOM = getUOMbyItemNumber(o.ItemNumber); b.OrderQuantity = 0; b.OutstandingQuantity = (int)o.Quantity; if (o.Status == "Received") { b.DisbursementQuantity = (int)o.Quantity; } else { b.DisbursementQuantity = (int)(o.Quantity - o.PartialPendingQty); } l.Add(b); } } } return(l); }