Спільнота для обміну досвідом між користувачами програм УкрБланк, УкрСклад, УкрЗарплата

Наши программы => УкрСклад => Тема розпочата: Vitaly_Gl від Лютий 28, 2013, 14:09:16

Назва: Помогите написать скрипт
Відправлено: Vitaly_Gl від Лютий 28, 2013, 14:09:16
Привет всем. Нуждаюсь в помощи написания скрипта для наценки розничной цены в зависимости от приходной. Читал тему о скриптах по наценке, вроде все делал как написано но наценивание не происходит.
Есть определенные цифры по наценке от приходной цены (приход и расход у меня в уе)
при приходной цене до 20уе наценка 25%
                                        от 20 до 30 наценка 20%
                                        от 30 до 100 наценка 15%
                                        от 100 до 1000 наценка 10%
Спасибо.
Назва: Re: Помогите написать скрипт
Відправлено: Creat від Лютий 28, 2013, 19:03:48
Тут ваш случай
http://www.softbalance.com.ua/forum/index.php/topic,461.0.html (http://www.softbalance.com.ua/forum/index.php/topic,461.0.html)
Назва: Re: Помогите написать скрипт
Відправлено: Vitaly_Gl від Березень 01, 2013, 09:46:13
Эту ветку я прочитал и пробовал но наценка не идет ...
Назва: Re: Помогите написать скрипт
Відправлено: admin від Березень 01, 2013, 09:48:16
Цитата: Vitaly_Gl від Березень 01, 2013, 09:46:13
Эту ветку я прочитал и пробовал но наценка не идет ...

Что именно вы пробовали и запускали?
Назва: Re: Помогите написать скрипт
Відправлено: Vitaly_Gl від Березень 01, 2013, 10:20:14
Делал 2 файла 999, закидывал их по инструкции. Делал bat файл для запуска программы.
Назва: Re: Помогите написать скрипт
Відправлено: Vitaly_Gl від Березень 01, 2013, 10:21:16
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

это то что прописывал в один из файлов
Назва: Re: Помогите написать скрипт
Відправлено: Vitaly_Gl від Березень 01, 2013, 10:22:24
один из файлов 999 из папки /db/patch/ после запуска исчезает.
Назва: Re: Помогите написать скрипт
Відправлено: admin від Березень 01, 2013, 10:26:37
Выше вы создали процедуру наценки, а выполняли ее как? Выполнять ее надо как описано в п.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)

Назва: Re: Помогите написать скрипт
Відправлено: Vitaly_Gl від Березень 01, 2013, 10:29:05
Так тоже делал-наценка не происходит. Так процедура выполнялась вроде при запуске второго файла 999 по пути db/patch_ok
Назва: Re: Помогите написать скрипт
Відправлено: admin від Березень 01, 2013, 14:10:13
Цитата: Vitaly_Gl від Березень 01, 2013, 10:29:05
Так процедура выполнялась вроде при запуске второго

Нет, вы ее только создали, а запускается она п.3 как описали выше, это для того чтобы вы ее раз сделали, а запускали в любой момент.
Назва: Re: Помогите написать скрипт
Відправлено: admin від Березень 01, 2013, 14:32:30
А у вас валюта расхода и прихода в справочнике товаров точно одинаковые?
Назва: Re: Помогите написать скрипт
Відправлено: Vitaly_Gl від Березень 01, 2013, 15:41:06
У меня приходы и расходы в уе
Назва: Re: Помогите написать скрипт
Відправлено: Vitaly_Gl від Березень 01, 2013, 15:41:25
Можна по пунктам расписать что надо сделать?
Назва: Re: Помогите написать скрипт
Відправлено: admin від Березень 01, 2013, 15:56:01
Цитата: 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)
более ничего не надо делать.
Назва: Re: Помогите написать скрипт
Відправлено: admin від Березень 01, 2013, 15:57:25
Начните с простого, не делайте куча условий, сделайте одно условие на одну наценку.
Назва: Re: Помогите написать скрипт
Відправлено: Vitaly_Gl від Березень 01, 2013, 16:51:31
Просто не очень хочу на угад эксперементировать на моей рабочей базе...
Назва: Re: Помогите написать скрипт
Відправлено: admin від Березень 01, 2013, 17:17:37
Цитата: Vitaly_Gl від Березень 01, 2013, 16:51:31
Просто не очень хочу на угад эксперементировать на моей рабочей базе...

