Как связать зависимые списки из разных типов материалов?
Всем привет!
Попробую объяснить, чего требуется:
На Drupal 7 реализую процесс заведения заявки к рамочному соглашению (закупка). Т.е. пользователи будут выполнять следующие действия:
1. Роль 1. Привязана к определенному департаменту организации. Создаёт ноду - заявка. Заполняет форму и первым шагом выбирает договор (отдельный тип материала, имеет свой набор полей). Выбор договора система должна предлагать из всех договоров, привязанных к его департаменту (привязка - отдельный процесс). Т.е. пользователь видит не весь реестр договоров, а только часть, должен сработать определенный фильтр.
2. В зависимости от выбранного договора следующим шагом пользователь выбирает информационную систему. Также срабатывает фильтр - для выбора представляется перечень систем, привязанных к выбранному договору.
3. Далее указывает команду (так же отдельный тип материала с привязкой к выбранной системе или нескольким системам).
4. Далее выбирает позиции команды (так же отдельный тип материала с привязкой к выбранной команде или командам) и т.д. У каждой позиции, это по сути роль - есть привязанная ставка (также отдельный тип материала).
5. Далее по заявке указывает диапазон дат.
6. После заполнения формы, система должна автоматически рассчитать сумму заявки по выбранным позициям и за указанный диапазон дат.
7. Когда заявка заполнена, пользователь отправляет её на согласование Роли 2.
8. Роль 2 может просмотреть заявку, согласовать, отклонить с комментарием или отправить на доработку (после чего Роль 1 корректирует и отправляет на повторное согласование).
И т.д.
Такое вообще на drupal можно реализовать? Он потянет? Самый важный вопрос - как выстроить взаимосвязь полей, которые по сути являются отдельными типами материалов с определенными фильтрами?
Дополнительные вопросы:
1. Какой модуль лучше использовать для математических расчетов (сумма по заявке, различные проценты от суммы и т.д.)?
2. Какой модуль использовать для создания бизнес-процесса, связанного с заявкой. Т.е. одна роль создала объект, другая дополнила, третья согласовала, четвёртая утвердила или отправила на доработку?