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

Материал из DOF
Перейти к: навигация, поиск
(Подробный формат полей в таблице:)
м (Подробный формат полей в таблице:)
 
(не показано 48 промежуточных версий 6 участников)
Строка 3: Строка 3:
 
| type = storages
 
| type = storages
 
}}
 
}}
===Таблица в базе данных===
+
=Таблица в базе данных=
 
''cpassed'' - изучаемые и пройденные курсы: отражает ход изучения учащимися выбранной учебной программы, итоговые отметки.
 
''cpassed'' - изучаемые и пройденные курсы: отражает ход изучения учащимися выбранной учебной программы, итоговые отметки.
  
====Подробный формат полей в таблице:====
+
===Подробный формат полей в таблице:===
* cstreamid - id учебного процесса, по которому велось обучение
+
* cstreamid - id учебного процесса в таблице [[Разработка:storages/cstreams | cstreams ]], по которому велось обучение.
* programmsbcid - id подписки контракта на программу обучения
+
* programmsbcid - id подписки контракта в таблице [[Разработка:storages/contracts | contracts ]] на программу обучения.
* programmitemid - id дисциплины
+
* programmitemid - id дисциплины в таблице [[Разработка:storages/programmitems | programmitems ]].
* studentid - id слушателя по таблице persons
+
* studentid - id слушателя по таблице [[Разработка:storages/persons | persons ]].
* grade (итоговая отметка по курсу)
+
* agroupid - id академической группы в таблице [[Разработка:storages/agroups | agroups ]]. Не обязательное поле (для заполнения). По умолчанию NULL. При зачислении и отчислении из группы изменяется его значение автоматически. При отчислении из группы поле становится равным нулю (0). При индивидуальном обучении - NULL. На основании этого принимается решение подписке/отписке на предмет.
* gradelevel - уровень оценки (оценка не идет в кандуит, дисциплина, курсовая работа, практика, междисциплинарный экзамин, дипломная работа). Берется из programmitems.
+
* grade - итоговая отметка по курсу.
* credit - количество кредитов, полученное за прохождение дисциплины
+
* gradelevel - уровень оценки (оценка не идет в кондуит, дисциплина, курсовая работа, практика, междисциплинарный экзамен, дипломная работа). Берется из [[Разработка:storages/programmitems | programmitems ]].
* notice - текстовое пояснение об источнике оценки при перезачете
+
* credit - количество кредитов, полученное за прохождение дисциплины.
* repeatid - id предыдущей подписке, если обучение выполняется повторно (пересдача, повторное обучение - при этом подписка, на которую выполняется ссылка должна иметь статус "пересдан")
+
* notice - текстовое пояснение об источнике оценки при перезачете.
* typesync - тип синхронизации (выставление вручную, синхронизация с moodle)
+
* repeatid - id предыдущей подписки на дисциплину, если обучение выполняется повторно (пересдача или повторное обучение - при этом подписка, на которую выполняется ссылка должна иметь статус "пересдан"). Пересдачей может считаться только пересдача дисциплины, пройденной в рамках этой же подписки на учебную программу. Если было несколько пересдач данной дисциплины в данной учебной программе, то все они ссылаются на один и тот же исходный cpassedid.
* mdlinstance - id задания в moodle, с которым выполнялась синхронизация
+
* typesync - тип синхронизации (выставление вручную, синхронизация с moodle).
* teacherid - id сотрудника по справочнику persons, вручную выставившего итоговую отметку
+
* mdlinstance - id задания в moodle, с которым выполнялась синхронизация.
* ageid - id периода по которому велось обучение
+
* teacherid - id сотрудника по справочнику [[Разработка:storages/persons | persons ]], вручную выставившего итоговую отметку.
* status - список статусов указан в одноименном плагине рабочих процессов [[Разработка:workflows/cpassed | cpassed ]]
+
* ageid - id периода в таблице [[Разработка:storages/ages | ages ]] по которому велось обучение.
 +
* orderid - id приказа в таблице [[Разработка:storages/orders | orders ]], согласно которому была выставлена оценка.
 +
* status - список статусов указан в одноименном плагине рабочих процессов [[Разработка:workflows/cpassed | cpassed ]].
 +
* begindate - дата начала действия подписки.
 +
* enddate - дата окончания действия подписки.
 +
* sbcorderid - id приказа в таблице [[Разработка:storages/orders | orders ]], которым учащийся был подписан на дисциплину.
 +
* learninghistoryid - id записи в таблице [[Разработка:storages/learninghistory | learninghistory ]], соответствующая текущей параллели данной подписки.
  
===Дополнительные методы:===
+
=Дополнительные методы:=
  
'''get_cstream_students()'''
+
===='''get_actual_reoffset_cpassed($cpasseds)'''====
 +
 
 +
Возвращает только последнюю пересдачу (по времени) из массива пересдач.
 +
 
 +
''Аргументы:''
 +
* $cpasseds(array) - записи, полученные по одной подписке и дисциплине.
 +
''Возвращаемые значения:''
 +
* (object) - объект последней пересдачи
 +
* (bool) - false, в случае ошибки
 +
''Структура работы:''
 +
# в эту функцию должны передаваться только cpassed->status == 'reoffset'
 +
 
 +
 
 +
===='''get_cstream_students($csid, $status = null)'''====
  
 
Получает список всех подписок студентов, приписаных к одному предмето-потоку.
 
Получает список всех подписок студентов, приписаных к одному предмето-потоку.
  
''Аргументы:''  
+
''Аргументы:''
* $csid(int) - id учебного потока.
+
* $csid(int) - id учебного потока в таблице [[Разработка:storages/cstreams | cstreams ]].
* $status(string) - статус подписки, по умолчанию - все(null).
+
* $status(string) - статус подписки, по умолчанию - null.
 
''Возвращаемые значения:''
 
''Возвращаемые значения:''
* (array) список подписок на учебный поток.  
+
* (array) - список подписок на учебный поток.
* (bool) false если подписки не найдены.
+
* (bool) - false, если подписки не найдены.
 
''Структура работы:''
 
''Структура работы:''
 
* формируем SQL-запрос и возвращаем список подписок:
 
* формируем SQL-запрос и возвращаем список подписок:
Строка 39: Строка 58:
 
** если статус не указывается или указывается как null - подписки с любым статусом.
 
** если статус не указывается или указывается как null - подписки с любым статусом.
  
