Разработка:storages/programmsbcs — различия между версиями
Ilya (обсуждение | вклад) (→Дополнительные методы:: описано какие id из каких таблиц надо брать) |
Alex (обсуждение | вклад) |
||
(не показана 21 промежуточная версия 3 участников) | |||
Строка 13: | Строка 13: | ||
*freeattendance - свободное посещение (0/1) | *freeattendance - свободное посещение (0/1) | ||
*agroupid - id академической группы в таблице [[Разработка:storages/agroups | agroups ]], если обучение групповое | *agroupid - id академической группы в таблице [[Разработка:storages/agroups | agroups ]], если обучение групповое | ||
− | *agenum - порядковый номер текущего учебного периода (изменяется приказом по контингенту) | + | *agenum - порядковый номер текущего учебного периода, или параллель (изменяется приказом по контингенту). Параллель не может быть изменена тогда когда ученик находится в группе, которая имеет любой статус кроме "формируется". (см. [[Разработка:workflows/agroups | workflows/agroups ]]) |
*departmentid - структурное подразделение в таблице [[Разработка:storages/departments | departments ]], ответственное за исполнение подписки | *departmentid - структурное подразделение в таблице [[Разработка:storages/departments | departments ]], ответственное за исполнение подписки | ||
*status - список статусов указан в одноименном плагине рабочих процессов [[Разработка:workflows/programmsbcs | programmsbcs ]] | *status - список статусов указан в одноименном плагине рабочих процессов [[Разработка:workflows/programmsbcs | programmsbcs ]] | ||
− | |||
*datestart - дата начала действия подписки | *datestart - дата начала действия подписки | ||
*dateadd - дата создания подписки (если есть, соответствует дате документа о подписке ученика на курс) | *dateadd - дата создания подписки (если есть, соответствует дате документа о подписке ученика на курс) | ||
Строка 24: | Строка 23: | ||
*certificateorderid - номер приказа, в соответствии с которым выдан сертификат | *certificateorderid - номер приказа, в соответствии с которым выдан сертификат | ||
*dateend - дата завершения подписки | *dateend - дата завершения подписки | ||
+ | * salfactor - поправочный зарплатный коэффициент | ||
===Дополнительные методы:=== | ===Дополнительные методы:=== | ||
− | '''get_contracts_without_cpassed()''' | + | ===='''get_contracts_without_cpassed($agroupid, $cstreamid)'''==== |
Возвращает список контрактов учеников данной группы, у которых нет подписок на указанный предмето-поток | Возвращает список контрактов учеников данной группы, у которых нет подписок на указанный предмето-поток | ||
Строка 44: | Строка 44: | ||
* из найденных подписок на предметы извлечем id контрактов и вернем сами контракты. | * из найденных подписок на предметы извлечем id контрактов и вернем сами контракты. | ||
− | '''get_listing($limitfrom, $limitnum, $conds=null, $countonly=false)''' | + | ===='''get_listing($limitfrom, $limitnum, $conds=null, $countonly=false)'''==== |
Возвращает список объектов, выбранных из таблицы по критериям, которые переданы в качестве входных параметров. | Возвращает список объектов, выбранных из таблицы по критериям, которые переданы в качестве входных параметров. | ||
Строка 51: | Строка 51: | ||
* integer $limitfrom - порядковый номер записи в общем списке объектов, которая будет первой выведена на экран; | * integer $limitfrom - порядковый номер записи в общем списке объектов, которая будет первой выведена на экран; | ||
* integer $limitnum - количество объектов, которые показываются на странице; | * integer $limitnum - количество объектов, которые показываются на странице; | ||
− | * array $conds - массив вида имя_поля => значение_поля, в котором передаются параметры выборки | + | * array $conds - массив вида имя_поля => значение_поля, в котором передаются параметры выборки, по умолчанию null |
− | * bool $countonly - если true - вернуть только количество записей | + | * bool $countonly - если true - вернуть только количество записей, по умолчанию false |
''Структура работы:'' | ''Структура работы:'' | ||
* Проверяем корректность переданных параметров. | * Проверяем корректность переданных параметров. | ||
* Формируем фрагмент sql-запроса. | * Формируем фрагмент sql-запроса. | ||
− | * Если надо | + | * Если надо только количество записей - возвращаем их. |
* Иначе - возвращаем записи из таблицы. | * Иначе - возвращаем записи из таблицы. | ||
''Возвращаемые значения:'' | ''Возвращаемые значения:'' | ||
Строка 62: | Строка 62: | ||
* array - массив записей. | * array - массив записей. | ||
− | '''get_eduforms_list()''' | + | ===='''get_select_listing($inputconds)'''==== |
+ | |||
+ | Возвращает фрагмент sql-запроса после слова WHERE | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * object $inputconds - список полей с условиями запроса в формате "поле_БД->значение" | ||
+ | ''Возвращаемые значения:'' | ||
+ | * string. | ||
+ | |||
+ | ===='''get_eduforms_list()'''==== | ||
Возвращает список возможных форм обучения. На данный момент - очная, заочная, очно-заочная, экстернат. | Возвращает список возможных форм обучения. На данный момент - очная, заочная, очно-заочная, экстернат. | ||
''Аргументы:'' | ''Аргументы:'' | ||
− | |||
Отсутствуют. | Отсутствуют. | ||
− | + | ''Структура работы:'' | |
+ | * Получает все формы обучения как массив. | ||
+ | * Проверяет наличие переданного кода в индексах массива. Если индекс найден - возвращает соответствующее ему значение. Если нет - возвращает пробел. | ||
''Возвращаемые значения:'' | ''Возвращаемые значения:'' | ||
* array - массив вида код_формы => название_формы. | * array - массив вида код_формы => название_формы. | ||
− | '''get_eduform_name()''' | + | ===='''get_eduform_name($code)'''==== |
Возвращает название формы обучения. | Возвращает название формы обучения. | ||
''Аргументы:'' | ''Аргументы:'' | ||
− | * string $code - код формы обучения - индекс массива, который возвращает метод ''' | + | * string $code - код формы обучения - индекс массива, который возвращает метод |
+ | ''Возвращаемые значения:'' | ||
+ | mixed string|bool - название формы обучения или пробел, если такая форма обучения не найдена | ||
+ | |||
+ | ===='''get_edutypes_list()'''==== | ||
− | + | Возвращает список возможных типов обучения. | |
− | |||
− | |||
+ | ''Аргументы:'' | ||
+ | Отсутствуют. | ||
''Возвращаемые значения:'' | ''Возвращаемые значения:'' | ||
+ | * array массив вида "тип обучения"=>"название". | ||
− | + | ===='''get_edutype_name($code)'''==== | |
− | '''is_programmsbc()''' | + | Возвращает обозначение формы обучения по ее коду. |
+ | |||
+ | ''Аргументы:'' | ||
+ | * string $code - код формы обучения | ||
+ | ''Возвращаемые значения:'' | ||
+ | mixed string|bool - название формы обучения или пробел, если такая форма обучения не найдена | ||
+ | |||
+ | ===='''is_programmsbc($contractid, $programmid, $agroupid = null, $agestartid = null, $id = null)'''==== | ||
Проверяет, существует ли подписка с теми же параметрами: тот же пользователь в ту же академическую группу, тот же пользователь на ту же учебную программу. Учитывает подписки в статусе заявка, подтвержденная, действующая, приостановленная. | Проверяет, существует ли подписка с теми же параметрами: тот же пользователь в ту же академическую группу, тот же пользователь на ту же учебную программу. Учитывает подписки в статусе заявка, подтвержденная, действующая, приостановленная. | ||
Строка 95: | Строка 117: | ||
* $contractid(int) - id контракта в таблице [[Разработка:storages/contracts | contracts ]] | * $contractid(int) - id контракта в таблице [[Разработка:storages/contracts | contracts ]] | ||
* $programmid(int) - id программы в таблице [[Разработка:storages/programms | programms ]] | * $programmid(int) - id программы в таблице [[Разработка:storages/programms | programms ]] | ||
− | * $agroupid(int) - id группы в таблице [[Разработка:storages/agroups | agroups ]], по умолчанию - | + | * $agroupid(int) - id группы в таблице [[Разработка:storages/agroups | agroups ]], по умолчанию null |
− | * $id(int) - id подписки, которую не следует учитывать, по умолчанию | + | * $agestartid(int) - id учебного периода в таблице [[Разработка:storages/ages | ages ]], по умолчанию null |
− | + | * $id(int) - id подписки, которую не следует учитывать, по умолчанию null | |
''Структура работы:'' | ''Структура работы:'' | ||
* Получаем контракт ученика. | * Получаем контракт ученика. | ||
Строка 108: | Строка 130: | ||
** если указан id подписки, которую необходимо исключить, исключим его из поиска | ** если указан id подписки, которую необходимо исключить, исключим его из поиска | ||
* находим подпски по заданным критериям и если такие найдены вернем true | * находим подпски по заданным критериям и если такие найдены вернем true | ||
− | |||
''Возвращаемые значения:'' | ''Возвращаемые значения:'' | ||
− | |||
* bool - true если подписки найдены и false если таковых нет | * bool - true если подписки найдены и false если таковых нет | ||
− | '''change_sbc_parametres()''' | + | ===='''change_sbc_parametres($id, $edutype, $eduform, $freeattendance, $datestart, $agestartid = null, $agroupid = null, $departmentid = null, $agenum = null)'''==== |
Изменить параметры подписки: тип, форма, свободное посещение, академическая группа. | Изменить параметры подписки: тип, форма, свободное посещение, академическая группа. | ||
Строка 122: | Строка 142: | ||
* $eduform(string) - форма обучения | * $eduform(string) - форма обучения | ||
* $freeattendance(int) - свободное посещение | * $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 в остальных случаях | * bool - true если запись успешно обновлена и false в остальных случаях | ||
− | ''' | + | ===='''sign($sbc)'''==== |
Подписывает (проверяется возможность создать существующую подписку) | Подписывает (проверяется возможность создать существующую подписку) | ||
Строка 138: | Строка 159: | ||
''Аргументы:'' | ''Аргументы:'' | ||
* $sbc(object) - объект вставки записи в БД | * $sbc(object) - объект вставки записи в БД | ||
− | |||
''Структура работы:'' | ''Структура работы:'' | ||
* Проверяет существование исходных данных (данных нет - сохранять нельзя) | * Проверяет существование исходных данных (данных нет - сохранять нельзя) | ||
* Проверяет существование подпоски с такими параметрами (подписка есть - сохранять нельзя) | * Проверяет существование подпоски с такими параметрами (подписка есть - сохранять нельзя) | ||
* Если все в порядке - вставляем запись в БД. | * Если все в порядке - вставляем запись в БД. | ||
+ | ''Возвращаемые значения:'' | ||
+ | * int - id вставленой записи | ||
+ | * bool - false в остальных случаях | ||
+ | |||
+ | ===='''send_addto_agroup($id, $object)'''==== | ||
+ | |||
+ | Посылает событие "changeagroup", в случае зачисления студента в группу. | ||
+ | ''Аргументы:'' | ||
+ | * (int) $id - id подписки на программу | ||
+ | * (stdClass) $object - объект, вставляемый в таблицу | ||
''Возвращаемые значения:'' | ''Возвращаемые значения:'' | ||
+ | * (bool) true если событие послано успешно, или false в случае ошибки | ||
− | * int - id | + | ===='''send_change_agroup($id, $oldobject, $newobject)'''==== |
− | * bool - false | + | |
+ | Посылает событие "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 | ||
===Планы:=== | ===Планы:=== | ||
Строка 156: | Строка 242: | ||
* Список действующих подписок для структурного подразделения (если указан статус - то берутся подписки соответствующие этому статусу, если не указан - действующие) | * Список действующих подписок для структурного подразделения (если указан статус - то берутся подписки соответствующие этому статусу, если не указан - действующие) | ||
* Отписать (подписка помечается как недействительная) | * Отписать (подписка помечается как недействительная) | ||
+ | ===События=== | ||
+ | В этом разделе описан список всех событий, которые генерируются, перехватываются и обрабатываются этим плагином. | ||
+ | ====Перехватываемые события==== | ||
+ | {| 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 |
Содержание
- 1 Таблица в базе данных
- 2 Дополнительные методы:
- 2.1 get_contracts_without_cpassed($agroupid, $cstreamid)
- 2.2 get_listing($limitfrom, $limitnum, $conds=null, $countonly=false)
- 2.3 get_select_listing($inputconds)
- 2.4 get_eduforms_list()
- 2.5 get_eduform_name($code)
- 2.6 get_edutypes_list()
- 2.7 get_edutype_name($code)
- 2.8 is_programmsbc($contractid, $programmid, $agroupid = null, $agestartid = null, $id = null)
- 2.9 change_sbc_parametres($id, $edutype, $eduform, $freeattendance, $datestart, $agestartid = null, $agroupid = null, $departmentid = null, $agenum = null)
- 2.10 sign($sbc)
- 2.11 send_addto_agroup($id, $object)
- 2.12 send_change_agroup($id, $oldobject, $newobject)
- 2.13 send_from_agroup($id, $object)
- 2.14 get_studentid_by_programmsbc($programmsbcid)
- 2.15 get_programmsbcs_by_contractid($id)
- 2.16 get_programmsbcs_by_personid($id)
- 2.17 is_sbc_to_programm($personid,$programmid)
- 3 Планы:
- 4 События
Таблица в базе данных
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 | Массив, содержащий:
Пример: array('oldagroup' => $oldid, 'newagroup' => $newid, 'programmsbc' => $object) |
Посылается в том случае, когда ученик переводится из одной группы в другую |