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 net.sf.ehcache.search.expression.Or;
7
import org.springframework.beans.factory.annotation.Autowired;
8
import org.springframework.dao.EmptyResultDataAccessException;
9
import org.springframework.stereotype.Service;
10
import org.springframework.transaction.annotation.Transactional;
11

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

    
22
/*
23
 * Created by antleb on 3/10/15.
24
*/
25

    
26

    
27
@Transactional
28
@Service("requestManager")
29
public class RequestManagerImpl implements RequestManager {
30

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

    
52
	private boolean sendCoordinatorEmails = false;
53
	private boolean sendEvaEmail = false;
54
	private String evaEmail = null;
55

    
56
	@Override
57
	public Request saveRequest(final Request request) {
58

    
59
		if (request.getId() == null) {
60
			request.setId(new SimpleDateFormat("yyyyMMdd-").format(new Date()) + requestDAO.getRequestId());
61
			Budget budget = budgetManager.getForRequest(request.getOrganization().getId(),
62
                                            request.getPublisher().getEmail());
63
			if (budget != null) {
64
				request.setBudget(budget);
65
				// TODO fix amounts
66
//				budget.setRemaining(budget.getRemaining() - request.getFundingRequested());
67
//				budgetManager.saveBudget(budget);
68
			}
69
		}
70
		System.out.println("saving request " + request.getId() + " with status " + request.getStatus());
71
		requestDAO.saveRequest(request);
72
		return request;
73
	}
74

    
75
	@Override
76
	public Request getById(String requestId) {
77
		return null;
78
	}
79

    
80
	@Override
81
	public RequestPage getForUser(String personId, Date fromDate, Date toDate, RequestSort requestSortBy, RequestSortOrder order, RequestFilter requestFilter, String term, Request.RequestStatus[] statusFilter, int from, int to) {
82
		RequestPage requests = requestDAO.getForUser(personId, fromDate, toDate, requestSortBy, order, requestFilter, term, statusFilter, from, to);
83
		//List<RequestInfo> res = new ArrayList<RequestInfo>();
84

    
85
		/*for (Request request : requests.getRequests()) {
86
			try {
87
				request.setCoFunders(requestDAO.getCoFunders(request));
88

    
89
				RequestInfo req = getShortRequestInfo(request);
90

    
91
				res.add(req);
92
			} catch (Exception e) {
93
				e.printStackTrace();
94
			}
95
		}*/
96
		return requests;
97
		//return new RequestPage(res, requests.getTotal(), requests.getFrom(), requests.getTo());
98
	}
99

    
100
	@Override
101
	public RequestPage getForPublisher(String publisherId, Date fromDate, Date toDate, RequestSort requestSortBy, RequestSortOrder order, RequestFilter requestFilter, String term, Request.RequestStatus[] statusFilter, int from, int to) {
102
		RequestPage requests = requestDAO.getForPublisher(publisherId, fromDate, toDate, requestSortBy, order, requestFilter, term, statusFilter, from, to);
103
		return requests;
104
		/*List<RequestInfo> res = new ArrayList<RequestInfo>();
105

    
106
		for (Request request : requests.getRequests()) {
107
			try {
108
				request.setCoFunders(requestDAO.getCoFunders(request));
109

    
110
				RequestInfo req = getShortRequestInfo(request);
111

    
112
				res.add(req);
113
			} catch (Exception e) {
114
				e.printStackTrace();
115
			}
116
		}
117

    
118
		return new RequestInfoPage(res, requests.getTotal(), requests.getFrom(), requests.getTo());*/
119
	}
120

    
121
	@Override
122
	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) {
123
		RequestPage requests = requestDAO.getForOrganization(organizationIds, fromDate, toDate, requestSortBy, order, requestFilter, term, statusFilter, from, to);
124
		return requests;
125
		/*List<RequestInfo> res = new ArrayList<RequestInfo>();
126

    
127
		for (Request request : requests.getRequests()) {
128
			try {
129
				request.setCoFunders(requestDAO.getCoFunders(request));
130

    
131
				RequestInfo req = getShortRequestInfo(request);
132

    
133
				res.add(req);
134
			} catch (Exception e) {
135
				e.printStackTrace();
136
			}
137
		}
138

    
139
		return new RequestInfoPage(res, requests.getTotal(), requests.getFrom(), requests.getTo());*/
140
	}
