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


Вопросы по вычислениям.


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

#1 TelecomMedia

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

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

Отправлено 06 Апрель 2014 - 14:35

Здравствуйте,

1. Есть необходимость менять значение поля "Воронка" на "Холодный", если значение поля "Статус" меняется на "В работе".

Применяю следующее вычесление:

if ($line['Статус'] = 'В работе'){
$line['Воронка'] = 'Холодный';
} else {;
}

Вычисление срабатывает, однако после этого, когда я хочу поменять значение поля "Статус" на другое, после сохранения все равно остается прежнее значение "В работе".


2. Как можно в одном выичслении объединить несколько условий?

Если Статус = "В работе", то "Воронка = "Холодный",
Если Контакт с ЛПР = "Да, то "Воронка" = "Контакт ЛПР",
Если "Пользуются" != "" (пусто) и Наличие базы != "" (пусто), то "Воронка" = "Выявление потребности",
Если "Статус" = "Интерес", то "Воронка" = "Интерес".


3. Также необходимо, чтобы при изменении поля "Воронка" на какое-либо значение, в поле-флаг подставлялась текущая дата.

У поля "Воронка" - 4 значения, соответственно 4 поля-флага для подставновки даты.
Т.е. примерно это выглядит так:

При изменении поля "Воронка" на "Холодый", в поле "Дата.Холодный", должна подставляться тек. дата.
При изменении поля "Воронка" на "Контакт ЛПР", в поле "Дата.Контакт с ЛПР", должна подставляться тек. дата.

Спасибо.

#2 CbCoder

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

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

Отправлено 07 Апрель 2014 - 08:54

1. Или я что-то не понимаю, или приведенный пример никак не может влиять на это.

2. Не совсем понял, в чем проблема именно так и задать.

3. Добавляете вычисление на изменение поля Воронка. Далее просто условия "если поле "Воронка" равно "Холодный" то поле "Дата.Холодный" равно тек.дата" и т.д.

#3 TelecomMedia

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

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

Отправлено 07 Апрель 2014 - 13:40

Просмотр сообщенияCbCoder (07 Апрель 2014 - 08:54) писал:

1. Или я что-то не понимаю, или приведенный пример никак не может влиять на это.

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


Просмотр сообщенияCbCoder (07 Апрель 2014 - 08:54) писал:

2. Не совсем понял, в чем проблема именно так и задать.

Извините, но в php не силен, как можно использовать if else если значений несколько?
Можете привести пример, основываясь на моих условиях?

#4 CbCoder

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

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

Отправлено 07 Апрель 2014 - 15:32

1. Вычисление правильное, я имел ввиду что оно никак не должно влиять на то, что "когда я хочу поменять значение поля "Статус" на другое, после сохранения все равно остается прежнее значение "В работе""

2. Полно же документации по PHP в интернете, например здесь. Да и php тут собственно говоря ни при чем, это элементарная логика программирования, общая для всех языков:

if (условие1) действие1
else if (условие2) действие2
else if (условие3) действие3
else if (условие4) действие4
.........
else действие N

Если же условия взаимоисключающие (туфля не может белой и черной одновременно), то все еще проще, без всяких else:

if (туфля белый) действие1
if (туфля черный) действие2

Т.е. именно так, как у вас и написано.

#5 TelecomMedia

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

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

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

Просмотр сообщенияCbCoder (07 Апрель 2014 - 15:32) писал:

1. Вычисление правильное, я имел ввиду что оно никак не должно влиять на то, что "когда я хочу поменять значение поля "Статус" на другое, после сохранения все равно остается прежнее значение "В работе""


Вот пример еще одного вычисления, после которого не удается поменять значение поля "Статус":

if ($line['Срочность'] != ''){
$line['Приоритет'] = 'Высокий'
and $line['Менеджер'] = $line['Менеджер для срочных заявок']
and $line['Статус'] = 'Новая';
$arr['Компания'] = $ID;
$arr['Менеджер'] = $line['Менеджер'];
$arr['Действие'] = 'Позвонить';
$arr['Дата след.действия'] = $line['Когда перезвонить'];
$newid = insert_query($arr, "Работа с ЛПР");
} else {
$line['Приоритет'] = '';
}

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

Соответственно вопрос: как нужно переписать вычисление, чтобы "Статус" принимал значение "Новая" только 1 раз (когда назначается новая заявка)?

Записал экран, чтобы было понятнее что именно не работает -

#6 CbCoder

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

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

Отправлено 10 Апрель 2014 - 08:54

Можно использовать проверку if ($event['is_new_line']) на новую запись.

#7 TelecomMedia

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

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

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

Подскажите, пожалуйста, в каком месте в моем вычислении нужно подставить данную проверку

#8 CbCoder

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

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

Отправлено 10 Апрель 2014 - 09:09

Очевидно, в том месте, где вы ставите условие перед тем как производить какие то изменения.





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

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