예제 #1
0
 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;
 }
예제 #2
0
 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');
 }
예제 #3
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());
 }
예제 #4
0
</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>
예제 #5
0
        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>