Разработка:storages/programmsbcs — различия между версиями
Ilya (обсуждение | вклад) (→Подробный формат полей в таблице:: указано какие id из каких таблиц надо брать) |
Ilya (обсуждение | вклад) (→Дополнительные методы:: описано какие id из каких таблиц надо брать) |
||
Строка 32: | Строка 32: | ||
''Аргументы:'' | ''Аргументы:'' | ||
− | * $agroupid(int) - id группы | + | * $agroupid(int) - id группы в таблице [[Разработка:storages/agroups | agroups ]] |
− | * $cstreamid(int) - id учебного потока | + | * $cstreamid(int) - id учебного потока в таблице [[Разработка:storages/cstreams | cstreams ]] |
''Возвращаемые значения:'' | ''Возвращаемые значения:'' | ||
* (array) контрактов учеников группы не имеющие подписки. | * (array) контрактов учеников группы не имеющие подписки. | ||
Строка 73: | Строка 73: | ||
* array - массив вида код_формы => название_формы. | * array - массив вида код_формы => название_формы. | ||
− | '''get_eduform_name( | + | '''get_eduform_name()''' |
Возвращает название формы обучения. | Возвращает название формы обучения. | ||
Строка 88: | Строка 88: | ||
string - название формы обучения на понятном языке, или пробел. | string - название формы обучения на понятном языке, или пробел. | ||
− | '''is_programmsbc( | + | '''is_programmsbc()''' |
Проверяет, существует ли подписка с теми же параметрами: тот же пользователь в ту же академическую группу, тот же пользователь на ту же учебную программу. Учитывает подписки в статусе заявка, подтвержденная, действующая, приостановленная. | Проверяет, существует ли подписка с теми же параметрами: тот же пользователь в ту же академическую группу, тот же пользователь на ту же учебную программу. Учитывает подписки в статусе заявка, подтвержденная, действующая, приостановленная. | ||
''Аргументы:'' | ''Аргументы:'' | ||
− | * $contractid(int) - id контракта | + | * $contractid(int) - id контракта в таблице [[Разработка:storages/contracts | contracts ]] |
− | * $programmid(int) - id программы | + | * $programmid(int) - id программы в таблице [[Разработка:storages/programms | programms ]] |
− | * $agroupid(int) - id группы, по умолчанию - нет | + | * $agroupid(int) - id группы в таблице [[Разработка:storages/agroups | agroups ]], по умолчанию - нет |
* $id(int) - id подписки, которую не следует учитывать, по умолчанию - нет | * $id(int) - id подписки, которую не следует учитывать, по умолчанию - нет | ||
Строка 113: | Строка 113: | ||
* bool - true если подписки найдены и false если таковых нет | * bool - true если подписки найдены и false если таковых нет | ||
− | '''change_sbc_parametres( | + | '''change_sbc_parametres()''' |
Изменить параметры подписки: тип, форма, свободное посещение, академическая группа. | Изменить параметры подписки: тип, форма, свободное посещение, академическая группа. | ||
Строка 122: | Строка 122: | ||
* $eduform(string) - форма обучения | * $eduform(string) - форма обучения | ||
* $freeattendance(int) - свободное посещение | * $freeattendance(int) - свободное посещение | ||
− | * $agroupid(int) - id группы, по умолчанию - нет | + | * $agroupid(int) - id группы в таблице [[Разработка:storages/agroups | agroups ]], по умолчанию - нет |
''Структура работы:'' | ''Структура работы:'' | ||
Строка 130: | Строка 130: | ||
''Возвращаемые значения:'' | ''Возвращаемые значения:'' | ||
− | * bool - true если запись успешно | + | * bool - true если запись успешно обновлена и false в остальных случаях |
− | '''sing( | + | '''sing()''' |
Подписывает (проверяется возможность создать существующую подписку) | Подписывает (проверяется возможность создать существующую подписку) | ||
''Аргументы:'' | ''Аргументы:'' | ||
− | * $sbc(object) - | + | * $sbc(object) - объект вставки записи в БД |
''Структура работы:'' | ''Структура работы:'' | ||
Строка 148: | Строка 148: | ||
* int - id вставленой записи | * int - id вставленой записи | ||
* bool - false в остальных случаях | * bool - false в остальных случаях | ||
− | |||
===Планы:=== | ===Планы:=== |
Версия 21:49, 13 января 2010
Плагин | |
Название | programmsbcs |
Тип | storages |
Содержание
Таблица в базе данных
programmsbcs - подписка на изучение учебной программы/специальности. Подписка выражается в обязательстве учебного заведения реализовать для учащегося предусмотренный программой список предметов/учебных дисциплин. Каждый учащийся может быть записан на несколько учебных программ по очереди или одновременно.
Подробный формат полей в таблице:
- contractid - id контракта в таблице contracts , по которому реализуется подписка
- programmid - id заказанной программы в таблице programms
- edutype - тип обучения (индивидуальное/групповое)
- eduform - очное/заочное/очно-заочное/экстернат
- freeattendance - свободное посещение (0/1)
- agroupid - id академической группы в таблице agroups , если обучение групповое
- agenum - порядковый номер текущего учебного периода (изменяется приказом по контингенту)
- departmentid - структурное подразделение в таблице departments , ответственное за исполнение подписки
- status - список статусов указан в одноименном плагине рабочих процессов programmsbcs
- agestartid - id учебного периода в таблице ages , в котором началось обучение данного студента по программе
- datestart - дата начала действия подписки
- dateadd - дата создания подписки (если есть, соответствует дате документа о подписке ученика на курс)
- certificatenum - номер сертификата (текстовое поле - номер может содержать серию, символы и т.п.)
- certificateform - код формы/бланка сертификата (должен совпадать с кодом шаблона в плагине storage/programmsbcs)
- certificatedate - дата выдачи сертификата
- certificateorderid - номер приказа, в соответствии с которым выдан сертификат
- dateend - дата завершения подписки
Дополнительные методы:
get_contracts_without_cpassed()
Возвращает список контрактов учеников данной группы, у которых нет подписок на указанный предмето-поток
Аргументы:
- $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 - массив вида имя_поля => значение_поля, в котором передаются параметры выборки
- bool $countonly - если true - вернуть только количество записей
Структура работы:
- Проверяем корректность переданных параметров.
- Формируем фрагмент sql-запроса.
- Если надо полько количество записей - возвращаем их.
- Иначе - возвращаем записи из таблицы.
Возвращаемые значения:
- integer - количество записей.
- array - массив записей.
get_eduforms_list()
Возвращает список возможных форм обучения. На данный момент - очная, заочная, очно-заочная, экстернат.
Аргументы:
Отсутствуют.
Возвращаемые значения:
- array - массив вида код_формы => название_формы.
get_eduform_name()
Возвращает название формы обучения.
Аргументы:
- string $code - код формы обучения - индекс массива, который возвращает метод get_eduforms_list().
Структура работы:
- Получает все формы обучения как массив.
- Проверяет наличие переданного кода в индексах массива. Если индекс найден - возвращает соответствующее ему значение. Если нет - возвращает пробел.
Возвращаемые значения:
string - название формы обучения на понятном языке, или пробел.
is_programmsbc()
Проверяет, существует ли подписка с теми же параметрами: тот же пользователь в ту же академическую группу, тот же пользователь на ту же учебную программу. Учитывает подписки в статусе заявка, подтвержденная, действующая, приостановленная.
Аргументы:
- $contractid(int) - id контракта в таблице contracts
- $programmid(int) - id программы в таблице programms
- $agroupid(int) - id группы в таблице agroups , по умолчанию - нет
- $id(int) - id подписки, которую не следует учитывать, по умолчанию - нет
Структура работы:
- Получаем контракт ученика.
- По id ученика полученного из контракта получем остальные контракты ученика если таковые имеются.
- Формируем SQL-запрос:
- пребирая все контракты ученика включим их id в поиск
- включим в запрос поиска id программы и статусы по которым производим поиск
- если id группы не указано, будем искать подписки где группа не указана
- если id группы указано, включим его в запрос поиска
- если указан id подписки, которую необходимо исключить, исключим его из поиска
- находим подпски по заданным критериям и если такие найдены вернем true
Возвращаемые значения:
- bool - true если подписки найдены и false если таковых нет
change_sbc_parametres()
Изменить параметры подписки: тип, форма, свободное посещение, академическая группа.
Аргументы:
- $id(int) - id подписки, которая обновляется
- $edutype(string) - тип обучения
- $eduform(string) - форма обучения
- $freeattendance(int) - свободное посещение
- $agroupid(int) - id группы в таблице agroups , по умолчанию - нет
Структура работы:
- Создаем объект для вставки в БД
- Обновим запись в БД с данными параметрами
Возвращаемые значения:
- bool - true если запись успешно обновлена и false в остальных случаях
sing()
Подписывает (проверяется возможность создать существующую подписку)
Аргументы:
- $sbc(object) - объект вставки записи в БД
Структура работы:
- Проверяет существование исходных данных (данных нет - сохранять нельзя)
- Проверяет существование подпоски с такими параметрами (подписка есть - сохранять нельзя)
- Если все в порядке - вставляем запись в БД.
Возвращаемые значения:
- int - id вставленой записи
- bool - false в остальных случаях
Планы:
Дополнительные методы:
- Список действующих подписок для контракта (если указан статус - то берутся подписки соответствующие этому статусу, если не указан - действующие)
- Список действующих подписок для слушателя (если указан статус - то берутся подписки соответствующие этому статусу, если не указан - действующие)
- Список действующих подписок для учебной программы (если указан статус - то берутся подписки соответствующие этому статусу, если не указан - действующие)
- Список действующих подписок для структурного подразделения (если указан статус - то берутся подписки соответствующие этому статусу, если не указан - действующие)
- Отписать (подписка помечается как недействительная)