final DegreeCurricularPlan degreeCurricularPlan = FenixFramework.getDomainObject(dcpId);
if (degreeCurricularPlan == null) {
throw new FenixServiceException("error.createOldCurricularCourse.no.degreeCurricularPlan");
}
final CourseGroup courseGroup = (CourseGroup) FenixFramework.getDomainObject(cgId);
if (courseGroup == null) {
throw new FenixServiceException("error.createOldCurricularCourse.no.courseGroup");
}
final CurricularCourse curricularCourse =
degreeCurricularPlan.createCurricularCourse(name, code, acronym, Boolean.TRUE, CurricularStage.APPROVED);
// hack to use dcp method
curricularCourse.setDegreeCurricularPlan(null);
curricularCourse.setNameEn(nameEn);
curricularCourse.setWeigth(weigth);
curricularCourse.setEnrollmentWeigth(enrolmentWeigth);
curricularCourse.setMinimumValueForAcumulatedEnrollments(minimumValueForAcumulatedEnrollments);
curricularCourse.setMaximumValueForAcumulatedEnrollments(maximumValueForAcumulatedEnrollments);
curricularCourse.setCredits(credits);
curricularCourse.setEctsCredits(ectsCredits);
curricularCourse.setType(CurricularCourseType.NORMAL_COURSE);
curricularCourse.setGradeScale(gradeScale);
final CurricularPeriod curricularPeriod = getCurricularPeriod(degreeCurricularPlan, year, semester);
final ExecutionSemester beginExecutionPeriod = FenixFramework.getDomainObject(beginExecutionPeriodId);
final ExecutionSemester endExecutionPeriod = FenixFramework.getDomainObject(endExecutionPeriodId);
courseGroup.addContext(curricularCourse, curricularPeriod, beginExecutionPeriod, endExecutionPeriod);
}