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

Материал из DOF
Перейти к: навигация, поиск
(Дополнительные методы:: описано какие id из каких таблиц надо брать)
(Добавлено описание событий и проставлены категории)
Строка 156: Строка 156:
 
* Список действующих подписок для структурного подразделения (если указан статус - то берутся подписки соответствующие этому статусу, если не указан - действующие)
 
* Список действующих подписок для структурного подразделения (если указан статус - то берутся подписки соответствующие этому статусу, если не указан - действующие)
 
* Отписать (подписка помечается как недействительная)
 
* Отписать (подписка помечается как недействительная)
 +
===События===
 +
В этом разделе описан список всех событий, которые генерируются, перехватываются и обрабатываются этим плагином.
 +
====Перехватываемые события====
 +
{| border="1"
 +
|+ Таблица событий, которые перехватывает этот плагин
 +
! Тип плагина
 +
! Код плагина
 +
! Код события
 +
! Доп. данные
 +
! Пояснение
 +
|-
 +
|colspan=5 align=center | ''Этот плагин не перехватывает никаких событий''
 +
|}
 +
====Генерируемые события====
 +
{| border="1"
 +
|+ Таблица событий, которые генерирует этот плагин
 +
! Тип плагина
 +
! Код плагина
 +
! Код события
 +
! Доп. данные
 +
! Пояснение
 +
|-
 +
|storage
 +
|programmsbcs
 +
|insert
 +
|Массив, содержащий в поле "new" объект с данными для вставки в таблицу.
 +
''Пример:'' array('new' => $dataobject)
 +
|Генерируется каждый раз при вставке новой записи в таблицу programmsbcs.
 +
|-
 +
|storage
 +
|programmsbcs
 +
|update
 +
|Массив, содержащий в поле "new" обновленный объект, и в поле "old" объект со старыми данными, до обновления записи.
 +
''Пример:'' array('old' => $dataobject_old, 'new' => $dataobject_new)
 +
|Генерируется каждый раз при обновлении записи в таблице programmsbcs.
 +
|-
 +
|storage
 +
|programmsbcs
 +
|delete
 +
|Массив, содержащий в поле "old" объект с данными, которые удаляются из таблицы
 +
''Пример:'' array('old' => $dataobject)
 +
|Генерируется каждый раз при удалении записи из таблицы programmsbcs.
 +
|}
 +
 +
[[Категория:Разработка]]
 +
[[Категория:Плагины_storages]]

Версия 17:35, 16 февраля 2010

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


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

programmsbcs - подписка на изучение учебной программы/специальности. Подписка выражается в обязательстве учебного заведения реализовать для учащегося предусмотренный программой список предметов/учебных дисциплин. Каждый учащийся может быть записан на несколько учебных программ по очереди или одновременно.

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

  • contractid - id контракта в таблице contracts , по которому реализуется подписка
  • programmid - id заказанной программы в таблице programms
  • edutype - тип обучения (индивидуальное/групповое)
  • eduform - очное/заочное/очно-заочное/экстернат
  • freeattendance - свободное посещение (0/1)
  • agroupid - id академической группы в таблице agroups , если обучение групповое
  • agenum - порядковый номер текущего учебного периода (изменяется приказом по контингенту)
  • departmentid - структурное подразделение в таблице departments , ответственное за исполнение подписки
  • status - список статусов указан в одноименном плагине рабочих процессов programmsbcs
  • agestartid - id учебного периода в таблице ages , в котором началось обучение данного студента по программе
  • datestart - дата начала действия подписки
  • dateadd - дата создания подписки (если есть, соответствует дате документа о подписке ученика на курс)
  • certificatenum - номер сертификата (текстовое поле - номер может содержать серию, символы и т.п.)
  • certificateform - код формы/бланка сертификата (должен совпадать с кодом шаблона в плагине storage/programmsbcs)
  • certificatedate - дата выдачи сертификата
  • certificateorderid - номер приказа, в соответствии с которым выдан сертификат
  • dateend - дата завершения подписки

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

get_contracts_without_cpassed()

Возвращает список контрактов учеников данной группы, у которых нет подписок на указанный предмето-поток

