пятница, 20 сентября 2013 г.

Справочник рабочих дней для Астериска

Долго искал способ как настроить Астериск правильно учитывать праздничные дни и перенесенные выходные. Пришел к выводу, что лучше всего - база данных с занесенным в неё официальным производственным календарем. Поскольку многие встречаются с подобной проблемой, думаю такой календарь рабочих дней будет полезен.

Справочник доступен по адресам api1.vasha-ats.ru и api2.vasha-ats.ru. Запросы, естественно, принимаются через http. Строка запроса следующая.

/daytype.php?date=<yyyy-mm-dd>&friday=1&celebration=1

Все параметры не обязательные.
  • date - дата, о которой нужно получить информацию. Если не указывать, берется текущая дата по московскому времени. На данный момент в базу занесен календарь на 2013 и 2014 год.
  • friday - отделять пятницы от обычных рабочих дней. У многих по пятницам график работы отличается от обычных дней. Если указать этот параметр (не важно с каким значением), то в пятницу будет возвращаться "4", если не указывать - "0".
  • celebration - отделять праздники от выходных дней. Если его указать, то в праздники будет возвращаться "3", если не указывать - "1", как в обычный выходной день. Актуально для тех, кто работает по выходным, но не работает в праздники.
В ответ на полученный запрос должны вернуться две строчки

Date: YYYY-MM-DD\n
DayType: X\n

Я думаю, значение Date объяснять не надо. Его можно использовать для контроля.
Значение DayType одно из следующих.
  • 0 - рабочий день,
  • 1 -  выходной день,
  • 2 - предпраздничный день,
  • 3 - праздничный день, если в запросе был параметр  celebration,
  • 4 - пятница, если в запросе был параметр friday.

Мысли о том, как проще пользоваться этим API будут приведены в следующей статье.

P.S. Если кому-то этот сервис помог сэкономить время, нервы, средства, буду рад пожертвованиям на Яндекс.Кошелек 41001771457230