private static Collection<Person> getPeopleToProcess() { final Set<Person> people = new HashSet<Person>(); final LocalDate today = new LocalDate(); final ExpenditureTrackingSystem instance = ExpenditureTrackingSystem.getInstance(); for (final Authorization authorization : instance.getAuthorizationsSet()) { if (authorization.isValidFor(today)) { final Person person = authorization.getPerson(); if (person.getOptions().getReceiveNotificationsByEmail()) { people.add(person); } } } for (final RoleType roleType : RoleType.values()) { addPeopleWithRole(people, roleType); } for (final AccountingUnit accountingUnit : instance.getAccountingUnitsSet()) { addPeople(people, accountingUnit.getPeopleSet()); addPeople(people, accountingUnit.getProjectAccountantsSet()); addPeople(people, accountingUnit.getResponsiblePeopleSet()); addPeople(people, accountingUnit.getResponsibleProjectAccountantsSet()); addPeople(people, accountingUnit.getTreasuryMembersSet()); } final PaymentProcessYear paymentProcessYear = PaymentProcessYear.getPaymentProcessYearByYear(Calendar.getInstance().get(Calendar.YEAR)); addRequestors(people, paymentProcessYear); if (today.getMonthOfYear() == Month.JANUARY) { final PaymentProcessYear previousYear = PaymentProcessYear.getPaymentProcessYearByYear( Calendar.getInstance().get(Calendar.YEAR) - 1); addRequestors(people, previousYear); } return people; }
private static void addRequestors( final Set<Person> people, final PaymentProcessYear paymentProcessYear) { for (final PaymentProcess paymentProcess : paymentProcessYear.getPaymentProcessSet()) { if (paymentProcess.getRequest() != null) { final Person person = paymentProcess.getRequestor(); if (person != null && person.getOptions().getReceiveNotificationsByEmail()) { people.add(person); } } } }