Страница 1 из 1

Уникальные поля (Решено)

Добавлено: 16 янв 2025, 18:39
Parazit00
Добрый вечер!

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

Есть следующие поля:

Дата и время [563]
Дата окончания [832]
Ответственный [570]
Время работы [611]
Задача:
Если создана встреча, например, на 16.01.2025 17:00, которая закончится 16.01.2025 18:30, то в этот промежуток времени нельзя добавлять новые встречи.

Пробовал настроить через составные уникальные поля, но удалось только ограничить создание записей на конкретную дату и время, а также для конкретного пользователя.
Screenshot_17.png
Screenshot_17.png (9.51 КБ) 28662 просмотра
Вопрос:
Как настроить запрет через составные поля на отрезок времени, а не только на фиксированные даты/время?
Можно ли реализовать это штатным функционалом, или потребуется писать PHP-код?
Screenshot_16.png
Screenshot_16.png (12.05 КБ) 28662 просмотра

Re: Уникальные поля

Добавлено: 16 янв 2025, 21:20
Fait
Могу помочь, потребуется PHP код

Re: Уникальные поля (Решено)

Добавлено: 17 янв 2025, 12:52
Parazit00
Подсказали решение через расширенный календарь.

Re: Уникальные поля (Решено)

Добавлено: 20 янв 2025, 08:45
it@ivku.ru
Parazit00 писал(а): 17 янв 2025, 12:52 Подсказали решение через расширенный календарь.
Раз решили - напишите решение плз.

Re: Уникальные поля (Решено)

Добавлено: 20 янв 2025, 09:30
nruslan2
в поле расширенный календарь есть поле ограничить дату! туда и вписываем нужное условие!https://vk.com/rukovoditel_project?w=wall-80230319_1865

Re: Уникальные поля (Решено)

Добавлено: 20 янв 2025, 09:46
it@ivku.ru
nruslan2 писал(а): 20 янв 2025, 09:30 в поле расширенный календарь есть поле ограничить дату! туда и вписываем нужное условие!https://vk.com/rukovoditel_project?w=wall-80230319_1865
Никогда б не догадался туда залезть.
Вот что значит знать документацию до последней запятой.
Браво!

Re: Уникальные поля (Решено)

Добавлено: 20 янв 2025, 12:38
Parazit00
Здравствуйте! Извините за задержку с ответом — был немного занят. Хочу поблагодарить всех, кто периодически подсказывает даже элементарные вещи. Бывает, что для выполнения простого действия приходится использовать сложные обходные пути, а потом выясняется, что нужный функционал уже существует.

Вначале я пошел совсем не в ту сторону, пытаясь реализовать то, что мне нужно. Однако с расширенным календарем мне удалось решить задачу, так как в нем можно прописывать условия, а именно это мне и было нужно.

Как же здорово, что на форуме есть люди, готовые подсказать, а иногда и помочь с составлением кода и другими вопросами. Спасибо вам!

Re: Уникальные поля (Решено)

Добавлено: 28 мар 2025, 18:13
ink64rus
Подниму тему, дабы не плодить. У меня не получается закрыть промежуток времени с учетом третьего значения (кабинет, учитель, как хотите называйте)
1. При использовании составных полей промежуток не закрывается - закрываются выбранные значения полей: начало мероприятия и конец мероприятия. Если выбрать промежуточное время в новой записи - то дает создать запись. Т.е. если мероприятие с 11 до 14, то при создании новой записи я могу свободно создать ее указав начало - 12 или 13 часов
2. Промежуток закрыть можно в поле "Расширенный календарь" по условию, но я не понимаю как в условии сделать проверку на занятость гипотетического кабинета. Для этого надо как-то обратиться к значению поля открытого в форме для создания мероприятия. Что-то типа

Код: Выделить всё

select field_880 as time_from, field_895 as time_to from app_entity_62 where date_format(FROM_UNIXTIME(field_880),'%Y-%m-%d')=[TODAY] AND field_896 = [896]
, но так не работает.
Кто-то может знает как можно закрыть промежуток времени с учетом третьей переменной (кабинет, учитель, исполнитель).

Re: Уникальные поля (Решено)

Добавлено: 31 мар 2025, 10:44
ink64rus
Неактуально. Сделал на PHP, через поле Ajax. Если вдруг появится решение встроенными средствами, просьба написать. Пригодится не только мне.