Разработка:storages/contracts — различия между версиями
Yumeneco (обсуждение | вклад) |
Konovalov (обсуждение | вклад) |
||
(не показано 16 промежуточных версий 5 участников) | |||
Строка 1: | Строка 1: | ||
+ | {{Infobox_Plugin | ||
+ | | name = contracts | ||
+ | | type = storages | ||
+ | }} | ||
+ | |||
===Таблица в базе данных=== | ===Таблица в базе данных=== | ||
''contracts'' - договор учащегося с учебным заведением. Отношения учащегося с учебного заведения начинаются с явного или подразумеваемого заключения договора на оказание образовательных услуг, выражающегося в виде записи в таблице contracts, связывающей учащегося, куратора и законного представителя. | ''contracts'' - договор учащегося с учебным заведением. Отношения учащегося с учебного заведения начинаются с явного или подразумеваемого заключения договора на оказание образовательных услуг, выражающегося в виде записи в таблице contracts, связывающей учащегося, куратора и законного представителя. | ||
====Подробный формат полей в таблице:==== | ====Подробный формат полей в таблице:==== | ||
− | * | + | * typeid - тип договора, если у учебного заведения предусмотрено несколько разных типов договоров |
* num - номер договора | * num - номер договора | ||
* numpass - номер пропуска, студенческого билета и т.п. | * numpass - номер пропуска, студенческого билета и т.п. | ||
* date - дата заключения | * date - дата заключения | ||
− | * sellerid - | + | * sellerid - менеджер по работе с клиентами (приемная комиссия, партнер) - добавляет договор, меняет статус до "подписан клиентом", отслеживает статус договора и ход обучения (id по таблице [[Разработка:storages/persons | persons ]]) |
− | * clientid - клиент, оплачивающий обучение | + | * clientid - клиент, оплачивающий обучение (законный представитель, сам совершеннолетний ученик или куратор от организации, может принимать значение 0 или null, если клиент создается, а контракт имеет черновой вариант) (по таблице [[Разработка:storages/persons | persons ]]) |
− | * studentid - ученик | + | * studentid - ученик ( может принимать значение 0, если ученик создается, а контракт имеет черновой вариант) (по таблице [[Разработка:storages/persons | persons ]]) |
* adddate - дата добавления в БД | * adddate - дата добавления в БД | ||
* notes - заметки | * notes - заметки | ||
− | * departmentid - подразделение, к которому приписан контракт на обучение (например, принявшее ученика) | + | * departmentid - подразделение в таблице [[Разработка:storages/departments | departments ]], к которому приписан контракт на обучение (например, принявшее ученика) |
* status - список статусов указан в одноименном плагине рабочих процессов [[Разработка:workflows/contracts | contracts ]] | * status - список статусов указан в одноименном плагине рабочих процессов [[Разработка:workflows/contracts | contracts ]] | ||
+ | * contractform - форма договора (шаблон) | ||
+ | * organizationid - юридическое лицо в таблице [[Разработка:storages/organizations | organizations ]], оплачивающее договор, если ученик платит за себя сам - то не указывается. | ||
+ | * curatorid - куратор или классный руководитель данного ученика (по таблице [[Разработка:storages/persons | persons ]] или не указан), отслеживает учебный процесс, держит связь с учеником, является посредником между учеником и системой, может быть внешней персоной. | ||
+ | * enddate - дата окончания договора | ||
+ | * metacontractid - id метаконтракта, к которому привязан контракт, в таблице [[Разработка:storages/metacontracts | metacontracts ]] | ||
===Дополнительные методы:=== | ===Дополнительные методы:=== | ||
+ | |||
+ | ===='''insert($dataobject,$quiet=NULL)'''==== | ||
+ | |||
+ | Вставляет запись в таблицу(ы) плагина. | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * dataobject(object) - запись. | ||
+ | * $quiet(bool) - определяет, создавать ли события, по умолчанию - null. | ||
+ | ''Возвращаемые значения:'' | ||
+ | * int - id вставленной записи. | ||
+ | * bool - false, если операция не удалась. | ||
+ | |||
+ | |||
+ | ===='''get_list_by_seller($pid = NULL)'''==== | ||
+ | |||
+ | Ищет список действующих контрактов для куратора. | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * $pid(int) - id персоны-куратора в таблице [[Разработка:storages/persons | persons ]], по умолчанию - null. | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (array) - список контрактов. | ||
+ | * (bool) - false, если контракты не найдены. | ||
+ | ''Структура работы:'' | ||
+ | # если id персоны не указано, устанавливаем id текущего пользователя. | ||
+ | # по SQL-запросу находим список необходимых контрактов. | ||
+ | |||
+ | |||
+ | ===='''get_list_by_client($pid = NULL)'''==== | ||
+ | |||
+ | Ищет список действующих контрактов, заключенных данным клиентом. | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * $pid(int) - id персоны-клиента в таблице [[Разработка:storages/persons | persons ]], по умолчанию - null. | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (array) - список контрактов. | ||
+ | * (bool) - false, если контракты не найдены. | ||
+ | ''Структура работы:'' | ||
+ | # если id персоны не указано, устанавливаем id текущего пользователя. | ||
+ | # по SQL-запросу находим список необходимых контрактов. | ||
+ | |||
+ | |||
+ | ===='''get_list_by_student($pid = NULL)'''==== | ||
+ | |||
+ | Ищет список действующих контрактов для студента. | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * $pid(int) - id персоны-студента в таблице [[Разработка:storages/persons | 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 персоны в таблице [[Разработка:storages/persons | persons ]]. | ||
+ | * $except(int) - id контракта, который следует исключить, по умолчанию - null. | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (bool) - true, если контракты были найдены и false, если их нет. | ||
+ | ''Структура работы:'' | ||
+ | # формируем SQL-запрос. | ||
+ | # если задан контракт, который слудует исключить, исключаем его из поиска. | ||
+ | # находим конракты и возвращаем результат. | ||
+ | |||
+ | |||
+ | ===='''is_seller($contractid = null,$personid = null)'''==== | ||
+ | |||
+ | Проверяет, является ли персона куратором по контракту. | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * $contractid(int) - id контракта, по умолчанию - null. | ||
+ | * $personid(int) - id персоны в таблице [[Разработка:storages/persons | persons ]], по умолчанию - null. | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (bool) - true, если да и false, если нет. | ||
+ | |||
+ | |||
+ | ===='''is_student($contractid = null,$personid = null)'''==== | ||
+ | |||
+ | Проверяет, является ли персона студентом. | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * $contractid(int) - id контракта, по умолчанию - null. | ||
+ | * $personid(int) - id персоны в таблице [[Разработка:storages/persons | persons ]], по умолчанию - null. | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (bool) - true, если да и false, если нет. | ||
+ | |||
+ | |||
+ | ===='''is_client($contractid = null,$personid = null)'''==== | ||
+ | |||
+ | Проверяет, является ли персона клиентом. | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * $contractid(int) - id контракта, по умолчанию - null. | ||
+ | * $personid(int) - id персоны в таблице [[Разработка:storages/persons | 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 - из таблицы [[Разработка:storages/persons | 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) - список контрактов. | ||
+ | |||
+ | ===Планы:=== | ||
+ | ====Дополнительные методы:==== | ||
* Сгенерировать номер контракта | * Сгенерировать номер контракта | ||
* Найти контракт по номеру | * Найти контракт по номеру | ||
* Найти контракт по номеру пропуска | * Найти контракт по номеру пропуска | ||
− | |||
− | |||
− | |||
* Найти список действующих контрактов, относящихся к структурному подразделению | * Найти список действующих контрактов, относящихся к структурному подразделению | ||
+ | |||
+ | ===События=== | ||
+ | В этом разделе описан список всех событий, которые генерируются, перехватываются и обрабатываются этим плагином. | ||
+ | ====Перехватываемые события==== | ||
+ | {| border="1" | ||
+ | |+ Таблица событий, которые перехватывает этот плагин | ||
+ | ! Тип плагина | ||
+ | ! Код плагина | ||
+ | ! Код события | ||
+ | ! Доп. данные | ||
+ | ! Пояснение | ||
+ | |- | ||
+ | |colspan=5 align=center | ''Этот плагин не перехватывает никаких событий'' | ||
+ | |} | ||
+ | ====Генерируемые события==== | ||
+ | {| border="1" | ||
+ | |+ Таблица событий, которые генерирует этот плагин | ||
+ | ! Тип плагина | ||
+ | ! Код плагина | ||
+ | ! Код события | ||
+ | ! Доп. данные | ||
+ | ! Пояснение | ||
+ | |- | ||
+ | |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. | ||
+ | |} |
Текущая версия на 13:14, 30 июня 2014
Плагин | |
Название | 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. |