public MarkSheet rectifyEnrolmentEvaluation(MarkSheet markSheet, EnrolmentEvaluation enrolmentEvaluation,
Date evaluationDate, Grade grade, String reason, Person person) {
if (markSheet == null || evaluationDate == null || grade.isEmpty()) {
throw new DomainException("error.markSheet.invalid.arguments");
}
if (!markSheet.getEnrolmentEvaluationsSet().contains(enrolmentEvaluation)) {
throw new DomainException("error.no.student.in.markSheet");
}
if (markSheet.isNotConfirmed()) {
throw new DomainException("error.markSheet.must.be.confirmed");
}
if (enrolmentEvaluation.getRectification() != null) {
throw new DomainException("error.markSheet.student.alreadyRectified", enrolmentEvaluation.getEnrolment()
.getStudentCurricularPlan().getRegistration().getNumber().toString());
}
enrolmentEvaluation.setEnrolmentEvaluationState(EnrolmentEvaluationState.TEMPORARY_OBJ);
// enrolmentEvaluation.setWhenDateTime(new DateTime());