Разработка:storages/contracts
Плагин | |
Название | contracts |
Тип | storages |
Содержание
- 1 Таблица в базе данных
- 2 Дополнительные методы:
- 2.1 insert($dataobject,$quiet=NULL)
- 2.2 get_list_by_seller($pid = NULL)
- 2.3 get_list_by_client($pid = NULL)
- 2.4 get_list_by_student($pid = NULL)
- 2.5 get_list_by_status($status)
- 2.6 is_person_used($pid,$except=null)
- 2.7 is_seller($contractid = null,$personid = null)
- 2.8 is_student($contractid = null,$personid = null)
- 2.9 is_client($contractid = null,$personid = null)
- 2.10 is_personel($userid, $except=null, $where = 'moodle')
- 2.11 get_seller($id)
- 2.12 get_contracts_for_person($pid = NULL)
- 3 Планы:
- 4 События
Таблица в базе данных
contracts - договор учащегося с учебным заведением. Отношения учащегося с учебного заведения начинаются с явного или подразумеваемого заключения договора на оказание образовательных услуг, выражающегося в виде записи в таблице contracts, связывающей учащегося, куратора и законного представителя.
Подробный формат полей в таблице:
- typeid - тип договора, если у учебного заведения предусмотрено несколько разных типов договоров
- num - номер договора
- numpass - номер пропуска, студенческого билета и т.п.
- date - дата заключения
- sellerid - менеджер по работе с клиентами (приемная комиссия, партнер) - добавляет договор, меняет статус до "подписан клиентом", отслеживает статус договора и ход обучения (id по таблице persons )
- clientid - клиент, оплачивающий обучение (законный представитель, сам совершеннолетний ученик или куратор от организации, может принимать значение 0 или null, если клиент создается, а контракт имеет черновой вариант) (по таблице persons )
- studentid - ученик ( может принимать значение 0, если ученик создается, а контракт имеет черновой вариант) (по таблице persons )
- adddate - дата добавления в БД
- notes - заметки
- departmentid - подразделение в таблице departments , к которому приписан контракт на обучение (например, принявшее ученика)
- status - список статусов указан в одноименном плагине рабочих процессов contracts
- contractform - форма договора (шаблон)
- organizationid - юридическое лицо в таблице organizations , оплачивающее договор, если ученик платит за себя сам - то не указывается.
- curatorid - куратор или классный руководитель данного ученика (по таблице persons или не указан), отслеживает учебный процесс, держит связь с учеником, является посредником между учеником и системой, может быть внешней персоной.
- enddate - дата окончания договора
- metacontractid - id метаконтракта, к которому привязан контракт, в таблице metacontracts
Дополнительные методы:
insert($dataobject,$quiet=NULL)
Вставляет запись в таблицу(ы) плагина.
Аргументы:
- dataobject(object) - запись.
- $quiet(bool) - определяет, создавать ли события, по умолчанию - null.
Возвращаемые значения:
- int - id вставленной записи.
- bool - false, если операция не удалась.
get_list_by_seller($pid = NULL)
Ищет список действующих контрактов для куратора.
Аргументы:
- $pid(int) - id персоны-куратора в таблице persons , по умолчанию - null.
Возвращаемые значения:
- (array) - список контрактов.
- (bool) - false, если контракты не найдены.
Структура работы:
- если id персоны не указано, устанавливаем id текущего пользователя.
- по SQL-запросу находим список необходимых контрактов.
get_list_by_client($pid = NULL)
Ищет список действующих контрактов, заключенных данным клиентом.
Аргументы:
- $pid(int) - id персоны-клиента в таблице persons , по умолчанию - null.
Возвращаемые значения:
- (array) - список контрактов.
- (bool) - false, если контракты не найдены.
Структура работы:
- если id персоны не указано, устанавливаем id текущего пользователя.
- по SQL-запросу находим список необходимых контрактов.
get_list_by_student($pid = NULL)
Ищет список действующих контрактов для студента.
Аргументы:
- $pid(int) - id персоны-студента в таблице persons , по умолчанию - null.
Возвращаемые значения:
- (array) - список контрактов.
- (bool) - fals, если контракты не найдены.
Структура работы:
- если id персоны не указано, устанавливаем id текущего пользователя.
- по SQL-запросу находим список необходимых контрактов.
get_list_by_status($status)
Ищет список контрактов по статусу.
Аргументы:
- $status(string) - статус контракта.
Возвращаемые значения:
- (array) - список контрактов.
- (bool) - false, если контракты не найдены.
is_person_used($pid,$except=null)
Проверяет есть ли другие активные договора, где используется учетная запись.
Аргументы:
- $pid(int) - id персоны в таблице persons .
- $except(int) - id контракта, который следует исключить, по умолчанию - null.
Возвращаемые значения:
- (bool) - true, если контракты были найдены и false, если их нет.
Структура работы:
- формируем SQL-запрос.
- если задан контракт, который слудует исключить, исключаем его из поиска.
- находим конракты и возвращаем результат.
is_seller($contractid = null,$personid = null)
Проверяет, является ли персона куратором по контракту.
Аргументы:
- $contractid(int) - id контракта, по умолчанию - null.
- $personid(int) - id персоны в таблице persons , по умолчанию - null.
Возвращаемые значения:
- (bool) - true, если да и false, если нет.
is_student($contractid = null,$personid = null)
Проверяет, является ли персона студентом.
Аргументы:
- $contractid(int) - id контракта, по умолчанию - null.
- $personid(int) - id персоны в таблице persons , по умолчанию - null.
Возвращаемые значения:
- (bool) - true, если да и false, если нет.
is_client($contractid = null,$personid = null)
Проверяет, является ли персона клиентом.
Аргументы:
- $contractid(int) - id контракта, по умолчанию - null.
- $personid(int) - id персоны в таблице persons , по умолчанию - null.
Возвращаемые значения:
- (bool) - true, если да и false, если нет.
is_personel($userid, $except=null, $where = 'moodle')
Проверяет, упомянута ли данная персона в данном контракте.
Аргументы:
- $mdluser(int) - id пользователя в moodle
- $except(bool) - id контракта, который надо исключить из поиска
- $where(string) - идентификатор происхождения id пользователя: mоodle - id из таблицы mdl_user, fdo - из таблицы persons
Возвращаемые значения:
- (bool) - true, если да и false, если нет.
get_seller($id)
Находит ФИО продавца и его id по id контракта
Аргументы:
- $id(int) - id контракта.
Возвращаемые значения:
- (object) - ФИО продовца и его id.
- (bool) - false, если произошла ошибка.
get_contracts_for_person($pid = NULL)
Находит список договоров для конкретной персоны.
Аргументы:
- $pid(int) - id персоны, по умолчанию - null.
Возвращаемые значения:
- (array) - список контрактов.
Планы:
Дополнительные методы:
- Сгенерировать номер контракта
- Найти контракт по номеру
- Найти контракт по номеру пропуска
- Найти список действующих контрактов, относящихся к структурному подразделению
События
В этом разделе описан список всех событий, которые генерируются, перехватываются и обрабатываются этим плагином.
Перехватываемые события
Тип плагина | Код плагина | Код события | Доп. данные | Пояснение |
---|---|---|---|---|
Этот плагин не перехватывает никаких событий |
Генерируемые события
Тип плагина | Код плагина | Код события | Доп. данные | Пояснение |
---|---|---|---|---|
storage | contracts | insert | Массив, содержащий в поле "new" объект с данными для вставки в таблицу.
Пример: array('new' => $dataobject) |
Генерируется каждый раз при вставке новой записи в таблицу contracts. |
storage | contracts | update | Массив, содержащий в поле "new" обновленный объект, и в поле "old" объект со старыми данными, до обновления записи.
Пример: array('old' => $dataobject_old, 'new' => $dataobject_new) |
Генерируется каждый раз при обновлении записи в таблице contracts. |
storage | contracts | delete | Массив, содержащий в поле "old" объект с данными, которые удаляются из таблицы
Пример: array('old' => $dataobject) |
Генерируется каждый раз при удалении записи из таблицы contracts. |