public ActionResult ViewRequest(string requestId) { StaffEF staff = staffService.GetStaff(); ViewBag.staff = staff; StationeryRequestEF request = rndService.FindRequestById(requestId); if (request.StaffId != staff.StaffId) { return(RedirectToAction("Index", "ManageRequest")); } List <StationeryRequestDetailsEF> requestDetails = rndService.FindRequestDetailsByRequestId(requestId); //check request status and redirect to create or view page if (request.Status == "Submitted") { RequestListDTO requestListDTO = rndService.AddToRequestListDTO(requestId, request.Status, requestDetails); TempData["requestListDTO"] = requestListDTO; return(RedirectToAction("CreateRequest")); } ViewBag.request = request; ViewBag.requestDetails = requestDetails; ViewBag.requestdate = Timestamp.dateFromTimestamp(request.RequestDate); long decisionDate = request.DecisionDate.GetValueOrDefault(); ViewBag.decisiondate = Timestamp.dateFromTimestamp(decisionDate); return(View()); }
public RequestListDTO AddToRequestListDTO(RequestListDTO requestListDTO, string description, string uom) { requestListDTO.ItemDescription.Add(description); requestListDTO.ItemUom.Add(uom); requestListDTO.Quantity.Add(1); requestListDTO.Remove.Add(false); return(requestListDTO); }
public RequestListDTO ConvertToRequestListDTO(RequestTemplateDTO requestTemplateDTO) { RequestListDTO requestListDTO = new RequestListDTO(); for (int i = 0; i < requestTemplateDTO.ItemDescription.Count; i++) { requestListDTO.ItemDescription.Add(requestTemplateDTO.ItemDescription[i]); requestListDTO.ItemUom.Add(requestTemplateDTO.ItemUom[i]); requestListDTO.Quantity.Add(requestTemplateDTO.Quantity[i]); requestListDTO.Remove.Add(requestTemplateDTO.Remove[i]); } return(requestListDTO); }
public async Task <ActionResult> Requests(int page = 1) { var receiver = await UserService.GetUserById(User.Identity.GetUserId()); RequestListDTO items = await RequestService.ListRequests(new BLL.DTO.Filtres.RequestFilter { Receiver = receiver }, page); if (Request.IsAjaxRequest()) { return(PartialView("_RequestsList", items.ResultRequests)); } return(View(items.ResultRequests)); }
public RequestListDTO RemoveFromRequestListDTO(RequestListDTO requestListDTO) { for (int i = 0; i < requestListDTO.ItemDescription.Count; i++) { if (requestListDTO.Remove[i] == true) { requestListDTO.ItemDescription.RemoveAt(i); requestListDTO.Quantity.RemoveAt(i); requestListDTO.ItemUom.RemoveAt(i); requestListDTO.Remove.RemoveAt(i); i--; } } return(requestListDTO); }
public RequestListDTO AddToRequestListDTO(string requestId, string status, List <StationeryRequestDetailsEF> requestDetails) { RequestListDTO requestListDTO = new RequestListDTO { RequestId = requestId, Status = status }; foreach (var item in requestDetails) { requestListDTO.ItemDescription.Add(item.Stock.Description); requestListDTO.ItemUom.Add(item.Stock.Uom); requestListDTO.Quantity.Add(item.RequestQuantity); requestListDTO.Remove.Add(false); } return(requestListDTO); }
public ActionResult CreateRequest() { StaffEF staff = staffService.GetStaff(); ViewBag.staff = staff; List <CatalogueItemEF> catalogueList = stockService.ListCatalogueItems(); ViewBag.catalogueList = catalogueList; RequestListDTO requestListDTO = null; //pass existing request details if editing previous request if (TempData["requestListDTO"] != null) { requestListDTO = (RequestListDTO)TempData["requestListDTO"]; ViewBag.amend = true; } return(View(requestListDTO)); }
public void CreateRequest(StaffEF staff, RequestListDTO requestListDTO) { StationeryRequestEF newRequest; string requestId; StationeryRequestDetailsEF requestItem; bool existingItem; List <StationeryRequestDetailsEF> requestList = new List <StationeryRequestDetailsEF>(); long unixTimestamp = (long)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds; int year = DateTime.Now.Year; if (requestListDTO.RequestId != null) { requestId = requestListDTO.RequestId; List <StationeryRequestDetailsEF> currentList = rndEFF.FindAllStationeryRequestDetailsByRequestId(requestId); for (int i = 0; i < currentList.Count; i++) { existingItem = false; for (int j = 0; j < requestListDTO.ItemDescription.Count; j++) { if (currentList[i].Stock.Description == requestListDTO.ItemDescription[j]) { requestItem = rndEFF.FindRequestDetailsByRequestIdAndItemCode(requestId, currentList[i].Stock.ItemCode); requestItem.RequestQuantity = requestListDTO.Quantity[j]; requestList.Add(requestItem); existingItem = true; requestListDTO.Remove[j] = true; break; } } if (!existingItem) { rndEFF.DropRequestDetails(currentList[i]); } } requestListDTO = RemoveFromRequestListDTO(requestListDTO); for (int k = 0; k < requestListDTO.ItemDescription.Count; k++) { string stockId = stockEFF.FindStockByDescription(requestListDTO.ItemDescription[k]).ItemCode; requestItem = new StationeryRequestDetailsEF(requestId, stockId, requestListDTO.Quantity[k]); requestList.Add(requestItem); } } else { int num = rndEFF.FindLastRequestNoByYearAndDepartment(staff.DepartmentCode, year) + 1; requestId = staff.DepartmentCode + "/" + year + "/" + num; for (int i = 0; i < requestListDTO.ItemDescription.Count; i++) { string stockId = stockEFF.FindStockByDescription(requestListDTO.ItemDescription[i]).ItemCode; requestItem = new StationeryRequestDetailsEF(requestId, stockId, requestListDTO.Quantity[i]); requestList.Add(requestItem); } } newRequest = new StationeryRequestEF(requestId, staff.StaffId, unixTimestamp); rndEFF.SaveRequestAndRequestDetails(newRequest, requestList); StaffEF currentAuthority = staff.Department.Authority; if (currentAuthority.Email != null) { string subject = "Pending Stationery Request"; string body = "Request #" + requestId + " has been submitted by " + staff.Name + " for your approval. Please click " + "<a href='http://localhost/StationeryStore/ApproveRequest/ViewRequest/?requestId=" + requestId + "'>" + "here</a> to view the details."; Email.SendEmail(currentAuthority.Email, subject, body); } }
public ActionResult CreateRequest(RequestListDTO requestListDTO, string items, string decision) { StaffEF staff = staffService.GetStaff(); ViewBag.staff = staff; List <CatalogueItemEF> catalogueList = stockService.ListCatalogueItems(); ViewBag.catalogueList = catalogueList; //validate request details if (requestListDTO.RequestId != null) { ViewBag.amend = true; } if (decision == "Delete") { rndService.DeleteRequest(requestListDTO.RequestId); return(RedirectToAction("Index")); } if (decision == null) { ViewBag.note = "Invalid quantity detected. Please amend."; } if (items != null && decision == "Add Item") { CatalogueItemEF newItem = null; bool checkValid = false; foreach (var item in catalogueList) { if (item.Stock.Description == items) { checkValid = true; newItem = item; break; } } if (!checkValid) { ViewBag.note = "The item is not recognised. Please select another item from the list"; } if (requestListDTO.ItemDescription.Count > 0 && checkValid == true) { foreach (var description in requestListDTO.ItemDescription) { if (description == items) { checkValid = false; ViewBag.note = "The item has already been added to the request list"; break; } } } if (checkValid) { requestListDTO = rndService.AddToRequestListDTO(requestListDTO, newItem.Stock.Description, newItem.Stock.Uom); } } if (decision == "Remove Selected Items") { int before = requestListDTO.ItemDescription.Count; requestListDTO = rndService.RemoveFromRequestListDTO(requestListDTO); int after = requestListDTO.ItemDescription.Count; if (before != after) { ModelState.Clear(); } else { ViewBag.note = "Please check the remove box to remove selected row"; } } if (decision == "Submit" || decision == "Update") { if (requestListDTO.ItemDescription.Count == 0) { ViewBag.note = "You will need to have at least one item in the request"; } else { //save request details when there are no errors rndService.CreateRequest(staff, requestListDTO); return(RedirectToAction("Index")); } } return(View(requestListDTO)); }