Привет всем. Нуждаюсь в помощи написания скрипта для наценки розничной цены в зависимости от приходной. Читал тему о скриптах по наценке, вроде все делал как написано но наценивание не происходит.
Есть определенные цифры по наценке от приходной цены (приход и расход у меня в уе)
при приходной цене до 20уе наценка 25%
от 20 до 30 наценка 20%
от 30 до 100 наценка 15%
от 100 до 1000 наценка 10%
Спасибо.
Тут ваш случай
http://www.softbalance.com.ua/forum/index.php/topic,461.0.html (http://www.softbalance.com.ua/forum/index.php/topic,461.0.html)
Эту ветку я прочитал и пробовал но наценка не идет ...
Цитата: Vitaly_Gl від Березень 01, 2013, 09:46:13
Эту ветку я прочитал и пробовал но наценка не идет ...
Что именно вы пробовали и запускали?
Делал 2 файла 999, закидывал их по инструкции. Делал bat файл для запуска программы.
ALTER PROCEDURE usr_tovar_nacenka
AS
DECLARE VARIABLE v_tovar_id INTEGER;
DECLARE VARIABLE v_cena DOUBLE PRECISION;
DECLARE VARIABLE v_cena_r DOUBLE PRECISION;
DECLARE VARIABLE v_cena_o DOUBLE PRECISION;
DECLARE VARIABLE v_cena_1 DOUBLE PRECISION;
DECLARE VARIABLE v_cena_2 DOUBLE PRECISION;
BEGIN
FOR
SELECT
num,
cena,
cena_r,
cena_o,
cena_1,
cena_2
FROM
tovar_name
WHERE
visible = 1
INTO
:v_tovar_id,
:v_cena,
:v_cena_r,
:v_cena_o,
:v_cena_1,
:v_cena_2
DO
BEGIN
IF (:v_cena <= 20) THEN
BEGIN
UPDATE tovar_name SET cena_r = cena * 1.25 WHERE num = :v_tovar_id AND cena_curr_id = cena_out_curr_id;
END
ELSE
IF (:v_cena > 20 AND :v_cena <= 30) THEN
BEGIN
UPDATE tovar_name SET cena_r = cena * 1.2 WHERE num = :v_tovar_id AND cena_curr_id = cena_out_curr_id;
END
ELSE
IF (:v_cena > 30 AND :v_cena <= 100) THEN
BEGIN
UPDATE tovar_name SET cena_r = cena * 1.15 WHERE num = :v_tovar_id AND cena_curr_id = cena_out_curr_id;
END
ELSE
IF (:v_cena > 100 AND :v_cena <= 1000) THEN
BEGIN
UPDATE tovar_name SET cena_r = cena * 1.1 WHERE num = :v_tovar_id AND cena_curr_id = cena_out_curr_id;
END
END
END;
COMMIT
это то что прописывал в один из файлов
один из файлов 999 из папки /db/patch/ после запуска исчезает.
Выше вы создали процедуру наценки, а выполняли ее как? Выполнять ее надо как описано в п.3 в ссылке ниже.
Сейчас можно не создавать процедуру через файл, а напрямую создавать в меню Опции : SQL менеджер, как указано тут:
http://www.softbalance.com.ua/forum/index.php/topic,461.msg3162.html#msg3162 (http://www.softbalance.com.ua/forum/index.php/topic,461.msg3162.html#msg3162)
Так тоже делал-наценка не происходит. Так процедура выполнялась вроде при запуске второго файла 999 по пути db/patch_ok
Цитата: Vitaly_Gl від Березень 01, 2013, 10:29:05
Так процедура выполнялась вроде при запуске второго
Нет, вы ее только создали, а запускается она п.3 как описали выше, это для того чтобы вы ее раз сделали, а запускали в любой момент.
А у вас валюта расхода и прихода в справочнике товаров точно одинаковые?
У меня приходы и расходы в уе
Можна по пунктам расписать что надо сделать?
Цитата: Vitaly_Gl від Березень 01, 2013, 15:41:06
У меня приходы и расходы в уе
Валюта одинаковая?
Цитата: Vitaly_Gl від Березень 01, 2013, 15:41:25
Можна по пунктам расписать что надо сделать?
Вот тут все по пунктам:
http://www.softbalance.com.ua/forum/index.php/topic,461.msg3162.html#msg3162 (http://www.softbalance.com.ua/forum/index.php/topic,461.msg3162.html#msg3162)
более ничего не надо делать.
Начните с простого, не делайте куча условий, сделайте одно условие на одну наценку.
Просто не очень хочу на угад эксперементировать на моей рабочей базе...
Цитата: Vitaly_Gl від Березень 01, 2013, 16:51:31
Просто не очень хочу на угад эксперементировать на моей рабочей базе...
Извините но вы читаете ту ссылку которую вам давали несколько раз, там же нулевой пункт сделайте резерв. Сделали резерв делайте что хотите с базой, всегда же можно восстановить. там же есть наценки и в группе, выберите группу и наценяйте только на ней. Там ничего сложного нет, просто надо внимательно и по порядку все прочитать и сделать, один раз проделаете будете любые наценки "выделывать".
Разобрался-все заработало (убрал COMMIT). Теперь пару вопросов.
1-что делать с галочками автоматической наценки на товары-они были у меня раньше выставлены-теперь их снять?
2-скрипт будет работать на постоянных условиях или его надо будет перезапускать после каждой приходной накладной?
3-что будет из скриптом при обновлении программы укрсклад?
Цитата: Vitaly_Gl від Березень 02, 2013, 11:12:50
Разобрался-все заработало (убрал COMMIT). Теперь пару вопросов.
1-что делать с галочками автоматической наценки на товары-они были у меня раньше выставлены-теперь их снять?
2-скрипт будет работать на постоянных условиях или его надо будет перезапускать после каждой приходной накладной?
3-что будет из скриптом при обновлении программы укрсклад?
Все верно, Комита не было в инструкции, он только для файла если закидывать в папку patch
1. Они влияют только на наценку в программе, если вы не хотите чтобы программа наценяла другим способом, а только тем что вы описали св скрипте, галочки надо отключить.
2. Скрипт у вас уже написан, для новых товаров надо будет делать 3 пункт.
3. Ничего он у вас в базе постоянно будет.
Получается что скрип будет автоматом у всех версиях после обновлений. А можна как-то автоматизировать что б цену автоматом пересчитывало (например при запуске программы), что б каждый раз не запускать скрипт.
Цитата: Vitaly_Gl від Березень 05, 2013, 16:11:15
Получается что скрип будет автоматом у всех версиях после обновлений. А можна как-то автоматизировать что б цену автоматом пересчитывало (например при запуске программы), что б каждый раз не запускать скрипт.
Ответ все в той же теме, там показано как повесить на тригер при обновлении и как сделать чтобы запускался при старте срипт:
http://www.softbalance.com.ua/forum/index.php/topic,461.msg3801.html#msg3801 (http://www.softbalance.com.ua/forum/index.php/topic,461.msg3801.html#msg3801)
Можна ли пошагово (алгоритм действий). Спасибо.
Цитата: Vitaly_Gl від Березень 11, 2013, 11:24:43
Можна ли пошагово (алгоритм действий). Спасибо.
А у меня почему то ощущения что вы либо намерено пропускаете что мы вам пишем и не заходите по ссылкам, либо просто бегло прочитываете текст. Там описано все по порядку, что КОНКРЕТНО не понятно из того текста спрашивайте, ответим с удовольствием, а отвечать повтором раза 3 чтобы вы прочитали все-таки текст, нет на это времени и желания.
тобеж мне надо выполнить только этот скрипт без изменений и все?
CREATE OR ALTER TRIGGER tovar_name_usr_ai0 FOR tovar_name
ACTIVE AFTER INSERT POSITION 0
AS
BEGIN
EXECUTE PROCEDURE usr_tovar_nacenka;
END
Кто разбирается, помогите скрипт написать. Нужно товар, содержащий в своем названии слово "ГОСТ", перенести в новую группу.
Исходный id группы "5", целевое id группы "33". Заранее благодарен!
Похоже , сам нашел уже ответ:
Цитата: Creat від Квітень 15, 2014, 13:31:35
Робіть резерв бази!
Просто в довіднику товарів відфільтруйте ці товари можна й по номеру групи. Потім права кнопка миші виділити всі. Далі видалити. Це коректний спосіб.
В моем случае нужно вместо "удалить" выполнить "переместить в другую группу". Сейчас буду пробовать!
Зробіть простіше і наочніше. Відфільтруйте необхідні товари в довіднику. Далі виділити всі. Перенести їх в іншу групу.
К сожалению не силен в написании скрипта; подскажите, я думаю, это не проблема -
нужно в справочнике "Товары" по всей базе значение из ячейки "Дополнительное поле 2" перенести в ячейку "Производитель"
Цитата: semp від Серпень 08, 2015, 21:43:33
К сожалению не силен в написании скрипта; подскажите, я думаю, это не проблема -
нужно в справочнике "Товары" по всей базе значение из ячейки "Дополнительное поле 2" перенести в ячейку "Производитель"
Сделайте архив базы.
UPDATE tovar_name SET tov_proizv = dopoln2
А дальше если решите можна и вычистить поле "Дополнительное поле 2
UPDATE tovar_name SET dopoln2 = null
Спасибо, буду пробовать