public static function retrieveOrCreate($student, $course_subject_id = null, $date, $career_school_year_id)
 {
     $student_attendance = self::retrieveByDateAndStudent($date, $student, $course_subject_id, $career_school_year_id);
     if (null != $student_attendance) {
         return $student_attendance;
     } else {
         $student_attendance = new StudentAttendance();
         $student_attendance->setStudent($student);
         $student_attendance->setDay($date);
         $student_attendance->setCourseSubjectId($course_subject_id);
         $student_attendance->setCareerSchoolYearId($career_school_year_id);
         return $student_attendance;
     }
 }
 protected function createStudentAttendance($student, $day, $course, $absenceType)
 {
     $absence = new StudentAttendance();
     $absence->setCareerSchoolYearId($course->getCareerSchoolYear()->getId());
     $absence->setStudentId($student->getId());
     $absence->setDay($day);
     $absence->setAbsenceTypeId($absenceType->getId());
     $absence->setValue($absenceType->getValue());
     $absence->save();
     return $absence;
 }