Project

General

Profile

1
package eu.dnetlib.goldoa.service;
2

    
3
import eu.dnetlib.goldoa.domain.*;
4
import eu.dnetlib.goldoa.service.dao.RequestDAO;
5
import eu.dnetlib.goldoa.service.utils.EmailUtils;
6
import org.apache.commons.logging.Log;
7
import org.apache.commons.logging.LogFactory;
8
import org.springframework.beans.factory.annotation.Autowired;
9
import org.springframework.beans.factory.annotation.Value;
10
import org.springframework.dao.EmptyResultDataAccessException;
11
import org.springframework.stereotype.Service;
12
import org.springframework.transaction.annotation.Transactional;
13

    
14
import javax.mail.MessagingException;
15
import java.io.IOException;
16
import java.io.InputStream;
17
import java.math.BigInteger;
18
import java.sql.Timestamp;
19
import java.text.SimpleDateFormat;
20
import java.util.ArrayList;
21
import java.util.Date;
22
import java.util.List;
23
import java.util.concurrent.ExecutorService;
24

    
25
/*
26
 * Created by antleb on 3/10/15.
27
*/
28

    
29

    
30
@Transactional
31
@Service("requestManager")
32
public class RequestManagerImpl implements RequestManager {
33

    
34
	@Autowired
35
	private RequestDAO requestDAO;
36
	@Autowired
37
	private UserManager userManager;
38
	@Autowired
39
	private OrganizationManager organizationManager;
40
	@Autowired
41
	private ProjectManager projectManager;
42
	@Autowired
43
	private PublicationManager publicationManager;
44
	@Autowired
45
	private InvoiceManager invoiceManager;
46
	@Autowired
47
	private BudgetManager budgetManager;
48
	@Autowired
49
	private EligibilityManager eligibilityManager;
50
	@Autowired
51
	private EmailUtils emailUtils;
52
	@Autowired
53
	private ExecutorService executorService;
54

    
55
	@Value("${goldoa.sendCoordinatorEmails}")
56
	private String sendCoordinatorEmails ;//= false;
57
	@Value("${goldoa.sendEvaEmail}")
58
	private String sendEvaEmail ;//= false;
59
	@Value("${goldoa.evaEmail}")
60
	private String evaEmail;// = null;
61

    
62
	private Log logger = LogFactory.getLog(RequestManagerImpl.class);
63

    
64
	@Override
65
	public Request saveRequest(final Request request) {
66
		logger.debug("saving request " + request.getId() + " with status " + request.getStatus());
67
		if (request.getId() == null) {
68
			request.setId(new SimpleDateFormat("yyyyMMdd-").format(new Date()) + requestDAO.getRequestId());
69
			Budget budget = null;
70
			logger.debug("Request publisher -> " + request.getPublisher());
71
			if(request.getPublisher() != null)
72
				budget = budgetManager.getForRequest(request.getOrganization().getId(),
73
						request.getPublisher().getEmail());
74

    
75
			if (budget != null) {
76
				request.setBudget(budget);
77
				// TODO fix amounts
78
//				budget.setRemaining(budget.getRemaining() - request.getFundingRequested());
79
//				budgetManager.saveBudget(budget);
80
			}
81
		}
82
		request.setEligibility(eligibilityManager.validate(request));
83
		logger.debug("saving request " + request.getId() + " with status " + request.getStatus());
84
		requestDAO.saveRequest(request);
85
		return request;
86
	}
87

    
88
	@Override
89
	public Request getById(String requestId) {
90
		return 	requestDAO.getRequest(requestId);
91
	}
92

    
93
	@Override
94
	public RequestPage getForUser(String email, Date fromDate, Date toDate, RequestSort requestSortBy, RequestSortOrder order, RequestFilter requestFilter, String term, Request.RequestStatus[] statusFilter, int from, int to) {
95
		RequestPage requests = requestDAO.getForUser(email, fromDate, toDate, requestSortBy, order, requestFilter, term, statusFilter, from, to);
96
		return requests;
97
	}
98

    
99
	@Override
100
	public RequestPage getForPublisher(String publisherId, Date fromDate, Date toDate, RequestSort requestSortBy, RequestSortOrder order, RequestFilter requestFilter, String term, Request.RequestStatus[] statusFilter, int from, int to) {
101
		RequestPage requests = requestDAO.getForPublisher(publisherId, fromDate, toDate, requestSortBy, order, requestFilter, term, statusFilter, from, to);
102
		return requests;
103
	}
104

    
105
	@Override
106
	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) {
107
		RequestPage requests = requestDAO.getForOrganization(organizationIds, fromDate, toDate, requestSortBy, order, requestFilter, term, statusFilter, from, to);
108
		return requests;
109
	}
