// Consolidates all outstanding requests by stationery item // Saves the disbursement list to the DB public ActionResult GenerateRetrievalList() { // Create StationeryRetrieval StationeryRetrievalEF retrieval = new StationeryRetrievalEF() { DateRetrieved = Timestamp.unixTimestamp(), Status = "Processing" }; rndService.CreateRetrieval(retrieval); //Insert each dept's request quantity per item into disbursement and disbursement details List <StationeryRequestDetailsEF> outstandingRequests = rndService.FindOutstandingRequestDetails(); rndService.GenerateDisbursementList(outstandingRequests, retrieval.RetrievalId); // set all the request details status to processed foreach (StationeryRequestDetailsEF detail in outstandingRequests) { detail.FulfilmentStatus = "Processed"; rndService.UpdateRequestDetails(detail); } return(RedirectToAction("ViewRetrievalHistory", "ManageStationeryRetrieval", new { page = 1 })); }
// Receive retrieval details from android public JsonResult SetRetrieval(MobileRetrievalItemDTO mRetrieval) { if (mRetrieval != null) { // save it to the database // update individual request's fulfilled quantity and retrieved quantity in current retrieval rndService.UpdateRequestAfterRetrieval(mRetrieval.RetrievalItems, mRetrieval.RetrievalId); // update retrieval status from processing to retrieved StationeryRetrievalEF retrieval = rndService.FindRetrievalById(mRetrieval.RetrievalId); retrieval.Status = "Retrieved"; rndService.SaveRetrieval(retrieval); // get disbursements and save the dates string[] date = mRetrieval.DateDisbursed.Split('/'); int year = int.Parse(date[2]); int month = int.Parse(date[1]); int day = int.Parse(date[0]); DateTimeOffset disbursedDate = new DateTimeOffset(year, month, day, 12, 0, 0, new TimeSpan(8, 0, 0)); rndService.UpdateDisbursementDate(mRetrieval.RetrievalId, disbursedDate); // update disbursement list rndService.UpdateRetrievedQuantities(mRetrieval.RetrievalId); // and log stock transaction (deduction for department) (StockService) stockService.LogTransactionsForRetrieval(mRetrieval.RetrievalId); return(Json(new { status = "ok" })); } return(Json(new { status = "Retreival Obtained" })); }
public List <RetrievalItemDTO> ViewRetrievalListById(int retrievalId) { StationeryRetrievalEF retrieval = rndEFF.FindRetrievalById(retrievalId); List <StationeryDisbursementDetailsEF> details = rndEFF.FindDisbursementDetailsByRetrievalId(retrievalId); // group by item code List <RetrievalItemDTO> retrievalList = new List <RetrievalItemDTO>(); var items = from d in details group d by d.ItemCode into itemGroup select new { ItemCode = itemGroup.Key, OutstandingQuantity = itemGroup.Sum(d => d.RequestQuantity), RetrievedQty = itemGroup.Sum(a => a.RetrievedQuantity) }; foreach (var item in items) { RetrievalItemDTO rItem = new RetrievalItemDTO() { ItemCode = item.ItemCode, ItemDescription = stockEFF.FindStockByItemCode(item.ItemCode).Description, TotalOutstandingQty = item.OutstandingQuantity, Bin = stockEFF.FindStockByItemCode(item.ItemCode).Bin, RetrievedQty = item.RetrievedQty }; retrievalList.Add(rItem); } return(retrievalList); }
// View and amend retrieval public ActionResult ViewRetrieval(int retrievalId) { StationeryRetrievalEF retrieval = rndService.FindRetrievalById(retrievalId); ViewData["retrieval"] = retrieval; List <RetrievalItemDTO> details = rndService.ViewRetrievalListById(retrievalId).OrderBy(x => x.Bin).ToList(); return(View(details)); }
public void SaveRetrieval(StationeryRetrievalEF retrieval) { var existingRetrieval = context.StationeryRetrievals.Find(retrieval.RetrievalId); if (existingRetrieval != null) { context.Entry(existingRetrieval).CurrentValues.SetValues(retrieval); context.SaveChanges(); } }
// Send retrieval details to android public JsonResult GetRetrieval() { // find retrieval where status = Processed StationeryRetrievalEF retrieval = rndService.FindRetrievalByStatus("Processing"); MobileRetrievalItemDTO mRetrieval = null; if (retrieval != null) { // get the retrieval details List <RetrievalItemDTO> details = rndService.ViewRetrievalListById(retrieval.RetrievalId); // send the retrieval list over to android app mRetrieval = new MobileRetrievalItemDTO() { RetrievalId = retrieval.RetrievalId, RetrievalItems = details }; } return(Json(mRetrieval, JsonRequestBehavior.AllowGet)); }
public ActionResult SaveRetrieval(List <RetrievalItemDTO> items, int retrievalId, string decision, DateTimeOffset disbursementDate) { if (decision == "Cancel") { return(RedirectToAction("ViewRetrievalHistory", new { page = 1 })); } // update individual request's fulfilled quantity and retrieved quantity in current retrieval rndService.UpdateRequestAfterRetrieval(items, retrievalId); // update retrieval status from processing to retrieved StationeryRetrievalEF retrieval = rndService.FindRetrievalById(retrievalId); retrieval.Status = "Retrieved"; rndService.SaveRetrieval(retrieval); //get disbursements and save the dates rndService.UpdateDisbursementDate(retrievalId, disbursementDate); return(RedirectToAction("GenerateDisbursementList", "GenerateDisbursementList", new { retrievalId })); }
public void SaveRetrieval(StationeryRetrievalEF retrieval) { rndEFF.SaveRetrieval(retrieval); }
//RETREIVAL public void CreateRetrieval(StationeryRetrievalEF retrieval) { rndEFF.AddToRetrieval(retrieval); }
//RETRIEVAL public void AddToRetrieval(StationeryRetrievalEF retrieval) { context.StationeryRetrievals.Add(retrieval); context.SaveChanges(); }