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

Материал из DOF
Перейти к: навигация, поиск
(Подробный формат полей в таблице:: уточнено описание номера сертификата)
(Дополнительные методы:)
Строка 26: Строка 26:
  
 
===Дополнительные методы:===
 
===Дополнительные методы:===
 +
 +
'''get_contracts_without_cpassed()'''
 +
 +
Возвращает список контрактов учеников данной группы, у которых нет подписок на указанный предмето-поток
 +
 +
''Аргументы:''
 +
* $agroupid(int) - id группы
 +
* $cstreamid(int) - id учебного потока
 +
''Возвращаемые значения:''
 +
* (array) контрактов учеников группы не имеющие подписки.
 +
''Структура работы:''
 +
* Находим все подписки данного учебного потока.
 +
* Записываем id подписок на программы каждой найденной подписки на поток, если такие существуют.
 +
* формируем SQL-запрос и возвращаем список подписок:
 +
** если подписки были найдены - то исключаем их из поиска и находим все подписки на предметы данной группы,
 +
** если подписки не были найдены - найдем все подписки на предметы данной группы.
 +
* из найденных подписок на предметы извлечем id контрактов и вернем сами контракты.
 +
 
===Планы:===
 
===Планы:===
 
====Дополнительные методы:====
 
====Дополнительные методы:====

Версия 11:31, 28 октября 2009

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


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

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

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

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

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

get_contracts_without_cpassed()

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

Аргументы:

  • $agroupid(int) - id группы
  • $cstreamid(int) - id учебного потока

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

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

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

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

Планы:

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

  • Список действующих подписок для контракта (если указан статус - то берутся подписки соответствующие этому статусу, если не указан - действующие)
  • Список действующих подписок для слушателя (если указан статус - то берутся подписки соответствующие этому статусу, если не указан - действующие)
  • Список действующих подписок для учебной программы (если указан статус - то берутся подписки соответствующие этому статусу, если не указан - действующие)
  • Список действующих подписок для структурного подразделения (если указан статус - то берутся подписки соответствующие этому статусу, если не указан - действующие)
  • Проверить, существует ли подписка с теми же параметрами: тот же пользователь (получаем через контракт id пользователя, выбираем все его контракты) в ту же академическую группу, тот же пользователь на ту же учебную программу. Учитывает подписки в статусе заявка, подтвержденная, действующая, приостановленная.
  • Подписать (проверяется невозможность создать существующую подписку)
  • Отписать (подписка помечается как недействительная)
  • Изменить параметры подписки: тип, форма, свободное посещение, академическая группа. Другие параметры через этот метод изменять нельзя.