Разработка:storages/departments — различия между версиями

Материал из DOF
Перейти к: навигация, поиск
(Подробный формат полей в таблице:)
(Перехватываемые события)
Строка 98: Строка 98:
 
{| border="1"
 
{| border="1"
 
  |+ Таблица событий, которые перехватывает этот плагин
 
  |+ Таблица событий, которые перехватывает этот плагин
  ! Тип плагина
+
  ! Тип плагина ! Код плагина ! Код события ! Доп. данные ! Пояснение |-
! Код плагина
+
  | departments ! storage ! insert ! ! Обновляет path и depth|-
! Код события
+
  | departments ! storage ! update ! ! Обновляет path и depth|-
! Доп. данные
+
  | departments ! storage ! update ! status = deleted! Все подразделения, ссылавшиеся на удалённое, переходят на уровень выше|-
  ! Пояснение
 
  |-
 
  |colspan=5 align=center | ''Этот плагин не перехватывает никаких событий''
 
 
  |}
 
  |}
 +
 
====Генерируемые события====
 
====Генерируемые события====
 
{| border="1"
 
{| border="1"

Версия 16:45, 31 марта 2011

Плагин
Название departments
Тип storages


Таблица в базе данных

departments - подразделения учебного заведения. Учебные потоки, дисциплины, учебные программы, подписки приписаны к одному из подразделений, для удобства организации учебного процесса в крупных учебных заведениях. При установке системы создается одно подразделение по умолчанию, к которому приписываются все объекты, если в использовании других подразделений нет необходимости.

Подробный формат полей в таблице:

  • name - название
  • code - кодовое обозначение (текстовое, необязательное, при указании кода проверяется уникальность). Если код не указан - то вместо него подставляется id записи.
  • managerid - руководитель структурного подразделения в таблице persons
  • leaddepid - вышестоящее структурное подразделение
  • addressid - местоположение в таблице addresses
  • zone - временная зона, действующая в подразделении
  • status - список статусов указан в одноименном плагине рабочих процессов departments
  • path - путь к подразделению по родителям начиная с родителя-корня. Родители разделены "/"
  • depth - глубина вложенности подразделения

Дополнительные методы:

departments_list()

Выводит список всех структурных подразделений в алфавитном порядке

Аргументы: нет Возвращаемые значения:

  • (array) - массив записей из таблицы, где ключ - id подразделения, значение - название подразделения.

Структура работы:

  1. находим все существующие структурные подразделения.
  2. для каждого подразделения создаем запись в массиве.
  3. сортируем массив и возвращаем значение.

departments_list_subordinated($id = '0' ,$spase = )

Выводит список всех подчиненных структурных подразделений по id структурного подразделения.

Аргументы:

  • (int) $id - id подразделения, по умолчанию - головное (0).
  • (str) $spase - знак отступа , по умолчанию - нет. (неиспользуемый параметр, необходим для рекурсии)

Возвращаемые значения:

  • (array) список дочерних подразделений.

Структура работы:

  1. находим дочерние подразделения первого уровня для данного подразделения.
  2. для каждого подразделения:
    • создаем запись в массиве, где ключ - id подразделения, значение - знак отступа+имя подразделения.
    • находим дочерние подразделения для полученного подразделения.
  3. возвращаем результат.

get_numberof_departments($select)

Подсчитывает количество записей, найденных по критериям

Аргументы:

  • (str) $select - условие выборки

Возвращаемые значения:

  • mixed

get_default()

Возвращает объект департамента по умолчанию

Аргументы: нет Возвращаемые значения:

  • object

get_default_id()

Возвращает id объект департамента по умолчанию

Аргументы: нет Возвращаемые значения:

  • int - id объект департамента

is_code_notunique($code)

Проверяет уникальность кодового названия

Аргументы:

  • (str) $code

Возвращаемые значения:

  • (bool) true если запись не уникальна

Планы:

Дополнительные методы:

  • Получить запись о первичного структурном подразделении, которому подчиняются все остальные. Руководителем первичного структурного подразделения является руководитель организации.
  • Получить структурное подразделение по его коду
  • Получить список подчиненных структурных подразделений первого уровня по id структурного подразделения
  • Получить список структурных подразделений, подчиняющихся сотруднику по id персоны
  • Добавить структурное подразделение в базу данных (проверяет, чтобы в качестве главного было указано существующее структурное подразделение)

События

В этом разделе описан список всех событий, которые генерируются, перехватываются и обрабатываются этим плагином.

Перехватываемые события

Таблица событий, которые перехватывает этот плагин
- - - -

Генерируемые события

Таблица событий, которые генерирует этот плагин
Тип плагина Код плагина Код события Доп. данные Пояснение
storage departments insert Массив, содержащий в поле "new" объект с данными для вставки в таблицу.

Пример: array('new' => $dataobject)

Генерируется каждый раз при вставке новой записи в таблицу departments.
storage departments update Массив, содержащий в поле "new" обновленный объект, и в поле "old" объект со старыми данными, до обновления записи.

Пример: array('old' => $dataobject_old, 'new' => $dataobject_new)

Генерируется каждый раз при обновлении записи в таблице departments.
storage departments delete Массив, содержащий в поле "old" объект с данными, которые удаляются из таблицы

Пример: array('old' => $dataobject)

Генерируется каждый раз при удалении записи из таблицы departments.