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

Наши программы => УкрСклад => Тема розпочата: ВКом від Січень 14, 2020, 13:28:20

Назва: Помогите со скриптом
Відправлено: ВКом від Січень 14, 2020, 13:28:20
Добрый день!
Помогите со скриптоп: при покупке 3х единиц любого товара, третий товар с наименьшей ценой в подарок
вроди все пробовала, не получается
Назва: Re: Помогите со скриптом
Відправлено: admin від Лютий 04, 2020, 17:07:16
Цитата: ВКом від Січень 14, 2020, 13:28:20
Добрый день!
Помогите со скриптоп: при покупке 3х единиц любого товара, третий товар с наименьшей ценой в подарок
вроди все пробовала, не получается

1. Что именно вы пробовали?
2. Условие не полное, не понятно это "при покупке больше 3х единиц любого товара" или "при покупке каждой из3х единиц любого товара" или "при покупке количества3х единиц любого товара" (т.е. купили 2 шт. - Товара 1 и 1 шт. Товара 2, не говоря уже о 5 шт. - Товара 1, 4 шт. - Товара 2, 3 шт. - Товара 3).
Назва: Re: Помогите со скриптом
Відправлено: cola78 від Грудень 03, 2021, 17:14:37
Можно ли в sql дисконте указывать производителя?
Например скидку на все товары кроме товаров такого-то производителя.

Если можно, то какая переменная отвечает за производителя?
Назва: Re: Помогите со скриптом
Відправлено: homebuh від Квітень 14, 2022, 16:08:28
Цитата: admin від Грудень 20, 2017, 14:54:41
Это перенаправленное письмо:
От: УкрСклад
Кому: Николай
Дата: 20 грудня 2017 р., 14:54:09
Тема: Fwd: скрипт для рождественских и новогодних продаж для окна кассира.

===8<==============Оригинал текста письма===============
Приветствую Вас,

19.12.2017 в 12:29, Вы писали:

НС> Вы нам давали скрипт для "черной пятницы".
НС> А теперь мы придумали по-сложнее...
НС> Срок действия акции - 18.12.2017 - 7.01.2018
НС> Внизу Id товара и размер скидки (есть процентная и числовая).
НС> 2 - 15%
НС> 50 - 277,00
НС> 51 - 15%
НС> 53 - 15%
НС> 54 - 262,00
НС> 55 - 15%
НС> 57 - 277,00

В меню Справочники : Дисконты : SQL дисконт по товару, используйте
след. скрипт:

  IF(in_date >= '18.12.2017' AND in_date <= '07.01.2017') THEN
  BEGIN
    IF(in_tovar_id IN (2, 51, 53, 55)) THEN
      tovar_znig_proc = 15;
    ELSE
    IF(in_tovar_id IN (50, 57)) THEN
      tovar_znig_proc = ( (277)/(in_tovar_cena*in_tovar_kolvo) )*100;   
    ELSE
    IF(in_tovar_id IN (54)) THEN
      tovar_znig_proc = ( (262)/(in_tovar_cena*in_tovar_kolvo) )*100; 
  END


--
С уважением, Дмитрий Котельников
  Служба поддержки УкрСклад.
===8<===========Окончание оригинала теста письма========

здесь ошибка в дате
IF(in_date >= '18.12.2017' AND in_date <= '07.01.2018') THEN
Назва: Re: Помогите со скриптом
Відправлено: cola78 від Серпень 17, 2022, 11:28:09
Потрібна допомога.
Як записати таку умову:
Якщо кількість позицій в чеку для товарів з певної групи більша 2,
то на певний товар знижка в 5%

Не кількість товарів, а кількість позицій в чеку, де в кожній позиції хоча б 1 одиниця товару?
Назва: Re: Помогите со скриптом
Відправлено: nikolllo від Травень 09, 2023, 18:04:43


Добрий день!
Допоможіть, будь-ласка, з скриптом по бонусній програмі.
Зараз базовий бонус встановлений 7% (0,07).
Планую це змінити і для запуску нової бонусної програми зробити базовий 1% (0,01). Тоді на всі товари в групах товарів з ID: 153, 86, 154, 60, 53, 4, 141, 42, 42, 122, 56, 28 буде нараховуватися базовий бонус 1%.
А збільшені бонуси на групи товарів з ID:
1) 37, 146, 142  бонус 1.5%
2) 97, 118, 49, 50, 136, 103, 135, 166, 167, 138, 139, 137, 112, 158, 51 бонус 2%
3) 150, 126, 164, 67, 75, 89, 79, 99, 78, 68, 113, 133, 148, 134, 106, 107, 110, 111, 157, 62, 147 бонус 3%
4) 152, 163, 129, 33, 140, 91, 119, 116, 121, 87, 101, 104, 104, 64, 27, 95, 88, 155, 160 бонус 4%
5) 165, 127, 100, 38, 115, 132, 109, 156, 84 бонус 5%
6) 98, 105 бонус 6%
7) 58, 71, 59, 35, 36 бонус 8%
Я зрозумів принцип, що базовий залишається 0,01, а при нарахуванні на товари у групах з більшим бонусом до нього буде додаватися різниця між потрібним і базовим.
Тобто на цю групу з ID "1) 37, 146, 142  бонус 1.5%" до базового 0,01 буде додаватися 0,005 і т. д
Наперед вдячний!
Найбільше підходить цей скрипт:

