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

Помогите со скриптом

Автор ВКом, Січень 14, 2020, 13:28:20

Попередня тема - Наступна тема

0 Користувачі і 2 Гостей дивляться цю тему.

ВКом

Добрый день!
Помогите со скриптоп: при покупке 3х единиц любого товара, третий товар с наименьшей ценой в подарок
вроди все пробовала, не получается

admin

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

1. Что именно вы пробовали?
2. Условие не полное, не понятно это "при покупке больше 3х единиц любого товара" или "при покупке каждой из3х единиц любого товара" или "при покупке количества3х единиц любого товара" (т.е. купили 2 шт. - Товара 1 и 1 шт. Товара 2, не говоря уже о 5 шт. - Товара 1, 4 шт. - Товара 2, 3 шт. - Товара 3).

cola78

Можно ли в sql дисконте указывать производителя?
Например скидку на все товары кроме товаров такого-то производителя.

Если можно, то какая переменная отвечает за производителя?

homebuh

Цитата: 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

cola78

Потрібна допомога.
Як записати таку умову:
Якщо кількість позицій в чеку для товарів з певної групи більша 2,
то на певний товар знижка в 5%

Не кількість товарів, а кількість позицій в чеку, де в кожній позиції хоча б 1 одиниця товару?

nikolllo



Добрий день!
Допоможіть, будь-ласка, з скриптом по бонусній програмі.
Зараз базовий бонус встановлений 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);

Роман?:)

Вітаю.
Перше повыдомлення не в те тему написав.
А як до цього дисконту додати певну групу клієнтів ?
Щоб кожен раз не додавати в скрипт ІД-окремого клієнта. Зараз їх 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

walo

Добрий день. Потрібна допомога. Знайшов потрібні sql дисконти але не знаю як їх об'єднати.
1. При покупці товару з групи 4 одного ID кратно 6 знижка 3%, кратно 12 - 5%, кратно 24 - 10%
2. При покупці товару з групи 9 товар з групи 11 за пів ціни
3. Знижка на товар з групи 30 - 25%

povalnik

Вже зробили ?

Цитата: 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);