Отделы в iTop: Команды или Организации?

Я вижу три варианта решения этой проблемы:

Вариант 1. Выбирать в поле Организация головную организацию, а инициатором - сотрудника конкретного отдела. Для того, чтобы в инициаторах выпадали сотрудники дочерних организаций (то есть всех отделов), нужно поправить запрос в модуле Tickets поле <field id="caller_id" xsi:type="AttributeExternalKey">.

Было:

SELECT Person
WHERE org_id = :this->org_id

Стало:

SELECT Person AS p 
JOIN Organization AS child ON p.org_id = child.id
JOIN Organization AS root ON child.parent_id BELOW root.id 
WHERE root.id = :this->org_id

Теперь у нас один договор с головной организацией, но не видно отдел инициатора. Но потом для статистики конечно можно будет вытащить отдел, это не проблема.

Вариант 2. Обеспечить наследование нашими отделами услуг из договора с головной организацией. Для этого нужно поправить запрос в модуле UserRequest в поле <field id="service_id" xsi:type="AttributeExternalKey">.

Было:

SELECT Service AS s 
JOIN lnkCustomerContractToService AS l1 ON l1.service_id=s.id 
JOIN CustomerContract AS cc ON l1.customercontract_id=cc.id 
WHERE cc.org_id = :this->org_id AND s.status != 'obsolete'

Стало:

SELECT Service AS s
JOIN lnkCustomerContractToService AS l1 ON l1.service_id = s.id 
JOIN CustomerContract AS cc ON l1.customercontract_id = cc.id
JOIN Organization AS child ON cc.org_id = child.id
JOIN Organization AS root ON child.parent_id ABOVE root.id
WHERE root.id = :this->org_id AND s.status != 'obsolete'

Теперь, выбирая отдел, нам доступен список услуг головной организации.

Вариант 3 (на мой взгляд самый правильный). Оставить всё как есть. Даже если у нас 10 отделов, это 10 договоров с одинаковым содержанием. Но добавление этих договоров - операция разовая, а однотипное содержимое позволяет легко подготовить данные для импорта CSV. Зато у нас появляется возможность для будущих манёвров. Например, разные услуги (персоны, документы, КЕ и др.) для разных отделов-заказчиков или более жесткие SLA для Бухгалтерии в момент расчета зарплаты.

UPD: Какой вариант модуля Service Management используется?

2 лайка