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


Автоматическое добавление задачи


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

#1 geekvega

    Участник

  • Пользователи
  • PipPip
  • 21 сообщений
  • Пол:Мужчина

Отправлено 15 Апрель 2016 - 09:33

Доброго времени!
Подскажите пожалуйста как можно реализовать автоматическое добавления задачи в таблицу "работа с клиентом" по условию: в течение N времени нет активности по контрагенту; если нет задачи по контрагенту: звонок, встреча, письмо.
Идея такова, в случае если менеджер забыл назначить дату следующего звонка или встречи или письма, система сама назначала задачу на ближайшую дату. Что бы менеджеры не теряли связь с контрагентом.

#2 CbCoder

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

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

Отправлено 15 Апрель 2016 - 10:18

Автоматическое выполнение по времени можно организовать только через задание cron.

В данном случае задание должно периодически просматривать всех контрагентов (т.е. делать запрос к таблице и проходить в цикле по записям) и смотреть время последней задачи. Если оно отстоит от текущего более чем на N, добавлять новую задачу (опять же через запрос, но уже на добавление записи).


P.S: тему отделил, т.к. для каждого отдельного вопроса нужно создавать отдельную тему, а не продолжать старую (тем более если она 6-летней давности, где все устарело). Старую можно продолжать только в одном случае: если вопрос явно ссылается или цитирует предыдущие сообщения в теме.

#3 geekvega

    Участник

  • Пользователи
  • PipPip
  • 21 сообщений
  • Пол:Мужчина

Отправлено 15 Апрель 2016 - 10:31

А способ который описан в документации возможно использовать?

Прикрепленные изображения

  • Прикрепленное изображение: Снимок экрана 2016-04-15 в 10.28.37.png


#4 CbCoder

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

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

Отправлено 15 Апрель 2016 - 10:37

Так я же написал про это:

Цитата

Если оно отстоит от текущего более чем на N, добавлять новую задачу (опять же через запрос, но уже на добавление записи)

В документации как раз пример такого запроса. Но это только часть задачи.

#5 geekvega

    Участник

  • Пользователи
  • PipPip
  • 21 сообщений
  • Пол:Мужчина

Отправлено 15 Апрель 2016 - 10:38

Просмотр сообщенияCbCoder (15 Апрель 2016 - 10:37) писал:

Так я же написал про это:



В документации как раз пример такого запроса. Но это только часть задачи.

Спасибо!
Буду вникать и делать.

#6 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 356 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 15 Апрель 2016 - 14:34

Можно сделать банальное напоминание, а не задачу. У нас внесение данных в историю работы обновляет время в родительской таблице (поле Обновлено). Если с момента обновления прошло 2 недели - формируется напоминание, которое начинает мучить ответственного сотрудника, пока он не внесет свежие данные в историю работы.
`Ответственный` like '%-{current}-%' and (left(`Обновлено`,10)<curdate() - interval 14 day and `Обновлено`!='0000-00-00 00:00:00')

Сообщение отредактировал andibrag: 15 Апрель 2016 - 14:36

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#7 geekvega

    Участник

  • Пользователи
  • PipPip
  • 21 сообщений
  • Пол:Мужчина

Отправлено 15 Апрель 2016 - 15:12

Просмотр сообщенияandibrag (15 Апрель 2016 - 14:34) писал:

Можно сделать банальное напоминание, а не задачу. У нас внесение данных в историю работы обновляет время в родительской таблице (поле Обновлено). Если с момента обновления прошло 2 недели - формируется напоминание, которое начинает мучить ответственного сотрудника, пока он не внесет свежие данные в историю работы.
`Ответственный` like '%-{current}-%' and (left(`Обновлено`,10)<curdate() - interval 14 day and `Обновлено`!='0000-00-00 00:00:00')
Классно!
Спасибо за решение. Предложу в качестве альтернативы!

#8 geekvega

    Участник

  • Пользователи
  • PipPip
  • 21 сообщений
  • Пол:Мужчина

Отправлено 18 Апрель 2016 - 12:41

Просмотр сообщенияandibrag (15 Апрель 2016 - 14:34) писал:

Можно сделать банальное напоминание, а не задачу. У нас внесение данных в историю работы обновляет время в родительской таблице (поле Обновлено). Если с момента обновления прошло 2 недели - формируется напоминание, которое начинает мучить ответственного сотрудника, пока он не внесет свежие данные в историю работы.
`Ответственный` like '%-{current}-%' and (left(`Обновлено`,10)<curdate() - interval 14 day and `Обновлено`!='0000-00-00 00:00:00')
Получается что мне сейчас необходимо создать в таблице "Контрагент" поле "обновлено"?

#9 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 356 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 18 Апрель 2016 - 13:31

Просмотр сообщенияgeekvega (18 Апрель 2016 - 12:41) писал:

