Добро пожаловать, Гость. Для того, чтобы отвечать на сообщения и создавать новые темы, Вам необходимо зарегистрироваться, если Вы уже зарегистрированы, то войдите используя Ваши E-Mail и Пароль. |
|
slaviq
Пользователь iNETsHOP
Количество сообщений
3
Зарегистрирован:
17-11-2009, 17:22:42
|
обновление валюты
при обновлении валюты (новый курс)
программа зависает почти на час
в системе много поставщиков и большая часть в УЕ
при изменении курса - начинается капец
|
Распечатать
|
|
support
Support
Количество сообщений
1199
Зарегистрирован:
11-04-2008, 19:11:57
|
При изменении курса валюты идёт пересчёт цен товаров поставщиков в которых указана эта валюта и а затем соответственно пересчёт цен товаров (вашей номенклатуры) и выбор новых поставщиков для товаров
|
Распечатать
|
|
slaviq
Пользователь iNETsHOP
Тема начата
Количество сообщений
3
Зарегистрирован:
17-11-2009, 17:22:42
|
это все приятно
но после часа обновления
я перезапустил сервак
можно мне исходный текст тригера на таблице валют который делает обновление
не хочу выдумывать велосипед
я его перепишу
или предложите решение которое не бедет час работать
щас будет скакать курс - что делать нам
пока база была маленькая работало все минут 10 теперь ждать обновление курса час и больше просто не реально
|
Распечатать
|
|
support
Support
Количество сообщений
1199
Зарегистрирован:
11-04-2008, 19:11:57
|
Этот триггер не представляет из себя ничего особенного
Код
CREATE TRIGGER [TBL_CURRENCY#CHANGE_RATE] ON dbo.TBL_CURRENCY
FOR INSERT, UPDATE
AS
IF UPDATE(CUR_RATE)
BEGIN
DECLARE @l_iCUR_ID int, @l_fCUR_RATE float, @l_iSG_ID int;
DECLARE cInserted CURSOR LOCAL FOR Select CUR_ID, CUR_RATE from Inserted;
OPEN cInserted;
FETCH NEXT FROM cInserted INTO @l_iCUR_ID, @l_fCUR_RATE;
WHILE (@@FETCH_STATUS <> -1)
BEGIN
DECLARE cSG CURSOR LOCAL FOR Select SG_ID from TBL_SUPPLIERS_GOODS WHERE SG_CUR_ID = @l_iCUR_ID FOR UPDATE;
OPEN cSG;
FETCH NEXT FROM cSG INTO @l_iSG_ID;
WHILE (@@FETCH_STATUS <> -1)
BEGIN
UPDATE TBL_SUPPLIERS_GOODS
SET SG_CUR_ID = @l_iCUR_ID
WHERE SG_ID = @l_iSG_ID AND SG_CUR_ID = @l_iCUR_ID;
FETCH NEXT FROM cSG INTO @l_iSG_ID;
END;
CLOSE cSG;
DEALLOCATE cSG;
IF IsNull(@l_fCUR_RATE, 0) <> IsNull((select CUR_RATE from Deleted where CUR_ID = @l_iCUR_ID), 0)
BEGIN
INSERT INTO TBL_CURRENCY_RATES (CURR_CUR_ID, CURR_RATE, CURR_DATE)
SELECT @l_iCUR_ID, @l_fCUR_RATE, GetDate();
END;
FETCH NEXT FROM cInserted INTO @l_iCUR_ID, @l_fCUR_RATE;
END;
CLOSE cInserted;
DEALLOCATE cInserted;
END;
|
Распечатать
|
|
simka
Пользователь iNETsHOP
Количество сообщений
6
Зарегистрирован:
08-06-2014, 12:43:21
|
Справочник валют
При выборе валюты в схемах импорта прайсов импорт происходит без изменений цен происходит,как будто справочника валют не существует
|
Распечатать
|
|
support
Support
Количество сообщений
1199
Зарегистрирован:
11-04-2008, 19:11:57
|
В справочнике товаров поставщиков после импорта новых товаров, выбранная валюта устанавливается после импорта прайса?
|
Распечатать
|
|
simka
Пользователь iNETsHOP
Количество сообщений
6
Зарегистрирован:
08-06-2014, 12:43:21
|
валюта стоит правильная(USD).В справочнике товаров поставщиков значения в колонке "цена прайса" становится из импортируемого прайса,а вот значение колонки "цена закупки" равно - цена разделить на курс и в справочнике товаров она.Это для прайсов в USD. Для UAH все нормально.
|
Распечатать
|
|
support
Support
Количество сообщений
1199
Зарегистрирован:
11-04-2008, 19:11:57
|
Не совсем понятно, где по вашему мнению ошибка в программе или программа работает неправильно. Из ваших слов "а вот значение колонки "цена закупки" равно - цена разделить на курс" - откуда берется курс?
|
Распечатать
|
|
simka
Пользователь iNETsHOP
Количество сообщений
6
Зарегистрирован:
08-06-2014, 12:43:21
|
Прикрепляю прайс в USD.Валюту выбираем из рис.1 USD.
Рисунок 2 и 3 это что получается после импотра.
|
Распечатать
|
|
MaXX
Пользователь iNETsHOP
Количество сообщений
64
Зарегистрирован:
11-11-2008, 04:35:57
|
Цитата Написал: simka
валюта стоит правильная(USD).В справочнике товаров поставщиков значения в колонке "цена прайса" становится из импортируемого прайса,а вот значение колонки "цена закупки" равно - цена разделить на курс и в справочнике товаров она.Это для прайсов в USD. Для UAH все нормально.
В СТП "цена закупки" = "цена прайса" * "курс валюты из справочника валют". Как я понимаю это пошло еще с тех далеких времен, когда некоторые поставщики присылали прайс-листы в гривне, и если в каталоге СТ все цены велись в USD, то нужно было привести все к USD или наоборот.
Какие тут вообще проблемы могут быть?
|
Распечатать
|
|
support
Support
Количество сообщений
1199
Зарегистрирован:
11-04-2008, 19:11:57
|
Цитата Написал: simka
Прикрепляю прайс в USD.Валюту выбираем из рис.1 USD.
Рисунок 2 и 3 это что получается после импотра.
Прикрепите рисунки к посту
|
Распечатать
|
|
simka
Пользователь iNETsHOP
Количество сообщений
6
Зарегистрирован:
08-06-2014, 12:43:21
|
Спасибо,разобрались.
|
Распечатать
|
|
support
Support
Количество сообщений
1199
Зарегистрирован:
11-04-2008, 19:11:57
|
Цена закупки в СТП рассчитывается по формуле:
"цена закупки" = ФОРМУЛА_НАЦЕНКИ( "цена прайса" * "курс валюты из справочника валют" * "курс валюты прайса СТП" ).
Т.е. в триггере, при изменении цены прайса, курса валюты прайса, формулы наценки, валюты - происходит пересчет цены продажи по следующему алгоритму:
1) берется цена товара из прайса
2) если указана валюта - умножается на курс привязанной к товару валюты
3) если непосредственно в товаре указан курс валюты прайса, то цена еще умножается на этот курс (т.к. может быть указана как валюта так и отдельно курс или оба эти параметра)
4) цена с учетом курсов валют передается в формулу расчета для вычисления результирующей цены закупки товара у поставщика.
|
Распечатать
|
|
Статистика форума |
|
Тем: 506, Сообщений: 3222, Пользователей: 2257
Приветствуем новичка по имени L9800708 |
Ближайшие дни рождения |
|
Сегодня именинников нет |
|