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

Материал из DOF
Перейти к: навигация, поиск
(Дополнительные методы:)
(Дополнительные методы:)
Строка 17: Строка 17:
  
 
===Дополнительные методы:===
 
===Дополнительные методы:===
* '''replace_events'''($eventid, $replaceid) - сформировать замену для события событием. В поле replaceid заменяемого события записывает id события, которое будет его заменять.
+
 
* '''delete_events'''($date=null) - удалить все события дня. Удаляет все собития указанного дня, если день не указан, то текущего.
+
'''replace_events()'''
* '''get_cstream_events'''($csid, $status=null, $begin=null, $end=null) - получить список событий для учебного потока (необязательные параметры - дата начала и окончания, статус)
+
 
* '''get_teacher_events'''($tcid, $status=null, $begin=null, $end=null) - получить список событий, принадлежащих структурному подразделению с даты по дату (необязательный параметр - статус, по умолчанию - все)
+
Формирует замену для события событием.
* '''get_department_events'''($dpid, $status=null, $begin=null, $end=null) - получить список событий для преподавателя (необязательные параметры - дата начала и окончания, статус)
+
 
 +
''Аргументы:''
 +
* $eventid(int) - id события, для которого формируется замена.
 +
* $replaceid(int) - id события, которым заменяем.
 +
''Возвращаемые значения:''
 +
* (bool) true в случае успеха или false если обновление не удалось.
 +
''Структура работы:''
 +
 
 +
В поле replaceid заменяемого события записываем id события, которое будет его заменять и обновляем запись в таблице БД.  
 +
 
 +
'''delete_events()'''
 +
 
 +
Удаляет все события дня.
 +
 
 +
''Аргументы:''
 +
* $date - день, для которого надо удалить все события, по умолчанию - текущий день (null).
 +
''Возвращаемые значения:''
 +
* (bool) true если все записи удалились и false в остальных случаях
 +
''Структура работы:''
 +
# если метка времени не указана, устанавливаем текущую метку времени.
 +
# формируем метку времени начала дня.
 +
# получаем все существующие события.
 +
# для каждого события проверяем, если метка времени события попадает в промежуток даты начала дня и даты конца дня, то удаляем событие.
 +
# возвращаем результат.
 +
 
 +
'''get_cstream_events()'''
 +
 
 +
Получает список событий для учебного потока.
 +
 
 +
''Аргументы:''
 +
* $csid(int) - id учебного потока.
 +
* $status(string) - статус учебного процесса, по умолчанию - все (null).
 +
* $begin(int) - дата начала события, по умолчанию - все (null).
 +
* $end(int) - дата окончания события, по умолчанию - все (null).
 +
''Возвращаемые значения:''
 +
* (array) события для учебного потока.
 +
* (bool) false если события не найдены.
 +
''Структура работы:''
 +
* формируем SQL-запрос и возвращаем список событий:
 +
** если указываются даты начала и окончания - события в указанный промежуток,
 +
** если даты начала и окончания не указываются или указываются как null- события в любой день.
 +
** если указывается статус - группы с указанным статусом,
 +
** если статус не указывается или указывается как null - события с любым статусом.
 +
 
 +
'''get_teacher_events()'''
 +
 
 +
Получает список событий для преподавателя.
 +
 
 +
''Аргументы:''  
 +
* $tcid(int) - id преподавателя.
 +
* $status(string) - статус учебного процесса, по умолчанию - все (null).
 +
* $begin(int) - дата начала события, по умолчанию - все (null).
 +
* $end(int) - дата окончания события, по умолчанию - все (null).
 +
''Возвращаемые значения:''
 +
* (array) события для учебного потока.
 +
* (bool) false если события не найдены.
 +
''Структура работы:''
 +
# находим все учебные потоки для преподавателя.
 +
# для каждого учебного потока находим его события и заносим в массив.
 +
# возвращаем резальтат.
 +
 
 +
'''get_department_events()'''
 +
 
 +
Получает список событий, принадлежащих структурному подразделению.
 +
 
 +
''Аргументы:''
 +
* $dpid(int) - id структурного подразделения.
 +
* $status(string) - статус учебного процесса, по умолчанию - все (null).
 +
* $begin(int) - дата начала события, по умолчанию - все (null).
 +
* $end(int) - дата окончания события, по умолчанию - все (null).
 +
''Возвращаемые значения:''
 +
* (array) события для учебного потока.
 +
* (bool) false если события не найдены.
 +
''Структура работы:''
 +
# находим все учебные потоки для подразделения.
 +
# для каждого учебного потока находим его события и заносим в массив.
 +
# возвращаем резальтат.
 +
 
 +
 
 
