Разработка:storages/contracts

Материал из DOF
Версия от 13:14, 30 июня 2014; Konovalov (обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск
Плагин
Название 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.