Разработка:storages/cpassed
Содержание
Таблица в базе данных
cpassed - изучаемые и пройденные курсы: отражает ход изучения учащимися выбранной учебной программы, итоговые отметки.
Подробный формат полей в таблице:
- cstreamid - id учебного процесса, по которому велось обучение
- programmsbcid - id подписки контракта на программу обучения
- programmitemid - id дисциплины
- studentid - id слушателя по таблице persons
- grade (итоговая отметка по курсу)
- gradelevel - уровень оценки (оценка не идет в кандуит, дисциплина, курсовая работа, практика, междисциплинарный экзамин, дипломная работа). Берется из programmitems.
- credit - количество кредитов, полученное за прохождение дисциплины
- notice - текстовое пояснение об источнике оценки при перезачете
- repeatid - id предыдущей подписке, если обучение выполняется повторно (пересдача, повторное обучение - при этом подписка, на которую выполняется ссылка должна иметь статус "пересдан")
- typesync - тип синхронизации (выставление вручную, синхронизация с moodle)
- mdlinstance - id задания в moodle, с которым выполнялась синхронизация
- teacherid - id сотрудника по справочнику persons, вручную выставившего итоговую отметку
- status - список статусов указан в одноименном плагине рабочих процессов cpassed
Дополнительные методы:
get_cstream_students()
Получает список всех подписок студентов, приписаных к одному предмето-потоку.
Аргументы:
- $csid(int) - id учебного потока.
- $status(string) - статус подписки, по умолчанию - все(null).
Возвращаемые значения:
- (array) список подписок на учебный поток.
- (bool) false если подписки не найдены.
Структура работы:
- формируем SQL-запрос и возвращаем список подписок:
- если указывается статус - подписки с указанным статусом,
- если статус не указывается или указывается как null - подписки с любым статусом.
get_cpasseds_student()
Получает список всех подписок для слушателя.
Аргументы:
- $stid(int) - id студента
- $status(string) - статус подписки, по умолчанию - идет(go).
Возвращаемые значения:
- (array) список подписок на учебный поток.
- (bool) false если подписки не найдены.
Структура работы:
- формируем SQL-запрос и возвращаем список подписок:
- если указывается статус - подписки с указанным статусом,
- если статус указывается null - подписки с любым статусом,
- если статус не указывается - подписки со статусом go.
get_cpassed_programm()
Получает список дисциплин, изученных слушателем в рамках учебной программы.
Аргументы:
- $stid(int) - id студента.
- $prid(int) - id подписки на программу.
- $status(string) - статус подписки, по умолчанию - завершен(complete).
Возвращаемые значения:
- (array) список подписок на учебный поток.
- (bool) false если подписки не найдены.
Структура работы:
- формируем SQL-запрос и возвращаем список подписок:
- если указывается статус - подписки с указанным статусом,
- если статус указывается null - подписки с любым статусом,
- если статус не указывается - подписки со статусом complete.
get_cpassed_programmitem()
Получает информацию о дисциплине, изученной слушателем (статусы "успешно завершен" и "перезачет) по id слушателя и id дисциплины.
Аргументы:
- $stid(int) - id студента.
- $prid(int) - id дисциплины.
- $levelgrade(string) - уровень оценки, по умолчанию - null.
Возвращаемые значения:
- (object) подписка на дисциплину.
- (bool) false если подписка не найдена или слушатель ее еще не изучил.
Структура работы:
- формируем SQL-запрос и возвращаем список подписок:
- если указывается уровень оценки - подписки с указанным уровнем оценки,
- если уровень оценки не указывается или указывается как null - подписки с любым уровнем оценки.
update_total_grade()
Установливает/обновляет студенту итоговую оценку и комментарий для существующей подписки (в перспективе, когда будет реализован справочник с историей изменения отметок - вызов функции протоколирования). Если оценка равна или выше минимальной, подписка переводится в статус "успешно завершен".
Аргументы:
- $id(int) - id подписки.
- $grade(int) - итоговая оценка.
- $comment(string) - коментарий
Возвращаемые значения:
- (bool) true в случае успешного обновления и false в остальных
Структура работы:
- создаем объект для вставки в таблицу БД.
- (не реализовано)меняем статус подписки.
- обновляем запись в БД.
insert_grade_reoffset()
Добавляет оценку в режиме "перезачета".(в перспективе, когда будет реализован справочник с историей изменения отметок - вызов функции протоколирования)
Аргументы:
- $stid(int) - id студента.
- $prid(int) - id дисциплины.
- $cpid(int) - id подписки на программу.
- $grade(int) - итоговая оценка.
- $comment(string) - коментарий.
- $status(string) - статус - перезачет(reoffset) или пересдача(repeating).
- $initialid(int) - id исходной подписки.
Возвращаемые значения:
- (int) id добавленной записи
- (bool) false если добавление не удалось
Структура работы:
- если дисиплина пересдается (статус = repeating), статус исходной подписки меняем на пересдан и обновляем запись в БД.
- формируем новый объект в БД.
- вставляем сформированную запись в таблицу БД.