141

    
142
	@Override
143
	public List<Request> getForProject(String projectId) {
144
		return requestDAO.getForProject(projectId);
145
	}
146

    
147
	@Override
148
	public String getCSV(String mode, RequestSort requestSortBy, RequestSortOrder order, RequestFilter requestFilter, String term, Request.RequestStatus[] statusFilter) {
149
		Integer[] statuses = null;
150

    
151
		if ("moderator".equals(mode)) {
152
			if (statusFilter == null || statusFilter.length == 0) {
153

    
154
			} else {
155
				statuses = new Integer[statusFilter.length];
156

    
157
				for (int i = 0; i < statusFilter.length; i++) {
158
					statuses[i] = statusFilter[i].getCode();
159
				}
160
			}
161
		} else if ("accounting".equals(mode)) {
162
			if (statusFilter == null || statusFilter.length == 0)
163
				statuses = new Integer[] {
164
						Request.RequestStatus.APPROVED.getCode(),
165
						Request.RequestStatus.ACCOUNTING_PROCESSING.getCode(),
166
						Request.RequestStatus.ACCOUNTING_ON_HOLD.getCode(),
167
						Request.RequestStatus.ACCOUNTING_DENIED.getCode(),
168
						Request.RequestStatus.ACCOUNTING_PAID.getCode()};
169

    
170
			else {
171
				statuses = new Integer[statusFilter.length];
172

    
173
				for (int i = 0; i < statusFilter.length; i++) {
174
					Request.RequestStatus s = statusFilter[i];
175

    
176
					statuses[i] = s.getCode();
177
				}
178
			}
179
		}
180

    
181
		try {
182
			return requestDAO.getCSV(requestSortBy, order, requestFilter, term, statuses);
183
		} catch (IOException e) {
184
			e.printStackTrace();
185

    
186
			return e.getMessage();
187
		}
188
	}
189

    
190
	@Override
191
	public RequestPage getRequests(Date fromDate, Date toDate, RequestSort requestSortBy, RequestSortOrder order, RequestFilter requestFilter, String term, Request.RequestStatus[] statusFilter, int from, int to) {
192
		RequestPage requestPage = requestDAO.getRequests(fromDate, toDate, requestSortBy, order, requestFilter, term, statusFilter, from, to);
193
		return requestPage;
194
		/*List<RequestInfo> res = new ArrayList<RequestInfo>();
195

    
196
		for (Request request : requests.getRequests()) {
197
			try {
198
				request.setCoFunders(requestDAO.getCoFunders(request));
199

    
200
				RequestInfo req = getShortRequestInfo(request);
201

    
202
				res.add(req);
203
			} catch (Exception e) {
204
				e.printStackTrace();
205
			}
206
		}
207

    
208
		return new RequestInfoPage(res, requests.getTotal(), requests.getFrom(), requests.getTo());*/
209
	}
210

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

    
215
		if (statusFilter == null || statusFilter.length == 0)
216
			statuses = new Integer[] {Request.RequestStatus.APPROVED.getCode(), Request.RequestStatus.ACCOUNTING_PROCESSING.getCode(), Request.RequestStatus.ACCOUNTING_ON_HOLD.getCode()
217
			, Request.RequestStatus.ACCOUNTING_DENIED.getCode(), Request.RequestStatus.ACCOUNTING_PAID.getCode()};
218

    
219
		else {
220
			statuses = new Integer[statusFilter.length];
221

    
222
			for (int i = 0; i < statusFilter.length; i++) {
223
				Request.RequestStatus s = statusFilter[i];
224

    
225
				statuses[i] = s.getCode();
226
			}
227
		}