Аргументы:

  • $agroupid(int) - id группы в таблице agroups
  • $cstreamid(int) - id учебного потока в таблице cstreams

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

  • (array) контрактов учеников группы не имеющие подписки.

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

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

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

Возвращает список объектов, выбранных из таблицы по критериям, которые переданы в качестве входных параметров.

Аргументы:

  • integer $limitfrom - порядковый номер записи в общем списке объектов, которая будет первой выведена на экран;
  • integer $limitnum - количество объектов, которые показываются на странице;
  • array $conds - массив вида имя_поля => значение_поля, в котором передаются параметры выборки
  • bool $countonly - если true - вернуть только количество записей

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

  • Проверяем корректность переданных параметров.
  • Формируем фрагмент sql-запроса.
  • Если надо полько количество записей - возвращаем их.
  • Иначе - возвращаем записи из таблицы.

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

  • integer - количество записей.
  • array - массив записей.

get_eduforms_list()

Возвращает список возможных форм обучения. На данный момент - очная, заочная, очно-заочная, экстернат.

Аргументы:

Отсутствуют.

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

  • array - массив вида код_формы => название_формы.

get_eduform_name()

Возвращает название формы обучения.

Аргументы:

  • string $code - код формы обучения - индекс массива, который возвращает метод get_eduforms_list().

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

  • Получает все формы обучения как массив.
  • Проверяет наличие переданного кода в индексах массива. Если индекс найден - возвращает соответствующее ему значение. Если нет - возвращает пробел.

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

string - название формы обучения на понятном языке, или пробел.

is_programmsbc()

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

Аргументы:

  • $contractid(int) - id контракта в таблице contracts
  • $programmid(int) - id программы в таблице programms
  • $agroupid(int) - id группы в таблице agroups , по умолчанию - нет
  • $id(int) - id подписки, которую не следует учитывать, по умолчанию - нет

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

  • Получаем контракт ученика.
  • По id ученика полученного из контракта получем остальные контракты ученика если таковые имеются.
  • Формируем SQL-запрос:
    • пребирая все контракты ученика включим их id в поиск
    • включим в запрос поиска id программы и статусы по которым производим поиск
    • если id группы не указано, будем искать подписки где группа не указана
    • если id группы указано, включим его в запрос поиска
    • если указан id подписки, которую необходимо исключить, исключим его из поиска
  • находим подпски по заданным критериям и если такие найдены вернем true

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

  • bool - true если подписки найдены и false если таковых нет

change_sbc_parametres()

Изменить параметры подписки: тип, форма, свободное посещение, академическая группа.

Аргументы:

  • $id(int) - id подписки, которая обновляется
  • $edutype(string) - тип обучения
  • $eduform(string) - форма обучения
  • $freeattendance(int) - свободное посещение
  • $agroupid(int) - id группы в таблице agroups , по умолчанию - нет

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

  • Создаем объект для вставки в БД
  • Обновим запись в БД с данными параметрами

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

  • bool - true если запись успешно обновлена и false в остальных случаях

sing()

Подписывает (проверяется возможность создать существующую подписку)

Аргументы:

  • $sbc(object) - объект вставки записи в БД

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

  • Проверяет существование исходных данных (данных нет - сохранять нельзя)
  • Проверяет существование подпоски с такими параметрами (подписка есть - сохранять нельзя)
  • Если все в порядке - вставляем запись в БД.

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

  • int - id вставленой записи
  • bool - false в остальных случаях

Планы:

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

  • Список действующих подписок для контракта (если указан статус - то берутся подписки соответствующие этому статусу, если не указан - действующие)
  • Список действующих подписок для слушателя (если указан статус - то берутся подписки соответствующие этому статусу, если не указан - действующие)
  • Список действующих подписок для учебной программы (если указан статус - то берутся подписки соответствующие этому статусу, если не указан - действующие)
  • Список действующих подписок для структурного подразделения (если указан статус - то берутся подписки соответствующие этому статусу, если не указан - действующие)
  • Отписать (подписка помечается как недействительная)

События

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

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

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

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

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

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

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

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

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

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

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