110

    
111
	@Override
112
	public List<Request> getForProject(String projectId) {
113
		return requestDAO.getForProject(projectId);
114
	}
115

    
116
	@Override
117
	public String getCSV(String mode, RequestSort requestSortBy, RequestSortOrder order, RequestFilter requestFilter, String term, Request.RequestStatus[] statusFilter) {
118
		Integer[] statuses = null;
119

    
120
		if ("moderator".equals(mode)) {
121
			if (statusFilter == null || statusFilter.length == 0) {
122

    
123
			} else {
124
				statuses = new Integer[statusFilter.length];
125

    
126
				for (int i = 0; i < statusFilter.length; i++) {
127
					statuses[i] = statusFilter[i].getCode();
128
				}
129
			}
130
		} else if ("accounting".equals(mode)) {
131
			if (statusFilter == null || statusFilter.length == 0)
132
				statuses = new Integer[] {
133
						Request.RequestStatus.APPROVED.getCode(),
134
						Request.RequestStatus.ACCOUNTING_PROCESSING.getCode(),
135
						Request.RequestStatus.ACCOUNTING_ON_HOLD.getCode(),
136
						Request.RequestStatus.ACCOUNTING_DENIED.getCode(),
137
						Request.RequestStatus.ACCOUNTING_PAID.getCode()};
138

    
139
			else {
140
				statuses = new Integer[statusFilter.length];
141

    
142
				for (int i = 0; i < statusFilter.length; i++) {
143
					Request.RequestStatus s = statusFilter[i];
144

    
145
					statuses[i] = s.getCode();
146
				}
147
			}
148
		}
149

    
150
		try {
151
			return requestDAO.getCSV(requestSortBy, order, requestFilter, term, statuses);
152
		} catch (IOException e) {
153
			e.printStackTrace();
154

    
155
			return e.getMessage();
156
		}
157
	}
158

    
159
	@Override
160
	public RequestPage getRequests(Date fromDate, Date toDate, RequestSort requestSortBy, RequestSortOrder order, RequestFilter requestFilter, String term, Request.RequestStatus[] statusFilter, int from, int to) {
161
		RequestPage requestPage = requestDAO.getRequests(fromDate, toDate, requestSortBy, order, requestFilter, term, statusFilter, from, to);
162
		return requestPage;
163
	}
164

    
165
	@Override
166
	public RequestPage getForAccounting(Date fromDate, Date toDate, RequestSort requestSortBy, RequestSortOrder order, RequestFilter requestFilter, String term, Request.RequestStatus[] statusFilter, int from, int to) {
167
		Integer[] statuses;
168

    
169
		if (statusFilter == null || statusFilter.length == 0)
170
			statuses = new Integer[] {Request.RequestStatus.APPROVED.getCode(), Request.RequestStatus.ACCOUNTING_PROCESSING.getCode(), Request.RequestStatus.ACCOUNTING_ON_HOLD.getCode()
171
			, Request.RequestStatus.ACCOUNTING_DENIED.getCode(), Request.RequestStatus.ACCOUNTING_PAID.getCode()};
172

    
173
		else {
174
			statuses = new Integer[statusFilter.length];
175

    
176
			for (int i = 0; i < statusFilter.length; i++) {
177
				Request.RequestStatus s = statusFilter[i];
178

    
179
				statuses[i] = s.getCode();
180
			}
181
		}
182

    
183
		RequestPage requests = requestDAO.getRequests(fromDate, toDate, requestSortBy, order, requestFilter, term, statuses, from, to);
184
		return requests;
185
	}
