Разработка:workflows/invsets

Материал из DOF
Версия от 10:40, 18 февраля 2014; Yumeneco (обсуждение | вклад) (Маршруты статусов)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск
Плагин
Название invsets
Тип workflows


Возможные статусы:

  • Доступен (active) - этот комплект сформирован и его можно выдавать
  • Выдан (granted) - комплект выдан в пользование
  • Расформирован (canceled)
  • Не доступен (notavailable) по какой-то причине комплект не доступен(одна из сосатвляющих в ремонте или нет составляющих для полного комплекта)
  • Удален (deleted) - ошибочная забивка данных

Метастатусы

  • Активный: granted
  • Актуальный: active, granted, notavailable
  • Реальный: active, granted, canceled, notavailable
  • Мусорный: deleted

Маршруты статусов

Правила описания маршрутов: описания возможностей перехода в новый статус на основании текущего статуса и условия, действительные только при переходе в новый статус из текущего статуса. При инициализации статус объекта равен доступный(active)

Доступен(active)

Возможные переходы ИЗ этого статуса:

  • Выдан (granted)
  • Расформирован (canceled)
  • Не доступен (notavailable)
  • Удален (deleted)

Выдан (granted)

Возможные переходы ИЗ этого статуса:

  • Доступен(active) - если кому выдали комплект, то он должен сперва вернуться назад(доступен)

Не доступен (notavailable)

Возможные переходы ИЗ этого статуса:

  • Доступный(active)
  • Расформирован (canceled)
  • Удален (deleted)

Расформирован (canceled)

Это конечный статус.

Удален (deleted)

Это конечный статус.

API

get_list()

Получить список всех возможных статусов

Аргументы:

  • (нет)

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

  • Массив, со списком всех возможных статусов в формате "обозначение" => "Перевод"

get_name()

Получить название статуса по его обозначению в базе данных

Аргументы:

  • (string) $status - обозначение статуса латинскими буквами

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

  • (string|bool) - перевод для этого статуса, либо false, если он не обнаружен в списке допустимых

get_available()

Получить список статусов, в которые может перейти указанный комплект.

Аргументы:

  • $id - id учебного комплекта в таблице invsets

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

  • (array|bool) - массив возможных состояний в формате ('обозначение' => 'первод') или false в случае когда запись не найдена. В случае, когда переход из этого статуса невозможен - возвращается пустой массив.

change()

Сменить статус комплекта на указанный.

Аргументы:

  • (int) $id - id комплекта в таблице invsets
  • (string) $status - обозначение статуса латинскими буквами
  • (array) $opt - Массив, где содержатся дополнительные параметры для смены статуса. По умолчанию null.

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

  • (bool) true - если статус удалось изменить, или false в случае ошибки

При обращении к функции change() выполняются дополнительные действия, указанные выше, в разделе "Маршруты статусов". При каждом изменении статуса данные записываются в таблицу statushistory.

init()

Запускается при вставке в таблицу invsets новой записи. Автоматически назначает созданному учебному периоду статус "доступен" (active).

Аргументы:

  • $id - id только что созданного учебного периода в таблице invsets

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

  • (bool) true если статус успешно назначен или false в случае ошибки

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

Таблица событий, которые перхватывает этот плагин
Тип плагина Код плагина Код события Пояснение
storage invsets insert Присваивает объекту статус active при добавлении его в таблицу