public function executeEditAbsence() { $employee_id = sfContext::getInstance()->getUser()->getAttribute('user_id', null, 'bo'); $employee = EmployeePeer::retrieveByPK($employee_id); $this->forward404Unless($employee); $counseling_id = $this->getRequestParameter('counseling_id'); $counseling = CounselingPeer::retrieveByPK($counseling_id); $this->forward404Unless($counseling); $accal_id = $this->getRequestParameter('accal_id'); $academic_calendar = AcademicCalendarPeer::retrieveByPK($accal_id); $this->forward404Unless($academic_calendar); $student_id = $this->getRequestParameter('student_id'); $student = StudentPeer::retrieveByPk($student_id); $this->forward404Unless($student); $date = $this->getRequestParameter('date'); $status = $this->getRequestParameter('status'); $c = new Criteria(); $c->add(StudentAbsencePeer::STUDENT_ID, $student->getId()); $c->add(StudentAbsencePeer::ACADEMIC_CALENDAR_ID, $academic_calendar->getId()); $c->add(StudentAbsencePeer::START, $date); $c->addGroupByColumn(StudentAbsencePeer::START); $c->addGroupByColumn(StudentAbsencePeer::STUDENT_ID); $c->addGroupByColumn(StudentAbsencePeer::ACADEMIC_CALENDAR_ID); $c->addGroupByColumn(StudentAbsencePeer::CLASS_GROUP_ID); $student_absence = StudentAbsencePeer::doSelectOne($c); $actions = array(array('name' => 'save', 'type' => 'submit', 'options' => array('class' => 'save_button', 'onclick' => "action_type.value=this.value"))); array_push($actions, array('name' => 'delete', 'url' => 'counseling_sd/deleteAbsence?date=' . $date . '&student_id=' . $student->getId() . '&counseling_id=' . $counseling->getId() . '&accal_id=' . $academic_calendar->getId(), 'color' => 'red')); array_push($actions, array('name' => 'cancel', 'url' => 'counseling_sd/listAbsence?student_id=' . $student->getId() . '&counseling_id=' . $counseling->getId() . '&accal_id=' . $academic_calendar->getId(), 'color' => 'white')); $this->actions = $actions; $this->type = 'edit'; $this->counseling = $counseling; $this->date = $date; $this->counseling_id = $counseling_id; $this->student = $student; $this->employee = $employee; $this->academic_calendar = $academic_calendar; $this->status = $status; $this->student_absence = $student_absence; $this->subtitle = $student->toString() . ' - id:' . $student->getId(); $actions2 = array(array('name' => '<span>' . $academic_calendar->toString() . '</span>', 'url' => 'counseling_new/listStudent?accal_id=' . $academic_calendar->getId() . '&counseling_id=' . $counseling->getId(), 'color' => 'sky')); array_push($actions2, array('name' => '<span>Absence Recapt</span>', 'url' => 'counseling_sd/listAbsence?student_id=' . $student->getId() . '&counseling_id=' . $counseling->getId() . '&accal_id=' . $academic_calendar->getId(), 'color' => 'sun', 'type' => 'direct')); $this->actions2 = $actions2; }
public function executeUpdate() { $i18n = new sfI18N(); $i18n->initialize($this->getContext()); $i18n->setCulture($this->getUser()->getCulture()); $action_i18n = $i18n->globalMessageFormat->format('save as new'); $action_type = $this->getRequestParameter('action_type'); $employee_id = sfContext::getInstance()->getUser()->getAttribute('user_id', null, 'bo'); $employee = EmployeePeer::retrieveByPK($employee_id); $this->forward404Unless($employee); if ($action_type == $action_i18n || !$this->getRequestParameter('id')) { $class_agenda = new ClassAgenda(); } else { $class_agenda = ClassAgendaPeer::retrieveByPk($this->getRequestParameter('id')); $this->forward404Unless($class_agenda); } $class_agenda->setId($this->getRequestParameter('id')); $class_agenda->setCourseScheduleId($this->getRequestParameter('course_schedule_id')); $class_agenda->setDetail($this->getRequestParameter('detail')); if ($this->getRequestParameter('date')) { $class_agenda->setDate($this->getRequestParameter('date')); } $class_agenda->setStatus($this->getRequestParameter('status')); $class_agenda->setSubjectGradingId($this->getRequestParameter('subject_grading_id')); $class_agenda->setMeetingPoint($this->getRequestParameter('meeting_point')); $class_agenda->setActionType($this->getRequestParameter('action_type')); $class_agenda->setDay($this->getRequestParameter('day')); if ($this->getRequestParameter('class_group_id')) { $class_agenda->setClassGroupId($this->getRequestParameter('class_group_id')); } else { $cs = CourseSchedulePeer::retrieveByPk($this->getRequestParameter('course_schedule_id')); $this->forward404Unless($cs); $class_agenda->setClassGroupId($cs->getClassGroupId()); } $class_agenda->setDescription($this->getRequestParameter('description')); $class_agenda->save(); $status = $this->getRequestParameter('status'); if ($status) { foreach ($status as $stu_id => $status) { $c = new Criteria(); $c->add(StudentAbsencePeer::ID, $stu_id); $g = StudentAbsencePeer::doSelectOne($c); if ($g == null) { $g = new StudentAbsence(); } $g->setId($stu_id); $g->setStatus($status); $g->save(); } } return $this->forward('agenda', 'list'); #return $this->redirect('agenda/list'); }
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()); }
</td> <td style="text-align: center;"><b><?php echo $student->getCode() ? $student->getCode() : '-'; ?> </b></td> <td><b><?php echo $student->getName() ? $student->getName() : '-'; ?> <b></td> <?php $c = new Criteria(); $c->add(StudentAbsencePeer::STUDENT_ID, $student->getId()); $c->add(StudentAbsencePeer::CLASS_GROUP_ID, $course_schedule->getClassGroupId()); $c->add(StudentAbsencePeer::ACADEMIC_CALENDAR_ID, $course_schedule->getAcademicCalendarId()); $c->add(StudentAbsencePeer::START, $tanggal); $absen = StudentAbsencePeer::doSelectOne($c); if ($absen) { ?> <td style="text-align: center;"><?php echo radiobutton_tag('status[' . $student->getId() . ']', 1, $absen->getStatus() == '1'); ?> </td> <td style="text-align: center;"><?php echo radiobutton_tag('status[' . $student->getId() . ']', 5, $absen->getStatus() == '5'); ?> </td> <td style="text-align: center;"><?php echo radiobutton_tag('status[' . $student->getId() . ']', 6, $absen->getStatus() == '6'); ?> </td>
echo $student->getCode2() ? link_to_remote($student->getCode2(), array('url' => 'course_absence/showStu?id=' . $student->getId() . '&attend_id=' . $attendance_class->getId() . '&course_id=' . $course_schedule->getId() . '&time=' . $attendance_class->getDatetime() . '&status=' . $status, 'update' => 'content', 'script' => 'true', 'before' => "this.blur();showIndicator('content', 'snakebig_black');", 'complete' => "hideIndicator()"), array('class' => 'white')) : '-'; ?> </td> <td><?php echo $student->getName() ? link_to_remote($student->getName(), array('url' => 'course_absence/showStu?id=' . $student->getId() . '&attend_id=' . $attendance_class->getId() . '&course_id=' . $course_schedule->getId() . '&time=' . $attendance_class->getDatetime() . '&status=' . $status, 'update' => 'content', 'script' => 'true', 'before' => "this.blur();showIndicator('content', 'snakebig_black');", 'complete' => "hideIndicator()"), array('class' => 'white')) : '-'; ?> </td> <td style="text-align: center;"> <?php $c = new Criteria(); $c->add(StudentAbsencePeer::STUDENT_ID, $student->getId()); $c->add(StudentAbsencePeer::ACADEMIC_CALENDAR_ID, $course_schedule->getAcademicCalendarId()); $c->add(StudentAbsencePeer::START, $tanggal); $student_absence = StudentAbsencePeer::doSelectOne($c); if ($student_absence) { if ($student_absence->getStatus() == AbsenceCourse::STATUS_PRESENT) { echo "<font class='level_green'>" . __('Hadir') . "</font>"; } elseif ($student_absence->getStatus() == AbsenceCourse::STATUS_ABSENCE) { echo "<font class='level_red'>" . __('Tanpa Keterangan') . "</font>"; } elseif ($student_absence->getStatus() == AbsenceCourse::STATUS_PERMIT) { echo "<font class='level_yellow'>" . __('Izin') . "</font>"; } elseif ($student_absence->getStatus() == AbsenceCourse::STATUS_SICK) { echo "<font class='level_yellow'>" . __('Sakit') . "</font>"; } } else { echo "<font class='level_green'>" . __('Hadir') . "</font>"; } ?> </td>