private void addEtiRow(final Spreadsheet spreadsheet, final Degree degree, final CurricularCourse curricularCourse,
final Enrolment enrolment, final ExecutionSemester executionSemester,
final ExecutionSemester executionSemesterForPreviousEnrolmentCount) {
final StudentCurricularPlan studentCurricularPlan = enrolment.getStudentCurricularPlan();
final Registration registration = studentCurricularPlan.getRegistration();
final Student student = registration.getStudent();
final Row row = spreadsheet.addRow();
row.setCell(registration.getNumber());
setDegreeCells(row, registration.getDegree());
row.setCell(executionSemester.getSemester().toString());
row.setCell(executionSemester.getExecutionYear().getYear());
row.setCell(curricularCourse.getName());
setDegreeCells(row, degree);
row.setCell(enrolment.getEctsCredits().toString().replace('.', ','));
row.setCell(enrolment.isApproved() ? EnrollmentState.APROVED.getDescription() : enrolment.getEnrollmentState()
.getDescription());
row.setCell(enrolment.getEnrolmentEvaluationType().getDescription());
row.setCell(enrolment.getGradeValue());
final EnrolmentEvaluation normal = enrolment.getLatestFinalNormalEnrolmentEvaluation();
row.setCell(normal == null ? "" : normal.getGradeValue());
final EnrolmentEvaluation special = enrolment.getLatestFinalSpecialSeasonEnrolmentEvaluation();
row.setCell(special == null ? "" : special.getGradeValue());
final EnrolmentEvaluation improvement = enrolment.getLatestFinalImprovementEnrolmentEvaluation();
row.setCell(improvement == null ? "" : improvement.getGradeValue());
row.setCell(registration.getRegistrationProtocol().getCode());
row.setCell(countPreviousEnrolments(curricularCourse, executionSemesterForPreviousEnrolmentCount, student));
Attends attends = null; // enrolment.getAttendsFor(executionSemester);
for (final Attends a : enrolment.getAttendsSet()) {
if (a.isFor(executionSemester)) {
if (attends == null) {