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

Материал из DOF
Перейти к: навигация, поиск
(Дополнительные методы:)
 
(не показана 31 промежуточная версия 5 участников)
Строка 7: Строка 7:
  
 
====Подробный формат полей в таблице:====
 
====Подробный формат полей в таблице:====
*contractid - id контракта, по которому реализуется подписка
+
*contractid - id контракта в таблице [[Разработка:storages/contracts | contracts ]], по которому реализуется подписка
*programmid - id заказанной программы
+
*programmid - id заказанной программы в таблице [[Разработка:storages/programms | programms ]]
 
*edutype - тип обучения (индивидуальное/групповое)
 
*edutype - тип обучения (индивидуальное/групповое)
 
*eduform - очное/заочное/очно-заочное/экстернат
 
*eduform - очное/заочное/очно-заочное/экстернат
 
*freeattendance - свободное посещение (0/1)
 
*freeattendance - свободное посещение (0/1)
*agroupid - id академической группы, если обучение групповое
+
*agroupid - id академической группы в таблице [[Разработка:storages/agroups | agroups ]], если обучение групповое
*agenum - порядковый номер текущего учебного периода (изменяется приказом по контингенту)
+
*agenum - порядковый номер текущего учебного периода, или параллель (изменяется приказом по контингенту). Параллель не может быть изменена тогда когда ученик находится в группе, которая имеет любой статус кроме "формируется". (см. [[Разработка:workflows/agroups | workflows/agroups ]])
*departmentid - структурное подразделение, ответственное за исполнение подписки
+
*departmentid - структурное подразделение в таблице [[Разработка:storages/departments | departments ]], ответственное за исполнение подписки
 
*status - список статусов указан в одноименном плагине рабочих процессов  [[Разработка:workflows/programmsbcs | programmsbcs ]]  
 
*status - список статусов указан в одноименном плагине рабочих процессов  [[Разработка:workflows/programmsbcs | programmsbcs ]]  
*agestartid - id учебного периода, в котором началось обучение данного студента по программе
 
 
*datestart - дата начала действия подписки
 
*datestart - дата начала действия подписки
 
*dateadd - дата создания подписки (если есть, соответствует дате документа о подписке ученика на курс)
 
*dateadd - дата создания подписки (если есть, соответствует дате документа о подписке ученика на курс)
*certificatenum - номер сертификата
+
*certificatenum - номер сертификата (текстовое поле - номер может содержать серию, символы и т.п.)
 
*certificateform - код формы/бланка сертификата (должен совпадать с кодом шаблона в плагине storage/programmsbcs)  
 
*certificateform - код формы/бланка сертификата (должен совпадать с кодом шаблона в плагине storage/programmsbcs)  
 
*certificatedate - дата выдачи сертификата
 
*certificatedate - дата выдачи сертификата
 
*certificateorderid  - номер приказа, в соответствии с которым выдан сертификат
 
*certificateorderid  - номер приказа, в соответствии с которым выдан сертификат
 
*dateend - дата завершения подписки
 
*dateend - дата завершения подписки
 +
* salfactor - поправочный зарплатный коэффициент
  
 
===Дополнительные методы:===
 
===Дополнительные методы:===
====Планируются:====
+
 
 +
===='''get_contracts_without_cpassed($agroupid, $cstreamid)'''====
 +
 
 +
Возвращает список контрактов учеников данной группы, у которых нет подписок на указанный предмето-поток
 +
 
 +
''Аргументы:''
 +
* $agroupid(int) - id группы в таблице [[Разработка:storages/agroups | agroups ]]
 +
* $cstreamid(int) - id учебного потока в таблице [[Разработка:storages/cstreams | cstreams ]]
 +
''Возвращаемые значения:''
 +
* (array) контрактов учеников группы не имеющие подписки.
 +
''Структура работы:''
 +
* Находим все подписки данного учебного потока.
 +
* Записываем id подписок на программы каждой найденной подписки на поток, если такие существуют.
 +
* формируем SQL-запрос и возвращаем список подписок:
 +
** если подписки были найдены - то исключаем их из поиска и находим все подписки на предметы данной группы,
 +
** если подписки не были найдены - найдем все подписки на предметы данной группы.
 +
* из найденных подписок на предметы извлечем id контрактов и вернем сами контракты.
 +
 
 +
===='''get_listing($limitfrom, $limitnum, $conds=null, $countonly=false)'''====
 +
 
 +
Возвращает список объектов, выбранных из таблицы по критериям, которые переданы в качестве входных параметров.
 +
 
 +
''Аргументы:''
 +
