Beispiel #1
0
 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"));
     }
 }
Beispiel #2
0
 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"));
     }
 }