/** * Меняет ст поле в заказах, которое в свою очередь меняет статус товара в позициях заказа */ $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