* '''get_pevent'''($point, $event) - состыковывать контрольную точку с событием.
 
* '''get_pevent'''($point, $event) - состыковывать контрольную точку с событием.
 
* '''get_pointevents'''($point) - получить массив состыкованных записей контрольной точки с ее событиями.
 
* '''get_pointevents'''($point) - получить массив состыкованных записей контрольной точки с ее событиями.
Строка 27: Строка 105:
  
  
====Планируются:====
+
===Планы:===
 +
====Дополнительные методы:====
 
* Создать событие на день по объекту шаблона расписания
 
* Создать событие на день по объекту шаблона расписания
 
* Получить статистику событий по структурному подразделению
 
* Получить статистику событий по структурному подразделению

Версия 13:08, 13 августа 2009

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

schevents - учебные события, отображенные на реальные даны. Содержит информацию о реальной дате и времени учебного события, его статусе (проведено/не проведено), собитии-замене, исходном шаблоне, подразделении, расписанию которого принадлежит события и другие.

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

  • templateid - шаблон
  • dayid - день расписания, по которому было создано событие
  • planid - тема урока в плане
  • type - тип события: обычный урок, бесплатный урок (например, учитель химии ведет урок химии, который связан и с биологией, при этом в журнале "биологии" отмечается бесплатный урок, который учитель биологии не вел, но тема пройдена), интегрированный урок (например, учитель географии приглашает на свой урок учителя информатики для занятия в ГИС, при этом урок записывается и в журнал информатики и преподаватель информатики получает за него деньги; при этом "итегрированным" считается только урок информатики, а географии - обычный).
  • joinid - id обычного урока, к которому присоединяется "бесплатный" или "интегрированный" либо 0
  • cstreamid - учебный поток
  • teacherid - id преподавателя по таблице persons
  • date - дата и время начала события по UTC
  • duration - продолжительность события
  • place - место проведения события (текстовое поле)
  • replaceid - id события, которое заменяется данным событием
  • status - список статусов указан в одноименном плагине рабочих процессов schevents

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

replace_events()

Формирует замену для события событием.

Аргументы:

  • $eventid(int) - id события, для которого формируется замена.
  • $replaceid(int) - id события, которым заменяем.

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

  • (bool) true в случае успеха или false если обновление не удалось.

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

В поле replaceid заменяемого события записываем id события, которое будет его заменять и обновляем запись в таблице БД.

delete_events()

Удаляет все события дня.

Аргументы:

  • $date - день, для которого надо удалить все события, по умолчанию - текущий день (null).

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

  • (bool) true если все записи удалились и false в остальных случаях

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

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

get_cstream_events()

Получает список событий для учебного потока.

Аргументы:

  • $csid(int) - id учебного потока.
  • $status(string) - статус учебного процесса, по умолчанию - все (null).
  • $begin(int) - дата начала события, по умолчанию - все (null).
  • $end(int) - дата окончания события, по умолчанию - все (null).

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

  • (array) события для учебного потока.
  • (bool) false если события не найдены.

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

  • формируем SQL-запрос и возвращаем список событий:
    • если указываются даты начала и окончания - события в указанный промежуток,
    • если даты начала и окончания не указываются или указываются как null- события в любой день.
    • если указывается статус - группы с указанным статусом,
    • если статус не указывается или указывается как null - события с любым статусом.

get_teacher_events()

Получает список событий для преподавателя.

Аргументы:

  • $tcid(int) - id преподавателя.
  • $status(string) - статус учебного процесса, по умолчанию - все (null).
  • $begin(int) - дата начала события, по умолчанию - все (null).
  • $end(int) - дата окончания события, по умолчанию - все (null).

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

  • (array) события для учебного потока.
  • (bool) false если события не найдены.

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

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

get_department_events()

Получает список событий, принадлежащих структурному подразделению.

Аргументы:

  • $dpid(int) - id структурного подразделения.
  • $status(string) - статус учебного процесса, по умолчанию - все (null).
  • $begin(int) - дата начала события, по умолчанию - все (null).
  • $end(int) - дата окончания события, по умолчанию - все (null).

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

  • (array) события для учебного потока.
  • (bool) false если события не найдены.

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

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


  • get_pevent($point, $event) - состыковывать контрольную точку с событием.
  • get_pointevents($point) - получить массив состыкованных записей контрольной точки с ее событиями.
  • get_points_and_events($plans) - получить массив состыкованных записей контрольных точек с их событиями.


Планы:

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

  • Создать событие на день по объекту шаблона расписания
  • Получить статистику событий по структурному подразделению
  • Получить статитстику событий по преподавателю
  • Получить статистику событий по учебному процессу
  • Получить статистику событий с участием студента