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


Срабатывание вычисления по событию


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

#1 wondertalik

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

  • Пользователи
  • PipPipPip
  • 1 159 сообщений
  • Пол:Мужчина
  • Город:Кривой Рог, Украина

Отправлено 17 Февраль 2013 - 21:34

Итак есть три таблицы: Дата заказа, Основная Заказы и подчиненная Позиции заказа. Задача: Создать дополнительное действие в таблице Дата заказа, нажимая на которое поле в Позициях заказа будет менять свое значение. Я решил разделись все вычисления по таблицам логически. Итак в таблице Дата заказа вот вычисление:

/**
* Меняет ст поле в заказах, которое в свою очередь меняет статус товара в позициях заказа
*/
$sqlQuery = "SELECT `id` FROM " . DATA_TABLE . "91 WHERE `status` = 0 AND `f631` = 'В работе' AND `f621` = " . intval($line['ID']);
$result = mysql_query($sqlQuery) or die(mysql_error() . "<br />" . $sqlQuery);
while ($row = mysql_fetch_assoc($result)) {
$update_data['СТ'] = "Да";
$update_data['Статус заказа'] = "Прибыл";
update_query($update_data, "Заказы", "`id`=" . intval($row['id']));
}

В таблице Заказы, есть поле СТ (Список - да или нет). И создано вычисление на изменение этого поля:

/**
* Используется для изменения в позициях заказа самого заказа поля "Статус товара"
*/
if ($line['f1841'] == "Да") {
$sqlQuery = "SELECT `id`, `f741` as st FROM " . DATA_TABLE . "11 WHERE `status` = 0 AND `f571` = " . intval($line['ID']);
$result = mysql_query($sqlQuery) or die(mysql_error() . "<br />" . $sqlQuery);
while ($row = mysql_fetch_assoc($result)) {
  switch($row['st']) {
   case "Выкуплен" :
	$update_data['Статус товара'] = "Выкуплен";
	break;
   case "НЕ КУПЛЕН" :
	$update_data['Статус товара'] = "НЕ КУПЛЕН";
	break;
   case "След. заказ" :
	$update_data['Статус товара'] = "Приедет следующим заказом";
	break;
  }
  update_query($update_data, "Позиции заказов", "`id`=" . intval($row['id']));
}
}

Теоретически, после изменения поля СТ, должно сработать вычисление и изменить все записи в подчиненной таблице. Однако на практике не срабатывает. Вычисления написаны верно, так как если зайти в таблицу Заказы - Просмотр записи и вручную изменить поле СТ, то вычисление удачно отрабатывает. Баг или я чего-то не понимаю?
Переписать вычисления не проблема, однако хочется все через события чтобы отрабатывало.

Сообщение отредактировал wondertalik: 17 Февраль 2013 - 21:35


#2 CbCoder

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

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

Отправлено 18 Февраль 2013 - 11:12

Возможно что и баг, проверять надо. Вы уверены, что поле СТ реально меняется? Если там уже было значение "Да" - события в любом случае не произойдет.

#3 wondertalik

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

  • Пользователи
  • PipPipPip
  • 1 159 сообщений
  • Пол:Мужчина
  • Город:Кривой Рог, Украина

Отправлено 18 Февраль 2013 - 12:03

Просмотр сообщенияCbCoder (18 Февраль 2013 - 11:12) писал:

Возможно что и баг, проверять надо. Вы уверены, что поле СТ реально меняется? Если там уже было значение "Да" - события в любом случае не произойдет.
Уверен. Но на всякий случай проверю и отпишусь. Значение поля меняется только 1 раз с НЕт на Да. Мне нужно, чтобы вычисление отрабатывало только на Да.





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

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