Получается что мне сейчас необходимо создать в таблице "Контрагент" поле "обновлено"?
Создаете поле Обновлено типа дата/время. Далее через вычисление при изменении полей в подчиненной таблице История работы вносите в него новое значение. А затем проверяете в напоминании.

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#10 geekvega

    Участник

  • Пользователи
  • PipPip
  • 21 сообщений
  • Пол:Мужчина

Отправлено 19 Апрель 2016 - 09:31

Просмотр сообщенияandibrag (18 Апрель 2016 - 13:31) писал:

Создаете поле Обновлено типа дата/время. Далее через вычисление при изменении полей в подчиненной таблице История работы вносите в него новое значение. А затем проверяете в напоминании.
Если я правильно понимаю то поле "обновлено" в таблице "контрагенты" должно как то связываться с таблицей "работа с клиентом" однако у меня нет такой связи )

Кажется я ни в том направление двигаюсь, скорректируйте пожалуйста мои действия.
Я сделал следующее: в таблице "контрагенты" создал поле "обновлено" - (параметры поля), далее я вошел в таблицу "работа с клиентом" и добавил там новое вычисление "если нет событий" - (параметры вычисл.).
Дальше я стал проверять и оно не заработало :).

Сообщение отредактировал geekvega: 19 Апрель 2016 - 09:31


#11 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 356 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 19 Апрель 2016 - 12:12

Просмотр сообщенияgeekvega (19 Апрель 2016 - 09:31) писал:

Если я правильно понимаю то поле "обновлено" в таблице "контрагенты" должно как то связываться с таблицей "работа с клиентом" однако у меня нет такой связи )
Заходите в настройку таблицы Работа с клиентом и создаете вычисление, с условием срабатывания на изменение полей, которые Вы заполняете
if ($line['Заказ']['ID'])
{
	$line['Заказ']['Обновлено']=date("Y-m-d H:i:s");
}
Далее в таблицу Контрагенты и создаете напоминание, где в качестве условия срабатывания ставите
`Ответственный` like '%-{current}-%' and (left(`Обновлено`,10)<curdate() - interval 14 day and `Обновлено`!='0000-00-00 00:00:00')
Обратите внимание, что Ответственный - это поле типа Пользователь. Оно может у Вас по другому называться, например Сотрудник.
Время срабатывания зависит от параметра interval. Установите нужное количество дней. Еще один момент: like '%-{current}-%' используется для множественного выбора пользователей. Если поле Ответственный подразумевает выбор только одного пользователя, то условие выглядит так[/CODE]
Далее в таблицу Контрагенты и создаете напоминание, где в качестве условия срабатывания ставите
`Ответственный` = '{current}' and (left(`Обновлено`,10)<curdate() - interval 14 day and `Обновлено`!='0000-00-00 00:00:00')
Хочу уточнить. Вы постоянно звоните или пишите контрагенту через время? Данное условие будет отрабатывать через указанный интервал времени постоянно. Теоретически должен быть какой-то статус, который исключает дальнейшую работу с контрагентом. Хотя можно банально помещать в архив.

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#12 geekvega

    Участник

  • Пользователи
  • PipPip
  • 21 сообщений
  • Пол:Мужчина

Отправлено 19 Апрель 2016 - 16:57

Цитата

Хочу уточнить. Вы постоянно звоните или пишите контрагенту через время?
Да, мы подразумеваем что с клиентом должна поддерживаться связь с инетервалом

Все сделал как описано, работает.
В некоторых местах делал ошибки из-за чего не работали уведомления. Однако внимательно перечитывая ветку мне удалось найти где я ошибался.
Огромное спасибо что помогли!

#13 geekvega

    Участник

  • Пользователи
  • PipPip
  • 21 сообщений
  • Пол:Мужчина

Отправлено 19 Апрель 2016 - 17:03

Я вот еще полезную функцию увидел в конструкторе "уведомления" там можно сделать "обязательно для выполнения" Я так понимаю что невозможно будет просто взять и закрыть уведомление пока пользователь не выполнить какое нибудь действие.
Кто нибудь реализовывал такой функционал?
Думаю это очень полезная функция :)/&gt;

Сообщение отредактировал geekvega: 19 Апрель 2016 - 17:03


#14 geekvega

    Участник

  • Пользователи
  • PipPip
  • 21 сообщений
  • Пол:Мужчина

Отправлено 20 Апрель 2016 - 15:25

Товарищи программисты!
Можете подсказать почему не срабатывает повторное уведомление? Я нажимаю на крестик уведомления, а через 4 минуты оно не срабатывает повторно

#15 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 356 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 20 Апрель 2016 - 16:09

Просмотр сообщенияgeekvega (20 Апрель 2016 - 15:25) писал:

почему не срабатывает повторное уведомление? Я нажимаю на крестик уведомления, а через 4 минуты оно не срабатывает повторно
На первый взгляд все должно работать. Когда-то давно была проблема с повторным выводом - было связано как раз с периодом отображения. Сейчас не наблюдаю. В техподдержку.

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения






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

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