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]]); } }
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; }