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());
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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));
        }
Beispiel #5
0
        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);
        }
Beispiel #6
0
        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));
        }
Beispiel #8
0
        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));
        }