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

Материал из DOF
Перейти к: навигация, поиск
(Дополнительные методы:)
(Подробный формат полей в таблице:)
Строка 10: Строка 10:
 
* name - название
 
* name - название
 
* code - кодовое обозначение (текстовое, необязательное, при указании кода проверяется уникальность)
 
* code - кодовое обозначение (текстовое, необязательное, при указании кода проверяется уникальность)
* managerid - руководитель структурного подразделения
+
* managerid - руководитель структурного подразделения в таблице [[Разработка:storages/persons | persons ]]
 
* leaddepid - вышестоящее структурное подразделение
 
* leaddepid - вышестоящее структурное подразделение
* addressid - местоположение
+
* addressid - местоположение в таблице [[Разработка:storages/addresses | addresses ]]
 
* zone - временная зона, действующая в подразделении
 
* zone - временная зона, действующая в подразделении
* status - список статусов указан в одноименном плагине рабочих процессов  [[Разработка:workflows/departments | departments ]]  
+
* status - список статусов указан в одноименном плагине рабочих процессов  [[Разработка:workflows/departments | departments ]]
  
 
===Дополнительные методы:===
 
===Дополнительные методы:===

Версия 22:31, 13 января 2010

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


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

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

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

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

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

departments_list()

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

Аргументы: нет

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

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

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

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

departments_list_subordinated()

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

Аргументы:

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

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

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

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

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

Планы:

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

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