Project

General

Profile

1
package eu.dnetlib.goldoa.service;
2
import eu.dnetlib.goldoa.domain.Project;
3
import eu.dnetlib.goldoa.domain.Request;
4
import eu.dnetlib.goldoa.domain.Vocabulary;
5
import eu.dnetlib.goldoa.service.dao.OrganizationDAO;
6
import eu.dnetlib.goldoa.service.dao.RequestDAO;
7
import eu.dnetlib.goldoa.service.dao.UserDAO;
8
import eu.dnetlib.goldoa.service.dao.ProjectDAO;
9
import org.springframework.beans.factory.annotation.Autowired;
10
import org.springframework.stereotype.Service;
11
import org.springframework.transaction.annotation.Transactional;
12

    
13
import java.util.List;
14

    
15
/*
16
Created by antleb on 3/3/15.
17
*/
18

    
19
@Transactional
20
@Service
21
public class ProjectManagerImpl implements ProjectManager {
22

    
23
    @Autowired
24
    private ProjectDAO projectDAO;
25
	@Autowired
26
	private RequestDAO requestDAO;
27

    
28
	private int maxRequests;
29

    
30
	@Override
31
	public List<Vocabulary> search(String term) {
32
		return projectDAO.search(term);
33
	}
34

    
35
	@Override
36
	public Project getById(String projectId) {
37

    
38
		Project project = projectDAO.getProject(projectId);
39
		List<Request> requests = requestDAO.getForProject(project.getId());
40
		int approved = 0;
41

    
42
		for (Request request : requests)
43
			switch (request.getStatus()) {
44
				case CONDITIONALLY_APPROVED:
45
				case APPROVED:
46
				case ACCOUNTING_PROCESSING:
47
				case ACCOUNTING_ON_HOLD:
48
				case ACCOUNTING_PAID:
49
					approved++;
50
					break;
51
			}
52

    
53
		project.setRemainingPublications(maxRequests - approved);
54
		return project;
55
	}
56

    
57
	@Override
58
	public List<Project> getEligibleProjectsForOrganization(String organizationId) {
59
		List<Project> projects = projectDAO.getEligibleProjectsForOrganization(organizationId);
60

    
61
		return projects;
62
	}
63

    
64
	@Override
65
	public List<Project> getFutureEligibleProjectsForOrganization(String organizationId) {
66
		List<Project> projects = projectDAO.getFutureEligibleProjectsForOrganization(organizationId);
67
		return projects;
68
	}
69

    
70

    
71
	public int getMaxRequests() {
72
		return maxRequests;
73
	}
74

    
75
	public void setMaxRequests(int maxRequests) {
76
		this.maxRequests = maxRequests;
77
	}
78
}
79

    
(18-18/29)