Exemple #1
0
 public function fromArray($arr, $keyType = BasePeer::TYPE_PHPNAME)
 {
     $keys = AttendancePeer::getFieldNames($keyType);
     if (array_key_exists($keys[0], $arr)) {
         $this->setStudentId($arr[$keys[0]]);
     }
     if (array_key_exists($keys[1], $arr)) {
         $this->setDatetime($arr[$keys[1]]);
     }
     if (array_key_exists($keys[2], $arr)) {
         $this->setStatus($arr[$keys[2]]);
     }
 }
Exemple #2
0
 public function executeSave()
 {
     $course_schedule = CourseSchedulePeer::retrieveByPk($this->getRequestParameter('course_schedule_id'));
     $tanggal = $this->getRequestParameter('thn') . '-' . $this->getRequestParameter('bln') . '-' . $this->getRequestParameter('tgl');
     $tgl_code = $this->getRequestParameter('tgl') . $this->getRequestParameter('bln') . $this->getRequestParameter('thn');
     $bulan = $this->getRequestParameter('bln');
     $tahun = $this->getRequestParameter('thn');
     $status = $this->getRequestParameter('status');
     if ($status) {
         foreach ($status as $stu_id => $status) {
             $stu = StudentPeer::retrieveByPk($stu_id);
             if ($status == AbsenceCourse::STATUS_PRESENT) {
                 $cr = new Criteria();
                 $cr->add(StudentAbsencePeer::STUDENT_ID, $stu_id);
                 $cr->add(StudentAbsencePeer::CLASS_GROUP_ID, $course_schedule->getClassGroupId());
                 $cr->add(StudentAbsencePeer::ACADEMIC_CALENDAR_ID, $course_schedule->getAcademicCalendarId());
                 $cr->add(StudentAbsencePeer::START, $tanggal);
                 $sa = StudentAbsencePeer::doSelectOne($cr);
                 if ($sa != null) {
                     StudentAbsencePeer::doDelete($cr);
                 }
             } else {
                 $cr = new Criteria();
                 $cr->add(StudentAbsencePeer::STUDENT_ID, $stu_id);
                 $cr->add(StudentAbsencePeer::CLASS_GROUP_ID, $course_schedule->getClassGroupId());
                 $cr->add(StudentAbsencePeer::ACADEMIC_CALENDAR_ID, $course_schedule->getAcademicCalendarId());
                 $cr->add(StudentAbsencePeer::START, $tanggal);
                 $student_absence = StudentAbsencePeer::doSelectOne($cr);
                 if ($student_absence == null) {
                     $student_absence = new StudentAbsence();
                 }
                 $student_absence->setStudentId($stu_id);
                 $student_absence->setClassGroupId($course_schedule->getClassGroupId());
                 $student_absence->setAcademicCalendarId($course_schedule->getAcademicCalendarId());
                 $student_absence->setStatus($status);
                 $student_absence->setStart($tanggal);
                 $student_absence->setEnd($tanggal);
                 $student_absence->setMonth($bulan);
                 $student_absence->setYear($tahun);
                 $student_absence->save();
             }
         }
     }
     $cd = new Criteria();
     $cd->add(AttendanceClassPeer::ACADEMIC_CALENDAR_ID, $course_schedule->getAcademicCalendarId());
     $cd->add(AttendanceClassPeer::CLASS_GROUP_ID, $course_schedule->getClassGroupId());
     $cd->add(AttendanceClassPeer::DATETIME, $tanggal);
     $class_attend = AttendanceClassPeer::doSelectOne($cd);
     if ($class_attend == null) {
         $class_attend = new AttendanceClass();
     }
     $class_attend->setClassGroupId($course_schedule->getClassGroupId());
     $class_attend->setAcademicCalendarId($course_schedule->getAcademicCalendarId());
     $class_attend->setDatetime($tanggal);
     $class_attend->save();
     $co = new Criteria();
     $co->add(VAttendancePeer::DATETIME, $tanggal);
     $co->add(VAttendancePeer::CLASS_GROUP_ID, $course_schedule->getClassGroupId());
     $attends = VAttendancePeer::doSelect($co);
     $student_codes = array();
     foreach ($attends as $attend) {
         $student_codes[] = $attend->getFingercode();
     }
     $cm = new Criteria();
     $cm->add(AttendancePeer::STUDENT_ID, $student_codes, Criteria::IN);
     AttendancePeer::doDelete($cm);
     return $this->redirect('course_absence/listShow?course_id=' . $course_schedule->getId());
 }
 public static function doValidate(Attendance $obj, $cols = null)
 {
     $columns = array();
     if ($cols) {
         $dbMap = Propel::getDatabaseMap(AttendancePeer::DATABASE_NAME);
         $tableMap = $dbMap->getTable(AttendancePeer::TABLE_NAME);
         if (!is_array($cols)) {
             $cols = array($cols);
         }
         foreach ($cols as $colName) {
             if ($tableMap->containsColumn($colName)) {
                 $get = 'get' . $tableMap->getColumn($colName)->getPhpName();
                 $columns[$colName] = $obj->{$get}();
             }
         }
     } else {
     }
     $res = BasePeer::doValidate(AttendancePeer::DATABASE_NAME, AttendancePeer::TABLE_NAME, $columns);
     if ($res !== true) {
         $request = sfContext::getInstance()->getRequest();
         foreach ($res as $failed) {
             $col = AttendancePeer::translateFieldname($failed->getColumn(), BasePeer::TYPE_COLNAME, BasePeer::TYPE_PHPNAME);
             $request->setError($col, $failed->getMessage());
         }
     }
     return $res;
 }