示例#1
0
        // 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
            }));
        }
示例#2
0
        // 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
                }));
            }
        }
示例#3
0
        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();
        }