228

    
229
		RequestPage requests = requestDAO.getRequests(fromDate, toDate, requestSortBy, order, requestFilter, term, statuses, from, to);
230
		/*List<RequestInfo> res = new ArrayList<RequestInfo>();
231

    
232
		for (Request request : requests.getRequests()) {
233
			try {
234
				request.setCoFunders(requestDAO.getCoFunders(request));
235

    
236
				RequestInfo req = getShortRequestInfo(request);
237

    
238
				res.add(req);
239
			} catch (Exception e) {
240
				e.printStackTrace();
241
			}
242
		}
243

    
244
		return new RequestInfoPage(res, requests.getTotal(), requests.getFrom(), requests.getTo());*/
245
		return requests;
246
	}
247

    
248
	@Override
249
	public Request submitRequest(final Request request) {
250

    
251
		if (request.getBudget() != null) {
252
            Budget budget = request.getBudget();
253

    
254
            //Organization organization = budgetManager.getBudgetForOrganization(budget.getId());
255
			Organization organization = budget.getOrganizations().get(0);
256
			if (organization != null)
257
				request.setStatus(Request.RequestStatus.LIBRARY_FUND_SUBMITTED);
258
			else if (budget.getPublisher() != null)
259
				request.setStatus(Request.RequestStatus.PUBLISHER_FUND_SUBMITTED);
260
		} else {
261
			request.setStatus(Request.RequestStatus.SUBMITTED);
262
		}
263
		request.setSubmissiondate(new Timestamp(new Date().getTime()));
264

    
265
		requestDAO.submitRequest(request.getId());
266

    
267
		saveRequest(request);
268

    
269
		executorService.submit(new Runnable() {
270
			@Override
271
			public void run() {
272

    
273
				/*try {
274

    
275
					switch (request.getEligibility().getStatus()) {
276
						case OK:
277
							emailUtils.sendRequesterOKEmail(request);
278

    
279
							for (User user : userManager.getModerators())
280
								emailUtils.sendModeratorOKEmail(request, user);
281
							break;
282
						case IFFY:
283
							emailUtils.sendRequesterIFFYEmail(request);
284

    
285
							for (User user : userManager.getModerators())
286
								emailUtils.sendModeratorIFFYEmail(request, user);
287
							break;
288
						case NONO:
289
							break;
290
					}
291

    
292
					if (sendCoordinatorEmails) {
293
						for (User  coordinator : request.getProject().getCoordinators())
294
							emailUtils.sendCoordinatorRequestSubmittedEmail(coordinator, request);
295
					}
296
				} catch (MessagingException e) {
297
					e.printStackTrace();
298
				} catch (Exception e) {
299
					e.printStackTrace();
300
				}*/
301
			}
302
		});
303

    
304
		return request;
305
	}
306

    
307
	@Override
308
	public Request submitLibraryRequest(final Request request) throws PersonManagerException {
309
		request.setStatus(Request.RequestStatus.LIBRARY_FUND_SUBMITTED);
310
		request.setSubmissiondate(new Timestamp(new Date().getTime()));
311

    
312
//		requestDAO.submitRequest(request.getId());
313

    
314
		saveRequest(request);
315

    
316
//		executorService.submit(new Runnable() {
317
//			@Override
318
//			public void run() {
319
//				RequestInfo requestInfo = null;
320
//				try {
321
//					requestInfo = getRequestInfo(request);
322
//
323
//					switch (requestInfo.getEligibility().getStatus()) {
324
//						case OK:
325
//							emailUtils.sendRequesterOKEmail(requestInfo);
326
//
327
//							for (Person person : personManager.getModerators())
328
//								emailUtils.sendModeratorOKEmail(requestInfo, person);
329
//							break;
330
//						case IFFY:
331
//							emailUtils.sendRequesterIFFYEmail(requestInfo);
332
//
333
//							for (Person person : personManager.getModerators())
334
//								emailUtils.sendModeratorIFFYEmail(requestInfo, person);
335
//							break;
336
//						case NONO:
337
//							break;
338
//					}
339
//
340
//					if (sendCoordinatorEmails) {
341
//						for (Person coordinator : requestInfo.getProject().getCoordinators())
342
//							emailUtils.sendCoordinatorRequestSubmittedEmail(coordinator, requestInfo);
343
//					}
344
//				} catch (MessagingException e) {
345
//					e.printStackTrace();
346
//				} catch (PersonManagerException e) {
347
//					e.printStackTrace();
348
//				} catch (Exception e) {
349
//					e.printStackTrace();
350
//				}
351
//			}
352
//		});
353

    
354
		return request;
355
	}
