// Author: Ayisha, Benedict // GET API to return a list of requisitions for the dept rep public string DeptRepRequisitionListApi() { AndroidUser androidUser = _dbContext.AndroidUsers.FirstOrDefault(); Employee user = _dbContext.Employees.SingleOrDefault(e => e.Id == androidUser.UserId); int deptId = user.Dept.id; var dTOs = new List <DeptRequisitionDTO>(); var requisitions = _dbContext.DeptRequisitions .Where(dr => dr.SubmissionStatus == SubmissionStatus.Draft && dr.Employee.Dept.id == deptId).ToList(); foreach (var requisition in requisitions) { var dTO = new DeptRequisitionDTO(); dTO.Id = requisition.Id; dTO.RequisitionApprovalStatus = requisition.RequisitionApprovalStatus; dTO.RequisitionFulfillmentStatus = requisition.RequisitionFulfillmentStatus; dTOs.Add(dTO); } return(JsonSerializer.Serialize(new { requisitions = dTOs })); }
// Author: Benedict, Yeo Jia Hui // API to GET a requisition form that has not been submitted yet by the dept rep public string EmployeeRequisitionFormApi() { //int userId = (int)HttpContext.Session.GetInt32("Id"); int userId = _dbContext.AndroidUsers.FirstOrDefault().UserId; Employee user = _dbContext.Employees.SingleOrDefault(e => e.Id == userId); int deptId = user.Dept.id; var requisition = _dbContext.DeptRequisitions.FirstOrDefault(dr => dr.SubmissionStatus == SubmissionStatus.Draft && dr.Employee.Dept.id == deptId); // Create DeptRequisition DTO DeptRequisitionDTO deptRequisitionDto = new DeptRequisitionDTO(); deptRequisitionDto.RequisitionDetails = new List <RequisitionDetailDTO>(); //looking for existing requisition with Draft status if (requisition != null) { deptRequisitionDto.Id = requisition.Id; deptRequisitionDto.FormStatus = "Existing"; foreach (var requisitionDetail in requisition.RequisitionDetails) { RequisitionDetailDTO requisitionDetailDto = new RequisitionDetailDTO(); requisitionDetailDto.StationeryId = requisitionDetail.Stationery.Id; requisitionDetailDto.StationeryName = requisitionDetail.Stationery.Description; requisitionDetailDto.Qty = requisitionDetail.Qty; deptRequisitionDto.RequisitionDetails.Add(requisitionDetailDto); } return(JsonSerializer.Serialize(new { deptRequisitionDto })); } else { deptRequisitionDto.FormStatus = "New"; var stationeries = _dbContext.Stationeries.ToList(); foreach (var stationery in stationeries) { RequisitionDetailDTO requisitionDetailDto = new RequisitionDetailDTO(); requisitionDetailDto.StationeryId = stationery.Id; requisitionDetailDto.StationeryName = stationery.Description; requisitionDetailDto.Qty = 0; deptRequisitionDto.RequisitionDetails.Add(requisitionDetailDto); } return(JsonSerializer.Serialize(new { deptRequisitionDto })); } }
public void SaveRequisitionApi([FromBody] DeptRequisitionDTO input) { int userId = _dbContext.AndroidUsers.FirstOrDefault().UserId; Employee user = _dbContext.Employees.SingleOrDefault(e => e.Id == userId); string usernameInSession = user.Username; int deptId = user.Dept.id; DeptRequisition result = new DeptRequisition(); if (input.FormStatus.Equals("New")) { result.Employee = user; result.RequisitionDetails = new List <RequisitionDetail>(); _dbContext.Add(result); foreach (var requisitionDetail in input.RequisitionDetails) { RequisitionDetail temp = new RequisitionDetail(); temp.Stationery = _dbContext.Stationeries.FirstOrDefault(s => s.Id == requisitionDetail.StationeryId); temp.Qty = requisitionDetail.Qty; result.RequisitionDetails.Add(temp); } } else if (input.FormStatus.Equals("Existing")) { foreach (var requisitionDetail in input.RequisitionDetails) { var dbRequisitionDetail = _dbContext.RequisitionDetails.FirstOrDefault(rd => rd.DeptRequisition.Id == input.Id && rd.Stationery.Id == requisitionDetail.StationeryId); if (dbRequisitionDetail != null) { dbRequisitionDetail.Qty = requisitionDetail.Qty; } } } _dbContext.SaveChanges(); }