예제 #1
0
  public BigDecimal getNumberOfApprovedEctsOneYearAgo() {
    ExecutionYear oneYearAgo = getForExecutionYear().getPreviousExecutionYear();
    BigDecimal result = BigDecimal.ZERO;

    if (student == null) {
      return BigDecimal.ZERO;
    }

    for (final Registration registration : student.getRegistrationsSet()) {

      if (registration.isBolonha() && registration.hasAnyEnrolmentsIn(oneYearAgo)) {
        result =
            result
                .add(
                    calculateApprovedECTS(
                        registration
                            .getLastStudentCurricularPlan()
                            .getAprovedEnrolmentsInExecutionPeriod(
                                oneYearAgo.getFirstExecutionPeriod())))
                .add(
                    calculateApprovedECTS(
                        registration
                            .getLastStudentCurricularPlan()
                            .getAprovedEnrolmentsInExecutionPeriod(
                                oneYearAgo.getLastExecutionPeriod())));
      }
    }

    return result;
  }
예제 #2
0
  public static Collection<ExecutionYear> getEnrolmentsExecutionYears(final Student student) {
    Set<ExecutionYear> executionYears = new HashSet<ExecutionYear>();
    for (final Registration registration : student.getRegistrationsSet()) {
      if (RegistrationStateType.CANCELED.equals(registration.getLastActiveState())) {
        continue;
      }

      if (RegistrationStateType.TRANSITION.equals(registration.getLastActiveState())) {
        continue;
      }

      executionYears.addAll(registration.getEnrolmentsExecutionYears());
    }

    return executionYears;
  }
예제 #3
0
  public BigDecimal getNumberOfEnrolledEctsOneYearAgo() {
    ExecutionYear oneYearAgo = getForExecutionYear().getPreviousExecutionYear();
    BigDecimal result = BigDecimal.ZERO;

    if (student == null) {
      return BigDecimal.ZERO;
    }

    for (final Registration registration : student.getRegistrationsSet()) {
      if (registration.isBolonha() && registration.hasAnyEnrolmentsIn(oneYearAgo)) {
        result = result.add(new BigDecimal(getEnrolmentsEctsCredits(registration, oneYearAgo)));
      }
    }

    return result;
  }
예제 #4
0
 private String getDegrees(final Person person) {
   final StringBuilder stringBuilder = new StringBuilder();
   final Student student = person.getStudent();
   if (student != null) {
     final Set<String> names = new TreeSet<String>();
     for (final Registration registration : student.getRegistrationsSet()) {
       final Degree degree = registration.getDegree();
       names.add(degree.getSigla());
     }
     for (final String name : names) {
       if (stringBuilder.length() > 0) {
         stringBuilder.append(", ");
       }
       stringBuilder.append(name);
     }
   }
   return stringBuilder.toString();
 }
예제 #5
0
  public Integer getCountNumberOfDegreeChanges() {
    int numberOfDegreeChanges = 0;

    if (student == null) {
      return 0;
    }

    List<Registration> registrations = new ArrayList<Registration>(student.getRegistrationsSet());
    Collections.sort(registrations, Registration.COMPARATOR_BY_START_DATE);
    for (final Registration iter : registrations) {
      final SortedSet<RegistrationState> states =
          new TreeSet<RegistrationState>(RegistrationState.DATE_COMPARATOR);
      states.addAll(iter.getRegistrationStates(RegistrationStateType.INTERNAL_ABANDON));
      if (!states.isEmpty()) {
        numberOfDegreeChanges++;
      }
    }

    return numberOfDegreeChanges;
  }