public void SaveRetrieval(StationeryRetrievalJSONViewModel json) { List <Disbursement> disbList = disbursementService.FindDisbursementsByRetrievalId(json.RetrievalID); List <DisbursementDetail> ddList = disbList.SelectMany(x => x.DisbursementDetails).ToList(); foreach (var row in json.Data) { if (row.RetrievedStatus == "Picked") { ddList .Where(x => x.ItemCode == row.ProductID) .ToList() .ForEach(x => x.ActualQuantity = x.PlanQuantity); } else if (row.RetrievedStatus == "Awaiting Picking") { ddList .Where(x => x.ItemCode == row.ProductID) .ToList() .ForEach(x => x.ActualQuantity = 0); } } foreach (Disbursement d in disbList) { disbursementRepository.Save(d); } }
public void StationeryRetrievalPOSTTest() { // ARRANGE // create Retrieval with Corresponding Disbursement Retrieval r = new Retrieval { RetrievalId = "RETRIEVAL", CreatedDateTime = DateTime.Now, Disbursements = new List<Disbursement>() }; Disbursement d = new Disbursement { DisbursementId = "DISBURSEMENT", CreatedDateTime = DateTime.Now, DisbursementDetails = new List<DisbursementDetail>() }; DisbursementDetail dd = new DisbursementDetail(); dd.PlanQuantity = 10; dd.ActualQuantity = 0; dd.Item = itemService.FindItemByItemCode("C001"); d.DisbursementDetails.Add(dd); r.Disbursements.Add(d); Retrieval savedRetrieval = retrievalService.Save(r); Disbursement savedDisbursement = disbursementService.Save(d); // ACT // create mock data from DataTables StationeryRetrievalJSONViewModel viewModel = new StationeryRetrievalJSONViewModel(); viewModel.RetrievalID = "RETRIEVAL"; viewModel.Data = new List<StationeryRetrievalJSONViewModel>(); StationeryRetrievalJSONViewModel d1 = new StationeryRetrievalJSONViewModel { AllRetrieved = true, ProductID = "C001" }; viewModel.Data.Add(d1); // Call the API controller requisitionApiController.StationeryRetrieval(viewModel); // ASSERT // The Disbursement Detail should be updated accordingly //int expected = savedDisbursement.DisbursementDetails.First().ActualQuantity; int expected; using (ApplicationDbContext context = new ApplicationDbContext()) { expected = context.DisbursementDetail .Where(x => x.DisbursementId == "DISBURSEMENT") .Where(x => x.ItemCode == "C001").First().ActualQuantity; } Assert.AreEqual(expected, 10); }
public IHttpActionResult UpdateStationeryRetrieval(StationeryRetrievalJSONViewModel viewModel) { try { retrievalService.SaveRetrieval(viewModel); if (viewModel.IsConfirmed == true) { retrievalService.ConfirmRetrieval(viewModel.RetrievalID, ""); } } catch { return(BadRequest()); } return(Ok()); }