'''get_cpasseds_student()'''
+
 
 +
===='''get_cstream_agroup($cstreamid, $agroupid, $status = null)'''====
 +
 
 +
Получаеть список всех подписок студентов к указанному учебному потоку или только подписок с указанным статусом.
 +
 
 +
''Аргументы:''
 +
* $cstreamid(int) - id учебного потока в таблице [[Разработка:storages/cstreams | cstreams ]].
 +
* $agroupid(int) - id академической группы в таблице [[Разработка:storages/cstreams | agroups ]].
 +
* $status(string) - статус учебной дисциплины. по умолчанию - null.
 +
''Возвращаемые значения:''
 +
* (array) - массив записей из таблица.
 +
* (bool) - false, если записи не найдены.
 +
 
 +
 
 +
===='''get_cpasseds_student($stid, $status = 'active')'''====
  
 
Получает список всех подписок для слушателя.
 
Получает список всех подписок для слушателя.
  
 
''Аргументы:''  
 
''Аргументы:''  
* $stid(int) - id студента
+
* $stid(int) - id студента в таблице [[Разработка:storages/persons | persons ]]
* $status(string) - статус подписки, по умолчанию - идет(go).
+
* $status(string) - статус подписки, по умолчанию - 'active'.
 
''Возвращаемые значения:''
 
''Возвращаемые значения:''
* (array) список подписок на учебный поток.  
+
* (array) - список подписок на учебный поток.  
* (bool) false если подписки не найдены.
+
* (bool) - false, если подписки не найдены.
 
''Структура работы:''
 
''Структура работы:''
 
* формируем SQL-запрос и возвращаем список подписок:
 
* формируем SQL-запрос и возвращаем список подписок:
 
** если указывается статус - подписки с указанным статусом,
 
** если указывается статус - подписки с указанным статусом,
 
** если статус указывается null - подписки с любым статусом,
 
** если статус указывается null - подписки с любым статусом,
** если статус не указывается - подписки со статусом go.
+
** если статус не указывается - подписки со статусом active.
 +
 
  
'''get_cpassed_programm()'''
+
===='''get_cpassed_programm($stid, $prid, $status = 'complete')'''====
  
 
Получает список дисциплин, изученных слушателем в рамках учебной программы.
 
Получает список дисциплин, изученных слушателем в рамках учебной программы.
  
 
''Аргументы:''  
 
''Аргументы:''  
* $stid(int) - id студента.
+
* $stid(int) - id студента в таблице [[Разработка:storages/persons | persons ]].
* $prid(int) - id подписки на программу.
+
* $prid(int) - id подписки на программу в таблице [[Разработка:storages/programmsbcs | programmsbcs ]].
* $status(string) - статус подписки, по умолчанию - завершен(complete).
+
* $status(string) - статус подписки, по умолчанию - 'complete'.
 
''Возвращаемые значения:''
 
''Возвращаемые значения:''
* (array) список подписок на учебный поток.  
+
* (array) - список подписок на учебный поток.  
* (bool) false если подписки не найдены.
+
* (bool) - false, если подписки не найдены.
 
''Структура работы:''
 
''Структура работы:''
 
* формируем SQL-запрос и возвращаем список подписок:
 
* формируем SQL-запрос и возвращаем список подписок:
Строка 73: Строка 107:
  
  
'''get_cpasseds_programmitem()'''
+
===='''get_cpasseds_programmitem($stid, $prid, $status = 'complete', $levelgrade = null)'''====
  
 
Получает подписки на дисциплину по id слушателя и id дисциплины.
 
Получает подписки на дисциплину по id слушателя и id дисциплины.
  
''Аргументы:''  
+
''Аргументы:''
* $stid(int) - id студента.
+
* $stid(int) - id студента в таблице [[Разработка:storages/persons | persons ]].
* $prid(int) - id дисциплины.
+
* $prid(int) - id дисциплины в таблице [[Разработка:storages/programmitems | programmitems ]].
* $status(string) - название статуса подписки, по умолчанию 'complete'
+
* $status(string) - название статуса подписки, по умолчанию - 'complete'
 
* $levelgrade(string) - уровень оценки, по умолчанию - null.
 
* $levelgrade(string) - уровень оценки, по умолчанию - null.
 
''Возвращаемые значения:''
 
''Возвращаемые значения:''
Строка 92: Строка 126:
 
** если статус указан как null или false, то вернутся подписки с любым статусом
 
** если статус указан как null или false, то вернутся подписки с любым статусом
  
'''update_total_grade()'''
+
===='''get_cpasseds_reoffset($conds=null, $countonly=false, $limitfrom, $limitnum)'''====
  
Установливает/обновляет студенту итоговую оценку и комментарий для существующей подписки (в перспективе, когда будет реализован справочник с историей изменения отметок - вызов функции протоколирования). Если оценка равна или выше минимальной, подписка переводится в статус "успешно завершен".
+
Возвращает список учебных потоков по заданным критериям, упрощённая версия get_listing() с поиском только по таблице cpassed для "Ведомости перезачёта оценок"
  
''Аргументы:''  
+
''Аргументы:''
* $id(int) - id подписки.
+
* $limitfrom(int) - начиная с какой записи просматривается фрагмент списка записей.
* $grade(int) - итоговая оценка.
+
* $limitnum(int) - сколько записей нужно извлечь из базы.
* $comment(string) - коментарий
+
* $conds(object) - объект со списком свойств, по которым будет происходить поиск.
 +
* $countonly(bool) - Если указано true, то функция вернет только количество записей, соответствующих переданным условиям. По умолчанию - false.
 
''Возвращаемые значения:''
 
''Возвращаемые значения:''
* (bool) true в случае успешного обновления и false в остальных
+
* (array) - массив записей из базы.
 +
* (int) - количество записей, если $countonly=true.
 +
* (bool) - false, в случае ошибки.
 
''Структура работы:''
 
''Структура работы:''
# создаем объект для вставки в таблицу БД.
+
# составляем запрос по переданным параметрам при помощи собственной protected-функции get_select_listing()
# (не реализовано)меняем статус подписки.
+
# Проверяем условие $countonly. Если оно истинно - то возвращаем только количество записей
# обновляем запись в БД.
+
# Поиск производится только по таблице cpassed, без проверки на целостность базы данных (с помощью выборки из других таблиц)
 +
# Если ложно - то возвращаем список записей
  