186

    
187
	@Override
188
	public Request submitRequest(final Request request) {
189

    
190
		if (request.getBudget() != null) {
191
            Budget budget = request.getBudget();
192

    
193
			Organization organization = budget.getOrganizations().get(0);
194
			if (organization != null)
195
				request.setStatus(Request.RequestStatus.LIBRARY_FUND_SUBMITTED);
196
			else if (budget.getPublisher() != null)
197
				request.setStatus(Request.RequestStatus.PUBLISHER_FUND_SUBMITTED);
198
		} else {
199
			request.setStatus(Request.RequestStatus.SUBMITTED);
200
		}
201
		request.setSubmissiondate(new Timestamp(new Date().getTime()));
202
		request.setEligibility(eligibilityManager.validate(request));
203
//		saveRequest(request);
204
		requestDAO.submitRequest(request);
205

    
206

    
207
		final List<User> moderators = userManager.getModerators();
208
		executorService.submit(new Runnable() {
209
			@Override
210
			public void run() {
211
				try {
212
					switch (request.getEligibility().getStatus()) {
213
						case OK:
214
							emailUtils.sendRequesterOKEmail(request);
215
							for (User user : moderators)
216
								emailUtils.sendModeratorOKEmail(request, user);
217
							break;
218
						case IFFY:
219
							emailUtils.sendRequesterIFFYEmail(request);
220
							for (User user : moderators)
221
								emailUtils.sendModeratorIFFYEmail(request, user);
222
							break;
223
						case NONO:
224
							break;
225
					}
226

    
227
					if (Boolean.parseBoolean(sendCoordinatorEmails)) {
228
						for (User  coordinator : request.getProject().getCoordinators())
229
							emailUtils.sendCoordinatorRequestSubmittedEmail(coordinator, request);
230
					}
231
				} catch (MessagingException e) {
232
					e.printStackTrace();
233
				} catch (Exception e) {
234
					e.printStackTrace();
235
				}
236
			}
237
		});
238

    
239
		return request;
240
	}
241

    
242
	@Override
243
	public Request submitLibraryRequest(final Request request) throws PersonManagerException {
244
		request.setStatus(Request.RequestStatus.LIBRARY_FUND_SUBMITTED);
245
		request.setSubmissiondate(new Timestamp(new Date().getTime()));
246

    
247
//		requestDAO.submitRequest(request.getId());
248

    
249
		saveRequest(request);
250

    
251
//		executorService.submit(new Runnable() {
252
//			@Override
253
//			public void run() {
254
//				RequestInfo requestInfo = null;
255
//				try {
256
//					requestInfo = getRequestInfo(request);
257
//
258
//					switch (requestInfo.getEligibility().getStatus()) {
259
//						case OK:
260
//							emailUtils.sendRequesterOKEmail(requestInfo);
261
//
262
//							for (Person person : personManager.getModerators())
263
//								emailUtils.sendModeratorOKEmail(requestInfo, person);
264
//							break;
265
//						case IFFY:
266
//							emailUtils.sendRequesterIFFYEmail(requestInfo);
267
//
268
//							for (Person person : personManager.getModerators())
269
//								emailUtils.sendModeratorIFFYEmail(requestInfo, person);
270
//							break;
271
//						case NONO:
272
//							break;
273
//					}
274
//
275
//					if (sendCoordinatorEmails) {
276
//						for (Person coordinator : requestInfo.getProject().getCoordinators())
277
//							emailUtils.sendCoordinatorRequestSubmittedEmail(coordinator, requestInfo);
278
//					}
279
//				} catch (MessagingException e) {
280
//					e.printStackTrace();
281
//				} catch (PersonManagerException e) {
282
//					e.printStackTrace();
283
//				} catch (Exception e) {
284
//					e.printStackTrace();
285
//				}
286
//			}
287
//		});
288

    
289
		return request;
290
	}
291

    
292
	@Override
