Project

General

Profile

1
package eu.dnetlib.goldoa.service;
2

    
3
//import eu.dnetlib.goldoa.domain.BankTransferReceipt;
4
//import eu.dnetlib.goldoa.domain.CommentTemplate;
5

    
6
import eu.dnetlib.goldoa.domain.*;
7

    
8
import java.io.IOException;
9
import java.io.InputStream;
10
import java.math.BigInteger;
11
import java.text.ParseException;
12
import java.util.Date;
13
import java.util.List;
14

    
15
//import eu.dnetlib.goldoa.domain.RequestFilter;
16
//import eu.dnetlib.goldoa.domain.RequestInfo;
17
//import eu.dnetlib.goldoa.domain.RequestInfoPage;
18
//import eu.dnetlib.goldoa.domain.RequestManagerException;
19
//import eu.dnetlib.goldoa.domain.RequestSort;
20
//import eu.dnetlib.goldoa.domain.RequestSortOrder;
21

    
22
/**
23
 * Created by antleb on 3/10/15.
24
 */
25
public interface RequestManager {
26

    
27
	public Request saveRequest(Request request);
28

    
29
	public Request getById(String requestId);
30

    
31
	/**
32
	 * @param fromDate      inclusive, starts with 0
33
	 * @param to            non inclusive, < total count
34
	 * @param requestSortBy if not null, sorts by this field
35
	 * @param order         the order of sort, if RequestSortBy != null
36
	 * @param requestFilter which request field to search for, searches for all if null and term != null
37
	 * @param term          if not null, filters the requests
38
	 * @param fromDate
39
	 * @param to
40
	 * @return
41
	 */
42
	public RequestPage getRequests(Date fromDate, Date toDate, RequestSort requestSortBy, RequestSortOrder order, RequestFilter requestFilter, String term, Request.RequestStatus[] statusFilter, int from, int to);
43

    
44
	public RequestPage getForAccounting(Date fromDate, Date toDate, RequestSort requestSortBy, RequestSortOrder order, RequestFilter requestFilter, String term, Request.RequestStatus[] statusFilter, int from, int to);
45

    
46
	public RequestPage getForUser(String email, Date fromDate, Date toDate, RequestSort requestSortBy, RequestSortOrder order, RequestFilter requestFilter, String term, Request.RequestStatus[] statusFilter, int from, int to);
47

    
48
	public RequestPage getForPublisher(String publisher, Date fromDate, Date toDate, RequestSort requestSortBy, RequestSortOrder order, RequestFilter requestFilter, String term, Request.RequestStatus[] statusFilter, int from, int to);
49

    
50
	public RequestPage getForOrganization(List<String> organizationIds, Date fromDate, Date toDate, RequestSort requestSortBy, RequestSortOrder order, RequestFilter requestFilter, String term, Request.RequestStatus[] statusFilter, int from, int to);
51

    
52
	public List<Request> getForProject(String projectId);
53

    
54
	public String getCSV(String mode, RequestSort requestSortBy, RequestSortOrder order, RequestFilter requestFilter, String term, Request.RequestStatus[] statusFilter);
55

    
56
	public Request submitRequest(Request request) throws PersonManagerException;
57

    
58
	public Request submitLibraryRequest(Request request) throws PersonManagerException;
59

    
60
	public Request submitPublisherRequest(Request request) throws PersonManagerException;
61

    
62
	public void conditionallyApproveRequest(String requestId, String email, String comment, String template);
63

    
64
	public void approveRequest(String requestId, String email, String comment, String template);
65

    
66
	public void rejectRequest(String requestId, String email, String comment, String template);
67

    
68
	public void processingRequest(String requestId, String email, String comment, String template);
69

    
70
	public void paidRequest(String requestId, String email, String comment, String template, float apc_paid, float transfer_cost, float other_cost, Date datePaid);
71

    
72
	public void paidLibraryRequest(String requestId, String email, String comment, String template, float apc_paid, float transfer_cost, float other_cost, Date datePaid);
73

    
74
	public void paidPublisherRequest(String requestId, String email, String comment, String template, float apc_paid, float transfer_cost, float other_cost, Date datePaid);
75

    
76
	public void onHoldRequest(String requestId, String email, String comment, String template);
77

    
78
	public void deniedRequest(String requestId, String email, String comment, String template);
79

    
80
	public Invoice invoiceUploaded(String requestId, String invoiceId) throws ManagerException;
81

    
82
	public void uploadTransferReceipt(String requestid, String contentType, InputStream inputStream);
83

    
84
	public BigInteger getActiveNumber();
85

    
86
	public BigInteger getPaidNumber();
87

    
88
	public BigInteger getNumberOfProjects();
89

    
90
	public Float getTotalAmount();
91

    
92
	public Double getAverageAmount();
93

    
94
	public Double getAverageAmountPerBookChapter();
95

    
96
	public Double getAverageAmountPerMonograph();
97

    
98
	Double getAverageAmountPbooleanerMonograph();
99

    
100
	public Double getAverageAmountPerArticle();
101

    
102
	public BigInteger getNumberOfPaidPublicationPerArticle();
103

    
104
	public BigInteger getNumberOfPaidPublicationPerMonograph();
105

    
106
	public BigInteger getNumberOfPaidPublicationPerBookChapter();
107

    
108
	public BigInteger getNumberOfPaidRequestsWithDOI();
109

    
110
	public BigInteger getNumberOfApprovedRequestsWithDOI();
111

    
112
	public BankTransferReceipt downloadBankTransferReceipt(String requestId) throws RequestManagerException;
113

    
114
	public List<CommentTemplate> getCommentTemplates(Request.RequestStatus requestStatus);
115

    
116
	public void importCSV(String csv) throws PersonManagerException, ManagerException, IOException, ParseException, OrganizationManagerException;
117
}
(23-23/29)