public ActionResult Requisitions(string sessionId, string msg) { if (sessionId != null && userServices.getUserCountBySessionId(sessionId) == true) { PendingItemsModel retrieval = new PendingItemsModel(); List <int> matchingItemInventory = new List <int>(); string requisitionnumbers = ""; using (var db = new InventoryDbContext()) { List <Requisition> pendingReqs = db.requisitions.Where(x => x.status == "Approved").ToList(); //sort earliest first pendingReqs.Sort(); pendingReqs.Reverse(); //use requisitions to create a list of all requisitions to find sum of all items and their quantities foreach (Requisition requisition in pendingReqs) { //add requisition to string of requisition numbers if (requisitionnumbers == "") { requisitionnumbers = requisitionnumbers + requisition.reqformNumber; } else { requisitionnumbers = requisitionnumbers + "," + requisition.reqformNumber; } //add product request from requisition to pending product model List <ProductCatalogue> productCatalogues = db.productCatalogues.ToList(); foreach (ProductReq productReq in requisition.productReqs) { ProductCatalogue pc = productCatalogues.Where(x => x.itemNumber == productReq.productitemnumber) .FirstOrDefault(); string location = pc.location; string unit = pc.unitofmeasure; retrieval.add(productReq.productitemnumber, productReq.productDesc, unit, productReq.quantity, location); } } for (int i = 0; i < retrieval.itemName.Count(); i++) { //for each item, find its corresponding inventory stock amount string itemNumber = retrieval.itemNumber[i]; ProductCatalogue p = db.productCatalogues.Where(x => x.itemNumber == itemNumber).FirstOrDefault(); matchingItemInventory.Add(p.quantity); } } ViewData["itemInventory"] = matchingItemInventory; ViewData["sessionId"] = sessionId; ViewData["requisitions"] = requisitionnumbers; ViewData["msg"] = msg; ViewData["staffname"] = userServices.getUserBySessionId(sessionId).employee.empName; return(View(retrieval)); } else { return(RedirectToAction("Login", "Login")); } }
public ActionResult DBDeptStaff(string sessionId) { //as staff, main page to show current pending items and qty that are from requests that are not //cancelled, completed, or partialcomplete if (sessionId != null && userServices.getUserCountBySessionId(sessionId) == true) { using (var db = new InventoryDbContext()) { User user = db.users.Where(x => x.sessionId == sessionId).FirstOrDefault(); String department = user.employee.departmentId; List <Requisition> departmentRequisitions = requestServices.getAllUncompleteRequisitions(department); departmentRequisitions.Sort(); //use requisitions to create a list of all requisitions to find sum of all items and their quantities PendingItemsModel pendingItems = new PendingItemsModel(); List <ProductCatalogue> productCatalogues = db.productCatalogues.ToList(); foreach (Requisition requisition in departmentRequisitions) { foreach (ProductReq productReq in requisition.productReqs) { ProductCatalogue pc = productCatalogues.Where(x => x.itemNumber == productReq.productitemnumber).FirstOrDefault(); string location = pc.location; string unit = pc.unitofmeasure; pendingItems.add(productReq.productitemnumber, productReq.productDesc, unit, productReq.quantity, location); } } //sort pendingitems? ViewData["staffname"] = user.employee.empName; ViewData["sessionId"] = sessionId; return(View(pendingItems)); } } else { return(RedirectToAction("Login", "Login")); } }