Напоминания о знаменательных событиях

Здравствуйте. Однажды я уже писала о знаменательных событиях в Террасофт (https://community.terrasoft.ua/forum/topic/5574).
Самое интересное, что на тот момент я была уверена , и сотрудники техподдержки видимо тоже, что нормальных напоминаний без доработок в нашей версии 3.3 получить нельзя.
Я решила отложить эту задачу, и просто не занималась этим вопросом больше чем полгода.
А потом случайно в системных настройках увидела переменную CheckAnniversaryForDays.
В комментарии к ней написано - " Проверяется наличие знаменательных событий за указанное количество дней. Если установлено значение 0, проверка не будет осуществлена".
В этом поле по умолчанию стояло значение именно 0.
Очень интресная переменная.
Я поискала ее использование в скриптах. И, о чудо: нашла две функции, CheckAnniversary и SetNewRemindingByAnniversary в скрипте scr_Main. Получается, что если переменная CheckAnniversaryForDays не равна 0, то при открытии Террасофт пользователю по его контактам должно приходить напоминание по знаменательным событиям его контакта!
После этого я радостно изменила 0 в переменной на 2. Но при тесте напоминания не пришли.
Я внимательно пречитала скрипт и исправла проверку условия CheckAnniversaryForDays == DayDateDiff на CheckAnniversaryForDays >= DayDateDiff. Напоминания стали приходить!
Правда, не правильно. Если сегодня 07.09.2011, то напоминания о дне рождения с датой 09.09.1960 не приходят, а о событии 09.09.2011 и о событии 05.09.2011 приходят.
Поэтому изменить скрипт пришлось еще раз:

if (AnniversaryDate>=SystemDate) {
if (CheckAnniversaryForDays >= DayDateDiff) {
SetNewRemindingByAnniversary(AnnyversaryDataset);
}
}
 if (AnniversaryDate var i=0;
DayDateDiff = -DayDateDiff ;
while (DayDateDiff0){
 DayDateDiff = DayDateDiff +365;
 i=i+1;
 if (i==4){
DayDateDiff = DayDateDiff+1;
 i=0;
}
}
if (CheckAnniversaryForDays >= DayDateDiff) {
SetNewRemindingByAnniversary(AnnyversaryDataset);
}
}  

Вот в таком написании напоминания приходят! и по событию 09.09.1960 ! и по 09.09.2011. И не приходят по событию 05.09.2011.

Надеюсь, что это поможет всем тем, кто ее не разобрался с этой проблемой сам.

Нравится

0 комментариев
Показать все комментарии