SELECT
  SUM(vc.tov_kolvo*vc.tov_cena)
FROM
  get_vkas_check_info(:in_doc_id) AS vc
WHERE
  vc.group_id IN ( 429 )
INTO
  :tmp_float1; -- сумма товаров для бонуса=0.1

tmp_float2 = in_doc_suma_value - tmp_float1; -- сумма товаров для бонуса=0.4

all_bonus_out = (((tmp_float2 * 0.04)+(tmp_float1 * 0.01) )/in_doc_suma_value);
Назва: Re: Помогите со скриптом
Відправлено: Роман?:) від Липень 20, 2023, 15:23:00
Вітаю.
Перше повыдомлення не в те тему написав.
А як до цього дисконту додати певну групу клієнтів ?
Щоб кожен раз не додавати в скрипт ІД-окремого клієнта. Зараз їх 10, а згодом на касі буде +-1000.
В мене зараз ось так :

IF(client_id IN (-20, 56, 59, 60,
                  66, 67, 77, 78,
                  79, 83
)) THEN


 
  SELECT
    tn.tov_proizv
  FROM                                                                               
    tovar_name tn
  WHERE
    tn.num = :in_tovar_id
  INTO
    :tmp_str1;
  IF(TRIM(tmp_str1) = 'Brit') THEN       
  BEGIN
    tovar_znig_proc = 10;
  END
  IF(TRIM(tmp_str1) = 'Savory') THEN
  BEGIN
    tovar_znig_proc = 10;
  END
Назва: Re: Помогите со скриптом
Відправлено: walo від Вересень 23, 2023, 13:46:35
Добрий день. Потрібна допомога. Знайшов потрібні sql дисконти але не знаю як їх об'єднати.
1. При покупці товару з групи 4 одного ID кратно 6 знижка 3%, кратно 12 - 5%, кратно 24 - 10%
2. При покупці товару з групи 9 товар з групи 11 за пів ціни
3. Знижка на товар з групи 30 - 25%
Назва: Re: Помогите со скриптом
Відправлено: povalnik від Вересень 27, 2023, 23:10:01
Вже зробили ?

Цитата: nikolllo від Травень 09, 2023, 18:04:43Добрий день!
Допоможіть, будь-ласка, з скриптом по бонусній програмі.
Зараз базовий бонус встановлений 7% (0,07).
Планую це змінити і для запуску нової бонусної програми зробити базовий 1% (0,01). Тоді на всі товари в групах товарів з ID: 153, 86, 154, 60, 53, 4, 141, 42, 42, 122, 56, 28 буде нараховуватися базовий бонус 1%.
А збільшені бонуси на групи товарів з ID:
1) 37, 146, 142  бонус 1.5%
2) 97, 118, 49, 50, 136, 103, 135, 166, 167, 138, 139, 137, 112, 158, 51 бонус 2%
3) 150, 126, 164, 67, 75, 89, 79, 99, 78, 68, 113, 133, 148, 134, 106, 107, 110, 111, 157, 62, 147 бонус 3%
4) 152, 163, 129, 33, 140, 91, 119, 116, 121, 87, 101, 104, 104, 64, 27, 95, 88, 155, 160 бонус 4%
5) 165, 127, 100, 38, 115, 132, 109, 156, 84 бонус 5%
6) 98, 105 бонус 6%
7) 58, 71, 59, 35, 36 бонус 8%
Я зрозумів принцип, що базовий залишається 0,01, а при нарахуванні на товари у групах з більшим бонусом до нього буде додаватися різниця між потрібним і базовим.
Тобто на цю групу з ID "1) 37, 146, 142  бонус 1.5%" до базового 0,01 буде додаватися 0,005 і т. д
Наперед вдячний!
Найбільше підходить цей скрипт:

SELECT
  SUM(vc.tov_kolvo*vc.tov_cena)
FROM
  get_vkas_check_info(:in_doc_id) AS vc
WHERE
  vc.group_id IN ( 429 )
INTO
  :tmp_float1; -- сумма товаров для бонуса=0.1

tmp_float2 = in_doc_suma_value - tmp_float1; -- сумма товаров для бонуса=0.4

all_bonus_out = (((tmp_float2 * 0.04)+(tmp_float1 * 0.01) )/in_doc_suma_value);