293
	public Request submitPublisherRequest(Request request) throws PersonManagerException {
294
        request.setStatus(Request.RequestStatus.PUBLISHER_FUND_SUBMITTED);
295
        request.setSubmissiondate(new Timestamp(new Date().getTime()));
296

    
297
//		requestDAO.submitRequest(request.getId());
298

    
299
		saveRequest(request);
300

    
301
//		executorService.submit(new Runnable() {
302
//			@Override
303
//			public void run() {
304
//				RequestInfo requestInfo = null;
305
//				try {
306
//					requestInfo = getRequestInfo(request);
307
//
308
//					switch (requestInfo.getEligibility().getStatus()) {
309
//						case OK:
310
//							emailUtils.sendRequesterOKEmail(requestInfo);
311
//
312
//							for (Person person : personManager.getModerators())
313
//								emailUtils.sendModeratorOKEmail(requestInfo, person);
314
//							break;
315
//						case IFFY:
316
//							emailUtils.sendRequesterIFFYEmail(requestInfo);
317
//
318
//							for (Person person : personManager.getModerators())
319
//								emailUtils.sendModeratorIFFYEmail(requestInfo, person);
320
//							break;
321
//						case NONO:
322
//							break;
323
//					}
324
//
325
//					if (sendCoordinatorEmails) {
326
//						for (Person coordinator : requestInfo.getProject().getCoordinators())
327
//							emailUtils.sendCoordinatorRequestSubmittedEmail(coordinator, requestInfo);
328
//					}
329
//				} catch (MessagingException e) {
330
//					e.printStackTrace();
331
//				} catch (PersonManagerException e) {
332
//					e.printStackTrace();
333
//				} catch (Exception e) {
334
//					e.printStackTrace();
335
//				}
336
//			}
337
//		});
338

    
339
		return request;
340
	}
341

    
342
	@Override
343
	public void conditionallyApproveRequest(final String requestId, final String email, final String comment, String template) {
344
		User user = null;
345
		try {
346
			user = userManager.getByEmail(email);
347
		} catch (PersonManagerException e) {
348
			e.printStackTrace();
349
		}
350
		requestDAO.conditionallyApproveRequest(requestId, user, comment, template);
351

    
352
		final Request request = getById(requestId);
353
		executorService.submit(new Runnable() {
354
			@Override
355
			public void run() {
356
				try {
357
					emailUtils.sendRequesterInitiallyApprovedEmail(request);
358
				} catch (MessagingException e) {
359
					e.printStackTrace();
360
				}
361
			}
362
		});
363
	}
364

    
365
	@Override
366
	public void approveRequest(final String requestId, final String email, final String comment, String template) {
367
		User user = null;
368
		try {
369
			user = userManager.getByEmail(email);
370
		} catch (PersonManagerException e) {
371
			e.printStackTrace();
372
		}
373
		requestDAO.approveRequest(requestId, user, comment, template);
374

    
375
		final Request request = getById(requestId);
376
		executorService.submit(new Runnable() {
377
			@Override
378
			public void run() {
379
				try {
380
					emailUtils.sendRequesterApprovedEmail(request);
381
				} catch (MessagingException e) {
382
					e.printStackTrace();
383
				}
384
				if (request.getInvoice() == null) {
385
					try {
386
						emailUtils.sendRequesterInvoiceNotification(request);
387
						emailUtils.sendPublisherInvoiceNotification(request);
388
					} catch (MessagingException e) {
389
						e.printStackTrace();
390
					}
391
				} else {
392
					try {
393
						for (User user : userManager.getAccountingOfficers())
394
							emailUtils.sendAccountingRequestApprovedEmail(user, request);
395
					} catch (MessagingException e) {
396
						e.printStackTrace();
397
					}
398
				}
399
			}
400
		});
401
	}
402

    
403
	@Override
404
	public void rejectRequest(final String requestId, String email, String comment, String template) {
405
		User user = null;
406
		try {
407
			user = userManager.getByEmail(email);
408
		} catch (PersonManagerException e) {
409
			e.printStackTrace();
410
		}
411
		requestDAO.rejectRequest(requestId, user, comment, template);
412
		final Request request = getById(requestId);
413
		executorService.submit(new Runnable() {
414
			@Override
415
			public void run() {
416
				try {
417
					emailUtils.sendRequesterRejectedEmail(request);
418
				} catch (MessagingException e) {
419
					e.printStackTrace();
420
				}
421
			}
422
		});
423
	}
