[Сценарий] Функция Рабочий/Выходной день

Не требует установки программ или изменения файлов

Модераторы: immortal, newz20

Аватара пользователя
Divan
Сообщения: 859
Зарегистрирован: Пн июл 08, 2019 5:04 pm
Благодарил (а): 117 раз
Поблагодарили: 280 раз

Re: [Сценарий] Функция Рабочий/Выходной день

Сообщение Divan » Пт окт 04, 2019 7:14 pm

Вообщем вроде бы получилось собрать код для гибкого графика 2/2/3, где сисема понимает, что у меня сегодня рабочий или выходной день. Собирал код с помощью Blockly, но как мне один ответил (см. ниже), что такой код можно написать в одну строчку. Может кто-то покажет как нужно это писать? Мне очень хочется услышать ответ.
СпойлерПоказать
Снимок.JPG
Снимок.JPG (52.89 КБ) 1575 просмотров
У меня так:
Объект Divan и свойства WorkingDay\WeekendDay\Week
Где:
Week 0 - одна неделя
Week 1 - другая неделя
Week 2 - отпуск\больничный (сегодня до этого додумался)

Объект Day и свойства Понедельник\Вторник\Среда\Четверг\Пятница\Суббота\Воскресенье

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

if (getGlobal("Divan.Week") == 0) {	//Если Week=0, то запускается сценарий "График работы 2-2-3: 2 выходных и 5 рабочих дней"
  if (getGlobal("Day.Понедельник") == 1) {			//По графику в понедельник у меня рабочий день
    setGlobal('Divan.WorkingDay', '1');				//В рабочий день ставим 1
    setGlobal('Divan.WeekendDay', '0');				//В выходной день ставим 0
  } else if (getGlobal("Day.Вторник") == 1) {		//По графику во вторник у меня рабочий день
    setGlobal('Divan.WorkingDay', '1');				//В рабочий день ставим 1
    setGlobal('Divan.WeekendDay', '0');				//В выходной день ставим 0
  } else if (getGlobal("Day.Среда") == 1) {			//По графику в среду у меня выходной день
    setGlobal('Divan.WorkingDay', '0');				//В рабочий день ставим 0
    setGlobal('Divan.WeekendDay', '1');				//В выходной день ставим 1
  } else if (getGlobal("Day.Четверг") == 1) {		//По графику в четверг у меня выходной день
    setGlobal('Divan.WorkingDay', '0');				//В рабочий день ставим 0
    setGlobal('Divan.WeekendDay', '1');				//В выходной день ставим 1
  } else if (getGlobal("Day.Пятница") == 1) {		//По графику в пятницу у меня рабочий день
    setGlobal('Divan.WorkingDay', '1');				//В рабочий день ставим 1
    setGlobal('Divan.WeekendDay', '0');				//В выходной день ставим 0
  } else if (getGlobal("Day.Суббота") == 1) {		//По графику в субботу у меня рабочий день
    setGlobal('Divan.WorkingDay', '1');				//В рабочий день ставим 1
    setGlobal('Divan.WeekendDay', '0');				//В выходной день ставим 0
  } else if (getGlobal("Day.Воскресенье") == 1) {	//По графику в воскресенье у меня рабочий день
    setGlobal('Divan.WorkingDay', '1');				//В рабочий день ставим 1
    setGlobal('Divan.WeekendDay', '0');				//В выходной день ставим 0
  }
  runScript('Оповещение, рабочий или выходной день', array());
} else if (getGlobal("Divan.Week") == 1) {	//Если Week=1, то запускается сценарий "График работы 2-2-3: 5 выходных и 2 рабочих дня"
  if (getGlobal("Day.Понедельник") == 1) {			//По графику в понедельник у меня выходной день
    setGlobal('Divan.WorkingDay', '0');				//В рабочий день ставим 0
    setGlobal('Divan.WeekendDay', '1');				//В выходной день ставим 1
  } else if (getGlobal("Day.Вторник") == 1) {		//По графику во вторник у меня выходной день
    setGlobal('Divan.WorkingDay', '0');				//В рабочий день ставим 0
    setGlobal('Divan.WeekendDay', '1');				//В выходной день ставим 1
  } else if (getGlobal("Day.Среда") == 1) {			//По графику в среду у меня рабочий день
    setGlobal('Divan.WorkingDay', '1');				//В рабочий день ставим 1
    setGlobal('Divan.WeekendDay', '0');				//В выходной день ставим 0
  } else if (getGlobal("Day.Четверг") == 1) {		//По графику в четверг у меня рабочий день
    setGlobal('Divan.WorkingDay', '1');				//В рабочий день ставим 1
    setGlobal('Divan.WeekendDay', '0');				//В выходной день ставим 0
  } else if (getGlobal("Day.Пятница") == 1) {		//По графику в пятницу у меня выходной день
    setGlobal('Divan.WorkingDay', '0');				//В рабочий день ставим 0
    setGlobal('Divan.WeekendDay', '1');				//В выходной день ставим 1
  } else if (getGlobal("Day.Суббота") == 1) {		//По графику в субботу у меня выходной день
    setGlobal('Divan.WorkingDay', '0');				//В рабочий день ставим 0
    setGlobal('Divan.WeekendDay', '1');				//В выходной день ставим 1
  } else if (getGlobal("Day.Воскресенье") == 1) {	//По графику в воскресенье у меня выходной день
    setGlobal('Divan.WorkingDay', '0');				//В рабочий день ставим 0  			
    setGlobal('Divan.WeekendDay', '1');				//В выходной день ставим 1
  }
  runScript('Оповещение, рабочий или выходной день', array());
}


Xpenology DSM 6.2.2 + Ubuntu Server 18.10 + Majordomo + MariaDB
Ответить