'''insert_grade_reoffset()'''
+
===='''insert_grade_reoffset($stid, $prid, $cpid, $grade, $status, $comment, $initialid)'''====
  
Добавляет оценку в режиме "перезачета".(в перспективе, когда будет реализован справочник с историей изменения отметок - вызов функции протоколирования)
+
Добавляет оценку в режиме "перезачета".(в перспективе, когда будет реализован справочник с историей изменения отметок - вызов функции протоколирования).
  
''Аргументы:''  
+
''Аргументы:''
* $stid(int) - id студента.
+
* $stid(int) - id студента в таблице [[Разработка:storages/persons | persons ]].
* $prid(int) - id дисциплины.
+
* $prid(int) - id дисциплины в таблице [[Разработка:storages/departments | departments ]].
* $cpid(int) - id подписки на программу.
+
* $cpid(int) - id подписки на программу в таблице [[Разработка:storages/programmsbcs | programmsbcs ]].
 
* $grade(int) - итоговая оценка.
 
* $grade(int) - итоговая оценка.
 
* $comment(string) - коментарий.
 
* $comment(string) - коментарий.
Строка 120: Строка 158:
 
* $initialid(int) - id исходной подписки.
 
* $initialid(int) - id исходной подписки.
 
''Возвращаемые значения:''
 
''Возвращаемые значения:''
* (int) id добавленной записи  
+
* (int) id добавленной записи.
* (bool) false если добавление не удалось
+
* (bool) false если добавление не удалось.
 
''Структура работы:''
 
''Структура работы:''
 
# если дисиплина пересдается (статус = repeating), статус исходной подписки меняем на пересдан и обновляем запись в БД.
 
# если дисиплина пересдается (статус = repeating), статус исходной подписки меняем на пересдан и обновляем запись в БД.
 
# формируем новый объект в БД.
 
# формируем новый объект в БД.
 
# вставляем сформированную запись в таблицу БД.
 
# вставляем сформированную запись в таблицу БД.
 +
 +
 +
===='''insert_grade_register_reoffset($programmsbcid, $programmitemid, $studentid, $grade, $orderid, $teacherid, $date)'''====
 +
 +
Добавить оценку в режиме "перезачета" (для приказа "Ведомость для перезачёта"). В случае если была активная подписка -- она закрывается.
 +
 +
''Аргументы:''
 +
* $programmsbcid(int) - id подписки на программу в таблице [[Разработка:storages/programmsbcs | programmsbcs ]].
 +
* $programmitemid(int) - id дисциплины в таблице [[Разработка:storages/programmitems | programmitems ]].
 +
* $studentid(int) - id студента (personid) в таблице [[Разработка:storages/persons | persons ]].
 +
* $grade(int) - итоговая оценка.
 +
* $orderid(int) - id приказа в таблице [[Разработка:storages/orders | orders ]], по которому выставляется перезачёт.
 +
* $teacherid(int) - personid из таблицы [[Разработка:storages/persons | persons ]], кто ставил оценку
 +
* $date(int) - дата перезачёта
 +
''Возвращаемые значения:''
 +
* (int) id добавленной записи.
 +
* (bool) false если добавление не удалось.
 +
''Структура работы:''
 +
# Cоздаются cpassed-ы не привязанные к периоду (ageid=0).
 +
# Если у студента уже был cpassed по этой дисциплине, перезачет ссылается на него полем repeatid (если несколько - то на самый первый, если старая подписка была активна - закрывается с неуспешным статусом).
 +
 +
 +
===='''get_listing($limitfrom, $limitnum, $conds=null, $countonly=false)'''====
 +
 +
Получает список учебных потоков по заданным критериям.
 +
 +
''Аргументы:''
 +
* $limitfrom - начиная с какой записи просматривается фрагмент списка записей.
 +
* $limitnum - сколько записей нужно извлечь из базы.
 +
* $conds - объект со списком свойств, по которым будет происходить поиск.
 +
* $countonly - Если указано true, то функция вернет только количество записей, соответствующих переданным условиям. По умолчанию - false.
 +
''Возвращаемые значения:''
 +
* (array) - массив записей из базы.
 +
* (int) - количество записей, если $countonly=true.
 +
* (bool) - false, в случае ошибки.
 +
''Структура работы:''
 +
# составляем запрос по переданным параметрам при помощи собственной protected-функции get_select_listing()
 +
# Проверяем условие $countonly. Если оно истинно - то возвращаем только количество записей
 +
# Если ложно - то возвращаем список записей
 +
 +
 +
===='''unsign_student_one_cpassed($studentid, $cstreamid)'''====
 +
 +
Отписывает заданного студента от заданного учебного потока
 +
 +
''Аргументы:''
 +
* $studentid(int) - id студента в таблице [[Разработка:storages/persons | persons ]].
 +
* $cstreamid(int) - id учебного потока в таблице [[Разработка:storages/cstreams | cstreams ]].
 +
''Возвращаемые значения:''
 +
* (boоl) - true, в случае успеха и falsе, в остальных.
 +
 +
 +
===='''unsign_agroups_from_cstream($cstreamid)'''====
 +
 +
Удаляет всех "лишних" подписок из потока, которые были записаны в составе группы, связи с которой сейчас нет.
 +
 +
''Аргументы:''
 +
* $cstreamid(int) - id учебного потока в таблице [[Разработка:storages/cstreams | cstreams ]].
 +
''Возвращаемые значения:''
 +
* (boоl) - true, в случае успеха и falsе, в остальных.
 +
 +
 +
unsign_student_all_cpassed($studentid, $programmsbcid)
 +
 +
Отписывает студента от всех потоков программы
 +
 +
''Аргументы:''
 +
* $studentid(int) - id студента в таблице [[Разработка:storages/persons | persons ]].
 +
* $programmsbcid(int) - id подписки на программу в таблице [[Разработка:storages/programmsbcs | programmsbcs ]].
 +
''Возвращаемые значения:''
 +
* (boоl) - true, в случае успеха и falsе, в остальных
 +
 +
 +
===='''unsign_students_all_cpassed($students)'''====
 +
 +
Отписывает нескольких студентов от всех потоков программы
 +
 +
''Аргументы:''
 +
* $students(array) - массив (id подписки на программу студента в таблице [[Разработка:storages/programmsbcs | programmsbcs ]]=>id студента в таблице [[Разработка:storages/persons | persons ]]).
 +
