public static function doSelectOne(Criteria $criteria, $con = null) { $critcopy = clone $criteria; $critcopy->setLimit(1); $objects = VAttendancePeer::doSelect($critcopy, $con); if ($objects) { return $objects[0]; } return null; }
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()); }
<?php use_helper('Object', 'Validation', 'myHelper'); echo include_partial('global/tab', array('actions2' => $actions2)); echo form_remote_tag(array('url' => 'course_absence/update', 'update' => 'content', 'script' => 'true', 'before' => "this.blur();showIndicator('content', 'snakebig_black');", 'complete' => "hideIndicator()"), 'name=edit_form'); echo include_partial('global/title4', array('type' => 'edit', 'title' => __('Absensi Kelas'), 'actions' => $actions, 'subtitle' => $subtitle . ($sf_request->hasErrors() ? '<div class=form_error>* ' . __('_FORM_HAS_ERROR_') . '</div>' : ''))); echo input_hidden_tag('action_type', ''); echo input_hidden_tag('course_schedule_id', $course_schedule->getId()); echo input_hidden_tag('employee_id', $employee->getId()); echo input_hidden_tag('filter_class', $filter_class); echo input_hidden_tag('filter_subject', $filter_subject); $c = new Criteria(); $c->add(VAttendancePeer::CLASS_GROUP_ID, $course_schedule->getClassGroupId()); $c->add(VAttendancePeer::DATETIME, $tanggal); $sas = VAttendancePeer::doSelect($c); $stu_attendance = array(); if (count($sas)) { foreach ($sas as $sa) { $stu_attendance[$sa->getStudentId()] = (array_key_exists($sa->getStudentId(), $stu_attendance) ? $stu_attendance[$sa->getStudentId()] : 0) + 1; } } $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); $confirms = AttendanceClassPeer::doSelect($cd); $cm = new Criteria(); $cm->add(StudentAbsencePeer::ACADEMIC_CALENDAR_ID, $course_schedule->getAcademicCalendarId()); $cm->add(StudentAbsencePeer::START, $tanggal); $cm->addGroupByColumn(StudentAbsencePeer::START); $cm->addGroupByColumn(StudentAbsencePeer::STUDENT_ID);