* integer $limitfrom - порядковый номер записи в общем списке объектов, которая будет первой выведена на экран;
 +
* integer $limitnum - количество объектов, которые показываются на странице;
 +
* array $conds - массив вида имя_поля => значение_поля, в котором передаются параметры выборки, по умолчанию null
 +
* bool $countonly - если true - вернуть только количество записей, по умолчанию false
 +
''Структура работы:''
 +
* Проверяем корректность переданных параметров.
 +
* Формируем фрагмент sql-запроса.
 +
* Если надо только количество записей - возвращаем их.
 +
* Иначе - возвращаем записи из таблицы.
 +
''Возвращаемые значения:''
 +
* integer - количество записей.
 +
* array - массив записей.
 +
 
 +
===='''get_select_listing($inputconds)'''====
 +
 
 +
Возвращает фрагмент sql-запроса после слова WHERE
 +
 
 +
''Аргументы:''
 +
* object $inputconds - список полей с условиями запроса в формате "поле_БД->значение"
 +
''Возвращаемые значения:''
 +
* string.
 +
 
 +
===='''get_eduforms_list()'''====
 +
 
 +
Возвращает список возможных форм обучения. На данный момент - очная, заочная, очно-заочная, экстернат.
 +
 
 +
''Аргументы:''
 +
Отсутствуют.
 +
''Структура работы:''
 +
* Получает все формы обучения как массив.
 +
* Проверяет наличие переданного кода в индексах массива. Если индекс найден - возвращает соответствующее ему значение. Если нет - возвращает пробел.
 +
''Возвращаемые значения:''
 +
* array - массив вида код_формы => название_формы.
 +
 
 +
===='''get_eduform_name($code)'''====
 +
 
 +
Возвращает название формы обучения.
 +
 
 +
''Аргументы:''
 +
* string $code - код формы обучения - индекс массива, который возвращает метод
 +
''Возвращаемые значения:''
 +
mixed string|bool - название формы обучения или пробел, если такая форма обучения не найдена
 +
 
 +
===='''get_edutypes_list()'''====
 +
 
 +
Возвращает список возможных типов обучения.
 +
 
 +
''Аргументы:''
 +
Отсутствуют.
 +
''Возвращаемые значения:''
 +
* array массив вида "тип обучения"=>"название".
 +
 
 +
===='''get_edutype_name($code)'''====
 +
 
 +
Возвращает обозначение формы обучения по ее коду.
 +
 
 +
''Аргументы:''
 +
* string $code - код формы обучения
 +
''Возвращаемые значения:''
 +
mixed string|bool - название формы обучения или пробел, если такая форма обучения не найдена
 +
 
 +
===='''is_programmsbc($contractid, $programmid, $agroupid = null, $agestartid = null, $id = null)'''====
 +
 
 +
Проверяет, существует ли подписка с теми же параметрами: тот же пользователь в ту же академическую группу, тот же пользователь на ту же учебную программу. Учитывает подписки в статусе заявка, подтвержденная, действующая, приостановленная.
 +
 
 +
''Аргументы:''
 +
* $contractid(int) - id контракта в таблице [[Разработка:storages/contracts | contracts ]]
 +
* $programmid(int) - id программы в таблице [[Разработка:storages/programms | programms ]]
 +
* $agroupid(int) - id группы в таблице [[Разработка:storages/agroups | agroups ]], по умолчанию null
 +
* $agestartid(int) - id учебного периода в таблице [[Разработка:storages/ages | ages ]], по умолчанию null
 +
* $id(int) - id подписки, которую не следует учитывать, по умолчанию null
 +
''Структура работы:''
 +
* Получаем контракт ученика.
 +
* По id ученика полученного из контракта получем остальные контракты ученика если таковые имеются.
 +
* Формируем SQL-запрос:
 +
** пребирая все контракты ученика включим их id в поиск
 +
** включим в запрос поиска id программы и статусы по которым производим поиск
 +
** если id группы не указано, будем искать подписки где группа не указана
 +
** если id группы указано, включим его в запрос поиска
 +
** если указан id подписки, которую необходимо исключить, исключим его из поиска
 +
* находим подпски по заданным критериям и если такие найдены вернем true
 +
''Возвращаемые значения:''
 +
* bool - true если подписки найдены и false если таковых нет
 +
 
 +
===='''change_sbc_parametres($id, $edutype, $eduform, $freeattendance, $datestart, $agestartid = null, $agroupid = null, $departmentid = null, $agenum = null)'''====
 +
 
 +
Изменить параметры подписки: тип, форма, свободное посещение, академическая группа.
 +
 
 +