''Возвращаемые значения:''
 +
* (boоl) - true, в случае успеха и falsе, в остальных.
 +
 +
 +
===='''get_students_without_agroup()'''====
 +
 +
Получить список всех подписок, которые не принадлежат ни к одной группе.
 +
 +
''Аргументы:''
 +
* ''(нет)''
 +
''Возвращаемые значения:''
 +
* (array)
 +
* (bool) - false, если ничего не нашлось.
 +
''Структура работы:''
 +
* Возвращаются все записи таблицы cpassed, имеющие статус plan или active в которых поле agroupid равно:
 +
** NULL (null-значение)
 +
** "" (пустой строке)
 +
** 0
 +
 +
 +
===='''unsign_students_without_agroup()'''====
 +
 +
Отписать всех учеников, не имеющих подписки ни на одну группу
 +
 +
''Аргументы:''
 +
* ''(нет)''
 +
''Возвращаемые значения:''
 +
* (bool) - true, если изменение всех статусов прошло нормально или false, если в процессе работы произошли ошибки.
 +
''Структура работы:''
 +
* Для получения списка подписок, не имеющих связи с группой вызывается функция get_students_without_agroup()
 +
** Если таких подписок нет - возвращается true
 +
** Если подписки есть - то в цикле выставляем каждой записи статус "canceled" (через обращение к плагину workflow)
 +
 +
 +
is_already_enroled($studentid, $cstreamid, $status = null)
 +
 +
Проверяет, подписан ли уже этот ученик на переданный поток из поиска исключаются записи с переданным статусом.
 +
 +
''Аргументы:''
 +
* $studentid(int) - id ученика в таблице [[Разработка:storages/persons | persons ]].
 +
* $cstreamid(int) - id учебного потока в таблице [[Разработка:storages/cstreams | cstreams ]].
 +
* $status(string) - код статуса
 +
* $status(array) - массив статусов, или null, если их нет, по умолчанию - null.
 +
''Возвращаемые значения:''
 +
* (int) - id записи если такая запись уже есть.
 +
* (bool) - false, если ученик еще не подписан.
 +
 +
 +
 +
===='''sign_student_on_cstream($cstreamid, $programmsbcid)'''====
 +
 +
Подписывает одного ученика на один учебный поток.
 +
 +
''Аргументы:''
 +
* $cstreamid(int) - id учебного потока в таблице в таблице [[Разработка:storages/cstreams | cstreams ]].
 +
* $programmsbcid(int) - id подписки студента на программу в таблице [[Разработка:storages/programmsbcs | programmsbcs ]].
 +
''Возвращаемые значения:''
 +
* (int) - id записи если подписка произошла успешно (или уже существует).
 +
* (bool) - false, в случае ошибки.
 +
 +
 +
===='''sign_student_on_all_cstreams($programmsbcid, $ageid = null)'''====
 +
 +
Подписыает студента на все потоки программы по данному периоду
 +
 +
''Аргументы:''
 +
* $programmsbcid(int) - id подписку студента на программу в таблице [[Разработка:storages/programmsbcs | programmsbcs ]].
 +
* $ageid(int) - id текущего периода в таблице [[Разработка:storages/ages | ages ]], по умолчанию - null.
 +
''Возвращаемые значения:''
 +
* (bool) - true, если ученик успешно подписан на потоки, или потоков в программе посто нет и false, в остальных случаях.
 +
 +
 +
===='''sign_all_agroups_on_all_cstreams($programmid, $ageid)'''====
 +
 +
Подписывает все группы на потоки программы по данному периоду
 +
 +
''Аргументы:''
 +
* $programmid(int) - id программы, на которую создаем подписки на предмет в таблице [[Разработка:storages/programms | programms ]].
 +
* $ageid(int) - id текущего периода в таблице [[Разработка:storages/ages | ages ]].
 +
''Возвращаемые значения:''
 +
* (bool) - true, если все операции прошли успешно и false, в случае ошибки.
 +
 +
 +
===='''sign_agroup_on_all_cstreams($agroupid, $programmid, $ageid)'''====
 +
 +
Подписывает одну академическую группу на все потоки указанной программы в переданом периоде.
 +
 +
''Аргументы:''
 +
* $agroupid(int) - id учебной группы в таблице [[Разработка:storages/agroups | agroups ]].
 +
* $programmid(int) - id учебной программы в таблице [[Разработка:storages/programms | programms ]].
 +
* $ageid(int) - id периода в таблице [[Разработка:storages/ages | ages ]].
 +
''Возвращаемые значения:''
 +
* (bool) - true, если все операции прошли успешно, и false, в случае ошибки.
 +
 +
 +
 +
===='''unsign_students_without_real_agroup($cstreamlink)'''====
 +
 +
Отменяет подписки учеников, у которых группа, указанная в подписке на программу ([[Разработка:storages/programmsbcs | programmsbcs ]]), не совпадает с группой, указанной в таблице связей учебных потоков с группами ([[Разработка:storages/cstreamlinks | cstreamlinks ]]).
 +
 +
''Аргументы:''
 +
* (object)$cstreamlink - объект в таблице [[Разработка:storages/cstreamlinks | cstreamlinks ]]
 +
''Возвращаемые значения:''
 +
* (bool) - true, если все операции завершились успешно и false, в случае возникновения ошибок.
 +
 +
 +
===='''syncronize_agroups_with_cstream($cstreamid)'''====
 +
 +
Синхронизирует все группы, связанные с данным потоком.
 +
 +
''Аргументы:''
 +
* $cstreamid(int) - id потока в таблице [[Разработка:storages/cstreams | cstreams ]].
 +
''Возвращаемые значения:''
 +
* (bool) - true, если все операции завершились успешно и false, в случае возникновения ошибок.
 +
 +
 +
===='''syncronize_agroup_with_cstreams($agroupid)'''====
 +
 +
Синхронизирует группу, со связанными с нею потоками.
 +
 +
''Аргументы:''
 +
* $agroupid(int) - id группы в таблице [[Разработка:storages/agroups | agroups ]].
 +
''Возвращаемые значения:''
 +
* (bool) - true, если все операции завершились успешно и false, в случае возникновения ошибок.
 +
 +
 +
===='''set_final_grade($cpassedid, $grade = null, $orderid = null)'''====
 +
 +
