Добрий день!
Хтось знає як встановити дисконт для всіх Фірм за виключенням однієї Фірми?
що Ви називаєте фірмою?
Якщо мова про клієнта і про дисконт при продажу - то можемо обсудити
телефон в підписі
Цитата: HumanKM від Травень 03, 2023, 20:12:56що Ви називаєте фірмою?
Фірма - це те, що показується в Довідники - Вибір активної фірми (F4 hotkey).
В розділі "Дисконти" бачу можливість "SQl дисконт за сумою". По ідеї можна створити будь-який SQL-запит.
Але як відфільтрувати щоб дисконти працювали для всіх Фірм окрім одної (фірма ритуальних послуг де знижки зовсім недоречні)?
Цитата: user4567 від Травень 03, 2023, 20:32:44Цитата: HumanKM від Травень 03, 2023, 20:12:56що Ви називаєте фірмою?
Фірма - це те, що показується в Довідники - Вибір активної фірми (F4 hotkey).
В розділі "Дисконти" бачу можливість "SQl дисконт за сумою". По ідеї можна створити будь-який SQL-запит.
Але як відфільтрувати щоб дисконти працювали для всіх Фірм окрім одної (фірма ритуальних послуг де знижки зовсім недоречні)?
Думаю, що можна через sql запит прописати дисконти і як умову виключення - дану активну фірму по ID
Цитата: molotokk від Травень 04, 2023, 00:00:26Думаю, що можна через sql запит прописати дисконти і як умову виключення - дану активну фірму по ID
В мене хід думок був таким же. Проблема в тому, що не зрозуміло як достукатись до того ID фірми. В розділі "SQl дисконт за сумою" є така довідка:
-- Входящие переменные:
-- client_id - ID клиента
-- in_doc_suma_value - сумма документа
-- in_cln_suma_value - накопительная сумма клиента
-- in_date - дата
-- in_time - время
-- in_weekday_1 - если понедельник = 1, иначе 0
-- in_weekday_2 - если вторник = 1, иначе 0
-- in_weekday_3 - если среда = 1, иначе 0
-- in_weekday_4 - если четверг = 1, иначе 0
-- in_weekday_5 - если пятница = 1, иначе 0
-- in_weekday_6 - если суббота = 1, иначе 0
-- in_weekday_7 - если воскресенье = 1, иначе 0
-- all_znig_proc - сумма всех скидок
-- doc_suma_proc - скидка по сумме документа
-- cln_suma_proc - скидка по накопительной сумме клиента
-- date_proc - скидка по дате
-- weekday_proc - скидка по дням недели
-- time_proc - скидка по времени
-- cln_proc - скидка клиента из справочника
-- all_bonus - сумма всех бонусов
-- doc_suma_bonus - бонусы по сумме документа
-- cln_suma_bonus - бонусы по накопительной сумме клиента
-- date_bonus - бонусы по дате
-- time_bonus - бонусы по времени
-- Исходящие переменные:
-- all_znig_proc_out - сумма всех скидок
-- doc_suma_proc_out - скидка по сумме документа
-- cln_suma_proc_out - скидка по накопительной сумме клиента
-- date_proc_out - скидка по дате
-- weekday_proc_out - скидка по дням недели
-- time_proc_out - скидка по времени
-- cln_proc_out - скидка клиента из справочника
-- all_bonus_out - сумма всех бонусов
-- doc_suma_bonus_out - бонусы по сумме документа
-- cln_suma_bonus_out - бонусы по накопительной сумме клиента
-- date_bonus_out - бонусы по дате
-- time_bonus_out - бонусы по времени
------------------------------------------------------------------------------
-- Пример: если общая скидка больше 30%, тогда установить скидку 30%, т.е. не больше 30%
/*
IF(doc_suma_proc > 0 OR cln_suma_proc > 0 OR cln_proc > 0) THEN
BEGIN
IF(doc_suma_proc > cln_suma_proc) THEN
BEGIN
IF(doc_suma_proc > cln_proc) THEN
all_znig_proc_out = doc_suma_proc;
END
ELSE
BEGIN
IF(cln_suma_proc > cln_proc) THEN
all_znig_proc_out = cln_suma_proc;
ELSE
all_znig_proc_out = cln_proc;
END
END
*/
Всі змінні з приклада - це ті, що розраховуються прямо в чеку. Не зрозуміло як витягнуть ID фірми. В БД бачу, що поле NUM для потрібної фірми дорівнює "1518" (збігається з ID фірми в табличці). Не зрозуміло в якому форматі в SQL-запит саме в цьому місці передавати це (як саме ім'я змінної "ID фірми").
Цитата: user4567 від Травень 03, 2023, 20:01:21Добрий день!
Хтось знає як встановити дисконт для всіх Фірм за виключенням однієї Фірми?
-- взнаємо ID активної фірми в змінну tmp_int1
SELECT
vc.firma_id
FROM
vkas_check vc
WHERE
vc.num = :in_doc_id
INTO
tmp_int1;
-- Для всіх, крім фірми з ID=17, дисконт 20%
IF(tmp_int1 !=17) THEN
BEGIN
all_znig_proc_out = 20;
END
Цитата: admin від Травень 04, 2023, 14:49:40-- взнаємо ID активної фірми в змінну tmp_int1
SELECT
vc.firma_id
FROM
vkas_check vc
WHERE
vc.num = :in_doc_id
INTO
tmp_int1;
-- Для всіх, крім фірми з ID=17, дисконт 20%
IF(tmp_int1 !=17) THEN
BEGIN
all_znig_proc_out = 20;
END
Дуже дякую! Працює!