public function executeDeleteAbsence() { $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'); $c = new Criteria(); $c->add(StudentAbsencePeer::STUDENT_ID, $student->getId()); $c->add(StudentAbsencePeer::ACADEMIC_CALENDAR_ID, $academic_calendar->getId()); $c->add(StudentAbsencePeer::CLASS_GROUP_ID, $counseling->getClassGroupId()); $c->add(StudentAbsencePeer::START, $date); $student_absences = StudentAbsencePeer::doSelect($c); foreach ($student_absences as $student_absence) { $student_absence->delete(); } return $this->redirect('counseling_sd/listAbsence?student_id=' . $student->getId() . '&counseling_id=' . $counseling->getId() . '&accal_id=' . $academic_calendar->getId()); }
public function filterAbsence($c, $filters) { $filters_key = array_keys($filters); foreach ($filters_key as $key) { $value = $filters[$key]; if ($value == '' || $value == null) { continue; } $column = StudentAbsencePeer::getTableMap()->getColumn($key); $name = $column->getFullyQualifiedName(); $creoleType = $column->getCreoleType(); if ($creoleType == CreoleTypes::TIMESTAMP) { $from = $value['from']; $to = $value['to']; if ($from != '' && $from != null) { $c->add($name, $from, Criteria::GREATER_EQUAL); } if ($to != '' && $to != null) { $c->add($name, $to, Criteria::LESS_EQUAL); } } else { if ($creoleType == CreoleTypes::INTEGER) { $c->add($name, $value, Criteria::EQUAL); } else { if ($creoleType == CreoleTypes::VARCHAR || $creoleType == CreoleTypes::CHAR) { $c->add($name, "%{$value}%", Criteria::LIKE); } } } } }
public function executeGetListStudent() { $class_id = $this->getRequestParameter('class_group_id'); $class_group = ClassGroupPeer::retrieveByPK($class_id); $this->forward404Unless($class_group); $this->class_group = $class_group; $date = $this->getRequestParameter('date'); $student_ids = array(); $c = new Criteria(); $c->add(StudentAbsencePeer::START, $date); $stu_absence = StudentAbsencePeer::doSelect($c); foreach ($stu_absence as $sa) { $student_ids[] = $sa->getStudentId(); } $c = new Criteria(); $c->add(StudentPeer::CLASS_GROUP_ID, $class_group->getId(), Criteria::IN); $c->add(StudentPeer::ID, $student_ids, Criteria::NOT_IN); $c->addAscendingOrderByColumn(StudentPeer::NAME); $this->sortStudent($c); if ($this->getRequest()->hasParameter('filters')) { $filters = $this->getRequestParameter('filters'); if ($filters == 'clear') { $this->filters = null; } else { $defined_filter = false; foreach ($filters as $f) { if (is_array($f)) { if (strlen($f['from']) > 0 || strlen($f['to']) > 0) { $defined_filter = true; break; } } else { if ($f != null && $f != '') { $defined_filter = true; break; } } } if ($defined_filter) { $this->filters = $filters; $this->filterStudent($c, $this->getRequestParameter('filters')); } } } $rpp = $this->getRequestParameter('max_per_page', $this->getUser()->getAttribute('max_per_page', ParamsPeer::retrieveByCode('row_per_page')->getValue(), 'student')); $this->getUser()->setAttribute('max_per_page', $rpp, 'student'); $pager = new sfPropelPager('Student', $rpp); $pager->setCriteria($c); $page = $this->getRequestParameter('page', $this->getUser()->getAttribute('page', 1, 'student')); $this->getUser()->setAttribute('page', $page, 'student'); $pager->setPage($page); $pager->init(); $this->pager = $pager; $actions2 = array(array('name' => 'filter', 'color' => 'white')); $this->actions2 = $actions2; }
public function getStudentAbsencesJoinStudent($criteria = null, $con = null) { include_once 'lib/model/om/BaseStudentAbsencePeer.php'; if ($criteria === null) { $criteria = new Criteria(); } elseif ($criteria instanceof Criteria) { $criteria = clone $criteria; } if ($this->collStudentAbsences === null) { if ($this->isNew()) { $this->collStudentAbsences = array(); } else { $criteria->add(StudentAbsencePeer::ACADEMIC_CALENDAR_ID, $this->getId()); $this->collStudentAbsences = StudentAbsencePeer::doSelectJoinStudent($criteria, $con); } } else { $criteria->add(StudentAbsencePeer::ACADEMIC_CALENDAR_ID, $this->getId()); if (!isset($this->lastStudentAbsenceCriteria) || !$this->lastStudentAbsenceCriteria->equals($criteria)) { $this->collStudentAbsences = StudentAbsencePeer::doSelectJoinStudent($criteria, $con); } } $this->lastStudentAbsenceCriteria = $criteria; return $this->collStudentAbsences; }
public function executeDeleteByEmployee() { $class_agenda = ClassAgendaPeer::retrieveByPK($this->getRequestParameter('agenda_id')); $this->forward404Unless($class_agenda); $employee_id = sfContext::getInstance()->getUser()->getAttribute('user_id', null, 'bo'); $employee = EmployeePeer::retrieveByPK($employee_id); $this->forward404Unless($employee); $this->employee = $employee; $student_absence = StudentAbsencePeer::retrieveByPk($this->getRequestParameter('id')); $this->forward404Unless($student_absence); $ref_error = 0; foreach ($student_absence->getRefCountMethods() as $ref) { $method = "count" . $ref['affix']; $count = $student_absence->{$method}(); if ($count > 0) { ++$ref_error; $this->getRequest()->setError('leave/deleteByEmployee/' . sfInflector::camelize($ref['table']), $count); } } if ($ref_error > 0) { $this->getRequest()->setError('leave/deleteByEmployee', '_ERR_DELETE_ (' . $student_absence->toString() . ' - id:' . $student_absence->getId() . ')'); } else { $student_absence->delete(); } return $this->redirect('leave/listByEmployee?agenda_id=' . $class_agenda->getId()); }
public function fromArray($arr, $keyType = BasePeer::TYPE_PHPNAME) { $keys = StudentAbsencePeer::getFieldNames($keyType); if (array_key_exists($keys[0], $arr)) { $this->setId($arr[$keys[0]]); } if (array_key_exists($keys[1], $arr)) { $this->setStudentId($arr[$keys[1]]); } if (array_key_exists($keys[2], $arr)) { $this->setAcademicCalendarId($arr[$keys[2]]); } if (array_key_exists($keys[3], $arr)) { $this->setStatus($arr[$keys[3]]); } if (array_key_exists($keys[4], $arr)) { $this->setStart($arr[$keys[4]]); } if (array_key_exists($keys[5], $arr)) { $this->setEnd($arr[$keys[5]]); } if (array_key_exists($keys[6], $arr)) { $this->setHoliday($arr[$keys[6]]); } if (array_key_exists($keys[7], $arr)) { $this->setTotalDays($arr[$keys[7]]); } if (array_key_exists($keys[8], $arr)) { $this->setClassGroupId($arr[$keys[8]]); } if (array_key_exists($keys[9], $arr)) { $this->setDetail($arr[$keys[9]]); } if (array_key_exists($keys[10], $arr)) { $this->setMonth($arr[$keys[10]]); } if (array_key_exists($keys[11], $arr)) { $this->setYear($arr[$keys[11]]); } }
</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>
public function getStudentAbsence($con = null) { include_once 'lib/model/om/BaseStudentAbsencePeer.php'; if ($this->aStudentAbsence === null && $this->student_absence_id !== null) { $this->aStudentAbsence = StudentAbsencePeer::retrieveByPK($this->student_absence_id, $con); } return $this->aStudentAbsence; }
public function filterAbsence($c, $filters) { $filters_key = array_keys($filters); foreach ($filters_key as $key) { $value = $filters[$key]; if ($value == '' || $value == null) { continue; } if ($key == 'DEPARTMENT_ID') { $c->addJoin(DepartmentPeer::ID, AcademicCalendarPeer::DEPARTMENT_ID); $c->addJoin(StudentPeer::ACADEMIC_CALENDAR_ID, AcademicCalendarPeer::ID); $c->addJoin(StudentAbsencePeer::STUDENT_ID, StudentPeer::ID); $column = DepartmentPeer::getTableMap()->getColumn('ID'); } elseif ($key == 'CODE_CLASS') { $c->addJoin(StudentAbsencePeer::CLASS_GROUP_ID, ClassGroupPeer::ID); $column = ClassGroupPeer::getTableMap()->getColumn('NAME'); } elseif ($key == 'CODE') { $c->addJoin(StudentAbsencePeer::STUDENT_ID, StudentPeer::ID); $column = StudentPeer::getTableMap()->getColumn('CODE'); } elseif ($key == 'NAME') { $c->addJoin(StudentAbsencePeer::STUDENT_ID, StudentPeer::ID); $column = StudentPeer::getTableMap()->getColumn('NAME'); } else { $column = StudentAbsencePeer::getTableMap()->getColumn($key); } $name = $column->getFullyQualifiedName(); $creoleType = $column->getCreoleType(); if ($creoleType == CreoleTypes::TIMESTAMP) { $c->add($name, $value, Criteria::LIKE); } else { if ($creoleType == CreoleTypes::DATE) { $c->add($name, $value, Criteria::LIKE); } else { if ($creoleType == CreoleTypes::INTEGER) { $c->add($name, $value, Criteria::EQUAL); } else { if ($creoleType == CreoleTypes::VARCHAR) { $c->add($name, "%{$value}%", Criteria::LIKE); } } } } } }
public function executeDeleteAbsence() { $course_schedule = CourseSchedulePeer::retrieveByPk($this->getRequestParameter('course_id')); $this->forward404Unless($course_schedule); $attendance_class = AttendanceClassPeer::retrieveByPk($this->getRequestParameter('id')); $this->forward404Unless($attendance_class); $tanggal = $this->getRequestParameter('time'); $c = new Criteria(); $c->add(StudentAbsencePeer::ACADEMIC_CALENDAR_ID, $course_schedule->getAcademicCalendarId()); $c->add(StudentAbsencePeer::CLASS_GROUP_ID, $course_schedule->getClassGroupId()); $c->add(StudentAbsencePeer::START, $tanggal); $absences = StudentAbsencePeer::doSelect($c); foreach ($absences as $absence) { $absence->delete(); } $attendance_class->delete(); return $this->redirect('course_absence/listShow?course_id=' . $course_schedule->getId()); }
public static function doSelectJoinAllExceptClassAgenda(Criteria $c, $con = null) { $c = clone $c; if ($c->getDbName() == Propel::getDefaultDB()) { $c->setDbName(self::DATABASE_NAME); } ClassAbsencePeer::addSelectColumns($c); $startcol2 = ClassAbsencePeer::NUM_COLUMNS - ClassAbsencePeer::NUM_LAZY_LOAD_COLUMNS + 1; StudentAbsencePeer::addSelectColumns($c); $startcol3 = $startcol2 + StudentAbsencePeer::NUM_COLUMNS; $c->addJoin(ClassAbsencePeer::STUDENT_ABSENCE_ID, StudentAbsencePeer::ID); $rs = BasePeer::doSelect($c, $con); $results = array(); while ($rs->next()) { $omClass = ClassAbsencePeer::getOMClass(); $cls = Propel::import($omClass); $obj1 = new $cls(); $obj1->hydrate($rs); $omClass = StudentAbsencePeer::getOMClass(); $cls = Propel::import($omClass); $obj2 = new $cls(); $obj2->hydrate($rs, $startcol2); $newObject = true; for ($j = 0, $resCount = count($results); $j < $resCount; $j++) { $temp_obj1 = $results[$j]; $temp_obj2 = $temp_obj1->getStudentAbsence(); if ($temp_obj2->getPrimaryKey() === $obj2->getPrimaryKey()) { $newObject = false; $temp_obj2->addClassAbsence($obj1); break; } } if ($newObject) { $obj2->initClassAbsences(); $obj2->addClassAbsence($obj1); } $results[] = $obj1; } return $results; }
public static function retrieveByPKs($pks, $con = null) { if ($con === null) { $con = Propel::getConnection(self::DATABASE_NAME); } $objs = null; if (empty($pks)) { $objs = array(); } else { $criteria = new Criteria(); $criteria->add(StudentAbsencePeer::ID, $pks, Criteria::IN); $objs = StudentAbsencePeer::doSelect($criteria, $con); } return $objs; }
public static function doSelectJoinAllExceptEmployee(Criteria $c, $con = null) { $c = clone $c; if ($c->getDbName() == Propel::getDefaultDB()) { $c->setDbName(self::DATABASE_NAME); } ClassAgendaPeer::addSelectColumns($c); $startcol2 = ClassAgendaPeer::NUM_COLUMNS - ClassAgendaPeer::NUM_LAZY_LOAD_COLUMNS + 1; CourseSchedulePeer::addSelectColumns($c); $startcol3 = $startcol2 + CourseSchedulePeer::NUM_COLUMNS; ClassSessionPeer::addSelectColumns($c); $startcol4 = $startcol3 + ClassSessionPeer::NUM_COLUMNS; SubjectGradingPeer::addSelectColumns($c); $startcol5 = $startcol4 + SubjectGradingPeer::NUM_COLUMNS; StudentPeer::addSelectColumns($c); $startcol6 = $startcol5 + StudentPeer::NUM_COLUMNS; StudentAbsencePeer::addSelectColumns($c); $startcol7 = $startcol6 + StudentAbsencePeer::NUM_COLUMNS; ClassGroupPeer::addSelectColumns($c); $startcol8 = $startcol7 + ClassGroupPeer::NUM_COLUMNS; SchedulePeer::addSelectColumns($c); $startcol9 = $startcol8 + SchedulePeer::NUM_COLUMNS; $c->addJoin(ClassAgendaPeer::COURSE_SCHEDULE_ID, CourseSchedulePeer::ID); $c->addJoin(ClassAgendaPeer::CLASS_SESSION_ID, ClassSessionPeer::ID); $c->addJoin(ClassAgendaPeer::SUBJECT_GRADING_ID, SubjectGradingPeer::ID); $c->addJoin(ClassAgendaPeer::STUDENT_ID, StudentPeer::ID); $c->addJoin(ClassAgendaPeer::STUDENT_ABSENCE_ID, StudentAbsencePeer::ID); $c->addJoin(ClassAgendaPeer::CLASS_GROUP_ID, ClassGroupPeer::ID); $c->addJoin(ClassAgendaPeer::SCHEDULE_ID, SchedulePeer::ID); $rs = BasePeer::doSelect($c, $con); $results = array(); while ($rs->next()) { $omClass = ClassAgendaPeer::getOMClass(); $cls = Propel::import($omClass); $obj1 = new $cls(); $obj1->hydrate($rs); $omClass = CourseSchedulePeer::getOMClass(); $cls = Propel::import($omClass); $obj2 = new $cls(); $obj2->hydrate($rs, $startcol2); $newObject = true; for ($j = 0, $resCount = count($results); $j < $resCount; $j++) { $temp_obj1 = $results[$j]; $temp_obj2 = $temp_obj1->getCourseSchedule(); if ($temp_obj2->getPrimaryKey() === $obj2->getPrimaryKey()) { $newObject = false; $temp_obj2->addClassAgenda($obj1); break; } } if ($newObject) { $obj2->initClassAgendas(); $obj2->addClassAgenda($obj1); } $omClass = ClassSessionPeer::getOMClass(); $cls = Propel::import($omClass); $obj3 = new $cls(); $obj3->hydrate($rs, $startcol3); $newObject = true; for ($j = 0, $resCount = count($results); $j < $resCount; $j++) { $temp_obj1 = $results[$j]; $temp_obj3 = $temp_obj1->getClassSession(); if ($temp_obj3->getPrimaryKey() === $obj3->getPrimaryKey()) { $newObject = false; $temp_obj3->addClassAgenda($obj1); break; } } if ($newObject) { $obj3->initClassAgendas(); $obj3->addClassAgenda($obj1); } $omClass = SubjectGradingPeer::getOMClass(); $cls = Propel::import($omClass); $obj4 = new $cls(); $obj4->hydrate($rs, $startcol4); $newObject = true; for ($j = 0, $resCount = count($results); $j < $resCount; $j++) { $temp_obj1 = $results[$j]; $temp_obj4 = $temp_obj1->getSubjectGrading(); if ($temp_obj4->getPrimaryKey() === $obj4->getPrimaryKey()) { $newObject = false; $temp_obj4->addClassAgenda($obj1); break; } } if ($newObject) { $obj4->initClassAgendas(); $obj4->addClassAgenda($obj1); } $omClass = StudentPeer::getOMClass(); $cls = Propel::import($omClass); $obj5 = new $cls(); $obj5->hydrate($rs, $startcol5); $newObject = true; for ($j = 0, $resCount = count($results); $j < $resCount; $j++) { $temp_obj1 = $results[$j]; $temp_obj5 = $temp_obj1->getStudent(); if ($temp_obj5->getPrimaryKey() === $obj5->getPrimaryKey()) { $newObject = false; $temp_obj5->addClassAgenda($obj1); break; } } if ($newObject) { $obj5->initClassAgendas(); $obj5->addClassAgenda($obj1); } $omClass = StudentAbsencePeer::getOMClass(); $cls = Propel::import($omClass); $obj6 = new $cls(); $obj6->hydrate($rs, $startcol6); $newObject = true; for ($j = 0, $resCount = count($results); $j < $resCount; $j++) { $temp_obj1 = $results[$j]; $temp_obj6 = $temp_obj1->getStudentAbsence(); if ($temp_obj6->getPrimaryKey() === $obj6->getPrimaryKey()) { $newObject = false; $temp_obj6->addClassAgenda($obj1); break; } } if ($newObject) { $obj6->initClassAgendas(); $obj6->addClassAgenda($obj1); } $omClass = ClassGroupPeer::getOMClass(); $cls = Propel::import($omClass); $obj7 = new $cls(); $obj7->hydrate($rs, $startcol7); $newObject = true; for ($j = 0, $resCount = count($results); $j < $resCount; $j++) { $temp_obj1 = $results[$j]; $temp_obj7 = $temp_obj1->getClassGroup(); if ($temp_obj7->getPrimaryKey() === $obj7->getPrimaryKey()) { $newObject = false; $temp_obj7->addClassAgenda($obj1); break; } } if ($newObject) { $obj7->initClassAgendas(); $obj7->addClassAgenda($obj1); } $omClass = SchedulePeer::getOMClass(); $cls = Propel::import($omClass); $obj8 = new $cls(); $obj8->hydrate($rs, $startcol8); $newObject = true; for ($j = 0, $resCount = count($results); $j < $resCount; $j++) { $temp_obj1 = $results[$j]; $temp_obj8 = $temp_obj1->getSchedule(); if ($temp_obj8->getPrimaryKey() === $obj8->getPrimaryKey()) { $newObject = false; $temp_obj8->addClassAgenda($obj1); break; } } if ($newObject) { $obj8->initClassAgendas(); $obj8->addClassAgenda($obj1); } $results[] = $obj1; } return $results; }
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>
public function executeDelete() { $student_absence = StudentAbsencePeer::retrieveByPk($this->getRequestParameter('id')); $this->forward404Unless($student_absence); $student_id = $student_absence->getStudentId(); $ref_error = 0; foreach ($student_absence->getRefCountMethods() as $ref) { $method = "count" . $ref['affix']; $count = $student_absence->{$method}(); if ($count > 0) { ++$ref_error; $this->getRequest()->setError('student_absence/delete/' . sfInflector::camelize($ref['table']), $count); } } if ($ref_error > 0) { $this->getRequest()->setError('student_absence/delete', '_ERR_DELETE_ (' . $student_absence->toString() . ' - id:' . $student_absence->getId() . ')'); } else { $student_absence->delete(); } return $this->redirect('student_absence/list?student_id=' . $student_id); }
?> </td> <?php $c = new Criteria(); $c->add(StudentAbsencePeer::STUDENT_ID, $student->getId()); $c->add(StudentAbsencePeer::ACADEMIC_CALENDAR_ID, $academic_calendar->getId()); $cton1 = $c->getNewCriterion(StudentAbsencePeer::START, $tahun . '-' . $title->getId() . '-1', Criteria::GREATER_EQUAL); $cton2 = $c->getNewCriterion(StudentAbsencePeer::START, $tahun . '-' . ($title->getId() + 1) . '-1', Criteria::LESS_THAN); $cton1->addAnd($cton2); $c->add($cton1); $c->addGroupByColumn(StudentAbsencePeer::START); $c->addGroupByColumn(StudentAbsencePeer::STUDENT_ID); $c->addGroupByColumn(StudentAbsencePeer::ACADEMIC_CALENDAR_ID); $c->addGroupByColumn(StudentAbsencePeer::CLASS_GROUP_ID); $sas = StudentAbsencePeer::doSelect($c); $absence = array(); if (count($sas)) { foreach ($sas as $sa) { $absence[$sa->getStart()] = $sa->getStatus(); $absence[$sa->getStatus()] = (array_key_exists($sa->getStatus(), $absence) ? $absence[$sa->getStatus()] : 0) + 1; } } ?> <?php $tgl = 0; while ($tgl <= 30) { $tgl++; ?>