Выставляет итоговую оценку, и в зависимости от нее перевести подписку в новый статус.
 +
 +
''Аргументы:''
 +
* $cpassedid(int) - id подписки.
 +
* $grade(string) - выставляемая итоговая оценка, если не указана, то подписка автоматически переходит в статус неуспешно завершен, по умолчанию - null.
 +
* $orderid(int) - id приказа в таблице [[Разработка:storages/orders | orders ]], на основании которого происходит выставление оценки, по умолчанию - null.
 +
''Возвращаемые значения:''
 +
* (bool) - true, если все прошло успешно и false, в случае ошибки.
 +
 +
 +
===='''get_last_successor($cpassedid)'''====
 +
 +
Находит последнего наследника данной подписки.
 +
 +
''Аргументы:''
 +
* $cpassedid(int) - id подписки.
 +
''Возвращаемые значения:''
 +
* (int) - id последнего наследника подписки.
 +
 +
 +
===='''get_cpassed_on_programmsbcid($id, $status = 'active')'''====
 +
 +
Получает информацию о подписках на дисциплину по подписке на программу.
 +
 +
''Аргументы:''
 +
* $id(int) - id подписки на программу в таблице [[Разработка:storages/programmsbcs | programmsbcs ]].
 +
* $status(string) - статус подписок, информацию о которых требуется найти, по умолчанию - null.
 +
''Возвращаемые значения:''
 +
* (array) - массив с информацией о подписках на дисциплину.
 +
* (bool) - false, если произошла ошибка.
 +
 +
 +
===='''get_cpassed_on_studentid_programmsbcid_active_complete($programmsbcid, $programmitemid)'''====
 +
 +
Возвращает список активных или завершённых подписок на дисциплину по номеру подписки (номер студента берётся из неё) на программу.
 +
 +
''Аргументы:''
 +
* $programmsbcid(int) - id подписки на программу в таблице [[Разработка:storages/programmsbcs | programmsbcs ]].
 +
* $programmitemid(int) - id дисциплины в таблице [[Разработка:storages/programmsbcs | programmsbcs ]].
 +
''Возвращаемые значения:''
 +
* (array) - массив с информацией о подписках на дисциплину.
 +
* (bool) - false, если произошла ошибка.
 +
  
 
===Планы:===
 
===Планы:===
 +
 +
* <s>метод создает одному студенту подписку на все потоки программы (sign_student_on_all_cstreams)</s>
 +
* <s>метод создает нескольким студентам подписку на все потоки программы (sign_agroup_on_all_cstreams)</s>
 +
* <s>метод создает всем студентам группы подписку на все потоки рограммы (sign_all_agroups_on_all_cstreams)</s>
 +
 +
=События=
 +
В этом разделе описан список всех событий, которые генерируются, перехватываются и обрабатываются этим плагином.
 +
