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

Округлення цін

Автор molotokk, Вересень 10, 2015, 15:51:32

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

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

molotokk

Доброго дня!
Чи можна якось реалізувати різне округлення цін на різні категорії цін (наприклад - щоб на оптову ціну на молотки округлення було до 1 копійки а на роздрібну ціну до 1 гривні)?
підбір та продаж обладнання для торгівлі, допомога в налаштуваннях програми ⇒ "komfort-m.com.ua" ⇒ "t.me/komfortmservice" ⇒ ✆ 097-873-59-01

Creat

Скриптом можна націнювати та округляти як вам захочеться.

molotokk

та от проблема в тому, що я в скриптах не дуже розбираюсь =(
підбір та продаж обладнання для торгівлі, допомога в налаштуваннях програми ⇒ "komfort-m.com.ua" ⇒ "t.me/komfortmservice" ⇒ ✆ 097-873-59-01

Creat

Опції - націнка натовари - націнка SQL скриптом.
Там є приклад легко розібратись.

molotokk

Дякую, буду пробувати...
підбір та продаж обладнання для торгівлі, допомога в налаштуваннях програми ⇒ "komfort-m.com.ua" ⇒ "t.me/komfortmservice" ⇒ ✆ 097-873-59-01

molotokk

А може хтось на замовлення написати скрипт???  бо я в цьому не можу роздуплитись.. =(
підбір та продаж обладнання для торгівлі, допомога в налаштуваннях програми ⇒ "komfort-m.com.ua" ⇒ "t.me/komfortmservice" ⇒ ✆ 097-873-59-01

admin

Цитата: molotokk від Вересень 14, 2015, 10:07:12
А може хтось на замовлення написати скрипт???  бо я в цьому не можу роздуплитись.. =(

Давайте по порядку, по одному условию пишите будем помогать вам написать скрипт, заодно и разберетесь. Только пишите по одному условию, после ответа второе и т.д. Просто если будете писать все условия одним большим текстом, ни вы не разберетесь, ни другие пользователи.

molotokk

Цитата: admin від Вересень 14, 2015, 17:26:32
Цитата: molotokk від Вересень 14, 2015, 10:07:12
А може хтось на замовлення написати скрипт???  бо я в цьому не можу роздуплитись.. =(

Давайте по порядку, по одному условию пишите будем помогать вам написать скрипт, заодно и разберетесь. Только пишите по одному условию, после ответа второе и т.д. Просто если будете писать все условия одним большим текстом, ни вы не разберетесь, ни другие пользователи.

Ситуація:
1. в меню "Націнки на товар" вибрана галочка "Націнки по групах товару"
2. є групи товару "Іграшки", "Госптовари", "Кухонні товари",
3.  на кожну з груп є ціна роздрібна, ціна опт, ціна 1, ціна 2, ціна 3.
4. Округлення різне на кожну ГРУПУ ТОВАРУ (напр. на Іграшки - 100 (1 грн), на госптовари - 25 (25 коп.) і на Кухонні товари - 5 (5 копійок).
ПИТАННЯ - а як мені призначити округлення для РІЗНИХ КАТЕГОРІЙ ЦІН?
наприклад:
Іграшки роздрібна ціна - 100 (1 грн), оптова ціна - 5 (5 копійок)
Госптовари -  роздрібна ціна - 25 (25 копійок), оптова ціна - 1 (1 копійка), ціна 2 - 10 (10 копійок)
підбір та продаж обладнання для торгівлі, допомога в налаштуваннях програми ⇒ "komfort-m.com.ua" ⇒ "t.me/komfortmservice" ⇒ ✆ 097-873-59-01

Creat

Робимо все на копії програми поки не получимо потрібний результат.
1. В меню "Націнки на товар" знімаємо галочки "Націнки по групах товару"
2. Вибираємо сусідню вкладку Націнка SQL скриптом і ставимо галочку Автоматична Націнка SQL скриптом
Номера груп можна подивитись у вкладці  де ви націнювали перед цим.
Округляє в меншу сторону.  Може матиматична реалізація і не найкраща :)

IF(grupa_id_in = 34) THEN
  BEGIN
   -- маємо для групи 34 націнка роздрібна 40% округлення до 1 коп
   -- оптова ціна - 30% округлення до 1грн
   -- ціна 1 округлення до 25 копійок
   -- ціна 2 округлення до 25 копійок в більшу сторону
    cena_r_out = udf_roundto(cena_in * 1.4, 2); 
    cena_o_out = udf_roundto(cena_in * 1.3, 0);
    cena_1_out = udf_roundto(cena_in * 1.2/0.25, 0)*0.25;
    cena_2_out = udf_roundto(cena_in * 1.2/0.25, 0)*0.25+0.25; 
    cena_3_out = udf_roundto(cena_in + 2, 2);
  END
  ELSE
  IF(grupa_id_in IN (35,64,74)) THEN
  BEGIN
    cena_r_out = udf_roundto(cena_in * 1.4, 2); 
    cena_o_out = udf_roundto(cena_in * 1.3, 0);
   END

molotokk

Цитата: Creat від Вересень 15, 2015, 09:02:24
А якщо груп товарів є всього 10, то по даному скрипту можна округляти ціни для певних вибраних груп, а інші залишаться як були, так?
підбір та продаж обладнання для торгівлі, допомога в налаштуваннях програми ⇒ "komfort-m.com.ua" ⇒ "t.me/komfortmservice" ⇒ ✆ 097-873-59-01

Creat

Це приклад перераховуйте всі групи в скрипті ті що мають однакову націнку і округлення в одну умову і т.д. Основу алгоритмів якусь же вчили в школі.
  IF(grupa_id_in IN (35,64,74)) THEN  - тут можна перерахувати через кому всі групи в яких однаковий алгоритм націнювання і округлення
Якщо 34 то по першій умові, якщо в цьому списку груп (35,64,74) то по другому, для всіх інших по третьому.
Але тут нічого страшного - раз прописали і воно собі працює, цей скрипт зберігається.
Якщо не прописувати третього циклу то всі інші групи не чіпає. Але вам є зміст прописати в скрипті правила націнки та округлення для всіх груп, ти паче що їх всього 10. Раз прописали як правильно націнювати і округляти і забули на певний час.
Вам немає змісту включати то націнку по групах, то націнку скриптом. Треба перейти на націнку скриптом, якщо у вас складніші умови націнки і округлення і ним користуватись.

Робіть все поки на тестовій базі!!!


IF(grupa_id_in = 34) THEN
  BEGIN
   -- маємо для групи 34 націнка роздрібна 40% округлення до 1 коп
   -- оптова ціна - 30% округлення до 1грн
   -- ціна 1 округлення до 25 копійок
   -- ціна 2 округлення до 25 копійок в більшу сторону
    cena_r_out = udf_roundto(cena_in * 1.4, 2); 
    cena_o_out = udf_roundto(cena_in * 1.3, 0);
    cena_1_out = udf_roundto(cena_in * 1.2/0.25, 0)*0.25;
    cena_2_out = udf_roundto(cena_in * 1.2/0.25, 0)*0.25+0.25; 
    cena_3_out = udf_roundto(cena_in + 2, 2);
  END
  ELSE
  IF(grupa_id_in IN (35,64,74)) THEN
  BEGIN
    cena_r_out = udf_roundto(cena_in * 1.4, 2); 
    cena_o_out = udf_roundto(cena_in * 1.3, 0);
   END
ELSE
-- для всіх інших груп от так націнювати і округляти :
   BEGIN
    cena_r_out = udf_roundto(cena_in * 1.4, 2); 
    cena_o_out = udf_roundto(cena_in * 1.3, 0);
   END


molotokk

підбір та продаж обладнання для торгівлі, допомога в налаштуваннях програми ⇒ "komfort-m.com.ua" ⇒ "t.me/komfortmservice" ⇒ ✆ 097-873-59-01

Creat

Цитата: molotokk від Вересень 15, 2015, 09:55:54
Дякую
Коли зробите і вийде, тоді й подякуєте, але це якихось 10 хвилин роботи і все готово :)

molotokk

#13
Цитата: Creat від Вересень 15, 2015, 10:06:55
Цитата: molotokk від Вересень 15, 2015, 09:55:54
Дякую
Коли зробите і вийде, тоді й подякуєте, але це якихось 10 хвилин роботи і все готово :)

А можна якось ціну роздрібну і оптову перецінити через націнки по групах, а ціну 1,2,3 - скриптом??
п.с. груп 10 а підгруп  - близько 40, а націнка окрема для кожної підгрупи.
І скриптом треба переціняти лише ціну 1,2,3 для всіх, а щоб інше - через націнку пішло.
підбір та продаж обладнання для торгівлі, допомога в налаштуваннях програми ⇒ "komfort-m.com.ua" ⇒ "t.me/komfortmservice" ⇒ ✆ 097-873-59-01

Creat

Можна. Треба знімати галочку в одній націнці ставити в іншій, натискати призначити ціни, вертати назад. І в автоматичному режимі працювати це не буде. Треба буде запускати скрипт руками кожен раз.
Простіше в скрипті прописати всі 40 груп. А особливо, якщо ці групи можна погрупувати по однакових націнках, округленнях то не буде 40 умов. Але й 40 умов прописати не важко.