Перейти к содержимому


Время в напоминании


Сообщений в теме: 6

#1 Dinara

    Активный участник

  • Пользователи
  • PipPipPip
  • 527 сообщений
  • Пол:Женщина
  • Город:Уфа

Отправлено 11 Декабрь 2014 - 20:36

Здравствуйте!
Вопрос по напоминаниям:
Как сделать чтобы в 17.50 каждого дня шла проверка на определенные условия,и если они не выполняются-отправляется напоминание?
Вот само условие:
left(`Дата аукциона`,10)=curdate() and (`Этап работы`!='Выиграли' or `Этап работы`!='Заключение контракта' or `Этап работы`!='Проиграли') and `Сотрудник`='{current}'

Потом идет проверка на выполнение условий в 18.30 и если они не выполнены-уходит опять напоминание конкретному сотруднику?

Я так понимаю это надо в самом кроне прописывать?
Как указать в какой именно таблице? всего 3 таблицы

Сообщение отредактировал Dinara: 12 Декабрь 2014 - 08:06


#2 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 12 Декабрь 2014 - 10:22

Должно быть 2 напоминания на оба времени (иначе на второе время уже не выйдет, если первый раз сработало)

!(left(`Дата аукциона`,10)=curdate() and (`Этап работы`!='Выиграли' or `Этап работы`!='Заключение контракта' or `Этап работы`!='Проиграли') and `Сотрудник`='{current}') and hour(now())=17 and minute(now())>50 and minute(now())<55)

!(left(`Дата аукциона`,10)=curdate() and (`Этап работы`!='Выиграли' or `Этап работы`!='Заключение контракта' or `Этап работы`!='Проиграли') and `Сотрудник`='{current}') and hour(now())=18 and minute(now())>30 and minute(now())<35)

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

#3 Dinara

    Активный участник

  • Пользователи
  • PipPipPip
  • 527 сообщений
  • Пол:Женщина
  • Город:Уфа

Отправлено 12 Декабрь 2014 - 11:14

Просмотр сообщенияCbCoder (12 Декабрь 2014 - 10:22) писал:

Должно быть 2 напоминания на оба времени (иначе на второе время уже не выйдет, если первый раз сработало)

!(left(`Дата аукциона`,10)=curdate() and (`Этап работы`!='Выиграли' or `Этап работы`!='Заключение контракта' or `Этап работы`!='Проиграли') and `Сотрудник`='{current}') and hour(now())=17 and minute(now())>50 and minute(now())<55)

!(left(`Дата аукциона`,10)=curdate() and (`Этап работы`!='Выиграли' or `Этап работы`!='Заключение контракта' or `Этап работы`!='Проиграли') and `Сотрудник`='{current}') and hour(now())=18 and minute(now())>30 and minute(now())<35)

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

Работоспособно,только чуток странно..Получается что я поставила время в 20 минут и на одну и ту же строчку писем 80 пришло как минимум..)
Если поставлю интервал 5 минут-боюсь ничего не придет..как сделать чтобы на одну строчку одно письмо было?

#4 Dinara

    Активный участник

  • Пользователи
  • PipPipPip
  • 527 сообщений
  • Пол:Женщина
  • Город:Уфа

Отправлено 12 Декабрь 2014 - 11:56

Просмотр сообщенияDinara (12 Декабрь 2014 - 11:14) писал:

Работоспособно,Спасибо)))))


#5 Dinara

    Активный участник

  • Пользователи
  • PipPipPip
  • 527 сообщений
  • Пол:Женщина
  • Город:Уфа

Отправлено 12 Декабрь 2014 - 13:55

Просмотр сообщенияCbCoder (12 Декабрь 2014 - 10:22) писал:

Должно быть 2 напоминания на оба времени (иначе на второе время уже не выйдет, если первый раз сработало)

!(left(`Дата аукциона`,10)=curdate() and (`Этап работы`!='Выиграли' or `Этап работы`!='Заключение контракта' or `Этап работы`!='Проиграли') and `Сотрудник`='{current}') and hour(now())=17 and minute(now())>50 and minute(now())<55)

!(left(`Дата аукциона`,10)=curdate() and (`Этап работы`!='Выиграли' or `Этап работы`!='Заключение контракта' or `Этап работы`!='Проиграли') and `Сотрудник`='{current}') and hour(now())=18 and minute(now())>30 and minute(now())<35)

Минуты заданы в интервале 5 минут на всякий случай, т.к. напоминание может задержаться со срабатыванием. Можете увеличить интервал, если будет большая задержка.
Блин,все-таки не те письма пришли..
Получается у нас всего 10 этапов работы, и нужно чтобы пришли письма с оставшимися 7ми этапами, пишу
(`Этап работы`!='Выиграли') and (`Этап работы`!='Заключение контракта') and (`Этап работы`!='Проиграли') and (left(`Дата аукциона`,10)=curdate()) and ('{current}'='251')  and (hour(now())=15 and minute(now())>00 and minute(now())<59)
и не приходит..когда пишем через or - то вообще не то приходит, and же вроде надо если правильно понимаю

#6 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 12 Декабрь 2014 - 14:25

Может просто условие не выполняется само по себе, а не по причине его "неправильности"? Скажем, пользователь не тот (не 251), или время не наступило еще.

У вас единственно куча лишних скобок, да и минуты нет смысла задавать от 00 до 59, т.к. это итак всегда выполняется. Но это просто читабельность условия ухудшает, на работу влиять не должно.

#7 Dinara

    Активный участник

  • Пользователи
  • PipPipPip
  • 527 сообщений
  • Пол:Женщина
  • Город:Уфа

Отправлено 16 Декабрь 2014 - 11:06

Сработало когда поставила вместо != <> как-то так)))





Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных