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


Изменение поля-списка при появлении записи в др таблице


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

#1 NeChestniy

    Новичок

  • Пользователи
  • Pip
  • 7 сообщений

Отправлено 05 Февраль 2015 - 12:57

Подскажите пожалуйста пример вычисления.
Необходимо, чтобы поле-список "Тип" в таблице "Клиенты" менял значение в случае появления записи в подтаблице "Сделки с клиентом". То есть если сделок нет - потенциальный, есть - клиент.

#2 CbCoder

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

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

Отправлено 05 Февраль 2015 - 17:53

$line['Поле связи с род.таблицей']['Тип'] = "клиент";

Вместо "Поле связи с род.таблицей" разумеется ставите реальное имя поля.

#3 bottrop

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

  • Пользователи
  • PipPipPip
  • 153 сообщений
  • Пол:Мужчина
  • Город:Армавир

Отправлено 23 Июль 2015 - 16:32

Подскажите, есть поле список "Статус клиента", как сделать:
1. Скрыть некоторые пункты поля Список, чтобы менеджеры не могли их выбрать даже случайно.
2. Автоматически менять значение в поле Статус: а. Через определенное время б.При изменении значений в таблице Сделки
3. Как сделать вычисление, в котором видно сколько времени клиент находился в том или ином статусе?

Заранее благодарен.

#4 CbCoder

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

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

Отправлено 23 Июль 2015 - 17:05

1. Никак. Поле с типом "список" не позволяет задать доступ к отдельным элементам списка. Если вам нужна такая возможность, замените его на поле связи с таблицей-справочником из тех же значений, и ограничивайте доступ уже к записям справочника.
2. Вычисления.
3. Для этого вначале понадобится создать поле, где хранить время предыдущей смены статуса. Тогда при очередной его смене, можно рассчитать, сколько времени прошло с тех пор.

#5 bottrop

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

  • Пользователи
  • PipPipPip
  • 153 сообщений
  • Пол:Мужчина
  • Город:Армавир

Отправлено 23 Июль 2015 - 21:09

Спасибо за оперативный ответ. Буду пробовать.

#6 bottrop

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

  • Пользователи
  • PipPipPip
  • 153 сообщений
  • Пол:Мужчина
  • Город:Армавир

Отправлено 17 Ноябрь 2015 - 18:57

Просмотр сообщенияCbCoder (23 Июль 2015 - 17:05) писал:

3. Для этого вначале понадобится создать поле, где хранить время предыдущей смены статуса. Тогда при очередной его смене, можно рассчитать, сколько времени прошло с тех пор.

Вопрос: Создано поле для хранения времени в предыдущем статусе "ВПС".

Создано поле для результатов вычисления "Статус/Время" (тип: текст). Как будет выглядеть вычисление времени в статусе?
Хотелось бы, чтобы в данное поле заносились данные вида: "Статус клиента:Время в статусе".
Можно сделать так, чтобы данные по времени в статусе заносились в подчиненную таблицу История клиента?

Пока смутно понимаю весь процесс. Помогите разобраться.

#7 CbCoder

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

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

Отправлено 18 Ноябрь 2015 - 09:45

if ($line['ВПС'])
{
	$line['Статус/Время'] .= $event['changed'][111]['old'].": ".round((time()-strtotime($line['ВПС']))/86400)." дней \n"; // 111 - id поля Статус клиента
}
$line['ВПС'] = date("Y-m-d H:m:s");

Как-то так. Событие - изменение поля Статус клиента. Код не тестировал.

#8 bottrop

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

  • Пользователи
  • PipPipPip
  • 153 сообщений
  • Пол:Мужчина
  • Город:Армавир

Отправлено 01 Декабрь 2015 - 13:37

Столкнулся с такой проблемой.
Есть запись в таблице "Работа с клиентом", с полем "Действие" и "Дата/Время". Стоит Фильтр и форматирование, на просрочку по полю дата/время. Как сделать так, чтобы велся подсчет количества таких просрочек (например за месяц/неделю)? Т.е. своего рода антирейтинг менеджеров, чтобы затем провести сравнение и выделить менеджера, который допускает больше всего просрочек по клиентам.

Возможно нужно создать отдельное поле-счетчик, куда будут вписываться эти значения и меняться в зависимости от просрочек. Или создать отдельную таблицу для этих целей. Не могу понять, как это лучше реализовать. Посоветуйте какими средствами это можно сделать? Заранее благодарю за помощь.

Сообщение отредактировал bottrop: 01 Декабрь 2015 - 13:38


#9 CbCoder

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

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

Отправлено 02 Декабрь 2015 - 12:41

Либо отчет (наиболее оптимально, но сложно), либо вычисление в отдельном поле по менеджеру, например в таблице Сотрудников.

#10 bottrop

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

  • Пользователи
  • PipPipPip
  • 153 сообщений
  • Пол:Мужчина
  • Город:Армавир

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

Поле счетчик создал в таблице сотрудников. Какой вид будет иметь подобное вычисление?

#11 CbCoder

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

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

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

Обращаетесь запросом к таблице Работа с клиентом и считаете просрочки по менеджеру.

#12 bottrop

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

  • Пользователи
  • PipPipPip
  • 153 сообщений
  • Пол:Мужчина
  • Город:Армавир

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

как считать?

#13 CbCoder

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

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

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

Как считать - это вы сами лучше меня должны знать, т.к. алгоритм расчета просрочки должен быть у вас.





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

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