''Аргументы:''
 +
* $id(int) - id подписки, которая обновляется
 +
* $edutype(string) - тип обучения
 +
* $eduform(string) - форма обучения
 +
* $freeattendance(int) - свободное посещение
 +
* $datestart - дата начала действия подписки
 +
* $agestartid  - id учебного периода в таблице [[Разработка:storages/ages | ages ]], по умолчанию null (не меняется).
 +
* $agroupid - id группы в таблице [[Разработка:storages/agroups | agroups ]], по умолчанию null (не меняется).
 +
* $departmentid  - id подразделения в таблице [[Разработка:storages/departments | departments ]], по умолчанию null (не меняется).
 +
* $agenum - Номер параллели. Изменятеся только тогда когда  ученик не записан в группу, или когда группа ученика находится в статусе "формируется".  По умолчанию null (не меняется).
 +
''Структура работы:''
 +
* Создаем объект для вставки в БД
 +
* Обновим запись в БД с данными параметрами
 +
''Возвращаемые значения:''
 +
* bool - true если запись успешно обновлена и false в остальных случаях
 +
 
 +
===='''sign($sbc)'''====
 +
 
 +
Подписывает (проверяется возможность создать существующую подписку)
 +
 
 +
''Аргументы:''
 +
* $sbc(object) - объект вставки записи в БД
 +
''Структура работы:''
 +
* Проверяет существование исходных данных (данных нет - сохранять нельзя)
 +
* Проверяет существование подпоски с такими параметрами (подписка есть - сохранять нельзя)
 +
* Если все в порядке - вставляем запись в БД.
 +
''Возвращаемые значения:''
 +
* int - id вставленой записи
 +
* bool - false в остальных случаях
 +
 
 +
===='''send_addto_agroup($id, $object)'''====
 +
 
 +
Посылает событие "changeagroup", в случае зачисления студента в группу.
 +
 
 +
''Аргументы:''
 +
* (int) $id - id подписки на программу
 +
* (stdClass) $object - объект, вставляемый в таблицу
 +
''Возвращаемые значения:''
 +
* (bool) true если событие послано успешно, или false в случае ошибки
 +
 
 +
===='''send_change_agroup($id, $oldobject, $newobject)'''====
 +
 
 +
Посылает событие "changeagroup", в случае перевода студента из одной группы в другую
 +
 
 +
''Аргументы:''
 +
* (int) $id - id подписки на программу
 +
* (stdClass) $oldobject - объект, который был в таблице
 +
* (stdClass) $newobject - объект, вставляемый в таблицу
 +
''Возвращаемые значения:''
 +
* (bool) true если событие послано успешно, или false в случае ошибки
 +
 
 +
===='''send_from_agroup($id, $object)'''====
 +
 
 +
Посылает событие при исключении ученика из группы.
 +
 
 +
''Аргументы:''
 +
* (int) $id - id удаленной (на момент обработки события) записи из таблицы [[Разработка:storages/programmsbcs | programmsbcs ]]
 +
* (stdClass) $object - объект, удаленный из таблицы [[Разработка:storages/programmsbcs | programmsbcs ]]
 +
''Возвращаемые значения:''
 +
* (bool) true если событие послано успешно, или false в случае ошибки
 +
 
 +
===='''get_studentid_by_programmsbc($programmsbcid)'''====
 +
 
 +
Получает id ученика в таблице [[Разработка:storages/persons | persons ]] на которого зарегестрирована эта подписка.
 +
 
 +
''Аргументы:''
 +
* (int) $programmsbcid - id подписки на программу в таблице [[Разработка:storages/programmsbcs | programmsbcs ]]
 +
''Возвращаемые значения:''
 +
* bool|int false если не нашли контракт или не найдена запись, id - id ученика
 +
 
 +
===='''get_programmsbcs_by_contractid($id)'''====
 +
 
 +
Выдает информацию о подписках на программу по id контракта.
 +
 
 +
''Аргументы:''
 +
* (int) $id - id контракта
 +
''Возвращаемые значения:''
 +
* array - массив с информацией о подписках на программу
 +
 
 +
===='''get_programmsbcs_by_personid($id)'''====
 +
 
 +
Выдает информацию о подписках на программу по id персоны ученика.
 +
 
 +
''Аргументы:''
 +
* (int) $id - id персоны
 +
''Возвращаемые значения:''
 +
* array - массив с информацией о подписках на программу
 +
 
 +
===='''is_sbc_to_programm($personid,$programmid)'''====
 +
 
 +
