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


Вычисление


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

#1 TelecomMedia

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

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

Отправлено 17 Июнь 2014 - 09:03

- Поле "Категория". 3 значения - Статус1, Статус2 и Статус3. Рассчитывается автоматически.

- Поле "Прошлый статус". 3 значения - Статус1, Статус2 и Статус3. Нужно рассчитывать если изменилось значение поля "Категория".

- Поле "Дата изменения статуса". Подставляется дата когда произошло изменение поля "Категория".

Соответственно, если значения поля Категория меняются, то в поле "Прошлый статус" должно всегда записываться предыдущее значение.


Вопрос состоит в том как обновлять данные в поле "прошлый статус"

#2 CbCoder

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

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

Отправлено 17 Июнь 2014 - 12:28

if ($line['Категория']=="Статус2") $line['Прошлый статус'] = "Статус1";
if ($line['Категория']=="Статус3") $line['Прошлый статус'] = "Статус2";

Вроде элементарно?

#3 TelecomMedia

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

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

Отправлено 17 Июнь 2014 - 12:49

Не совсем правильно.

Просто на самом деле статусов не 3 штуки, а больше и очередность их присвоения не последовательна.
Т.е. клиент может находиться в "Статус5", а затем скатиться на "Статус1".

В вашем же примере присвоится "Статус4", если исходить из такой логики.

#4 CbCoder

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

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

Отправлено 17 Июнь 2014 - 13:28

Тогда берите предыдущее значение из $event['changed'][111]['old'], где 111 - id поля Категория.

#5 TelecomMedia

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

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

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

Правильно ли сформирован запрос?
$old = $event['changed'][13191]['old'];
$line['Прошлый статус'] = $old;


#6 CbCoder

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

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

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

Да. Только можно сразу:

$line['Прошлый статус'] = $event['changed'][13191]['old'];

Промежуточная переменная тут особо смысла не имеет. Но это уже дело вкуса скорее.

#7 CbCoder

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

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

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

Кроме того, вычисление должно быть настроено на изменение поля Категория, т.к. если поле не менялось, $event['changed'][13191] будет пустым. Либо проверять его на непусто.

#8 TelecomMedia

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

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

Отправлено 24 Июнь 2014 - 06:23

Понял, как Вы написали, я тоже так делал.
Ошибка в том, что я этот код вставлял в доп действие.
Соответсвенно, никаких изменений не происходило.

Сейчас все заработало. Спасибо





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

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