424

    
425
	@Override
426
	public void processingRequest(final String requestId, String email, String comment, String template) {
427
		User user = null;
428
		try {
429
			user = userManager.getByEmail(email);
430
		} catch (PersonManagerException e) {
431
			e.printStackTrace();
432
		}
433
		requestDAO.processingRequest(requestId, user, comment, template);
434
		final Request request = getById(requestId);
435
		executorService.submit(new Runnable() {
436
			@Override
437
			public void run() {
438
				try {
439
					for (User user : userManager.getModerators())
440
						emailUtils.sendModeratorProcessingEmail(user, request);
441

    
442
				} catch (MessagingException e) {
443
					e.printStackTrace();
444
				}
445
			}
446
		});
447
	}
448

    
449
	@Override
450
	public void paidRequest(final String requestId, String email, String comment, String template, float apc_paid,
451
							float transfer_cost, float other_cost, Date datePaid) {
452
		User user = null;
453
		try {
454
			user = userManager.getByEmail(email);
455
		} catch (PersonManagerException e) {
456
			e.printStackTrace();
457
		}
458

    
459
		requestDAO.paidRequest(requestId, user, comment, template, apc_paid, transfer_cost, other_cost, datePaid);
460
		final Request request = getById(requestId);
461
		executorService.submit(new Runnable() {
462
			@Override
463
			public void run() {
464

    
465
				try {
466
					emailUtils.sendRequesterPaidEmail(request);
467
					emailUtils.sendPublisherPaidEmail(request);
468

    
469
					for (User user : userManager.getModerators())
470
						emailUtils.sendModeratorPaidEmail(user, request);
471

    
472
					if (Boolean.parseBoolean(sendEvaEmail))
473
						emailUtils.sendEvaPaidEmail(evaEmail, request);
474

    
475
				} catch (MessagingException e) {
476
					e.printStackTrace();
477
				}
478
			}
479
		});
480
	}
481

    
482
	@Override
483
	public void paidLibraryRequest(String requestId, String email, String comment, String template, float apc_paid, float transfer_cost, float other_cost, Date datePaid) {
484
		User user = null;
485
		try {
486
			user = userManager.getByEmail(email);
487
		} catch (PersonManagerException e) {
488
			e.printStackTrace();
489
		}
490
		requestDAO.paidLibraryRequest(requestId, user, comment, template, apc_paid, transfer_cost, other_cost, datePaid);
491

    
492
//		executorService.submit(new Runnable() {
493
//			@Override
494
//			public void run() {
495
//				RequestInfo requestInfo = getById(requestId);
496
//
497
//				try {
498
//					emailUtils.sendRequesterPaidEmail(requestInfo);
499
//					emailUtils.sendPublisherPaidEmail(requestInfo);
500
//
501
//					for (Person person : personManager.getModerators())
502
//						emailUtils.sendModeratorPaidEmail(person, requestInfo);
503
//
504
//					if (sendEvaEmail)
505
//						emailUtils.sendEvaPaidEmail(evaEmail, requestInfo);
506
//
507
//				} catch (MessagingException e) {
508
//					e.printStackTrace();
509
//				}
510
//			}
511
//		});
512
	}
513

    
514
	@Override
515
	public void paidPublisherRequest(String requestId, String email, String comment,
516
									 String template, float apc_paid, float transfer_cost, float other_cost, Date datePaid) {
517
		User user = null;
518
		try {
519
			user = userManager.getByEmail(email);
520
		} catch (PersonManagerException e) {
521
			e.printStackTrace();
522
		}
523
		requestDAO.paidPublisherRequest(requestId, user, comment, template, apc_paid, transfer_cost, other_cost, datePaid);
524

    
525
		//		executorService.submit(new Runnable() {
526
//			@Override
527
//			public void run() {
528
//				RequestInfo requestInfo = getById(requestId);
529
//
530
//				try {
531
//					emailUtils.sendRequesterPaidEmail(requestInfo);
532
//					emailUtils.sendPublisherPaidEmail(requestInfo);
533
//
534
//					for (Person person : personManager.getModerators())
535
//						emailUtils.sendModeratorPaidEmail(person, requestInfo);
536
//
537
//					if (sendEvaEmail)
538
//						emailUtils.sendEvaPaidEmail(evaEmail, requestInfo);
539
//
540
//				} catch (MessagingException e) {
541
//					e.printStackTrace();
542
//				}
543
//			}
544
//		});
545
	}