356

    
357
	@Override
358
	public Request submitPublisherRequest(Request request) throws PersonManagerException {
359
        request.setStatus(Request.RequestStatus.PUBLISHER_FUND_SUBMITTED);
360
        request.setSubmissiondate(new Timestamp(new Date().getTime()));
361

    
362
//		requestDAO.submitRequest(request.getId());
363

    
364
		saveRequest(request);
365

    
366
//		executorService.submit(new Runnable() {
367
//			@Override
368
//			public void run() {
369
//				RequestInfo requestInfo = null;
370
//				try {
371
//					requestInfo = getRequestInfo(request);
372
//
373
//					switch (requestInfo.getEligibility().getStatus()) {
374
//						case OK:
375
//							emailUtils.sendRequesterOKEmail(requestInfo);
376
//
377
//							for (Person person : personManager.getModerators())
378
//								emailUtils.sendModeratorOKEmail(requestInfo, person);
379
//							break;
380
//						case IFFY:
381
//							emailUtils.sendRequesterIFFYEmail(requestInfo);
382
//
383
//							for (Person person : personManager.getModerators())
384
//								emailUtils.sendModeratorIFFYEmail(requestInfo, person);
385
//							break;
386
//						case NONO:
387
//							break;
388
//					}
389
//
390
//					if (sendCoordinatorEmails) {
391
//						for (Person coordinator : requestInfo.getProject().getCoordinators())
392
//							emailUtils.sendCoordinatorRequestSubmittedEmail(coordinator, requestInfo);
393
//					}
394
//				} catch (MessagingException e) {
395
//					e.printStackTrace();
396
//				} catch (PersonManagerException e) {
397
//					e.printStackTrace();
398
//				} catch (Exception e) {
399
//					e.printStackTrace();
400
//				}
401
//			}
402
//		});
403

    
404
		return request;
405
	}
406

    
407
	@Override
408
	public void conditionallyApproveRequest(final String requestId, final String email, final String comment, String template) {
409
		User user = null;
410
		try {
411
			user = userManager.getByEmail(email);
412
		} catch (PersonManagerException e) {
413
			e.printStackTrace();
414
		}
415
		requestDAO.conditionallyApproveRequest(requestId, user, comment, template);
416

    
417
		executorService.submit(new Runnable() {
418
			@Override
419
			public void run() {
420
                Request request = getById(requestId);
421
				try {
422
					emailUtils.sendRequesterInitiallyApprovedEmail(request);
423
				} catch (MessagingException e) {
424
					e.printStackTrace();
425
				}
426
			}
427
		});
428
	}
429

    
430
	@Override
