Вы здесь

Как проверить на пересечение дат создаваемой ноды с другими уже созданными?

0

Добрый вечер
Делаю функцию букинга комнат в здании, а именно есть тип материала ROOM и BOOKING
ROOM обычный тип материала - title и body
BOOKING имеет также date (с обязательным указанием конечной даты), а также entity reference на ноды типа ROOM

Таким образом если пользователь создаёт BOOKING на 27 октября с 13:00 по 18:00 и указанием entity reference на ноду ROOM#1
То в следующий раз никто не должен создать ноду аналогично на комнату ROOM#1 так или иначе затрагивающее время, т.е ни с 9:00 под 14:00, ни 15:00 по 16:00, ни с 17:00 по 19:00 - форма должна сругнуться, мол уже есть запись которая использует указанный вами период времени

соответственно если выбирали ROOM#2 и там нет таких нод, с таким временем, то должно всё создатся

Хочется решение без код, вроде бы вот первое решение https://www.drupal.org/project/resource_conflict
но нет желанной настройки когда будет смотреть entity reference или term reference, т.е. смотрит впринципе без разбора на весь тип материала

второе решение https://www.drupal.org/project/rules_forms валидация на ходу с помощью рулз, ещё круче решение, которое вроде как ещё больше гибкости может принести, но тупо не может при валидации вытащить значения поле и после чего использовать их в экшенах и подключаемых компонентах, т.е. просто не могу вытащить указанные значения даты при валидации и отправить их как параметр в другой компонент рулзы - который в свою очередь пробежится по остальным нодам и не проверить пересекаемость дат

Беда огорчение, а решения хочется

Версия Drupal: 
7.x
Категория: 
Node API
Вопрос задан 27.10.2017 - 22:16

Ответы