Здравствуте форумчане! С недавного времени начал активно внедрять программу в роботу фирмы и столкнулся с множеством проблем и недоработок которые пользователю нужно устранять самому ("К разработчикам нет никаких претензий , так как я понимаю что на свои деньги программа и так очень даже хороша")
Программа работает в сетевом режиме . В новой версии программы есть наценка скриптом , я его с осилил но не до конца вот могу поделится если кому надо:
Написал скрипт с помощью инструкций разработчиков : в зависимости от входящей цены (в у.е) олтдельная наценка (если товар закупка 1 у.е. то наценка на розницу 100% , цена 1 -70% и т.д)и перевод в гривну :
IF (cena_in <= 1 ) THEN (если вх. цена меньше или равняется 1 долару)
BEGIN
-- вычисляем курс для валюты с ID = 1 (в нашем случае это долар )
SELECT
kurs
FROM
currency
WHERE
num =1
INTO
:valuta_kurs;
-- наценка 100% розничной, 30% оптовой, 60% цена 1, 70% цена 2, 60% цена 3, для приходной цены до 1 (у.е), округление до двух знаков после запятой
cena_r_out = udf_roundto((cena_in * 2)*valuta_kurs, 2);
cena_o_out = udf_roundto((cena_in * 1.3)*valuta_kurs, 2);
cena_1_out = udf_roundto((cena_in * 1.6)*valuta_kurs, 2);
cena_2_out = udf_roundto((cena_in * 1.7)*valuta_kurs, 2);
cena_3_out = udf_roundto((cena_in * 1.8)*valuta_kurs, 2);
END
ELSE
IF (cena_in > 1 AND cena_in <= 5) THEN
BEGIN
-- вычисляем курс для валюты с ID = 1 (в нашем случае это долар )
SELECT
kurs
FROM
currency
WHERE
num =1
INTO
:valuta_kurs;
-- наценка 50% розничной, 20% оптовой, 30% цена 1, 35% цена 2, 40% цена 3 , при приходной цене от 1 до 5 у.е. и персчет в гривну.), два знака после запятой
cena_r_out = udf_roundto((cena_in * 1.5)*valuta_kurs, 2);
cena_o_out = udf_roundto((cena_in * 1.2)*valuta_kurs, 2);
cena_1_out = udf_roundto((cena_in * 1.3)*valuta_kurs, 2);
cena_2_out = udf_roundto((cena_in * 1.35)*valuta_kurs, 2);
cena_3_out = udf_roundto((cena_in * 1.4)*valuta_kurs, 2);
END
Вот таким скриптом мне считает программа весь склад , но есть проблема , а точнее две:
1) есть товар на который я ставлю свою цену: ну например программа считает 50% - а мне нужно 30% - нуя ее и ввожу вручную - и она ставится...:) , но тут вытекает другая проблема:
2) Меняется курс долара (закупка у нас по курсу долара) я его ввожу в валюте например с 8,5 меняю на 9,0 и делаю переоценку склада ........ и тот товар на который я поставил 30% вручную программа поставила запрограмированих 50%
- таких товаров многовато (практически в каждой групе по несколько ) и оцениваются они не потому что я так захотел , а так построилася цена на рынке и тут уже вопрос не о зарабатывании денег а о репутации , конкурентоспособности магазина .
Кто как реализовал наценку относитель курса ???
А навіщо при зміні курсу проводити заново націнку?
І так повинно працювати просто по новому курсу.
Ну а для націнки.
Зробити для цих товарів окремі групі зі своїми товарами і туди включити відповідні товари
тобто
група 30%
група 50%
і в скрипті зробити аналіз, що для цих груп робити відповідні націнки.
При смене курса склад не переоценивается , задавал этот вопрос даже на техподдержку - сказали нужно переоценивать склад .
А создавать групы 30% 40% и т.д. неудобно ,особенно когда количество товаров больше 3-5 тыс.
Я не про те.
Якщо валюту розхідну поставити долар, то при виписці в гривнях буде рахувати по встановленому вами курсу.
Цитата: isian1 від Лютий 16, 2014, 12:57:35
- таких товаров многовато (практически в каждой групе по несколько ) и оцениваются они не потому что я так захотел , а так построилася цена на рынке и тут уже вопрос не о зарабатывании денег а о репутации , конкурентоспособности магазина .
Декілька в кожній групі - це не так і багато.
Але якось програма повинна зрозуміти що саме на ці товари треба особливу націнку. В задумці розробників це якраз особлива група.
Я також працював над таким питанням. Я пробував задіяти додаткові поля в довіднику товарів, але скрипт націнки не бачить ці поля. Я пробував якраз вказати в додатковому полі товару що націнка для нього саме 30%, але коли звертався з скрипта то він не бачить цього поля.
Але мені здається що вам повинна підійти якраз розхідна валютна ціна. Тоді ви змінюєте просто курс і більше нічого робити не треба, програма сама при виписці в гривні перерахує курс.
Интересно , сегодня попробую спасибо большое за помощь .
А насчет товара со своей ценной - если он дешевле стандартной наценки то его можно продавать по дисконту (Цена1,цена2,цена3) - одна из них сто процентов подойдет.
Ну скакати по цінах 1,2,3 при виписці документів для одного клієнта це взагалі не вихід. Це ж треба ще пам'ятати що саме для цього товару треба вибрати іншу ціну. Це точно не варіант.
Якщо всі ціни не використовуються то можна спробувати так
Всім встановити ціну 3 рівну 0 , присвоїти для цих певних товарів якусь специфічну ціну наприклад ціну 3 - 3000000
і тоді в скрипті перевіряти якщо в товару ціна 3 = 300000 то використовувати відповідну націнку 30% і т.д.
Це реально і не складно.
Тоді й вибирати легко відсортував всі товари з ціною 3 = 3000000 і розумієш що в них націнка 30%, ціна3 = 4000000 націнка 40% і т.д.
Это перенаправленное письмо:
От: УкрСклад
Кому: isian1
Дата: 17 лютого 2014 р., 9:41:34
Тема: Подскажите пожалуйста
===8<==============Оригинал текста письма===============
Приветствую Вас,
16.02.2014 в 9:13, Вы писали:
К> Здравствуйте !
К> У меня наценка стоит SQL скриптом и если я нажму кнопку назначить
К> новые цены то программа назначит на все товары , Вопрос : "А если
К> на складе 100-200 товаров в которых наценка стоит своя , не
К> стандартная например 15 или 20% а назначенная вручную , то тогда
К> программа поменяет ее цену относительно автоматической настройки
К> или скриптом или по группам.
Исключите в скрипте эти группы товаров, вот пример исключения групп
34, 35:
IF(grupa_id_in NOT IN (34,35)) THEN
BEGIN
-- наценки на товары кроме групп 34,35
END
исключение по ID товаров так
IF(tovar_id_in NOT IN (246,332)) THEN
BEGIN
-- наценки на товары кроме 246,332
END
К> А хотелось бы что бы цена (розница,
К> опт, цена1,цена2,цена3) увеличилась на увеличение или уменьшение
К> курса . Подскажите пожалуйста как это можно сделать или скрипт какой.
Чтобы цена зависела от курса надо укатывать ее в справочнике в валюте,
а не в гривне. Для примера если товар стоит 10 долларов, при выписке
документа, когда указываете гривну, программа пересчитывает по курсу
вашу цену, вчера был курс 8.00, программа посчитала 80, а сегодня стал
курс 9.00, программа посчитала 90. А если укажите в справочнике для
товара цену 80 грн., то неважно какой курс товар как стоил 80, так и
будет стоить.
Вот старая тема когда также задавали вопросы в 2008 году:
http://www.softbalance.com.ua/forum/index.php/topic,400.0.html (http://www.softbalance.com.ua/forum/index.php/topic,400.0.html)
К> P.S. предпочитаю писать электронку так как на звонки не хочется отнимать ваше время.
Главное не дублируйте сообщения на форум и на поддержку.
С уважением, Дмитрий Котельников
Разработчик программы Склад Украина.
===8<===========Окончание оригинала теста письма========
У меня цена прихода стоит сейчас в доларе , расход в гривне ( и это прописано в скрипте ) . Из скрипта убираю перевод в гривну и ставлю расход в доларе . Валюту выписки ставлю в гривне непосредственно при продаже . неудобно - особенно с окна касира ,
Цитата: Creat від Лютий 17, 2014, 09:31:12
Ну скакати по цінах 1,2,3 при виписці документів для одного клієнта це взагалі не вихід. Це ж треба ще пам'ятати що саме для цього товару треба вибрати іншу ціну. Це точно не варіант.
Я не так маю на увазі : на ціннику на цей товар ставлю "акція" так як він по меншій ціні , потім вписую нового клієнта з именем Акция и ставлю йому ціну та яка потрібна наприклад Ціна2. И продаю всім як для клиєнта акция.
А как поставить выписку в гривне в Окне касира , если на товар расход в доларе ?
Ви поставте валюту розходу долар і ціни встановіть в доларах. А у вікні касира для продажу буде перераховувати в гривнях по встановленому вами курсу. Заведіть пробний товар і спробуйте.
пробовал пять минут назад - если приход и расход в доларах то и в окне касира долар , как поменять незнаю ...
В таблиці показує ціну в доларах, а в документ вибивиє перераховану в гривнях ціну.
Хіба що в довіднику валют у вас як основна встановлено долар. Змініть на гривню і все буде ОК.
Сорри .... поставил основную валюту в гривнах считает и в окне касира и в расходных по курсу :) , Спасибо за подсказку .
Проанализировал все моменты - для электроники лучше и приход и расход ставить в доларах , тогда можно уйти от необходимости после каждой смены курса переоценивать склад ,а следовательно и цены которые ставятся не по скрипту ,а вручную тоже слетать не будут . А то что приходит в гривнах особо от курса не зависит.
Теперь надо на всех товарах поставить валюту расхода "долар" - это как то можно скриптом ? сума уже стоит нужная , а вот валюта грн и поэтому в расходках и в окне касира ранее неперсчитывало.
несилен в скриптах , вот таким скриптом должно весь товар который валюта захода грн первести в дол:
П.С.: получилось :)
UPDATE
tovar_name
SET
cena_curr_id = 1
WHERE
cena_curr_id = 0
если id грн=0 а id $=1
и для расхода :
UPDATE
tovar_name
SET
cena_out_curr_id = 1
WHERE
cena_out_curr_id = 0
Может кому пригодится ;) .
А вот как прописать что бы для разных валют считало разные наценки , наценка которую переделал :
IF (cena_in <= 1 ) THEN
BEGIN
-- наценка 100% розничной, 30% оптовой, 60% цена 1, 70% цена 2, 60% цена 3, для приходной цены до 1 (у.е), округление до двух знаков после запятой
cena_r_out = udf_roundto(cena_in * 2, 2);
cena_o_out = udf_roundto(cena_in * 1.3, 2);
cena_1_out = udf_roundto(cena_in * 1.6, 2);
cena_2_out = udf_roundto(cena_in * 1.7, 2);
cena_3_out = udf_roundto(cena_in * 1.8, 2);
END
Цитата: isian1 від Лютий 17, 2014, 17:44:54
А вот как прописать что бы для разных валют считало разные наценки , наценка которую переделал
Не зовсім розумію питання, але
IF (cena_in <= 1 and cena_out_curr_id = 1) THEN
Тобто якщо ціна меньша рівна 1 і валюта розходу 1 (долар) то ваші націнки і т.д.
http://www.softbalance.com.ua/forum/index.php/topic,400.0.html (http://www.softbalance.com.ua/forum/index.php/topic,400.0.html)
Я маю на увазі що своя націнка для гривні а своя націнка для долара ,
Пробував редагувати скрипт ось так :
IF (cena_in <= 1 and cena_in_curr_id = 1) THEN
але видає помилку при збереженні , що не розумію , ну матюкається на "cena_in_curr_id"
Если вы про "Наценки SQL скриптом" в окне "Наценки на товары" то такой переменной как cena_in_curr_id там нет, т.е. вообще нет в этом скрипте переменной валюты товара.
Все что говориться в теме http://www.softbalance.com.ua/forum/index.php/topic,400.0.html (http://www.softbalance.com.ua/forum/index.php/topic,400.0.html) никак не касается "Наценки SQL скриптом", скрипты из этой темы предназначены для меню Опции : SQL менеджер.
А как тогда в наценке скриптом прописать наценку для двух валют ? или это невозможно?
Еще сегодня заметил проблемку : если писать скриптом наценку в зависимости от вх. цены , а потом прописать другую наценку для определенных груп то автоматическая наценка считает по первой наценки , пример:
IF (cena_in <= 1 ) THEN
-- Общая наценка на весь склад
BEGIN
cena_r_out = udf_roundto(cena_in * 2, 2);
cena_o_out = udf_roundto(cena_in * 1.1, 2);
cena_1_out = udf_roundto(cena_in * 1.4, 2);
cena_2_out = udf_roundto(cena_in * 1.5, 2);
cena_3_out = udf_roundto(cena_in * 1.6, 2);
END
---
---Другие наценки зависящие от вх. цены.
---
ELSE
IF(grupa_id_in IN (76,78,74,75,82,81,215,356,354,324)) THEN -- Для этих груп хочу другую наценку ,
BEGIN
IF (cena_in <= 1 ) THEN
BEGIN
cena_r_out = udf_roundto(cena_in * 3.5, 2);
cena_o_out = udf_roundto(cena_in * 1.5, 2);
cena_1_out = udf_roundto(cena_in * 1, 2);
cena_2_out = udf_roundto(cena_in * 1.8, 2);
cena_3_out = udf_roundto(cena_in * 3.2, 2);
END
При этом после сохранения захожу в группу 76 добавляю товар, а автоматическая наценка считает по первому варианту. (пересчитывает только после переоценки группы)
У вас з логікою проблема, я маю на у вазі в скрипті :).
Ви після першого
IF (cena_in <= 1 ) -- Общая наценка на весь склад
в цей ELSE
IF(grupa_id_in IN (76,78,74,75,82,81,215,356,354,324)) THEN -- Для этих груп хочу другую наценку ,
BEGIN
IF (cena_in <= 1 ) THEN
вже не попадете бо виконалась перша умова
Можна так
IF(grupa_id_in IN (76,78,74,75,82,81,215,356,354,324)) THEN -- Для этих груп хочу другую наценку ,
BEGIN
IF (cena_in <= 1 ) THEN
BEGIN
cena_r_out = udf_roundto(cena_in * 3.5, 2);
cena_o_out = udf_roundto(cena_in * 1.5, 2);
cena_1_out = udf_roundto(cena_in * 1, 2);
cena_2_out = udf_roundto(cena_in * 1.8, 2);
cena_3_out = udf_roundto(cena_in * 3.2, 2);
END
ELSE
IF (cena_in <= 1 ) THEN
-- Общая наценка на весь склад
BEGIN
cena_r_out = udf_roundto(cena_in * 2, 2);
cena_o_out = udf_roundto(cena_in * 1.1, 2);
cena_1_out = udf_roundto(cena_in * 1.4, 2);
cena_2_out = udf_roundto(cena_in * 1.5, 2);
cena_3_out = udf_roundto(cena_in * 1.6, 2);
END
---
логично , я уже догадался . Спасибо , а то уже забыл студенческие годы и информатику с Паскалем :D .
А в институтах все говорят : " И где мне оно в жизни понадобится... ." :D ,
Но все таки автоматическая наценка начисляется первого скрипта....
Якщо ви логічно складете скрипт то все буде працювати!
Покажіть всеь ваш і я спробую сказати де помилка.
Скрипт він один (а не перший і другий) головне правильно сформулювати логіку.
Возник вопрос, как сделать так, чтобы в справочнике товар "Цена розн." переоценивалась и отображалась в грн., а остальные цены как "Цена опт", "Цена 1" "Цена 2" и "Цена 3" переоценивалась и отображалась в том же справочнике в дол.
Объясню почему так, одна торг. точка продает в розницу в гривне, а другая опт в дол.
Цитата: vasilyev4 від Березень 01, 2014, 21:14:51
Возник вопрос, как сделать так, чтобы в справочнике товар "Цена розн." переоценивалась и отображалась в грн., а остальные цены как "Цена опт", "Цена 1" "Цена 2" и "Цена 3" переоценивалась и отображалась в том же справочнике в дол.
Валюту можно установить разную только для прихода и всех расходных цен.
Цитата: vasilyev4 від Березень 01, 2014, 21:14:51
Объясню почему так, одна торг. точка продает в розницу в гривне, а другая опт в дол.
Так, а что мешает продавать одной в гривне, а другой в долларе если цена например указана в долларе. В одной точке просто указывайте в расходке доллар, в другой гривну, тут будет просто пересчитываться по курсу при выписке.
Тогда встречный вопрос, как сделать так что-бы в счет-фактуре и расходной накладной розничная цена (cena_r) округлялась, без копеек?
Подскажите скрипт для обновления цены для определенной группы товара?
UPDATE tovar_name SET CENA_R = CENA_R * 1.1 -- это по всему справочнику (+10%). А как сделать , чтобы применялось только для определенной группы? И где можно узнать ID нужной группы?
Цитата: victorpolo від Березень 06, 2014, 09:39:51
Подскажите скрипт для обновления цены для определенной группы товара?
UPDATE tovar_name SET CENA_R = CENA_R * 1.1 -- это по всему справочнику (+10%). А как сделать , чтобы применялось только для определенной группы? И где можно узнать ID нужной группы?
http://www.softbalance.com.ua/forum/index.php/topic,23.msg1273.html#msg1273 (http://www.softbalance.com.ua/forum/index.php/topic,23.msg1273.html#msg1273)
Опції - націнки на товари - там бачите всі групи і їх ID .
Зручніше скриптом то
SELECT
num,
name
FROM
tip
num - номер группы
name - название группы
Інша вкладка націнка скриптом - там можете підправити скрипт під себе. І цей скрипт буде діяти постійно.
Якщо ж вам більш зручно робити через SQL менеджер, про який ви говорите то
http://www.softbalance.com.ua/forum/index.php/topic,400.msg2973.html#msg2973 (http://www.softbalance.com.ua/forum/index.php/topic,400.msg2973.html#msg2973)
UPDATE
tovar_name
SET
cena_r = cena_r *1.2
WHERE
tip = 1111
tip - номер группы
Цитата: Creat від Березень 06, 2014, 10:30:24
Опції - націнки на товари - там бачите всі групи і їх ID .
Зручніше скриптом то
SELECT
num,
name
FROM
tip
num - номер группы
name - название группы
что то не пойму, где тут номер группы? (прикрепленный файл)
11, 5, 32.....