431
	public void approveRequest(final String requestId, final String email, final String comment, String template) {
432
		User user = null;
433
		try {
434
			user = userManager.getByEmail(email);
435
		} catch (PersonManagerException e) {
436
			e.printStackTrace();
437
		}
438
		requestDAO.approveRequest(requestId, user, comment, template);
439

    
440
		/*executorService.submit(new Runnable() {
441
			@Override
442
			public void run() {
443
                Request request = getById(requestId);
444

    
445
				try {
446
					emailUtils.sendRequesterApprovedEmail(request);
447
				} catch (MessagingException e) {
448
					e.printStackTrace();
449
				}
450

    
451
				if (request.getInvoice() == null) {
452
					try {
453
						emailUtils.sendRequesterInvoiceNotification(request);
454
						emailUtils.sendPublisherInvoiceNotification(request);
455
					} catch (MessagingException e) {
456
						e.printStackTrace();
457
					}
458
				} else {
459
					try {
460
						for (User user : userManager.getAccountingOfficers())
461
							emailUtils.sendAccountingRequestApprovedEmail(user, request);
462
					} catch (MessagingException e) {
463
						e.printStackTrace();
464
					}
465
				}
466
			}
467
		});*/
468
	}
469

    
470
	@Override
471
	public void rejectRequest(final String requestId, String email, String comment, String template) {
472
		User user = null;
473
		try {
474
			user = userManager.getByEmail(email);
475
		} catch (PersonManagerException e) {
476
			e.printStackTrace();
477
		}
478
		requestDAO.rejectRequest(requestId, user, comment, template);
479

    
480
		/*executorService.submit(new Runnable() {
481
			@Override
482
			public void run() {
483
                Request request = getById(requestId);
484

    
485
				try {
486
					emailUtils.sendRequesterRejectedEmail(request);
487
				} catch (MessagingException e) {
488
					e.printStackTrace();
489
				}
490
			}
491
		});*/
492
	}
493

    
494
	@Override
495
	public void processingRequest(final String requestId, String email, String comment, String template) {
496
		User user = null;
497
		try {
498
			user = userManager.getByEmail(email);
499
		} catch (PersonManagerException e) {
500
			e.printStackTrace();
501
		}
502
		requestDAO.processingRequest(requestId, user, comment, template);
503

    
504
		/*executorService.submit(new Runnable() {
505
			@Override
506
			public void run() {
507
                Request request = getById(requestId);
508

    
509
				try {
510
					for (User user : userManager.getModerators())
511
						emailUtils.sendModeratorProcessingEmail(user, request);
512

    
513
				} catch (MessagingException e) {
514
					e.printStackTrace();
515
				}
516
			}
517
		});*/
518
	}
519

    
520
	@Override
521
	public void paidRequest(final String requestId, String email, String comment, String template, float apc_paid,
522
							float transfer_cost, float other_cost, Date datePaid) {
523
		User user = null;
524
		try {
525
			user = userManager.getByEmail(email);
526
		} catch (PersonManagerException e) {
527
			e.printStackTrace();
528
		}
529

    
530
		requestDAO.paidRequest(requestId, user, comment, template, apc_paid, transfer_cost, other_cost, datePaid);
531

    
532
		/*executorService.submit(new Runnable() {
533
			@Override
534
			public void run() {
535
                Request request = getById(requestId);
536

    
537
				try {
538
					emailUtils.sendRequesterPaidEmail(request);
539
					emailUtils.sendPublisherPaidEmail(request);
540

    
541
					for (User user : userManager.getModerators())
542
						emailUtils.sendModeratorPaidEmail(user, request);
543

    
544
					if (sendEvaEmail)
545
						emailUtils.sendEvaPaidEmail(evaEmail, request);
546

    
547
				} catch (MessagingException e) {
548
					e.printStackTrace();
549
				}
550
			}
551
		});*/
552
	}
553

    
554
	@Override
