Разработка:storages/schevents

Материал из DOF

Перейти к: навигация, поиск
Плагин
Название schevents
Тип storages


Содержание

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

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

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

  • templateid - шаблон расписания в таблице schtemplates
  • dayid - день расписания, по которому было создано событие. Все запланированные(plan) и отложенные (postponed) события должны быть привязаны к существующим дням (то есть дняв с статусе active). Если в поле dayid стоит null - это нормальная ситуация. Она означает, что событие было создано вручную завучем, и не связано с шаблонами расписания.
  • planid - тема урока в плане
  • type - тип события: обычный урок, совместный урок(например, учитель ведет свой обычный урок и параллельно ведет урок по совмещению от заболевшего учителя), бесплатный урок (например, учитель химии ведет урок химии, который связан и с биологией, при этом в журнале "биологии" отмечается бесплатный урок, который учитель биологии не вел, но тема пройдена), интегрированный урок (например, учитель географии приглашает на свой урок учителя информатики для занятия в ГИС, при этом урок записывается и в журнал информатики и преподаватель информатики получает за него деньги; при этом "итегрированным" считается только урок информатики, а географии - обычный).
  • joinid - id обычного урока, к которому присоединяется "бесплатный" , "совместный" или "интегрированный" либо 0
  • cstreamid - учебный поток в таблице cstreams
  • teacherid - БОЛЬШЕ НЕ ИСПОЛЬЗУЕТСЯ id преподавателя в таблице persons
  • date - дата и время начала события по UTC
  • duration - продолжительность события в секундах
  • place - место проведения события (текстовое поле)
  • replaceid - id события, которое заменяется данным событием
  • status - список статусов указан в одноименном плагине рабочих процессов schevents
  • form - форма урока (очно/дистанционно)
  • appointmentid - назначение на должность, в рамках которого проходит урок (таблица appointments )
  • ahours - продолжительность урока в академических часах
  • rhours - продолжительность в условных часах, рассчитанная по формуле(ahours * programmitem.salfactor * programmsbcs.salfactor * schtemplates.salfactor * конфиг.поправаподразделения * конфиг.поправкапоколичествуучеников * cstreams.salfactor + ahours * cstreams.substsalfactor)
  • salfactor - применяемый итоговый коэффициент (вычисляется как один час, к которому применены все действующие для данного урока поправочные коэффициенты или один замещающий)
  • salfactorparts - сериализованный объект с полями: $obj->vars-> значения всех действующих на момент расчета коэффициентов, $obj->formula - формула расчета

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

replace_events($eventid, $date)

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

Аргументы:

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

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

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

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

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

delete_events($date=null)

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

Аргументы:

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

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

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

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

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

get_cstream_events(csid, $status=null, $begin=null, $end=null)

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

Аргументы:

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

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

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

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

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

get_teacher_events($tcid, $status=null, $begin=null, $end=null)

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

Аргументы:

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

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

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

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

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

get_department_events($dpid, $status=null, $begin=null, $end=null)

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

Аргументы:

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

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

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

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

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

get_pevent($point, $event)

Состыковывает контрольную точку с событием.

Аргументы:

  • $point(obj) - контрольная точка
  • $event(obj) - событие

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

  • (obj) - cостыкованную запись

get_pointevents($point, $cstreamid = null, $cancel_event = false)

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

Аргументы:

  • $point(obj) - контрольная точка
  • $cstreamid - учебный поток в таблице cstreams
  • $cancel_event(bool) - нужно ли отображать отмененные уроки, по умолчанию false

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

  • (array) - список состыкованных записей

get_points_and_events($plans, $cstreamid, $cancel_event = false )

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

Аргументы:

  • $plans(array) - массив записей контрольных точек
  • $cstreamid(int) - учебный поток в таблице cstreams
  • $cancel_event(bool) - нужно ли отображать отмененные уроки, по умолчанию false

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

  • (array) - список состыкованных записей

canceled_event($eventid, $cancel_all = false)

Отменяет урок.

Аргументы:

  • $eventid(int) - id урока
  • $cancel_all(bool) - отменить все события: true - все, включая замененные, по умолчанию false

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

  • (bool) true - если удалось отменить, false - иначе

get_replace_event($eventid)

Находит последнюю замену для события.

Аргументы:

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

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

  • int|bool - id замененного события или false

get_plansid_anchored_day($date = null)

Возвращает массив id КТ уроков для указанного дня.

Аргументы:

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

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

  • array|bool - массив id или false - если ничего не найдено

get_listing($limitfrom = null, $limitnum = null, $conds=null, $countonly=false)

Возвращает список событий по заданным критериям

Аргументы:

  • $limitfrom(int) - начиная с какой записи просматривается фрагмент списка записей, по умолчанию null
  • $limitnum(int) - сколько записей нужно извлечь из базы, по умолчанию null
  • $conds(obj) - объект со списком свойств, по которым будет происходить поиск, по умолчанию null
  • $countonly(obj) - только вернуть количество записей по указанным условиям, по умолчанию false

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

  • array массив записей из базы, или false в случае ошибки

get_select_listing($inputconds)

Возвращает фрагмент sql-запроса после слова WHERE

Аргументы:

  • $inputconds(obj) - список полей с условиями запроса в формате "поле_БД->значение"

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

  • string

Планы:

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

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

События

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

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

Таблица событий, которые перехватывает этот плагин
Тип плагина Код плагина Код события Доп. данные Пояснение
Этот плагин не перехватывает никаких событий

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

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

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

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

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

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

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

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

Задания

Таблица заданий, которые выполняет этот плагин
Код задания Дополнительный параметр Пояснение
delete_broken_events Необязателен. Указывается дата, с которой ищутся занятия, если не указан по-умолчанию выбираются все. Находит все запланированные и отложенные занятия привязанные к дням начиная с указанной даты. Отменяет те события, чьи дни были удалены или отсутствуют в БД.
Личные инструменты