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

Материал из DOF
Перейти к: навигация, поиск
м (Дополнительные методы:: уточнено описание)
Строка 87: Строка 87:
  
 
string - название формы обучения на понятном языке, или пробел.
 
string - название формы обучения на понятном языке, или пробел.
 +
 +
'''is_programmsbc($contractid, $programmid, $agroupid = null, $id = null)'''
 +
 +
Проверяет, существует ли подписка с теми же параметрами: тот же пользователь в ту же академическую группу, тот же пользователь на ту же учебную программу. Учитывает подписки в статусе заявка, подтвержденная, действующая, приостановленная.
 +
 +
''Аргументы:''
 +
* $contractid(int) - id контракта
 +
* $programmid(int) - id программы
 +
* $agroupid(int) - id группы, по умолчанию - нет
 +
* $id(int) - id подписки, которую не следует учитывать, по умолчанию - нет
 +
 +
''Структура работы:''
 +
* Получаем контракт ученика.
 +
* По id ученика полученного из контракта получем остальные контракты ученика если таковые имеются.
 +
* Формируем SQL-запрос:
 +
** пребирая все контракты ученика включим их id в поиск
 +
** включим в запрос поиска id программы и статусы по которым производим поиск
 +
** если id группы не указано, будем искать подписки где группа не указана
 +
** если id группы указано, включим его в запрос поиска
 +
** если указан id подписки, которую необходимо исключить, исключим его из поиска
 +
* находим подпски по заданным критериям и если такие найдены вернем true
 +
 +
''Возвращаемые значения:''
 +
 +
* bool - true если подписки найдены и false если таковых нет
 +
 +
'''change_sbc_parametres($id, $edutype, $eduform, $freeattendance, $agroupid = null)'''
 +
 +
Изменить параметры подписки: тип, форма, свободное посещение, академическая группа.
 +
 +
''Аргументы:''
 +
* $id(int) - id подписки, которая обновляется
 +
* $edutype(string) - тип обучения
 +
* $eduform(string) - форма обучения
 +
* $freeattendance(int) - свободное посещение
 +
* $agroupid(int) - id группы, по умолчанию - нет
 +
 +
''Структура работы:''
 +
* Создаем объект для вставки в БД
 +
* Обновим запись в БД с данными параметрами
 +
 +
''Возвращаемые значения:''
 +
 +
* bool - true если запись успешно обнавлена и false в остальных случаях
 +
 +
'''sing($sbc)'''
 +
 +
Подписывает (проверяется возможность создать существующую подписку)
 +
 +
''Аргументы:''
 +
* $sbc(object) - объек вставки записи в БД
 +
 +
''Структура работы:''
 +
* Проверяет существование исходных данных (данных нет - сохранять нельзя)
 +
* Проверяет существование подпоски с такими параметрами (подписка есть - сохранять нельзя)
 +
* Если все в порядке - вставляем запись в БД.
 +
 +
''Возвращаемые значения:''
 +
 +
* int - id вставленой записи
 +
* bool - false в остальных случаях
 +
  
 
===Планы:===
 
===Планы:===
Строка 94: Строка 156:
 
* Список действующих подписок для учебной программы (если указан статус - то берутся подписки соответствующие этому статусу, если не указан - действующие)
 
* Список действующих подписок для учебной программы (если указан статус - то берутся подписки соответствующие этому статусу, если не указан - действующие)
 
* Список действующих подписок для структурного подразделения (если указан статус - то берутся подписки соответствующие этому статусу, если не указан - действующие)
 
* Список действующих подписок для структурного подразделения (если указан статус - то берутся подписки соответствующие этому статусу, если не указан - действующие)
* Проверить, существует ли подписка с теми же параметрами: тот же пользователь (получаем через контракт id пользователя, выбираем все его контракты) в ту же академическую группу, тот же пользователь на ту же учебную программу. Учитывает подписки в статусе заявка, подтвержденная, действующая, приостановленная.
 
* Подписать (проверяется невозможность создать существующую подписку)
 
 
* Отписать (подписка помечается как недействительная)
 
* Отписать (подписка помечается как недействительная)
* Изменить параметры подписки: тип, форма, свободное посещение, академическая группа. Другие параметры через этот метод изменять нельзя.
 

Версия 16:07, 6 ноября 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 контрактов и вернем сами контракты.

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

Возвращает список объектов, выбранных из таблицы по критериям, которые переданы в качестве входных параметров.

Аргументы:

  • integer $limitfrom - порядковый номер записи в общем списке объектов, которая будет первой выведена на экран;
  • integer $limitnum - количество объектов, которые показываются на странице;
  • array $conds - массив вида имя_поля => значение_поля, в котором передаются параметры выборки
  • bool $countonly - если true - вернуть только количество записей

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

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

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

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

get_eduforms_list()

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

Аргументы:

Отсутствуют.

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

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

get_eduform_name($code)

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

Аргументы:

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

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

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

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

string - название формы обучения на понятном языке, или пробел.

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

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

Аргументы:

  • $contractid(int) - id контракта
  • $programmid(int) - id программы
  • $agroupid(int) - id группы, по умолчанию - нет
  • $id(int) - id подписки, которую не следует учитывать, по умолчанию - нет

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

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

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

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

change_sbc_parametres($id, $edutype, $eduform, $freeattendance, $agroupid = null)

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

Аргументы:

  • $id(int) - id подписки, которая обновляется
  • $edutype(string) - тип обучения
  • $eduform(string) - форма обучения
  • $freeattendance(int) - свободное посещение
  • $agroupid(int) - id группы, по умолчанию - нет

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

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

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

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

sing($sbc)

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

Аргументы:

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

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

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

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

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


Планы:

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

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