Извините но вы читаете ту ссылку которую вам давали несколько раз, там же нулевой пункт сделайте резерв. Сделали резерв делайте что хотите с базой, всегда же можно восстановить. там же есть наценки и в группе, выберите группу и наценяйте только на ней. Там ничего сложного нет, просто надо внимательно и по порядку все прочитать и сделать, один раз проделаете будете любые наценки "выделывать".
Назва: Re: Помогите написать скрипт
Відправлено: Vitaly_Gl від Березень 02, 2013, 11:12:50
Разобрался-все заработало (убрал COMMIT). Теперь пару вопросов.
1-что делать с галочками автоматической наценки на товары-они были у меня раньше выставлены-теперь их снять?
2-скрипт будет работать на постоянных условиях или его надо будет перезапускать после каждой приходной накладной?
3-что будет из скриптом при обновлении программы укрсклад?
Назва: Re: Помогите написать скрипт
Відправлено: admin від Березень 05, 2013, 15:03:34
Цитата: Vitaly_Gl від Березень 02, 2013, 11:12:50
Разобрался-все заработало (убрал COMMIT). Теперь пару вопросов.
1-что делать с галочками автоматической наценки на товары-они были у меня раньше выставлены-теперь их снять?
2-скрипт будет работать на постоянных условиях или его надо будет перезапускать после каждой приходной накладной?
3-что будет из скриптом при обновлении программы укрсклад?

Все верно, Комита не было в инструкции, он только для файла если закидывать в папку patch
1. Они влияют только на наценку в программе, если вы не хотите чтобы программа наценяла другим способом, а только тем что вы описали св скрипте, галочки надо отключить.
2. Скрипт у вас уже написан, для новых товаров надо будет делать 3 пункт.
3. Ничего он у вас в базе постоянно будет.
Назва: Re: Помогите написать скрипт
Відправлено: Vitaly_Gl від Березень 05, 2013, 16:11:15
Получается что скрип будет автоматом у всех версиях после обновлений. А можна как-то автоматизировать что б цену автоматом пересчитывало (например при запуске программы), что б каждый раз не запускать скрипт.
Назва: Re: Помогите написать скрипт
Відправлено: admin від Березень 06, 2013, 15:30:28
Цитата: 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)
Назва: Re: Помогите написать скрипт
Відправлено: Vitaly_Gl від Березень 11, 2013, 11:24:43
Можна ли пошагово (алгоритм действий). Спасибо.
Назва: Re: Помогите написать скрипт
Відправлено: admin від Березень 11, 2013, 14:39:09
Цитата: Vitaly_Gl від Березень 11, 2013, 11:24:43
Можна ли пошагово (алгоритм действий). Спасибо.

А у меня почему то ощущения что вы либо намерено пропускаете что мы вам пишем и не заходите по ссылкам, либо просто бегло прочитываете текст. Там описано все по порядку, что КОНКРЕТНО не понятно из того текста спрашивайте, ответим с удовольствием, а отвечать повтором раза 3 чтобы вы прочитали все-таки текст, нет на это времени и желания.
Назва: Re: Помогите написать скрипт
Відправлено: Vitaly_Gl від Березень 11, 2013, 14:47:22
тобеж мне надо выполнить только этот скрипт без изменений и все?

CREATE OR ALTER TRIGGER tovar_name_usr_ai0 FOR tovar_name
ACTIVE AFTER INSERT POSITION 0
AS
BEGIN
  EXECUTE PROCEDURE usr_tovar_nacenka;
END
Назва: Re: Помогите написать скрипт
Відправлено: victorpolo від Квітень 15, 2014, 13:38:28
Кто разбирается, помогите скрипт написать. Нужно товар, содержащий в своем названии слово "ГОСТ", перенести в новую группу.
Исходный id группы "5", целевое  id группы "33". Заранее благодарен!

Похоже , сам нашел уже ответ:

Цитата: Creat від Квітень 15, 2014, 13:31:35
Робіть резерв бази!

Просто в довіднику товарів відфільтруйте ці товари можна й по номеру групи. Потім права кнопка миші виділити всі. Далі видалити. Це коректний спосіб.
В моем случае нужно вместо "удалить" выполнить "переместить в другую группу". Сейчас буду пробовать!
Назва: Re: Помогите написать скрипт
Відправлено: Creat від Квітень 15, 2014, 14:39:15
Зробіть простіше і наочніше. Відфільтруйте необхідні товари в довіднику. Далі виділити всі. Перенести їх в іншу групу.
Назва: Re: Помогите написать скрипт
Відправлено: semp від Серпень 08, 2015, 21:43:33
К сожалению не силен в написании скрипта; подскажите, я думаю, это не проблема -
нужно в справочнике "Товары" по всей базе значение из ячейки "Дополнительное поле 2" перенести в ячейку "Производитель"
Назва: Re: Помогите написать скрипт
Відправлено: Creat від Серпень 09, 2015, 09:19:22
Цитата: semp від Серпень 08, 2015, 21:43:33
К сожалению не силен в написании скрипта; подскажите, я думаю, это не проблема -
нужно в справочнике "Товары" по всей базе значение из ячейки "Дополнительное поле 2" перенести в ячейку "Производитель"

Сделайте архив базы.

UPDATE tovar_name SET tov_proizv = dopoln2

А дальше если решите можна и вычистить поле "Дополнительное поле 2

UPDATE tovar_name SET dopoln2 = null
Назва: Re: Помогите написать скрипт
Відправлено: semp від Серпень 13, 2015, 21:17:59
Спасибо, буду пробовать