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














