public async Task <IActionResult> Details(string id, string itemNumber, int quantity, int rowID, string remark, int createNewVoucherItemModalName, int voucherItemModalName, string itemSubmitted, string itemSavedToDraft, string rejectVoucher, string approveBySup, string approveByMan) { ADTeam5User user = await _userManager.GetUserAsync(HttpContext.User); List <string> identity = userCheck.checkUserIdentityAsync(user); int userID = user.WorkID; string userRole = identity[1]; if (id == null) { return(NotFound()); } //ViewBag for voucher price decimal?amount = b.GetTotalAmountForVoucher(id); decimal?GST = Math.Round((decimal)(amount * (decimal?)0.07), 2); ViewBag.Amount = amount; ViewBag.GST = GST; ViewBag.TotalAmount = amount + GST; //ViewData for voucherNo ViewData["VoucherNo"] = id; //handle post action List <AdjustmentRecordDetails> adjustmentRecordDetailsList = b.GetAdjustmentRecordDetails(id); if (createNewVoucherItemModalName == 1) { b.CreateNewVoucherItem(userID, id, itemNumber, quantity, remark); return(RedirectToAction(nameof(Details))); } else if (voucherItemModalName == 1) { b.UpdateVoucherItem(rowID, quantity, remark, adjustmentRecordDetailsList); } if (itemSubmitted == "1") { //changestatus to pending approval b.UpdateRecordStatus("Pending Approval", "AdjustmentRecord", id); return(RedirectToAction(nameof(Index))); } else if (itemSavedToDraft == "1") { //change status to draft b.UpdateRecordStatus("Draft", "AdjustmentRecord", id); return(RedirectToAction(nameof(Index))); } if (rejectVoucher == "1") { var ar = _context.AdjustmentRecord.FirstOrDefault(x => x.VoucherNo == id); if (ar != null) { //changestatus to reject b.RejectVoucher(userID, userRole, id); } return(RedirectToAction(nameof(Index))); } else if (approveBySup == "1") { //change status to draft b.ApproveVoucher(userID, userRole, id); return(RedirectToAction(nameof(Index))); } else if (approveByMan == "1") { //change status to draft b.ApproveVoucher(userID, userRole, id); return(RedirectToAction(nameof(Index))); } //Viewbag for category dropdown list, need to post back List <Catalogue> categoryList = new List <Catalogue>(); var q = _context.Catalogue.GroupBy(x => new { x.Category }).Select(x => x.FirstOrDefault()); foreach (var item in q) { categoryList.Add(item); } categoryList.Insert(0, new Catalogue { ItemNumber = "0", Category = "---Select Category---" }); ViewBag.ListofCategory = categoryList; //ViewBag for record status ViewBag.AdjustmentRecordStatus = _context.AdjustmentRecord.FirstOrDefault(x => x.VoucherNo == id).Status; List <AdjustmentRecordDetails> result = b.GetAdjustmentRecordDetails(id); return(View(result)); }