Разработка:storages/invorders
Содержание
Таблица в базе данных
invorders - заказы на комплекты учебных ресурсов. Ресурс может быть заказан на известный промежуток времени или бессрочно. При заказе комплекта резервируются ресурсы, входящие в состав комплекта. Если ресурсы расходуемые, после использования комплекта списывается соответствующее количество ресурса, если ресурс нерасходуемый - то после окончания использования ресурс освобождается. При заказе штучного комплекта заказчик, кроме категории ресурса, может выбрать также и конкретный комплект (например, портативный компьютер Toshiba с инвентарным номером X, а не портативный компьютер Roverbook с инвентарным номером Z). Если в число объектов, для которых могут быть заказаны ресурсы, помимо уроков в календаре, уроков в расписании на неделю, всех уроков учебного процесса, всех уроков по одному предмету/дисциплине, всех уроков по заданой теме в тематическом плане или конкретного человека, заказывающего ресурс, на заданный промежуток времени будут включены другие типы заказчиков, это изменение будет учтено в формате данного объекта, а остальная структура данных останется без изменений.
Подробный формат полей в таблице:
- repeat - флаг многократной повторяемости заказа (если он привязан к конкретному событию)
- date - дата и время подачи заявки в Unix Timestamp по UTC
- dateexec - дата и время начала исполнения заказа в Unix Timestamp по UTC если заказ исполняется независимо от внешних событий.
- duration - продолжительность заказа в секундах (обычно - один урок)
- customerid - сотрудник, подавший заявку (преподаватель, методист или администратор)
- objtype - тип объекта, к которому привязывается заявка
- objid - id объекта, к которому привязывается заявка
- invcategid - id заказанной категории пакета
- invsetsid - id предпочтительного комплекта (при исполнении может быть предложен другой, что отражается в invexecutions, но не влияет на исходную заявку)
- departmentid - id подразделения, которому назначено исполнение заказа (обычно - отдел-владелец комплекта)
- status - список статусов указан в одноименном плагине рабочих процессов invorders
- priority - приоритет заявки. Целое число. Чем выше число, тем выше приоритет. Может быть отрицательным. По умолчанию - 0.
Дополнительные методы:
- Список заказов, принадлежащих структурному подразделению, по статусу. Отсортированы по дате подачи.
- Список повторяемых заказов, исполнение которых связано с событием (в параметре передается объект с событием) с учетом заказов привязанных к шаблону в расписании, учебному процессу, дисциплине.
- Список заказов по подавшему сотруднику (необязательный параметр - статус, по умолчанию - null все статусы)
- Посчитать, сколько комплектов должно быть одолжено на момент в шаблоне расписания (день недели, вариант недели, время дня в секундах от 00:00) при условии исполнения всех заказов, прикрепленных к дисциплинам, учебным процессам и шаблонам в расписании (находит длящиеся шаблоны в расписании и считает заказы). Так же возвращает массив с id штучных комплектов в ключах и количестве заказов на них, как на предпочтительные - в значениях). Отдельно выводит список штучных комплектов, заказанных более одного раза. Количество одалживаемых счетных ресурсов, необходимых для исполнения всех этих заказов.
- Вернуть информацию о комплекте вместе с массивом содержащим список и количество входящих в комплект ресурсов и объектами самих этих ресурсов
Обработка сигналов ($DOF->send_event()):
- Прослушивание сингнал добавления уроков в расписание, получает список заказов, связанных с этим событием и вызывает метод планирования заказа по событию в storage/invexecutions