====Перехватываемые события====
 +
{| border="1"
 +
|+ Таблица событий, которые перехватывает этот плагин
 +
! Тип плагина
 +
! Код плагина
 +
! Код события
 +
! Доп. данные
 +
! Пояснение
 +
|-
 +
|storage
 +
|[[Разработка:storages/programmsbcs|programmsbcs]]
 +
|changeagroup
 +
|Массив, содержащий:
 +
* в поле 'oldagroup' id старой группы
 +
* в поле 'newagroup' id новой группы
 +
* в поле 'programmsbc' объект из таблицы programmsbcs
 +
''Пример:'' array('oldagroup' => $oldid, 'newagroup' => $newid, 'programmsbc' => $object)
 +
|Обрабатывается событие изменения группы, вызывается функция [[#change_group()|change_group()]]
 +
|-
 +
|storage
 +
|[[Разработка:storages/programmsbcs|cstreamlinks]]
 +
|insert
 +
|Массив, содержащий в поле "new" объект с данными для вставки в таблицу.
 +
''Пример:'' array('new' => $dataobject)
 +
|По этому событию выполняется синхронизация подписок группы при помощи функции [[#syncronize_agroup_with_cstream()|syncronize_agroup_with_cstream()]]
 +
|-
 +
|storage
 +
|[[Разработка:storages/programmsbcs|cstreamlinks]]
 +
|delete
 +
|Массив, содержащий в поле "old" объект с данными, которые удаляются из таблицы
 +
''Пример:'' array('old' => $dataobject)
 +
|По этому событию удаляются подписки при помощи функции [[#unsign_agroups_from_cstream()|unsign_agroups_from_cstream()]]
 +
|-
 +
|storage
 +
|[[Разработка:storages/cstreams|cstreams]]
 +
|changestatus
 +
|
 +
|При изменении статуса учебного потока изменяет статус всех подписок на этот поток, через обращение к [[Разработка:workflows/cpassed|workflows/cpassed]].
 +
|}
 +
 +
====Генерируемые события====
 +
{| border="1"
 +
|+ Таблица событий, которые генерирует этот плагин
 +
! Тип плагина
 +
! Код плагина
 +
! Код события
 +
! Доп. данные
 +
! Пояснение
 +
|-
 +
|storage
 +
|cpassed
 +
|insert
 +
|Массив, содержащий в поле "new" объект с данными для вставки в таблицу.
 +
''Пример:'' array('new' => $dataobject)
 +
|Генерируется каждый раз при вставке новой записи в таблицу cpassed.
 +
|-
 +
|storage
 +
|cpassed
 +
|update
 +
|Массив, содержащий в поле "new" обновленный объект, и в поле "old" объект со старыми данными, до обновления записи.
 +
''Пример:'' array('old' => $dataobject_old, 'new' => $dataobject_new)
 +
|Генерируется каждый раз при обновлении записи в таблице cpassed.
 +
|-
 +
|storage
 +
|cpassed
 +
|delete
 +
|Массив, содержащий в поле "old" объект с данными, которые удаляются из таблицы
 +
''Пример:'' array('old' => $dataobject)
 +
|Генерируется каждый раз при удалении записи из таблицы cpassed.
 +
|}
 +
 +
=Задания=
 +
 +
{| border="1"
 +
|+ Таблица заданий, которые выполняет этот плагин
 +
! Код задания
 +
! Дополнительный параметр
 +
! Пояснение
 +
|-
 +
|resync_age_cpassed
 +
|Обязателен. Указывается id периода из таблицы [[Разработка:storages/ages | ages ]]
 +
|Находит все активные подписки на дисциплины в указанном периоде, после чего каждую из них приостанавливает и заново возобновляет. Необходимо для записи учащихся на курс Moodle, если курс Moodle был присвоен дисциплинам во время учебного процесса.
 +
|-
 +
|active_to_suspend_cpassed
 +
|Обязателен. Указывается id периода из таблицы [[Разработка:storages/ages | ages ]]
 +
|Находит все активные подписки на дисциплины в указанном периоде, после чего каждую из них приостанавливает. Необходимо для отписывания учащихся с курса Moodle, если необходимо сменить курс Moodle в дисциплинах. Работает в паре с '''suspend_to_active_cpassed'''.
 +
|-
 +
|suspend_to_active_cpassed
 +
|Обязателен. Указывается id периода из таблицы [[Разработка:storages/ages | ages ]]
 +
|Находит все приостановленные подписки на дисциплины в указанном периоде, после чего каждую из них активирует. Необходимо для записи учащихся на курс Moodle, если после смены курса Moodle в дисциплинах. Работает в паре с '''active_to_suspend_cpassed'''.
 +
|-
 +
|comparecpassed
 +
|Необязателен
 +
|Находит все незавершенные подписки на дисциплины, после чего каждую из них синхронизирует с учебным процессом, выставляя в подписке тот же id дисциплины, что и в процессе. Необходимо для сопоставления правильной дисциплины в подписке и процессе, если дисциплину в процессе сменили уже во время обучения.
 +
|-
 +
|cancaled_repeatid_to_null
 +
|Необязателен
 +
|Находит все отмененные подписки на дисциплины, у которых есть родители, и разрывает с ними связь. Необходимо для разрыва связи активный родитель->отмененный наследник, если по какой-то причине такие связи были созданы.
 +
|-
 +
|fill_learninghistoryid
 +
|Необязателен
 +
|Находит все подписки с пустым learninghistoryid и обновляет это поле, связывая его с записью в таблице [[Разработка:storages/learninghistory | learninghistory ]].
 +
|}
 +
 +
[[Категория:Плагины обработки todo | storages/cpassed]]

Текущая версия на 11:34, 14 августа 2014

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


Содержание

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

cpassed - изучаемые и пройденные курсы: отражает ход изучения учащимися выбранной учебной программы, итоговые отметки.

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

  • cstreamid - id учебного процесса в таблице cstreams , по которому велось обучение.
  • programmsbcid - id подписки контракта в таблице contracts на программу обучения.
  • programmitemid - id дисциплины в таблице programmitems .
  • studentid - id слушателя по таблице persons .
  • agroupid - id академической группы в таблице agroups . Не обязательное поле (для заполнения). По умолчанию NULL. При зачислении и отчислении из группы изменяется его значение автоматически. При отчислении из группы поле становится равным нулю (0). При индивидуальном обучении - NULL. На основании этого принимается решение подписке/отписке на предмет.
  • grade - итоговая отметка по курсу.
  • gradelevel - уровень оценки (оценка не идет в кондуит, дисциплина, курсовая работа, практика, междисциплинарный экзамен, дипломная работа). Берется из programmitems .
  • credit - количество кредитов, полученное за прохождение дисциплины.
  • notice - текстовое пояснение об источнике оценки при перезачете.
  • repeatid - id предыдущей подписки на дисциплину, если обучение выполняется повторно (пересдача или повторное обучение - при этом подписка, на которую выполняется ссылка должна иметь статус "пересдан"). Пересдачей может считаться только пересдача дисциплины, пройденной в рамках этой же подписки на учебную программу. Если было несколько пересдач данной дисциплины в данной учебной программе, то все они ссылаются на один и тот же исходный cpassedid.
  • typesync - тип синхронизации (выставление вручную, синхронизация с moodle).
  • mdlinstance - id задания в moodle, с которым выполнялась синхронизация.
  • teacherid - id сотрудника по справочнику persons , вручную выставившего итоговую отметку.
  • ageid - id периода в таблице ages по которому велось обучение.
  • orderid - id приказа в таблице orders , согласно которому была выставлена оценка.
  • status - список статусов указан в одноименном плагине рабочих процессов cpassed .
  • begindate - дата начала действия подписки.
  • enddate - дата окончания действия подписки.
  • sbcorderid - id приказа в таблице orders , которым учащийся был подписан на дисциплину.
  • learninghistoryid - id записи в таблице learninghistory , соответствующая текущей параллели данной подписки.

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

get_actual_reoffset_cpassed($cpasseds)

Возвращает только последнюю пересдачу (по времени) из массива пересдач.

Аргументы:

  • $cpasseds(array) - записи, полученные по одной подписке и дисциплине.

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

  • (object) - объект последней пересдачи
  • (bool) - false, в случае ошибки

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

  1. в эту функцию должны передаваться только cpassed->status == 'reoffset'


get_cstream_students($csid, $status = null)

Получает список всех подписок студентов, приписаных к одному предмето-потоку.

Аргументы:

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

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

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

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

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


get_cstream_agroup($cstreamid, $agroupid, $status = null)

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

Аргументы:

  • $cstreamid(int) - id учебного потока в таблице cstreams .
  • $agroupid(int) - id академической группы в таблице agroups .
  • $status(string) - статус учебной дисциплины. по умолчанию - null.

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

  • (array) - массив записей из таблица.
  • (bool) - false, если записи не найдены.


get_cpasseds_student($stid, $status = 'active')

Получает список всех подписок для слушателя.

Аргументы:

  • $stid(int) - id студента в таблице persons
  • $status(string) - статус подписки, по умолчанию - 'active'.

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

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

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

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


get_cpassed_programm($stid, $prid, $status = 'complete')

Получает список дисциплин, изученных слушателем в рамках учебной программы.

Аргументы:

  • $stid(int) - id студента в таблице persons .
  • $prid(int) - id подписки на программу в таблице programmsbcs .
  • $status(string) - статус подписки, по умолчанию - 'complete'.

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

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

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

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


get_cpasseds_programmitem($stid, $prid, $status = 'complete', $levelgrade = null)

Получает подписки на дисциплину по id слушателя и id дисциплины.

Аргументы:

  • $stid(int) - id студента в таблице persons .
  • $prid(int) - id дисциплины в таблице programmitems .
  • $status(string) - название статуса подписки, по умолчанию - 'complete'
  • $levelgrade(string) - уровень оценки, по умолчанию - null.

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

  • (array) массив подписок на дисциплину.
  • (bool) false если подписка не найдена или слушатель ее еще не изучил.

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

  • формируем SQL-запрос и возвращаем список подписок:
    • если указывается уровень оценки - подписки с указанным уровнем оценки,
    • если уровень оценки не указывается или указывается как null - подписки с любым уровнем оценки.
    • если указывается статус - подписки с указанным статусом, если статус не указан, то возвращаются подписки со статусом 'complete'
    • если статус указан как null или false, то вернутся подписки с любым статусом

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

Возвращает список учебных потоков по заданным критериям, упрощённая версия get_listing() с поиском только по таблице cpassed для "Ведомости перезачёта оценок"

Аргументы:

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

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

  • (array) - массив записей из базы.
  • (int) - количество записей, если $countonly=true.
  • (bool) - false, в случае ошибки.

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

  1. составляем запрос по переданным параметрам при помощи собственной protected-функции get_select_listing()
  2. Проверяем условие $countonly. Если оно истинно - то возвращаем только количество записей
  3. Поиск производится только по таблице cpassed, без проверки на целостность базы данных (с помощью выборки из других таблиц)
  4. Если ложно - то возвращаем список записей

insert_grade_reoffset($stid, $prid, $cpid, $grade, $status, $comment, $initialid)

Добавляет оценку в режиме "перезачета".(в перспективе, когда будет реализован справочник с историей изменения отметок - вызов функции протоколирования).

Аргументы:

  • $stid(int) - id студента в таблице persons .
  • $prid(int) - id дисциплины в таблице departments .
  • $cpid(int) - id подписки на программу в таблице programmsbcs .
  • $grade(int) - итоговая оценка.
  • $comment(string) - коментарий.
  • $status(string) - статус - перезачет(reoffset) или пересдача(repeating).
  • $initialid(int) - id исходной подписки.

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

  • (int) id добавленной записи.
  • (bool) false если добавление не удалось.

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

  1. если дисиплина пересдается (статус = repeating), статус исходной подписки меняем на пересдан и обновляем запись в БД.
  2. формируем новый объект в БД.
  3. вставляем сформированную запись в таблицу БД.


insert_grade_register_reoffset($programmsbcid, $programmitemid, $studentid, $grade, $orderid, $teacherid, $date)

Добавить оценку в режиме "перезачета" (для приказа "Ведомость для перезачёта"). В случае если была активная подписка -- она закрывается.

Аргументы:

  • $programmsbcid(int) - id подписки на программу в таблице programmsbcs .
  • $programmitemid(int) - id дисциплины в таблице programmitems .
  • $studentid(int) - id студента (personid) в таблице persons .
  • $grade(int) - итоговая оценка.
  • $orderid(int) - id приказа в таблице orders , по которому выставляется перезачёт.
  • $teacherid(int) - personid из таблицы persons , кто ставил оценку
  • $date(int) - дата перезачёта

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

  • (int) id добавленной записи.
  • (bool) false если добавление не удалось.

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

  1. Cоздаются cpassed-ы не привязанные к периоду (ageid=0).
  2. Если у студента уже был cpassed по этой дисциплине, перезачет ссылается на него полем repeatid (если несколько - то на самый первый, если старая подписка была активна - закрывается с неуспешным статусом).


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

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

Аргументы:

  • $limitfrom - начиная с какой записи просматривается фрагмент списка записей.
  • $limitnum - сколько записей нужно извлечь из базы.
  • $conds - объект со списком свойств, по которым будет происходить поиск.
  • $countonly - Если указано true, то функция вернет только количество записей, соответствующих переданным условиям. По умолчанию - false.

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

  • (array) - массив записей из базы.
  • (int) - количество записей, если $countonly=true.
  • (bool) - false, в случае ошибки.

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

  1. составляем запрос по переданным параметрам при помощи собственной protected-функции get_select_listing()
  2. Проверяем условие $countonly. Если оно истинно - то возвращаем только количество записей
  3. Если ложно - то возвращаем список записей


unsign_student_one_cpassed($studentid, $cstreamid)

Отписывает заданного студента от заданного учебного потока

Аргументы:

  • $studentid(int) - id студента в таблице persons .
  • $cstreamid(int) - id учебного потока в таблице cstreams .

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

  • (boоl) - true, в случае успеха и falsе, в остальных.


unsign_agroups_from_cstream($cstreamid)

Удаляет всех "лишних" подписок из потока, которые были записаны в составе группы, связи с которой сейчас нет.

Аргументы:

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

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

  • (boоl) - true, в случае успеха и falsе, в остальных.


unsign_student_all_cpassed($studentid, $programmsbcid)

Отписывает студента от всех потоков программы

Аргументы:

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

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

  • (boоl) - true, в случае успеха и falsе, в остальных


unsign_students_all_cpassed($students)

Отписывает нескольких студентов от всех потоков программы

Аргументы:

  • $students(array) - массив (id подписки на программу студента в таблице programmsbcs =>id студента в таблице persons ).

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

  • (boоl) - true, в случае успеха и falsе, в остальных.


get_students_without_agroup()

Получить список всех подписок, которые не принадлежат ни к одной группе.

Аргументы:

  • (нет)

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

  • (array)
  • (bool) - false, если ничего не нашлось.

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

  • Возвращаются все записи таблицы cpassed, имеющие статус plan или active в которых поле agroupid равно:
    • NULL (null-значение)
    • "" (пустой строке)
    • 0


unsign_students_without_agroup()

Отписать всех учеников, не имеющих подписки ни на одну группу

Аргументы:

  • (нет)

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

  • (bool) - true, если изменение всех статусов прошло нормально или false, если в процессе работы произошли ошибки.

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

  • Для получения списка подписок, не имеющих связи с группой вызывается функция get_students_without_agroup()
    • Если таких подписок нет - возвращается true
    • Если подписки есть - то в цикле выставляем каждой записи статус "canceled" (через обращение к плагину workflow)


is_already_enroled($studentid, $cstreamid, $status = null)

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

Аргументы:

  • $studentid(int) - id ученика в таблице persons .
  • $cstreamid(int) - id учебного потока в таблице cstreams .
  • $status(string) - код статуса
  • $status(array) - массив статусов, или null, если их нет, по умолчанию - null.

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

  • (int) - id записи если такая запись уже есть.
  • (bool) - false, если ученик еще не подписан.


sign_student_on_cstream($cstreamid, $programmsbcid)

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

Аргументы:

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

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

  • (int) - id записи если подписка произошла успешно (или уже существует).
  • (bool) - false, в случае ошибки.


sign_student_on_all_cstreams($programmsbcid, $ageid = null)

Подписыает студента на все потоки программы по данному периоду

Аргументы:

  • $programmsbcid(int) - id подписку студента на программу в таблице programmsbcs .
  • $ageid(int) - id текущего периода в таблице ages , по умолчанию - null.

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

  • (bool) - true, если ученик успешно подписан на потоки, или потоков в программе посто нет и false, в остальных случаях.


sign_all_agroups_on_all_cstreams($programmid, $ageid)

Подписывает все группы на потоки программы по данному периоду

Аргументы:

  • $programmid(int) - id программы, на которую создаем подписки на предмет в таблице programms .
  • $ageid(int) - id текущего периода в таблице ages .

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

  • (bool) - true, если все операции прошли успешно и false, в случае ошибки.


sign_agroup_on_all_cstreams($agroupid, $programmid, $ageid)

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

Аргументы:

  • $agroupid(int) - id учебной группы в таблице agroups .
  • $programmid(int) - id учебной программы в таблице programms .
  • $ageid(int) - id периода в таблице ages .

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

  • (bool) - true, если все операции прошли успешно, и false, в случае ошибки.


unsign_students_without_real_agroup($cstreamlink)

Отменяет подписки учеников, у которых группа, указанная в подписке на программу ( programmsbcs ), не совпадает с группой, указанной в таблице связей учебных потоков с группами ( cstreamlinks ).

Аргументы:

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

  • (bool) - true, если все операции завершились успешно и false, в случае возникновения ошибок.


syncronize_agroups_with_cstream($cstreamid)

Синхронизирует все группы, связанные с данным потоком.

Аргументы:

  • $cstreamid(int) - id потока в таблице cstreams .

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

  • (bool) - true, если все операции завершились успешно и false, в случае возникновения ошибок.


syncronize_agroup_with_cstreams($agroupid)

Синхронизирует группу, со связанными с нею потоками.

Аргументы:

  • $agroupid(int) - id группы в таблице agroups .

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

  • (bool) - true, если все операции завершились успешно и false, в случае возникновения ошибок.


set_final_grade($cpassedid, $grade = null, $orderid = null)

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

Аргументы:

  • $cpassedid(int) - id подписки.
  • $grade(string) - выставляемая итоговая оценка, если не указана, то подписка автоматически переходит в статус неуспешно завершен, по умолчанию - null.
  • $orderid(int) - id приказа в таблице orders , на основании которого происходит выставление оценки, по умолчанию - null.

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

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


get_last_successor($cpassedid)

Находит последнего наследника данной подписки.

Аргументы:

  • $cpassedid(int) - id подписки.

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

  • (int) - id последнего наследника подписки.


get_cpassed_on_programmsbcid($id, $status = 'active')

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

Аргументы:

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

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

  • (array) - массив с информацией о подписках на дисциплину.
  • (bool) - false, если произошла ошибка.


get_cpassed_on_studentid_programmsbcid_active_complete($programmsbcid, $programmitemid)

Возвращает список активных или завершённых подписок на дисциплину по номеру подписки (номер студента берётся из неё) на программу.

Аргументы:

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

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

  • (array) - массив с информацией о подписках на дисциплину.
  • (bool) - false, если произошла ошибка.


Планы:

  • метод создает одному студенту подписку на все потоки программы (sign_student_on_all_cstreams)
  • метод создает нескольким студентам подписку на все потоки программы (sign_agroup_on_all_cstreams)
  • метод создает всем студентам группы подписку на все потоки рограммы (sign_all_agroups_on_all_cstreams)

События

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

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

Таблица событий, которые перехватывает этот плагин
Тип плагина Код плагина Код события Доп. данные Пояснение
storage programmsbcs changeagroup Массив, содержащий:
  • в поле 'oldagroup' id старой группы
  • в поле 'newagroup' id новой группы
  • в поле 'programmsbc' объект из таблицы programmsbcs

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

Обрабатывается событие изменения группы, вызывается функция change_group()
storage cstreamlinks insert Массив, содержащий в поле "new" объект с данными для вставки в таблицу.

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

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

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

По этому событию удаляются подписки при помощи функции unsign_agroups_from_cstream()
storage cstreams changestatus При изменении статуса учебного потока изменяет статус всех подписок на этот поток, через обращение к workflows/cpassed.

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

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

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

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

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

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

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

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

Задания

Таблица заданий, которые выполняет этот плагин
Код задания Дополнительный параметр Пояснение
resync_age_cpassed Обязателен. Указывается id периода из таблицы ages Находит все активные подписки на дисциплины в указанном периоде, после чего каждую из них приостанавливает и заново возобновляет. Необходимо для записи учащихся на курс Moodle, если курс Moodle был присвоен дисциплинам во время учебного процесса.
active_to_suspend_cpassed Обязателен. Указывается id периода из таблицы ages Находит все активные подписки на дисциплины в указанном периоде, после чего каждую из них приостанавливает. Необходимо для отписывания учащихся с курса Moodle, если необходимо сменить курс Moodle в дисциплинах. Работает в паре с suspend_to_active_cpassed.
suspend_to_active_cpassed Обязателен. Указывается id периода из таблицы ages Находит все приостановленные подписки на дисциплины в указанном периоде, после чего каждую из них активирует. Необходимо для записи учащихся на курс Moodle, если после смены курса Moodle в дисциплинах. Работает в паре с active_to_suspend_cpassed.
comparecpassed Необязателен Находит все незавершенные подписки на дисциплины, после чего каждую из них синхронизирует с учебным процессом, выставляя в подписке тот же id дисциплины, что и в процессе. Необходимо для сопоставления правильной дисциплины в подписке и процессе, если дисциплину в процессе сменили уже во время обучения.
cancaled_repeatid_to_null Необязателен Находит все отмененные подписки на дисциплины, у которых есть родители, и разрывает с ними связь. Необходимо для разрыва связи активный родитель->отмененный наследник, если по какой-то причине такие связи были созданы.
fill_learninghistoryid Необязателен Находит все подписки с пустым learninghistoryid и обновляет это поле, связывая его с записью в таблице learninghistory .