555
	public void paidLibraryRequest(String requestId, String email, String comment, String template, float apc_paid, float transfer_cost, float other_cost, Date datePaid) {
556
		User user = null;
557
		try {
558
			user = userManager.getByEmail(email);
559
		} catch (PersonManagerException e) {
560
			e.printStackTrace();
561
		}
562
		requestDAO.paidLibraryRequest(requestId, user, comment, template, apc_paid, transfer_cost, other_cost, datePaid);
563

    
564
//		executorService.submit(new Runnable() {
565
//			@Override
566
//			public void run() {
567
//				RequestInfo requestInfo = getById(requestId);
568
//
569
//				try {
570
//					emailUtils.sendRequesterPaidEmail(requestInfo);
571
//					emailUtils.sendPublisherPaidEmail(requestInfo);
572
//
573
//					for (Person person : personManager.getModerators())
574
//						emailUtils.sendModeratorPaidEmail(person, requestInfo);
575
//
576
//					if (sendEvaEmail)
577
//						emailUtils.sendEvaPaidEmail(evaEmail, requestInfo);
578
//
579
//				} catch (MessagingException e) {
580
//					e.printStackTrace();
581
//				}
582
//			}
583
//		});
584
	}
585

    
586
	@Override
587
	public void paidPublisherRequest(String requestId, String email, String comment,
588
									 String template, float apc_paid, float transfer_cost, float other_cost, Date datePaid) {
589
		User user = null;
590
		try {
591
			user = userManager.getByEmail(email);
592
		} catch (PersonManagerException e) {
593
			e.printStackTrace();
594
		}
595
		requestDAO.paidPublisherRequest(requestId, user, comment, template, apc_paid, transfer_cost, other_cost, datePaid);
596

    
597
		//		executorService.submit(new Runnable() {
598
//			@Override
599
//			public void run() {
600
//				RequestInfo requestInfo = getById(requestId);
601
//
602
//				try {
603
//					emailUtils.sendRequesterPaidEmail(requestInfo);
604
//					emailUtils.sendPublisherPaidEmail(requestInfo);
605
//
606
//					for (Person person : personManager.getModerators())
607
//						emailUtils.sendModeratorPaidEmail(person, requestInfo);
608
//
609
//					if (sendEvaEmail)
610
//						emailUtils.sendEvaPaidEmail(evaEmail, requestInfo);
611
//
612
//				} catch (MessagingException e) {
613
//					e.printStackTrace();
614
//				}
615
//			}
616
//		});
617
	}
618

    
619
	@Override
620
	public void onHoldRequest(final String requestId, String email, String comment, String template) {
621
		User user = null;
622
		try {
623
			user = userManager.getByEmail(email);
624
		} catch (PersonManagerException e) {
625
			e.printStackTrace();
626
		}
627
		requestDAO.onHoldRequest(requestId, user, comment, template);
628

    
629
		/*executorService.submit(new Runnable() {
630
			@Override
631
			public void run() {
632
                Request request = getById(requestId);
633

    
634
				try {
635
					emailUtils.sendRequesterOnHoldEmail(request);
636
					emailUtils.sendPublisherOnHoldEmail(request);
637

    
638
					for (User user : userManager.getModerators())
639
						emailUtils.sendModeratorOnHoldEmail(user, request);
640
				} catch (MessagingException e) {
641
					e.printStackTrace();
642
				}
643
			}
644
		});*/
645
	}
646

    
647
	@Override
648
	public void deniedRequest(final String requestId, String email, String comment, String template) {
649
		User user = null;
650
		try {
651
			user = userManager.getByEmail(email);
652
		} catch (PersonManagerException e) {
653
			e.printStackTrace();
654
		}
655
		requestDAO.deniedRequest(requestId, user, comment, template);
656

    
657
		/*executorService.submit(new Runnable() {
658
			@Override
659
			public void run() {
660
                Request request = getById(requestId);
661

    
662
				try {
663
					emailUtils.sendRequesterDeniedEmail(request);
664
					emailUtils.sendPublisherDeniedEmail(request);
665

    
666
					for (User user : userManager.getModerators())
667
						emailUtils.sendModeratorDeniedEmail(user, request);
668
				} catch (MessagingException e) {
669
					e.printStackTrace();
670
				}
671
			}
672
		});*/
673
	}
674

    
675
	@Override