Выполняет проверку подписки персоны на указанную программу.
 +
 
 +
''Аргументы:''
 +
* (int) $personid - id персоны
 +
* (int) $programmid - id программы
 +
''Возвращаемые значения:''
 +
* bool
 +
 
 +
===Планы:===
 +
====Дополнительные методы:====
 
* Список действующих подписок для контракта (если указан статус - то берутся подписки соответствующие этому статусу, если не указан - действующие)
 
* Список действующих подписок для контракта (если указан статус - то берутся подписки соответствующие этому статусу, если не указан - действующие)
 
* Список действующих подписок для слушателя (если указан статус - то берутся подписки соответствующие этому статусу, если не указан - действующие)
 
* Список действующих подписок для слушателя (если указан статус - то берутся подписки соответствующие этому статусу, если не указан - действующие)
 
* Список действующих подписок для учебной программы (если указан статус - то берутся подписки соответствующие этому статусу, если не указан - действующие)
 
* Список действующих подписок для учебной программы (если указан статус - то берутся подписки соответствующие этому статусу, если не указан - действующие)
 
* Список действующих подписок для структурного подразделения (если указан статус - то берутся подписки соответствующие этому статусу, если не указан - действующие)
 
* Список действующих подписок для структурного подразделения (если указан статус - то берутся подписки соответствующие этому статусу, если не указан - действующие)
* Проверить, существует ли подписка с теми же параметрами: тот же пользователь (получаем через контракт id пользователя, выбираем все его контракты) в ту же академическую группу, тот же пользователь на ту же учебную программу. Учитывает подписки в статусе заявка, подтвержденная, действующая, приостановленная.
 
* Подписать (проверяется невозможность создать существующую подписку)
 
 
* Отписать (подписка помечается как недействительная)
 
* Отписать (подписка помечается как недействительная)
* Изменить параметры подписки: тип, форма, свободное посещение, академическая группа. Другие параметры через этот метод изменять нельзя.
+
===События===
 +
В этом разделе описан список всех событий, которые генерируются, перехватываются и обрабатываются этим плагином.
 +
