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


Обновление цен прайса

Обновление цен прайса

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

#1 K120

    Новичок

  • Пользователи
  • Pip
  • 1 сообщений

Отправлено 07 Ноябрь 2015 - 23:06

Здравствуйте! Имеется доработанный прайс-лист товаров, в базе более 2000 записей. Добавлены поля Цена на складе, Цена закупки. Так же сделана отдельная таблица Валюты с полями Валюта и курс (Например значение Валюта = $, Kурс = 100). Цена закупки таблицы прайс-лист = Цена на складе (ОНА В $!)* Курс (таблицы Валюты). $line['Цена закупки'] = ($line['Цена на складе'] * $line['Валюта']['Курс']). В таблице Прайс - лист - осталось стандартное поле Цена - которое получает данные по формуле $line['Цена'] = $line['Цена закупки']. Вообщем визуально все работает, то есть имея 2000 товаров, они в прайс листе разбиты постранично - при открытии первого листа все цены обновлены, НО только на первом листе!!! То есть если еще 20 страниц будет - на них останутся старые цены!
При формировании стандартного счета - добавляем позицию - она добавляется. Но цена ее может быть старой ( Например ранее курс был 100, товар стоил - 2 $ -цена его была = 200 Руб.) На следующий день курс меняем на 200 - делаем счет, добавляем этот же товар - но цена по состоянию на вчерашний день и курс 100 !!!. Удаляем товар со счета - добавляем снова - цена меняется, аналогично меняется, если сначала в поиске прайс листа найти этот товар, а только потом открыть счет и добавить его в счет!) Изменение курса не изменяет цены на все позиции товара, а только на первую страницу в прайс листе! Перепробовали все и добавления значение или или или и еще много чего, убито море времени - результат =0. Надо навыки программирования, возможно MSQL - таких знаний к сожалению нет (

Как бы вот сделать так, чтобы при вводе нового Курса в Значении поля Курс Таблицы Валюты - происходило изменения цен всех товаров. Даже если их будет 100 000 позиций. Или как вариант - нашли возможность добавить дополнительное действие, как вот задать вычисление что ли - чтобы при смене курса и нажатию допустим кнопки Обновить - все цены были пересчитаны!

#2 CbCoder

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

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

Отправлено 09 Ноябрь 2015 - 13:00

У вас 2 варианта:
1. Добавить вычисление в таблицу Валюты на изменение цены по всей таблице Товаров при изменении поля Курс. Для этого в вычислении должен быть запрос на изменение по всей таблице. Как делать запросы - есть множество примеров на форуме и вне его, в том числе в документации. Если же не уверены в своих знаниях, отдайте задачу профессионалу. Впрочем запрос там достаточно простой, поэтому можете попробовать составить сами, если будут сомнения или что-то не работать - разместите код вычисления здесь, подскажем что не так. Этот вариант самый лучший, т.к. полностью автоматический.
2. Добавить доп.действие в таблицу товаров. Это вариант гораздо проще, т.к. по сути вы просто копируете код вашего вычисления в доп.действие и все. Но минус в том что придется вручную запускать его каждый раз при изменении курса и не забывать про это.

#3 Александр Пономарев

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

  • Пользователи
  • PipPipPip
  • 435 сообщений
  • Пол:Мужчина
  • Город:Таганрог

Отправлено 14 Ноябрь 2015 - 16:35

Первый вариант лучше и работает корректнее. Поменялся курс, по всей базе прошли и пересчитали прайс. Если, конечно, у вас курс вручную меняется, а не назначается автоматически. Тогда чуть сложнее.





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

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