/**
  * Возвращает список с факультетами и их группами.
  * 
  * @param int $idSelectedGroup - id выделенной записи
  * @return string список факультетов и их групп в формате HTML
  */
 public static function getGroupsAndFaculties($idSelectedGroup = 0)
 {
     if (!BaseService::isId($idSelectedGroup)) {
         $idSelectedGroup = 0;
     }
     try {
         $result = '<select name="id_group" size="15">';
         foreach (Faculty::getAllItems() as $eachFaculty) {
             $result .= '<optgroup label="' . $eachFaculty->getName() . '">';
             foreach ($eachFaculty->getGroups() as $eachGroup) {
                 if ($eachGroup instanceof NullGroup) {
                     continue;
                 }
                 $selected = $idSelectedGroup == $eachGroup->getId() ? ' selected ' : '';
                 $result .= '<option value="' . $eachGroup->getId() . '"' . $selected . '>' . $eachGroup->getName() . '</option>';
             }
             $result .= '</optgroup>';
         }
         $result .= '</select>';
     } catch (FrameworkException $frmExcep) {
         $frmExcep->redirectToExcepPage();
     }
     return $result;
 }
 /**
  * Маршрут deletefaculty (<route name="deletefaculty">)
  * Удаление факультета
  * 
  * @param int $id - id факультета
  */
 public function delete($id)
 {
     if (!BaseService::isId($id)) {
         $id = 0;
     }
     try {
         $faculty = Faculty::getSelfById($id);
         if ($faculty->delete()) {
             // Факультет успешно удален.
             //Задаем статус 'RES_ACT_OK' результата выполнения действия,
             //для автоматического редиректа на маршрут listfaculty,
             //который вызовет  свое представление с табл. факультетов:
             $this->status = self::$enumResultAction['RES_ACT_OK'];
         } else {
             // факультет не прошел проверку правил,
             // поэтому вызываем заданное в табл. маршрутизации
             // представление (facultylist) с описанием нарушенного правила:
             $this->getView(array('tblfacul' => FacultyHelper::getTable(), 'msg_validate' => 'Внимание, удаление факультета невозможно:  ' . $faculty->getBrokenRulesTotalMessage()));
         }
     } catch (FrameworkException $frmExcep) {
         $this->status = self::$enumResultAction['RES_ACT_ERR'];
         $frmExcep->redirectToExcepPage();
     }
 }
 public function getGroups()
 {
     return parent::getGroups();
 }
 public function getFaculty()
 {
     return $this->faculty ? $this->faculty : Faculty::getSelfById($this->idFaculty);
 }