546

    
547
	@Override
548
	public void onHoldRequest(final String requestId, String email, String comment, String template) {
549
		User user = null;
550
		try {
551
			user = userManager.getByEmail(email);
552
		} catch (PersonManagerException e) {
553
			e.printStackTrace();
554
		}
555
		requestDAO.onHoldRequest(requestId, user, comment, template);
556

    
557
		final Request request = getById(requestId);
558
		executorService.submit(new Runnable() {
559
			@Override
560
			public void run() {
561
				try {
562
					emailUtils.sendRequesterOnHoldEmail(request);
563
					emailUtils.sendPublisherOnHoldEmail(request);
564

    
565
					for (User user : userManager.getModerators())
566
						emailUtils.sendModeratorOnHoldEmail(user, request);
567
				} catch (MessagingException e) {
568
					e.printStackTrace();
569
				}
570
			}
571
		});
572
	}
573

    
574
	@Override
575
	public void deniedRequest(final String requestId, String email, String comment, String template) {
576
		User user = null;
577
		try {
578
			user = userManager.getByEmail(email);
579
		} catch (PersonManagerException e) {
580
			e.printStackTrace();
581
		}
582
		requestDAO.deniedRequest(requestId, user, comment, template);
583
		final Request request = getById(requestId);
584
		executorService.submit(new Runnable() {
585
			@Override
586
			public void run() {
587
				try {
588
					emailUtils.sendRequesterDeniedEmail(request);
589
					emailUtils.sendPublisherDeniedEmail(request);
590

    
591
					for (User user : userManager.getModerators())
592
						emailUtils.sendModeratorDeniedEmail(user, request);
593
				} catch (MessagingException e) {
594
					e.printStackTrace();
595
				}
596
			}
597
		});
598
	}
599

    
600
	@Override
601
	public Invoice invoiceUploaded(final String requestId, String invoiceId) throws ManagerException {
602

    
603
		final Request request = getById(requestId);
604

    
605
		final List<User> moderators = userManager.getModerators();
606
		executorService.submit(new Runnable() {
607
			@Override
608
			public void run() {
609
				if (request.getStatus() == Request.RequestStatus.CONDITIONALLY_APPROVED) {
610
					try {
611
						for (User user : moderators)
612
							emailUtils.sendModeratorInvoiceUploaded(user, request);
613
					} catch (MessagingException e) {
614
						e.printStackTrace();
615
					}
616
				}
617
			}
618
		});
619
		return invoiceManager.getInvoice(invoiceId);
620
	}
621

    
622
	@Override
623
	public void uploadTransferReceipt(String requestid, String contentType, InputStream inputStream) {
624
		requestDAO.uploadBankTransferReceipt(requestid, contentType, inputStream);
625
	}
626

    
627

    
628
	public BankTransferReceipt downloadBankTransferReceipt(String requestId) throws RequestManagerException {
629
		try {
630
			return requestDAO.downloadBankTransferReceipt(requestId);
631
		} catch (EmptyResultDataAccessException e) {
632
			throw new RequestManagerException(RequestManagerException.ErrorCause.NOT_EXISTS);
633
		}
634
	}
635

    
636

    
637
	public List<CommentTemplate> getCommentTemplates(Request.RequestStatus requestStatus) {
638
		try {
639
			return requestDAO.getCommentTemplates(requestStatus);
640
		} catch (EmptyResultDataAccessException e) {
641
			return new ArrayList<CommentTemplate>();
642
		}
643
	}
644

    
645
	@Override
