Добрый вечер.
У таблицы "Заявки" есть подтаблица "Позиции заявки", в которую заносятся данные о кол-ве и цене реализуемого товара.
Связь идет по полю "Номер заявки". Итоговая сумма из подтаблицы "Позиции заявки" идет в поле "Сумма" таблицы "Заявки".
Вставил вычисление на основе примера, отраженного в документации.
Нормально работает пока не происходит изменений в позициях заявки.
Поле изменений, итоговая сумма в подтаблице и сумма в заявке не совпадают.
Просьба подсказать как скорректировать код для перерасчета при изменениях.
Код следующий:
// Получаем сумму содержимого полей "Сумма" таблицы "Позиции заявки".
$sqlQuery = "SELECT sum(f6171) as summa FROM ".DATA_TABLE."361 WHERE status=0 AND f6081='".$line['Номер заявки']['ID']."'";
$res = sql_query($sqlQuery);
$row = sql_fetch_array($res);
$summa = $row['summa'];
// Заносим полученную сумму в поле "Сумма" родительской таблицы, обращаясь через поле связи "Счет"
$line['Номер заявки']['Сумма'] = $summa;
0
Перенос итоговой суммы из подтаблицы в родительскую таблицу. Пересчет при изменениях.
Автор Almaz2017, 31 окт. 2017 18:22
вычисление
Сообщений в теме: 2
#1
Отправлено 31 Октябрь 2017 - 18:22
#2
Отправлено 01 Ноябрь 2017 - 02:37
Надежнее будет разместить этот код как вычисление в таблице Заявки по изменению поля Сумма.
Последняя строка будет:
P.S. В первой строке тогда надо в конце:
Последняя строка будет:
$line['Сумма'] = $summa;А в таблице Позиции заявки, по изменению итога суммы подтаблицы:
$line['Номер заявки']['Сумма'] = -1;
P.S. В первой строке тогда надо в конце:
$line['ID']Кстати, Ваш код тоже должен работать, конструкция, опять же в конце первой строки, лучше такая:
$line['Номер заявки']['raw']В подтаблице используйте вычисления только на изменение, а не на сохранение значения.
Сообщение отредактировал Tony999: 01 Ноябрь 2017 - 02:48
Умные сайты на заказ
https://info.crm-master.info
https://info.crm-master.info
#3
Отправлено 01 Ноябрь 2017 - 12:14
Благодарю.
Скорректировал $line['Номер заявки']['raw']. Заработало верно.
// Получаем сумму содержимого полей "Сумма" таблицы "Позиции заявки".
$sqlQuery = "SELECT sum(f6171) as summa FROM ".DATA_TABLE."361 WHERE status=0 AND f6081='".$line['Номер заявки']['raw']."'";
$res = sql_query($sqlQuery);
$row = sql_fetch_array($res);
$summa = $row['summa'];
// Заносим полученную сумму в поле "Сумма" родительской таблицы, обращаясь через поле связи "Счет"
$line['Номер заявки']['Сумма'] = $summa;
Скорректировал $line['Номер заявки']['raw']. Заработало верно.
// Получаем сумму содержимого полей "Сумма" таблицы "Позиции заявки".
$sqlQuery = "SELECT sum(f6171) as summa FROM ".DATA_TABLE."361 WHERE status=0 AND f6081='".$line['Номер заявки']['raw']."'";
$res = sql_query($sqlQuery);
$row = sql_fetch_array($res);
$summa = $row['summa'];
// Заносим полученную сумму в поле "Сумма" родительской таблицы, обращаясь через поле связи "Счет"
$line['Номер заявки']['Сумма'] = $summa;
Количество пользователей, читающих эту тему: 5
0 пользователей, 5 гостей, 0 анонимных