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

Материал из DOF
Перейти к: навигация, поиск
(Добавлено описание событий и проставлены категории)
(Дополнительные методы:)
Строка 26: Строка 26:
 
===Дополнительные методы:===
 
===Дополнительные методы:===
  
'''get_list_by_seller()'''
+
===='''insert($dataobject,$quiet=NULL)'''====
 +
 
 +
Вставляет запись в таблицу(ы) плагина.
 +
 
 +
''Аргументы:''
 +
* dataobject(object) - запись.
 +
* $quiet(bool) - определяет, создавать ли события, по умолчанию - null.
 +
''Возвращаемые значения:''
 +
* int - id вставленной записи.
 +
* bool - false, если операция не удалась.
 +
 
 +
 
 +
===='''get_list_by_seller($pid = NULL)'''====
  
 
Ищет список действующих контрактов для куратора.
 
Ищет список действующих контрактов для куратора.
  
 
''Аргументы:''
 
''Аргументы:''
* $pid() - id персоны-куратора в таблице [[Разработка:storages/persons | persons ]], по умолчанию - нет(null).
+
* $pid(int) - id персоны-куратора в таблице [[Разработка:storages/persons | persons ]], по умолчанию - null.
 
''Возвращаемые значения:''
 
''Возвращаемые значения:''
* (array) список контрактов.
+
* (array) - список контрактов.
* (bool) false если контракты не найдены.
+
* (bool) - false, если контракты не найдены.
 
''Структура работы:''
 
''Структура работы:''
 
# если id персоны не указано, устанавливаем id текущего пользователя.
 
# если id персоны не указано, устанавливаем id текущего пользователя.
 
# по SQL-запросу находим список необходимых контрактов.
 
# по SQL-запросу находим список необходимых контрактов.
  
'''get_list_by_client()'''
+
 
 +
===='''get_list_by_client($pid = NULL)'''====
 
   
 
   
Ищет список действующих контрактов для клиента.
+
Ищет список действующих контрактов, заключенных данным клиентом.
  
 
''Аргументы:''
 
''Аргументы:''
* $pid(int) - id персоны-клиента в таблице [[Разработка:storages/persons | persons ]], по умолчанию - нет(null).
+
* $pid(int) - id персоны-клиента в таблице [[Разработка:storages/persons | persons ]], по умолчанию - null.
 
''Возвращаемые значения:''
 
''Возвращаемые значения:''
* (array) список контрактов.
+
* (array) - список контрактов.
* (bool) false если контракты не найдены.
+
* (bool) - false, если контракты не найдены.
 
''Структура работы:''
 
''Структура работы:''
 
# если id персоны не указано, устанавливаем id текущего пользователя.
 
# если id персоны не указано, устанавливаем id текущего пользователя.
 
# по SQL-запросу находим список необходимых контрактов.
 
# по SQL-запросу находим список необходимых контрактов.
  
'''get_list_by_student()'''
+
 
 +
===='''get_list_by_student($pid = NULL)'''====
  
 
Ищет список действующих контрактов для студента.
 
Ищет список действующих контрактов для студента.
  
 
''Аргументы:''
 
''Аргументы:''
* $pid(int) - id персоны-студента в таблице [[Разработка:storages/persons | persons ]], по умолчанию - нет(null).
+
* $pid(int) - id персоны-студента в таблице [[Разработка:storages/persons | persons ]], по умолчанию - null.
 
''Возвращаемые значения:''
 
''Возвращаемые значения:''
* (array) список контрактов.
+
* (array) - список контрактов.
* (bool) false если контракты не найдены.
+
* (bool) - fals, если контракты не найдены.
 
''Структура работы:''
 
''Структура работы:''
 
# если id персоны не указано, устанавливаем id текущего пользователя.
 
# если id персоны не указано, устанавливаем id текущего пользователя.
 
# по SQL-запросу находим список необходимых контрактов.
 
# по SQL-запросу находим список необходимых контрактов.
  
'''get_list_by_status()'''
+
 
 +
===='''get_list_by_status($status)'''====
  
 
Ищет список контрактов по статусу.
 
Ищет список контрактов по статусу.
Строка 72: Строка 87:
 
* $status(string) - статус контракта.
 
* $status(string) - статус контракта.
 
''Возвращаемые значения:''
 
''Возвращаемые значения:''
* (array) список контрактов.
+
* (array) - список контрактов.
* (bool) false если контракты не найдены.
+
* (bool) - false, если контракты не найдены.
''Структура работы:''
 
  
По SQL-запросу находим список необходимых контрактов.
 
  
'''is_person_used()'''
+
===='''is_person_used($pid,$except=null)'''====
  
 
Проверяет есть ли другие активные договора, где используется учетная запись.
 
Проверяет есть ли другие активные договора, где используется учетная запись.
Строка 84: Строка 97:
 
''Аргументы:''
 
''Аргументы:''
 
* $pid(int) - id персоны в таблице [[Разработка:storages/persons | persons ]].
 
* $pid(int) - id персоны в таблице [[Разработка:storages/persons | persons ]].
* $except(int) - id контракта в таблице [[Разработка:storages/contracts | contracts ]], который следует исключить, по умолчанию - нет (null).
+
* $except(int) - id контракта, который следует исключить, по умолчанию - null.
 
''Возвращаемые значения:''
 
''Возвращаемые значения:''
* (bool) true если контракты были найдены и false, если их нет.
+
* (bool) - true, если контракты были найдены и false, если их нет.
 
''Структура работы:''
 
''Структура работы:''
 
# формируем SQL-запрос.
 
# формируем SQL-запрос.
Строка 92: Строка 105:
 
# находим конракты и возвращаем результат.
 
# находим конракты и возвращаем результат.
  
'''is_seller()'''
 
  
Проверяет является ли персона куратором по контракту.
+
===='''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)'''====
 +
 
 +
Находит список договоров для конкретной персоны.
  
 
''Аргументы:''
 
''Аргументы:''
* $contractid(int) - id контракта в таблице [[Разработка:storages/contracts | contracts ]].
+
* $pid(int) - id персоны, по умолчанию - null.
* $personid(int) - id персоны в таблице [[Разработка:storages/persons | persons ]].
 
 
''Возвращаемые значения:''
 
''Возвращаемые значения:''
* (bool) true - да и false - нет.
+
*array - список контрактов.
  
 
===Планы:===
 
===Планы:===

Версия 17:40, 8 ноября 2010

Плагин
Название 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 - дата окончания договора

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

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.