Доброго дня!
Чи можна якось реалізувати різне округлення цін на різні категорії цін (наприклад - щоб на оптову ціну на молотки округлення було до 1 копійки а на роздрібну ціну до 1 гривні)?
Скриптом можна націнювати та округляти як вам захочеться.
та от проблема в тому, що я в скриптах не дуже розбираюсь =(
Опції - націнка натовари - націнка SQL скриптом.
Там є приклад легко розібратись.
Дякую, буду пробувати...
А може хтось на замовлення написати скрипт??? бо я в цьому не можу роздуплитись.. =(
Цитата: molotokk від Вересень 14, 2015, 10:07:12
А може хтось на замовлення написати скрипт??? бо я в цьому не можу роздуплитись.. =(
Давайте по порядку, по одному условию пишите будем помогать вам написать скрипт, заодно и разберетесь. Только пишите по одному условию, после ответа второе и т.д. Просто если будете писать все условия одним большим текстом, ни вы не разберетесь, ни другие пользователи.
Цитата: 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 копійок)
Робимо все на копії програми поки не получимо потрібний результат.
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
Цитата: Creat від Вересень 15, 2015, 09:02:24
А якщо груп товарів є всього 10, то по даному скрипту можна округляти ціни для певних вибраних груп, а інші залишаться як були, так?
Це приклад перераховуйте всі групи в скрипті ті що мають однакову націнку і округлення в одну умову і т.д. Основу алгоритмів якусь же вчили в школі.
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 від Вересень 15, 2015, 09:55:54
Дякую
Коли зробите і вийде, тоді й подякуєте, але це якихось 10 хвилин роботи і все готово :)
Цитата: Creat від Вересень 15, 2015, 10:06:55
Цитата: molotokk від Вересень 15, 2015, 09:55:54
Дякую
Коли зробите і вийде, тоді й подякуєте, але це якихось 10 хвилин роботи і все готово :)
А можна якось ціну роздрібну і оптову перецінити через націнки по групах, а ціну 1,2,3 - скриптом??
п.с. груп 10 а підгруп - близько 40, а націнка окрема для кожної підгрупи.
І скриптом треба переціняти лише ціну 1,2,3 для всіх, а щоб інше - через націнку пішло.
Можна. Треба знімати галочку в одній націнці ставити в іншій, натискати призначити ціни, вертати назад. І в автоматичному режимі працювати це не буде. Треба буде запускати скрипт руками кожен раз.
Простіше в скрипті прописати всі 40 груп. А особливо, якщо ці групи можна погрупувати по однакових націнках, округленнях то не буде 40 умов. Але й 40 умов прописати не важко.
Цитата: Creat від Вересень 18, 2015, 10:45:24
Можна. Треба знімати галочку в одній націнці ставити в іншій, натискати призначити ціни, вертати назад. І в автоматичному режимі працювати це не буде. Треба буде запускати скрипт руками кожен раз.
Простіше в скрипті прописати всі 40 груп. А особливо, якщо ці групи можна погрупувати по однакових націнках, округленнях то не буде 40 умов. Але й 40 умов прописати не важко.
Проблема в тому, що групи регулярно змінюються, змінюється іноді націнка в групах... і для 40+ груп робити це навіть раз в місяць скриптом - вельми не зручно =(
Змінилась група. Змінилась націнка і відразу змінили ці цифри в скрипті, так як перед цим змінювали в таблиці. Я не думаю що розробники захочуть ускладнювати і змінювати націнку по групах, так як є вже додатковий більш універсальний інструмент націнка скриптом.
Теоретично можна написати якусь невеличку програму, яка буде генерувати вам скрипт в залежності від націнок по групах та ще й заокруглення потрібне зробити, але я зараз цього не зможу зробити.
Хоча тут на форумі пробігав подібний макрос в Екселі.
Цитата: Creat від Вересень 18, 2015, 12:02:51
Теоретично можна написати якусь невеличку програму, яка буде генерувати вам скрипт..
Хоча тут на форумі пробігав подібний макрос в Екселі.
Мне кажется, Ексель наиболее удобен будет в данном случае, как достаточно распространенный инструмент
маю кілька груп товарів, зробив скрипт:
IF(grupa_id_in = 4) THEN
BEGIN
cena_r_out = udf_roundto(cena_in * 1.35, 100);
cena_o_out = udf_roundto(cena_in * 1.2, 5);
END
ELSE
IF(grupa_id_in = 3) THEN
BEGIN
cena_r_out = udf_roundto(cena_in * 1.25, 100);
cena_o_out = udf_roundto(cena_in * 1.15, 100);
END
простий, по шаблону.
прихідні ціни в основному в $ а продажні всі в гривні.
той скрипт націнив що роздрібна получилась в гривні але цифра така як для долара, а оптова нормально в гривні: шланг 12мм вхідна ціна 1$ роздрібна 1.35грн оптова 32грн і т.д.
що я роблю не так?
мені треба щоб в групі 4 націнка була 1.35 і 1.2, а заокруглення до гривні вверх і до 5 копійок вверх відповідно.
Цитата: molotokk від Червень 05, 2017, 23:17:34
маю кілька груп товарів, зробив скрипт:
IF(grupa_id_in = 4) THEN
BEGIN
cena_r_out = udf_roundto(cena_in * 1.35, 100);
cena_o_out = udf_roundto(cena_in * 1.2, 5);
END
ELSE
IF(grupa_id_in = 3) THEN
BEGIN
cena_r_out = udf_roundto(cena_in * 1.25, 100);
cena_o_out = udf_roundto(cena_in * 1.15, 100);
END
простий, по шаблону.
прихідні ціни в основному в $ а продажні всі в гривні.
той скрипт націнив що роздрібна получилась в гривні але цифра така як для долара, а оптова нормально в гривні: шланг 12мм вхідна ціна 1$ роздрібна 1.35грн оптова 32грн і т.д.
що я роблю не так?
мені треба щоб в групі 4 націнка була 1.35 і 1.2, а заокруглення до гривні вверх і до 5 копійок вверх відповідно.
Посмотрите по ссылке:
http://www.softbalance.com.ua/forum/index.php/topic,2883.msg21980.html#msg21980 (http://www.softbalance.com.ua/forum/index.php/topic,2883.msg21980.html#msg21980)
Дякую, буду дивитись
Добрий день.
основна валюта -долар, національна - гривня!
то як здійснюється націнка для обліку мене майже влаштовує, але
Чи можна округляти ціни тільки коли формуються документи?
Яким чином округляти ціни для прайса, та видаткових накладних??