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