676
	public void invoiceUploaded(final String requestId, String invoiceId) {
677

    
678
		/*executorService.submit(new Runnable() {
679
			@Override
680
			public void run() {
681
                Request request = getById(requestId);
682

    
683
				if (request.getStatus() == Request.RequestStatus.CONDITIONALLY_APPROVED) {
684
					try {
685
						for (User user : userManager.getModerators())
686
							emailUtils.sendModeratorInvoiceUploaded(user, request);
687
					} catch (MessagingException e) {
688
						e.printStackTrace();
689
					}
690
				}
691
			}
692
		});*/
693
	}
694

    
695
	@Override
696
	public void uploadTransferReceipt(String requestid, String contentType, InputStream inputStream) {
697
		requestDAO.uploadBankTransferReceipt(requestid, contentType, inputStream);
698
	}
699

    
700

    
701
	public BankTransferReceipt downloadBankTransferReceipt(String requestId) throws RequestManagerException {
702
		try {
703
			return requestDAO.downloadBankTransferReceipt(requestId);
704
		} catch (EmptyResultDataAccessException e) {
705
			throw new RequestManagerException(RequestManagerException.ErrorCause.NOT_EXISTS);
706
		}
707
	}
708

    
709

    
710
	public List<CommentTemplate> getCommentTemplates(Request.RequestStatus requestStatus) {
711
		try {
712
			return requestDAO.getCommentTemplates(requestStatus);
713
		} catch (EmptyResultDataAccessException e) {
714
			return new ArrayList<CommentTemplate>();
715
		}
716
	}
717

    
718
	/*private void loadCommentPersons(RequestInfo requestInfo) throws PersonManagerException {
719
		for (Comment comment : requestInfo.getComments()) {
720
			comment.setPerson(personManager.getById(comment.getUser().getId()));
721
		}
722
	}*/
723

    
724

    
725
	@Override
726
	public Integer getActiveNumber() {
727
		return requestDAO.getActiveNumber();
728
	}
729

    
730
	@Override
731
	public Integer getPaidNumber() {
732
		return requestDAO.getPaidNumber();
733
	}
734

    
735
	@Override
736
	public Integer getNumberOfProjects() {
737
		return requestDAO.getNumberOfProjects();
738
	}
739

    
740
	@Override
741
	public Double getTotalAmount() {
742
		return requestDAO.getTotalAmount();
743
	}
744

    
745
	@Override
746
	public Double getAverageAmount() {
747
		return requestDAO.getAverageAmount();
748
	}
749

    
750
	@Override
751
	public Integer getAverageAmountPerType(PublicationType type) {
752
		return requestDAO.getAverageAmountPerType(type);
753
	}
754

    
755
	@Override
756
	public Integer getNumberOfPaidRequestsWithDOI() {
757
		return requestDAO.getNumberOfPaidRequestsWithDOI();
758
	}
759

    
760
	@Override
761
	public Integer getNumberOfApprovedRequestsWithDOI() {
762
		return requestDAO.getNumberOfApprovedRequestsWithDOI();
763
	}
764

    
765
	@Override
766
	public Integer getNumnerOfPaidPublicationsPerType(PublicationType type) {
767
		return requestDAO.getNumnerOfPaidPublicationsPerType(type);
768
	}
769

    
770
	public boolean isSendCoordinatorEmails() {
771
		return sendCoordinatorEmails;
772
	}
773

    
774
	public void setSendCoordinatorEmails(boolean sendCoordinatorEmails) {
775
		this.sendCoordinatorEmails = sendCoordinatorEmails;
776
	}
777

    
778
	public boolean isSendEvaEmail() {
779
		return sendEvaEmail;
780
	}
781

    
782
	public void setSendEvaEmail(boolean sendEvaEmail) {
783
		this.sendEvaEmail = sendEvaEmail;
784
	}
785

    
786
	public String getEvaEmail() {
787
		return evaEmail;
788
	}
789

    
790
	public void setEvaEmail(String evaEmail) {
791
		this.evaEmail = evaEmail;
792
	}
793
}
(24-24/29)