Праздничные даты - можно ли учитывать в формулах/записях?

Все вопросы/проблемы по установке и использовании.
Ответить
Аватара пользователя
alcompstudio
Спонсор
Спонсор
Сообщения: 1519
Зарегистрирован: 03 янв 2016, 20:42
Имя: Александр
Откуда: Мир

Праздничные даты - можно ли учитывать в формулах/записях?

Сообщение alcompstudio »

Есть возможность исключать праздничные даты в поле Разница в днях (часах, годах), настроенные в специальном модуле Праздничные даты.
А можно ли (как?) вычислить время работы (в записи, имеющей поля Дата начала и Дата окончания, с выбором времени), приходящееся на праздничную дату?
Т.е. к примеру, есть сущность Учет рабочего времени и там рассчитывается разница между 2-мя полями дата со временем (часы работы). Но вот нужно посчитать это время работы в любом случае, особенно, если день работы припадает на праздничную дату. Вот нужно сделать отчет, сколько часов сотрудник отработал в праздничные дни и т.п. с выводом этих праздничных дат и временем работы по ним.
В случае с выходными - там просто, можно поставить формулу в поле MySQL, которая будет проверять на совпадение текущего дня с днем недели (суббота, воскресенье - т.е. 5 и 6 день по MySQL) и назначить 1, если выходные, и 0 - если не выходные.

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

IF(WEEKDAY(FROM_UNIXTIME([223],'%Y-%m-%d'))=5 OR WEEKDAY(FROM_UNIXTIME([223],'%Y-%m-%d'))=6,1,0)
вот что-то типа такого, и тут уже можно эти 1 и 0 использовать в дальнейших подсчетах.

А вот как быть с праздничными днями, назначаемыми в модуле Руководителя? Их как-то можно вытянуть и сделать подобную проверку?

что-то типа этого, может чтобы получалось:

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

IF([223]=[дата из диапазона значений в записях модуля Праздничные даты],1,0)
или может есть какое-то решение, которое сможет решить данный вопрос (а я просто не заметил), подскажите, Сергей, или ув. специалисты, кто в курсе как такое сделать :)
Аватара пользователя
support
Техническая поддержка
Сообщения: 7661
Зарегистрирован: 19 окт 2014, 18:22
Имя: Харчишин Сергей
Откуда: Крым, Евпатория

Re: Праздничные даты - можно ли учитывать в формулах/записях?

Сообщение support »

Это вам нужно писать под-запрос. Попробуйте вот так:

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

if( (select count(*) from app_holidays h where h.start_date<= [223] and h.end_date>=[223])>0 , 1,0)
Аватара пользователя
alcompstudio
Спонсор
Спонсор
Сообщения: 1519
Зарегистрирован: 03 янв 2016, 20:42
Имя: Александр
Откуда: Мир

Re: Праздничные даты - можно ли учитывать в формулах/записях?

Сообщение alcompstudio »

не получается... поставил формулу в поле MySQL http://prntscr.com/ma5hsn, выводит все нули. В Праздничных датах поставил такие записи:

http://prntscr.com/ma5g7w

в результате - "0"... http://prntscr.com/ma5h0r

Может что-то не так сделал?
Аватара пользователя
alcompstudio
Спонсор
Спонсор
Сообщения: 1519
Зарегистрирован: 03 янв 2016, 20:42
Имя: Александр
Откуда: Мир

Re: Праздничные даты - можно ли учитывать в формулах/записях?

Сообщение alcompstudio »

Все, получилось) нужно было преобразовать значение даты, вот такая формула срабатывает:

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

if((select count(*) from app_holidays h where h.start_date <= FROM_UNIXTIME([223],'%Y-%m-%d') and h.end_date >= FROM_UNIXTIME([223],'%Y-%m-%d'))>0,1,0)
Сергей, спасибо за подсказку ;)
nruslan2
Сообщения: 2435
Зарегистрирован: 14 окт 2020, 09:13
Имя: Ruslan
Откуда: Moscow

Re: Праздничные даты - можно ли учитывать в формулах/записях?

Сообщение nruslan2 »

Немного переосмыслил данную тему и сделал просто доработку чтоб не мучаться с SQL, а использовать динамическую Дату
viewtopic.php?f=3&t=4487
Ответить