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 function delete($con = null) { if ($this->isDeleted()) { throw new PropelException("This object has already been deleted."); } if ($con === null) { $con = Propel::getConnection(AttendancePeer::DATABASE_NAME); } try { $con->begin(); AttendancePeer::doDelete($this, $con); $this->setDeleted(true); $con->commit(); } catch (PropelException $e) { $con->rollback(); throw $e; } }