// PENDING MODIFICATION TO METHOD public RetrievalDTO constructAdHocRetrievalDTO(LoginDTO loginDTO, int requisitionId) { List <RetrievalPrepItemDTO> retrievalPrepList = new List <RetrievalPrepItemDTO>(); List <RetrievalItemDTO> retrievalList = new List <RetrievalItemDTO>(); List <RequisitionDetail> preparingRequisitionDetailsFromSelectedRequisition = (List <RequisitionDetail>)requisitionDetailRepo.FindBy(x => x.RequisitionId == requisitionId && x.Status == "PREPARING").ToList(); List <int> stationeriesInPreparingRequisitionDetails = RetrieveStationeryDetailsByRequisitionDetailsList(preparingRequisitionDetailsFromSelectedRequisition).ToList(); foreach (int s in stationeriesInPreparingRequisitionDetails) { RetrievalItemDTO rID = new RetrievalItemDTO(); rID.StationeryId = s; rID.Description = stationeryRepo.FindOneBy(x => x.Id == s).Description; rID.Location = stationeryRepo.FindOneBy(x => x.Id == s).Bin; List <RetrievalPrepItemDTO> tempRPIDTO = new List <RetrievalPrepItemDTO>(); List <RequisitionDetail> reqDetailList = (List <RequisitionDetail>)preparingRequisitionDetailsFromSelectedRequisition.FindAll(x => x.StationeryId == rID.StationeryId).ToList(); foreach (RequisitionDetail reDList in reqDetailList) { RetrievalPrepItemDTO rPID = new RetrievalPrepItemDTO(); rPID.ReqStationery = stationeryRepo.FindOneBy(x => x.Id == reDList.StationeryId); rPID.ReqDetail = reDList; rPID.Req = requisitionRepo.FindOneBy(x => x.Id == requisitionId); rPID.ReqOwner = employeeRepo.FindOneBy(x => x.Id == rPID.Req.EmployeeId); int deptId = rPID.ReqOwner.DepartmentId; rPID.ReqDepartmentRep = employeeRepo.FindOneBy(x => x.RoleId == (int)Enums.Roles.DepartmentRepresentative && x.DepartmentId == deptId); rPID.ReqDepartment = departmentRepo.FindOneBy(x => x.Id == deptId); rPID.ReqCollectionPoint = collectionPointRepo.FindOneBy(x => x.Id == rPID.ReqDepartment.CollectionPointId); tempRPIDTO.Add(rPID); } rID.RetrievalPrepItemList = tempRPIDTO; int count = 0; foreach (RetrievalPrepItemDTO retriPrepItem in tempRPIDTO) { RequisitionDetail x = retriPrepItem.ReqDetail; int y = x.QuantityOrdered; count = count + y; } rID.NeededQuantity = count; rID.RetrievedQty = count; retrievalList.Add(rID); } RetrievalDTO retrieval = new RetrievalDTO(); retrieval.RetrievalDate = System.DateTime.Now.ToString("yyyy-MM-dd"); Employee clerk = (Employee)employeeRepo.FindOneBy(x => x.Id == loginDTO.EmployeeId); if (clerk.Name == null) { retrieval.GeneratedBy = null; } else { retrieval.GeneratedBy = clerk.Name; } retrieval.RetrievalItem = retrievalList; return(retrieval); }
public JsonResult UpdateRetrievalQuantity(int stationeryId, int quantity) { RetrievalDTO model = (RetrievalDTO)TempData["RetrievalModel"]; model.RetrievalItem.Single(x => x.StationeryId == stationeryId).RetrievedQty = quantity; TempData["RetrievalModel"] = model; return(Json(true, JsonRequestBehavior.AllowGet)); }
public ActionResult ViewRetrieval() { if (Session["existinguser"] != null) { LoginDTO currentUser = (LoginDTO)Session["existinguser"]; if (currentUser.RoleId != (int)Enums.Roles.StoreClerk) { return(RedirectToAction("RedirectToClerkOrDepartmentView", "Login")); } RetrievalDTO model = retrievalService.constructRetrievalDTO(currentUser); TempData["RetrievalModel"] = model; return(View(model)); } return(RedirectToAction("Index", "Login")); }
public ActionResult SubmitRetrieval() { if (Session["existinguser"] != null) { LoginDTO currentUser = (LoginDTO)Session["existinguser"]; if (currentUser.RoleId != (int)Enums.Roles.StoreClerk) { return(RedirectToAction("RedirectToClerkOrDepartmentView", "Login")); } RetrievalDTO retrieval = (RetrievalDTO)TempData["RetrievalModel"]; LoginDTO loginDTO = currentUser; retrievalService.completeRetrievalProcess(retrieval, currentUser.EmployeeId); return(RedirectToAction("ViewRetrieval")); } return(RedirectToAction("Index", "Login")); }
// GET: api/MobileRetrieval/5 public RetrievalDTO Get(int id) { Models.DTOs.LoginDTO loginDTO = new Models.DTOs.LoginDTO { EmployeeId = id }; Models.DTOs.RetrievalDTO tempModel = retrievalService.constructRetrievalDTO(loginDTO); RetrievalDTO model = new RetrievalDTO { LoginDTO = loginDTO, RetrievalDate = tempModel.RetrievalDate, RetrievalItem = new List <RetrievalItemDTO>() }; foreach (Models.DTOs.RetrievalItemDTO ri in tempModel.RetrievalItem) { RetrievalItemDTO ri2 = new RetrievalItemDTO { Description = ri.Description, Location = ri.Location, NeededQuantity = ri.NeededQuantity, RetrievedQty = ri.RetrievedQty, StationeryId = ri.StationeryId, RetrievalPrepItemList = new List <RetrievalPrepItemDTO>() }; foreach (Models.DTOs.RetrievalPrepItemDTO rpi in ri.RetrievalPrepItemList) { RetrievalPrepItemDTO rpi2 = new RetrievalPrepItemDTO { RequisitionDetail = new RequisitionDetailDTO { Id = rpi.ReqDetail.Id, RequisitionId = rpi.ReqDetail.RequisitionId } }; ri2.RetrievalPrepItemList.Add(rpi2); } model.RetrievalItem.Add(ri2); } return(model); }
public ActionResult RetrieveSelectedAdHocRetrieval() { if (Session["existinguser"] != null) { LoginDTO currentUser = (LoginDTO)Session["existinguser"]; if (currentUser.RoleId != (int)Enums.Roles.StoreClerk) { return(RedirectToAction("RedirectToClerkOrDepartmentView", "Login")); } AdHocRetrievalMenuDTO model = (AdHocRetrievalMenuDTO)TempData["AdHocRetrievalMenuModel"]; RetrievalDTO rtM = new RetrievalDTO() { AdHocRetrievalId = model.RequisitionId }; return(RedirectToAction("ViewSelectedAdHocRetrieval", new { @requisitionId = model.RequisitionId })); } return(RedirectToAction("Index", "Login")); }
// POST: api/MobileRetrieval public void Post([FromBody] RetrievalDTO mR) { Models.DTOs.RetrievalDTO r = new Models.DTOs.RetrievalDTO(); r.LoginDTO = new Models.DTOs.LoginDTO { EmployeeId = mR.LoginDTO.EmployeeId }; r.RetrievalDate = mR.RetrievalDate; r.RetrievalItem = new List <Models.DTOs.RetrievalItemDTO>(); foreach (RetrievalItemDTO mRi in mR.RetrievalItem) { Models.DTOs.RetrievalItemDTO ri = new Models.DTOs.RetrievalItemDTO { Description = mRi.Description, Location = mRi.Location, NeededQuantity = mRi.NeededQuantity, RetrievedQty = mRi.RetrievedQty, StationeryId = mRi.StationeryId, RetrievalPrepItemList = new List <Models.DTOs.RetrievalPrepItemDTO>() }; foreach (RetrievalPrepItemDTO mRpi in mRi.RetrievalPrepItemList) { Models.DTOs.RetrievalPrepItemDTO rpi = new Models.DTOs.RetrievalPrepItemDTO { ReqDetail = new Models.RequisitionDetail { Id = mRpi.RequisitionDetail.Id, RequisitionId = mRpi.RequisitionDetail.RequisitionId } }; ri.RetrievalPrepItemList.Add(rpi); } r.RetrievalItem.Add(ri); } retrievalService.completeRetrievalProcess(r, r.LoginDTO.EmployeeId); }
public void completeRetrievalProcess(RetrievalDTO retrieval, int employeeId) { int deliveredEmployeeId = employeeId; List <RetrievalItemDTO> retrievalItems = retrieval.RetrievalItem; foreach (RetrievalItemDTO rtItem in retrievalItems) { if (rtItem.RetrievedQty != rtItem.NeededQuantity) { int qtyDifference = rtItem.RetrievedQty - rtItem.NeededQuantity; AdjustmentVoucher targetAdjustmentVoucher = retrieveNewOrAvailableAdjustmentVoucherForClerk(deliveredEmployeeId); createNewAdjustmentVoucherDetail(targetAdjustmentVoucher, rtItem.StationeryId, (qtyDifference)); // List<RetrievalPrepItemDTO> orderedRPItemListByDate = (List<RetrievalPrepItemDTO>)rtItem.RetrievalPrepItemList.OrderBy(x => x.Req.DateTime); List <RequisitionDetail> requisitionDetailsList = (List <RequisitionDetail>)rtItem.RetrievalPrepItemList.Select(x => x.ReqDetail).ToList(); List <int> requisitionDetailsIdList = (List <int>)requisitionDetailsList.Select(x => x.Id).ToList(); int availableBalance = rtItem.RetrievedQty; //updates status of affected requisition details and chain creates new one if partially retrieved --> written by shona requisitionCatalogueService.UpdateRequisitionDetailsAfterRetrieval(availableBalance, requisitionDetailsIdList); List <RequisitionDetail> pendingCollectionList = getRequisitionDetailListByPendingCollectionAndStationeryId(rtItem.StationeryId); createNewDisbursementsFromUpdatedRequisitionDetails(pendingCollectionList, deliveredEmployeeId); } else { // List<RetrievalPrepItemDTO> orderedRPItemListByDate = (List<RetrievalPrepItemDTO>)rtItem.RetrievalPrepItemList.OrderBy(x => x.Req.DateTime); List <RequisitionDetail> requisitionDetailsList = (List <RequisitionDetail>)rtItem.RetrievalPrepItemList.Select(x => x.ReqDetail).ToList(); List <int> requisitionDetailsIdList = (List <int>)requisitionDetailsList.Select(x => x.Id).ToList(); int availableBalance = rtItem.RetrievedQty; //updates status of affected requisition details and chain creates new one if partially retrieved --> written by shona requisitionCatalogueService.UpdateRequisitionDetailsAfterRetrieval(availableBalance, requisitionDetailsIdList); List <RequisitionDetail> pendingCollectionList = getRequisitionDetailListByPendingCollectionAndStationeryId(rtItem.StationeryId); createNewDisbursementsFromUpdatedRequisitionDetails(pendingCollectionList, deliveredEmployeeId); } } }
public RetrievalDTO constructRetrievalDTO(LoginDTO loginDTO) { List <RetrievalPrepItemDTO> retrievalPrepList = new List <RetrievalPrepItemDTO>(); List <RetrievalItemDTO> retrievalList = new List <RetrievalItemDTO>(); List <CollectionPoint> assignedCollectionPoint = RetrieveAssignedCollectionPoints(loginDTO.EmployeeId); List <Department> assignedDepartment = RetrieveDepartmentsInCollectionPointList(assignedCollectionPoint); List <Employee> employeesInAssignedDepartments = RetrieveAllEmployeesInAssignedDepartmentList(assignedDepartment); List <Requisition> approvedRequisitionsFromEmployeesInAssignedDepartments = RetrieveAllApprovedRequisitionsByEmployeeList(employeesInAssignedDepartments); List <RequisitionDetail> preparingRequisitionDetailsFromApprovedRequisitions = RetrieveAllPreparingRequisitionDetailsByRequisitionList(approvedRequisitionsFromEmployeesInAssignedDepartments); List <int> stationeriesInPreparingRequisitionDetails = RetrieveStationeryDetailsByRequisitionDetailsList(preparingRequisitionDetailsFromApprovedRequisitions); // .GroupBy(x => x.Id).Select(g => g.First()).ToList() // create retrievalItemDTO foreach (int s in stationeriesInPreparingRequisitionDetails) { RetrievalItemDTO rID = new RetrievalItemDTO(); rID.StationeryId = s; rID.Description = stationeryRepo.FindOneBy(x => x.Id == s).Description; rID.Location = stationeryRepo.FindOneBy(x => x.Id == s).Bin; List <RetrievalPrepItemDTO> tempRPIDTO = new List <RetrievalPrepItemDTO>(); List <RequisitionDetail> reqDetailList = (List <RequisitionDetail>)preparingRequisitionDetailsFromApprovedRequisitions.FindAll(x => x.StationeryId == rID.StationeryId); foreach (RequisitionDetail reDList in reqDetailList) { RetrievalPrepItemDTO rPID = new RetrievalPrepItemDTO(); rPID.ReqStationery = stationeryRepo.FindOneBy(x => x.Id == reDList.StationeryId); rPID.ReqDetail = reDList; rPID.Req = approvedRequisitionsFromEmployeesInAssignedDepartments.Find(x => x.Id == rPID.ReqDetail.RequisitionId); rPID.ReqOwner = employeesInAssignedDepartments.Find(x => x.Id == rPID.Req.EmployeeId); rPID.ReqDepartmentRep = employeesInAssignedDepartments.Find(x => x.RoleId == (int)Enums.Roles.DepartmentRepresentative); rPID.ReqDepartment = assignedDepartment.Find(x => x.Id == rPID.ReqDepartmentRep.DepartmentId); rPID.ReqCollectionPoint = assignedCollectionPoint.Find(x => x.Id == rPID.ReqDepartment.CollectionPointId); tempRPIDTO.Add(rPID); } rID.RetrievalPrepItemList = tempRPIDTO; int count = 0; foreach (RetrievalPrepItemDTO retriPrepItem in tempRPIDTO) { RequisitionDetail x = retriPrepItem.ReqDetail; int y = x.QuantityOrdered; count = count + y; } rID.NeededQuantity = count; rID.RetrievedQty = count; retrievalList.Add(rID); } RetrievalDTO retrieval = new RetrievalDTO(); retrieval.RetrievalDate = System.DateTime.Now.ToString("yyyy-MM-dd"); Employee clerk = (Employee)employeeRepo.FindOneBy(x => x.Id == loginDTO.EmployeeId); if (clerk.Name == null) { retrieval.GeneratedBy = null; } else { retrieval.GeneratedBy = clerk.Name; } retrieval.RetrievalItem = retrievalList; return(retrieval); }