646
	public void importCSV(String userEmail, String projectAcronym, String doi, String acceptanceDate,
647
						  String identifierType, String identifierValue, String publicationLicense, String apc,
648
						  String apcCurrency, String discount, List<String> coFunderName,
649
						  List<String> coFunderDiscountPercentage) throws PersonManagerException, ManagerException {
650
		User user = null;
651
		Publication publication = null;
652
		List<RequestCoFunder> coFunders = new ArrayList<>();
653
		try {
654
			user  = userManager.getByEmail(userEmail);
655
			publication = publicationManager.resolveDOI(doi);
656
		} catch (PersonManagerException e) {
657
			e.printStackTrace();
658
			throw e;
659
		}catch (ManagerException m) {
660
			m.printStackTrace();
661
			throw m;
662
		}
663
		Project project = (Project) projectManager.search(projectAcronym);
664

    
665

    
666
		for(String funder : coFunderName){
667
			RequestCoFunder rcf = new RequestCoFunder();
668
			RequestCoFunderPK rcfpk = new RequestCoFunderPK();
669
			Funder f = new Funder();
670

    
671

    
672
			rcfpk.
673
		}
674

    
675

    
676
		requestDAO.importRequestFromCSV(user,project,publication,acceptanceDate,
677
				identifierType,identifierValue,publicationLicense,apc,
678
				apcCurrency,discount,coFunders);
679
	}
680

    
681
	@Override
682
	public BigInteger getActiveNumber() {
683
		return requestDAO.getActiveNumber();
684
	}
685

    
686
	@Override
687
	public BigInteger getPaidNumber() {
688
		return requestDAO.getPaidNumber();
689
	}
690

    
691
	@Override
692
	public BigInteger getNumberOfProjects() {
693
		return requestDAO.getNumberOfProjects();
694
	}
695

    
696
	@Override
697
	public Float getTotalAmount() {
698
		return requestDAO.getTotalAmount();
699
	}
700

    
701
	@Override
702
	public Double getAverageAmount() {
703
		return requestDAO.getAverageAmount();
704
	}
705

    
706
	@Override
707
	public Double getAverageAmountPerBookChapter() {
708
		return requestDAO.getAverageAmountPerBookChapter();
709
	}
710

    
711
	@Override
712
	public Double getAverageAmountPbooleanerMonograph() {
713
		return requestDAO.getAverageAmountPerMonograph();
714
	}
715

    
716
	@Override
717
	public Double getAverageAmountPerArticle() {
718
		return requestDAO.getAverageAmountPerArticle();
719
	}
720

    
721
	@Override
722
	public BigInteger getNumberOfPaidPublicationPerArticle() {
723
		return requestDAO.getNumberOfPaidPublicationPerArticle();
724
	}
725

    
726
	@Override
727
	public BigInteger getNumberOfPaidPublicationPerMonograph() {
728
		return requestDAO.getNumberOfPaidPublicationPerMonograph();
729
	}
730

    
731
	@Override
732
	public BigInteger getNumberOfPaidPublicationPerBookChapter() {
733
		return requestDAO.getNumberOfPaidPublicationPerBookChapter();
734
	}
735

    
736

    
737
	@Override
738
	public BigInteger getNumberOfPaidRequestsWithDOI() {
739
		return requestDAO.getNumberOfPaidRequestsWithDOI();
740
	}
741

    
742
	@Override
743
	public BigInteger getNumberOfApprovedRequestsWithDOI() {
744
		return requestDAO.getNumberOfApprovedRequestsWithDOI();
745
	}
746

    
747
	public String isSendCoordinatorEmails() {
748
		return sendCoordinatorEmails;
749
	}
750

    
751
	public void setSendCoordinatorEmails(String sendCoordinatorEmails) {
752
		this.sendCoordinatorEmails = sendCoordinatorEmails;
753
	}
754

    
755
	public String isSendEvaEmail() {
756
		return sendEvaEmail;
757
	}
758

    
759
	public void setSendEvaEmail(String sendEvaEmail) {
760
		this.sendEvaEmail = sendEvaEmail;
761
	}
762

    
763
	public String getEvaEmail() {
764
		return evaEmail;
765
	}
766

    
767
	public void setEvaEmail(String evaEmail) {
768
		this.evaEmail = evaEmail;
769
	}
770
}
(24-24/29)