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

Материал из DOF
Перейти к: навигация, поиск
 
(не показано 16 промежуточных версий 5 участников)
Строка 1: Строка 1:
 +
{{Infobox_Plugin
 +
| name = contracts
 +
| type = storages
 +
}}
 +
 
===Таблица в базе данных===
 
===Таблица в базе данных===
 
''contracts'' - договор учащегося с учебным заведением. Отношения учащегося с учебного заведения начинаются с явного или подразумеваемого заключения договора на оказание образовательных услуг, выражающегося в виде записи в таблице contracts, связывающей учащегося, куратора и законного представителя.
 
''contracts'' - договор учащегося с учебным заведением. Отношения учащегося с учебного заведения начинаются с явного или подразумеваемого заключения договора на оказание образовательных услуг, выражающегося в виде записи в таблице contracts, связывающей учащегося, куратора и законного представителя.
  
 
====Подробный формат полей в таблице:====
 
====Подробный формат полей в таблице:====
* type - тип договора (1 - договор непосредственно с учеником, 2 - договор с законным представителем)
+
* typeid - тип договора, если у учебного заведения предусмотрено несколько разных типов договоров
 
* num - номер договора
 
* num - номер договора
 
* numpass - номер пропуска, студенческого билета и т.п.
 
* numpass - номер пропуска, студенческого билета и т.п.
 
* date - дата заключения
 
* date - дата заключения
* sellerid - куратор (id по таблице persons)
+
* 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


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

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, если контракты не найдены.

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

  1. если id персоны не указано, устанавливаем id текущего пользователя.
  2. по SQL-запросу находим список необходимых контрактов.


get_list_by_client($pid = NULL)

Ищет список действующих контрактов, заключенных данным клиентом.

Аргументы:

  • $pid(int) - id персоны-клиента в таблице persons , по умолчанию - null.

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

  • (array) - список контрактов.
  • (bool) - false, если контракты не найдены.

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

  1. если id персоны не указано, устанавливаем id текущего пользователя.
  2. по SQL-запросу находим список необходимых контрактов.


get_list_by_student($pid = NULL)

Ищет список действующих контрактов для студента.

Аргументы:

  • $pid(int) - id персоны-студента в таблице persons , по умолчанию - null.

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

  • (array) - список контрактов.
  • (bool) - fals, если контракты не найдены.

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

  1. если id персоны не указано, устанавливаем id текущего пользователя.
  2. по 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, если их нет.

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

  1. формируем SQL-запрос.
  2. если задан контракт, который слудует исключить, исключаем его из поиска.
  3. находим конракты и возвращаем результат.


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.