====Перехватываемые события====
 +
{| border="1"
 +
|+ Таблица событий, которые перехватывает этот плагин
 +
! Тип плагина
 +
! Код плагина
 +
! Код события
 +
! Доп. данные
 +
! Пояснение
 +
|-
 +
|storage
 +
|programmsbcs
 +
|insert
 +
|Массив, содержащий в поле "new" объект с данными для вставки в таблицу.
 +
''Пример:'' array('new' => $dataobject)
 +
|Плагин перехватывает собственное событие вставки в базу данных, и вызывает функцию [[#send_addto_agroup()|send_addto_agroup()]]
 +
|-
 +
|storage
 +
|programmsbcs
 +
|update
 +
|Массив, содержащий в поле "new" обновленный объект, и в поле "old" объект со старыми данными, до обновления записи.
 +
''Пример:'' array('old' => $dataobject_old, 'new' => $dataobject_new)
 +
|Плагин перехватывает собственное событие вставки в базу данных, и вызывает функцию [[#send_change_agroup()|send_change_agroup()]]
 +
|-
 +
|storage
 +
|programmsbcs
 +
|delete
 +
|Массив, содержащий в поле "old" объект с данными, которые удаляются из таблицы
 +
''Пример:'' array('old' => $dataobject)
 +
|Плагин перехватывает собственное событие вставки в базу данных, и вызывает функцию [[#send_from_agroup()|send_from_agroup()]]
 +
|}
 +
 
 +
====Генерируемые события====
 +
{| 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.
 +
|-
 +
|storage
 +
|programmsbcs
 +
|changegroup
 +
|Массив, содержащий:
 +
* в поле 'oldagroup' id старой группы
 +
* в поле 'newagroup' id новой группы
 +
* в поле 'programmsbc' объект из таблицы programmsbcs
 +
''Пример:'' array('oldagroup' => $oldid, 'newagroup' => $newid, 'programmsbc' => $object)
 +
|Посылается в том случае, когда ученик переводится из одной группы в другую
 +
|}

Текущая версия на 16:58, 2 апреля 2014

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


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

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

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

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

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

get_contracts_without_cpassed($agroupid, $cstreamid)

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

Аргументы:

  • $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 - массив вида имя_поля => значение_поля, в котором передаются параметры выборки, по умолчанию null
  • bool $countonly - если true - вернуть только количество записей, по умолчанию false

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

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

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

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

get_select_listing($inputconds)

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

Аргументы:

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

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

  • string.

get_eduforms_list()

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

Аргументы: Отсутствуют. Структура работы:

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

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

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

get_eduform_name($code)

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

Аргументы:

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

Возвращаемые значения: mixed string|bool - название формы обучения или пробел, если такая форма обучения не найдена

get_edutypes_list()

Возвращает список возможных типов обучения.

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

  • array массив вида "тип обучения"=>"название".

get_edutype_name($code)

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

Аргументы:

  • string $code - код формы обучения

Возвращаемые значения: mixed string|bool - название формы обучения или пробел, если такая форма обучения не найдена

is_programmsbc($contractid, $programmid, $agroupid = null, $agestartid = null, $id = null)

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

Аргументы:

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

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

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

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

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

change_sbc_parametres($id, $edutype, $eduform, $freeattendance, $datestart, $agestartid = null, $agroupid = null, $departmentid = null, $agenum = null)

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

Аргументы:

  • $id(int) - id подписки, которая обновляется
  • $edutype(string) - тип обучения
  • $eduform(string) - форма обучения
  • $freeattendance(int) - свободное посещение
  • $datestart - дата начала действия подписки
  • $agestartid - id учебного периода в таблице ages , по умолчанию null (не меняется).
  • $agroupid - id группы в таблице agroups , по умолчанию null (не меняется).
  • $departmentid - id подразделения в таблице departments , по умолчанию null (не меняется).
  • $agenum - Номер параллели. Изменятеся только тогда когда ученик не записан в группу, или когда группа ученика находится в статусе "формируется". По умолчанию null (не меняется).

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

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

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

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

sign($sbc)

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

Аргументы:

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

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

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

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

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

send_addto_agroup($id, $object)

Посылает событие "changeagroup", в случае зачисления студента в группу.

Аргументы:

  • (int) $id - id подписки на программу
  • (stdClass) $object - объект, вставляемый в таблицу

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

  • (bool) true если событие послано успешно, или false в случае ошибки

send_change_agroup($id, $oldobject, $newobject)

Посылает событие "changeagroup", в случае перевода студента из одной группы в другую

Аргументы:

  • (int) $id - id подписки на программу
  • (stdClass) $oldobject - объект, который был в таблице
  • (stdClass) $newobject - объект, вставляемый в таблицу

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

  • (bool) true если событие послано успешно, или false в случае ошибки

send_from_agroup($id, $object)

Посылает событие при исключении ученика из группы.

Аргументы:

  • (int) $id - id удаленной (на момент обработки события) записи из таблицы programmsbcs
  • (stdClass) $object - объект, удаленный из таблицы programmsbcs

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

  • (bool) true если событие послано успешно, или false в случае ошибки

get_studentid_by_programmsbc($programmsbcid)

Получает id ученика в таблице persons на которого зарегестрирована эта подписка.

Аргументы:

  • (int) $programmsbcid - id подписки на программу в таблице programmsbcs

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

  • bool|int false если не нашли контракт или не найдена запись, id - id ученика

get_programmsbcs_by_contractid($id)

Выдает информацию о подписках на программу по id контракта.

Аргументы:

  • (int) $id - id контракта

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

  • array - массив с информацией о подписках на программу

get_programmsbcs_by_personid($id)

Выдает информацию о подписках на программу по id персоны ученика.

Аргументы:

  • (int) $id - id персоны

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

  • array - массив с информацией о подписках на программу

is_sbc_to_programm($personid,$programmid)

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

Аргументы:

  • (int) $personid - id персоны
  • (int) $programmid - id программы

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

  • bool

Планы:

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

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

События

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

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

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

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

Плагин перехватывает собственное событие вставки в базу данных, и вызывает функцию send_addto_agroup()
storage programmsbcs update Массив, содержащий в поле "new" обновленный объект, и в поле "old" объект со старыми данными, до обновления записи.

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

Плагин перехватывает собственное событие вставки в базу данных, и вызывает функцию send_change_agroup()
storage programmsbcs delete Массив, содержащий в поле "old" объект с данными, которые удаляются из таблицы

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

Плагин перехватывает собственное событие вставки в базу данных, и вызывает функцию send_from_agroup()

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

Таблица событий, которые генерирует этот плагин
Тип плагина Код плагина Код события Доп. данные Пояснение
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.
storage programmsbcs changegroup Массив, содержащий:
  • в поле 'oldagroup' id старой группы
  • в поле 'newagroup' id новой группы
  • в поле 'programmsbc' объект из таблицы programmsbcs

Пример: array('oldagroup' => $oldid, 'newagroup' => $newid, 'programmsbc' => $object)

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