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


Вычисление при изменении в подтаблице


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

#1 goodcolor

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

  • Пользователи
  • PipPipPip
  • 206 сообщений
  • Пол:Мужчина
  • Город:Йошкар-Ола

Отправлено 09 Июль 2013 - 18:54

Есть такое вычисление как подсчет общей суммы в счете и в зависимости от суммы к каждой позиции применяется установленная скидка.
В отдельное поле к каждой добавленной записи вычислением считается размер скидки:
$line['Размер скидки,%']=100-$line['Сумма']*100/(1*($line['Цена']*$line['Кол-во']));
Проблема в том, что при добавлении новой записи, сумма по которой формирует сумму с новой скидкой, в предыдущих записях размер скидки остается прежним, а должен измениться.
Условие для вычисления ставил на изменение "кол-ва" или на изменение "суммы", так же не помогает условие "сохранение в таблице".
Подскажите пожалуйста, что нужно сделать, чтобы это менялось при изменении новой записи в подтаблице.
Компания "Хороший Цвет"
www.GoodColor.ru - поставки и производство самосветящихся товаров и материалов

#2 CbCoder

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

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

Отправлено 10 Июль 2013 - 09:38

Во-первых, я не очень понял алгоритм, каким образом общая сумма счета влияет на скидку, в предоставленном вами фрагменте используются только поля текущей позиции, никакой общей суммы там нет. Если не прав, покажите мне где там общая сумма.

Во-вторых, когда вы пишите "$line['Размер скидки,%'] = ", вы тем самым меняете значения поля только в текущей записи, т.е. в той, в которой произошло событие (на изменение "кол-ва" или на изменение "суммы", в вашем случае). Поля в других записях от этого не изменятся. Тут есть 2 варианта: либо добавление прямых запросов в БД на изменение других записей (см. функцию data_update), либо добавления события на отображение поля "Размер скидки,%". Но в обоих случаях, эти изменения будут видны только после обновления страницы, т.е. в режиме реального времени вы их не увидите.

#3 goodcolor

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

  • Пользователи
  • PipPipPip
  • 206 сообщений
  • Пол:Мужчина
  • Город:Йошкар-Ола

Отправлено 10 Июль 2013 - 10:51

Поле $line['Сумма'] - считается по вычислению, результат которого уже сумма со скидкой
$line['Цена']*$line['Кол-во'] - формирует сумму без учета скидки, т.к. скидка применяется только только к сумме.
Таким образом по формуле считается размер скидки.
Но я вас понял и видимость после обновления вполне сойдёт.
Компания "Хороший Цвет"
www.GoodColor.ru - поставки и производство самосветящихся товаров и материалов

#4 goodcolor

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

  • Пользователи
  • PipPipPip
  • 206 сообщений
  • Пол:Мужчина
  • Город:Йошкар-Ола

Отправлено 10 Июль 2013 - 11:27

Функция data_update решила вопрос. Благодарю за наводку.
Компания "Хороший Цвет"
www.GoodColor.ru - поставки и производство самосветящихся товаров и материалов





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

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