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

Материал из DOF
Версия от 17:04, 16 февраля 2010; Ilya (обсуждение | вклад) (Добавлено описание событий и проставлены категории)
Перейти к: навигация, поиск
Плагин
Название 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 - дата окончания договора

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

get_list_by_seller()

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

Аргументы:

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

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

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

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

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

get_list_by_client()

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

Аргументы:

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

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

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

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

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

get_list_by_student()

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

Аргументы:

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

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

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

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

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

get_list_by_status()

Ищет список контрактов по статусу.

Аргументы:

  • $status(string) - статус контракта.

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

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

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

По SQL-запросу находим список необходимых контрактов.

is_person_used()

Проверяет есть ли другие активные договора, где используется учетная запись.

Аргументы:

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

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

  • (bool) true если контракты были найдены и false, если их нет.

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

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

is_seller()

Проверяет является ли персона куратором по контракту.

Аргументы:

  • $contractid(int) - id контракта в таблице contracts .
  • $personid(int) - id персоны в таблице persons .

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

  • (bool) true - да и false - нет.

Планы:

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

  • Сгенерировать номер контракта
  • Найти контракт по номеру
  • Найти контракт по номеру пропуска
  • Найти список действующих контрактов, относящихся к структурному подразделению

События

В этом разделе описан список всех событий, которые генерируются, перехватываются и обрабатываются этим плагином.

Перехватываемые события

Таблица событий, которые перехватывает этот плагин
Тип плагина Код плагина Код события Доп. данные Пояснение
Этот плагин не перехватывает никаких событий

Генерируемые события

Таблица событий, которые генерирует этот плагин
Тип плагина Код плагина Код события Доп. данные Пояснение
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.