Закупочная цена в евро, при наценке скриптом:
IF(grupa_id_in=477)THEN
BEGIN
cena_o_out=udf_roundto(cena_in*1.32,1);
END
оптовая цена пересчитывает тоже в евро, хотя когда товар импортировался в программу, отмечалось, что приходная цена в евро, а расходная в гривне.
При обычной наценке всё работало, но появилась необходимость редактировать кол-во знаков после запятой в разных группах, пришлось обратиться к скрипту (я так понимаю, что другим способом никак?)
Так вот что изменить в скрипте, чтоб расходные цены были в гривне?
И можно ли сразу перечислить несколько групп, типа (grupa_id_in=477,488,489 и.т.д.
Заранее благодарен.
По нескольким группам делайте так:
IF(grupa_id_in IN (34,55,45)) THEN
А вот с валютой мы за нее забыли в наценках скриптом и добавить чуть сложновато т.к. тело процедуры уже многие для себя исправили, в след. версиях что-то придумаем чтобы делать выборку к валюте. Можно использовать для курса одну из переменных цен, но это неправильно. Ждите обновлений, а пока используйте статические курсы т.е. прописывайте курс прямо в скрипте.
А как этот скрипт запускается?
Цитата: Creat від Жовтень 15, 2013, 20:40:12
А как этот скрипт запускается?
Меню Опции : Наценки на товары : Наценки SQL скриптом.
Следите за обновлениями :)
ЦитатаУкрСклад 5.75 (01.10.2013)
--------------------------------------------------------
- Добавлен импорт контрагентов из файла CSV (меню Опции : Импорт товаров / контрагентов из файла).
- В меню Опции : Наценки на товары добавлена штатная наценка SQL скриптом (для более опытных пользователей и точной настройки наценок) .
- Добавлена опция "Текущую дату получать с Сервера программы".
- Доработана опция "Изменять текущую дату", была возможность обойти это ограничение прав.
- Доработано: в некоторых печатных формах не печаталась валюта для НДС.
- Исправлена проблема с идентификацией пользователя при событии удалении документа в "Действиях пользователей".
- Исправлена проблема с отметкой на закладке "Права на документы и справочники".
- Добавили ID групп в "Настройка наценок по группам товара".
- Исправлена ошибка с 50% скидкой в Окне кассира.
- Исправлена проблема выбора ранее удаленного контрагента / сотрудника сканером штрих-кодов.
- Исправлена ошибка в оплате товаров кассовым ордером из "Окна кассира", иногда не помечало документ как проведенный.
- Обновлен справочник МФО Банков Украины.
Я то слежу! И уже предлагал вам несколько раз делать анонс выхода новых версий здесь на форуме в отдельной теме.
Я имел ввиду что нет такой кнопки как во вкладке наценка по группах - назначить новые цены!
Т.е. мой вопрос в следующем
1) поправил скрипт под себя
2) как после этого назначить эти цены товарам?
3) предложение добавьте в пример IF(grupa_id_in IN (34,55,45)) THEN
4) попробовал и вот первые неудобства - при пользовании наценок по группам - цена меняется после окончания ввода розничной цены - и мы сразу видим какая будет цена с наценкой и при желании можем подкорректировать вверх или вниз(ну или округлить). А при автоматической наценке скриптом цена рассчитывается уже при сохранении и ты уже мог вписать свою нужную цену, но при сохранении она будет подкорректирована соответственно скрипту. Некоторые товары в коллекции немного неудачны и цену надо ставить ниже стандартной наценки. При таком раскладе автоматической наценкой скриптом невозможно пользоваться вообще.
Цитата: Creat від Жовтень 17, 2013, 10:15:55
Я то слежу! И уже предлагал вам несколько раз делать анонс выхода новых версий здесь на форуме в отдельной теме.
Новости есть на сайте, можно подписаться на рассылку на емаил или по rss, дублировать на форуме считаем лишним.
Цитата: Creat від Жовтень 17, 2013, 10:15:55
Я имел ввиду что нет такой кнопки как во вкладке наценка по группах - назначить новые цены!
На данный момент цены рассчитываются только при сохранении товара. Наценка только появилась, а вы все сразу хотите, так не получается, всего сразу не предусмотришь и не сделаешь. В новой версии будет уже по группе делать и по всему справочнику.
Цитата: Creat від Жовтень 17, 2013, 10:15:55
3) предложение добавьте в пример IF(grupa_id_in IN (34,55,45)) THEN
Для новый баз такое уже сделано и валюты тоже, а вот для старых нельзя уже ничего менять, т.к. процедуры переписаны. Кнопку восстановить по-умолчанию уже сделали, будет в след. версии, а валюта включиться при перекомпиле процедуры т.е. при пересохранении.
Цитата: Creat від Жовтень 17, 2013, 10:15:55
А при автоматической наценке скриптом цена рассчитывается уже при сохранении и ты уже мог вписать свою нужную цену, но при сохранении она будет подкорректирована соответственно скрипту. Некоторые товары в коллекции немного неудачны и цену надо ставить ниже стандартной наценки. При таком раскладе автоматической наценкой скриптом невозможно пользоваться вообще.
Наценка скриптом будет работать только после сохранения товара, это особенность работы триггеров с хранимой процедурой, считаем что все неясности в ценах можно загладить тем же скриптом. Кому подходит можно пользоваться, не подходит пользуемся стандартными наценками.
Хотя можно подсвечивать новые цены до сохранения, но надо переделывать логику, убирать тригеры и делать через саму программу просчет.
Цитата: admin від Жовтень 17, 2013, 16:34:53
Хотя можно подсвечивать новые цены до сохранения, но надо переделывать логику, убирать тригеры и делать через саму программу просчет.
Я назвал реальные ситуации, когда это надо - надо переоценить конкретную позицию товара в группе. Всё автонаценку скриптом надо выключать. При приходе товара определённые позиции можно поставить дороже, определённые уценить.
Мы сейчас так и используем наценку по группах - увидели какая цена будет исходя из процента наценки и уже ручками округлили цену до необходимой, или меняем из соображений продажности :)
Ну и сама логика работы товароведа - зашёл в карточку товара, поменял расходную цену ручками, сохранил а цену уже опять другая :(
Я за
Цитата: admin від Жовтень 17, 2013, 16:34:53
переделывать логику, убирать тригеры и делать через саму программу просчет.
А так возможность наценки скриптом классная, логичная и удобная. Я когдато давно ещё просил добавить округления в наценки по группам. А таким вариантом реализуются все хотелки по ценообразованию.
Спасибо, хорошо работает.
И ещё пока горячо в этом направлении. Сделать возможность сохранения нескольких скриптов, как SQL менеджере.
Как правильно учитывать валюту товара для наценки скриптом? Например в одной групе есть товар за 20 доларов и товар за 500 грн, делаю вот так что бы учитывалась валюта , но что-то неполучается :
IF (cena_in > 5000 AND cena_in <= 8000 AND valuta_id = 1) THEN
BEGIN
cena_r_out = udf_roundto(cena_in * 1.10, 2);
cena_o_out = udf_roundto(cena_in * 1.03, 2);
cena_1_out = udf_roundto(cena_in * 1.07, 2);
cena_2_out = udf_roundto(cena_in * 1.08, 2);
cena_3_out = udf_roundto(cena_in * 1.09, 2);
END
ELSE
IF (cena_in > 5000 AND cena_in <= 8000 AND valuta_id = 0) THEN
BEGIN
cena_r_out = udf_roundto(cena_in * 1.20, 2);
cena_o_out = udf_roundto(cena_in * 1.08, 2);
cena_1_out = udf_roundto(cena_in * 1.15, 2);
cena_2_out = udf_roundto(cena_in * 1.17, 2);
cena_3_out = udf_roundto(cena_in * 1.18, 2);
END
ELSE
У нас скриптом в зависимости от цены захода делается наценка на розницу , а также по групам ,
Но получается что если неучитывать валюту то товар стоимость 1 долар будет наценка 50% а если 22 грн - 15% хотя один товар но нацеки будут по разному считать.
Как здесь правильно прописать ,а то от експериментов уже :o
Вот из переписки поддержки:
Это перенаправленное письмо:
От: УкрСклад
Кому: Денис
Дата: 2 вересня 2015 р., 12:32:05
Тема: Вопрос по скрипту
===8<==============Оригинал текста письма===============
Приветствую Вас,
01.09.2015 в 10:32, Вы писали:
ДЖ> Здравствуйте!
ДЖ> Во вложении я изложил суть проблемы с примерами
Надо вначале узнать ID приходной валюты товара
SELECT
tn.cena_curr_id
FROM
tovar_name tn
WHERE
tn.num = tovar_id_in
INTO
tmp_int1;
-- tmp_int1 = ID приходной валюты товара
а далее проверять в условии наценки еще и валюту, вот пример для
валюты 2 это ЕВРО:
IF (tmp_int1 = 2 AND grupa_id_in IN (20,43,46) AND ((cena_in*valuta_kurs) > 1 AND (cena_in*valuta_kurs) <= 1200)) THEN
--
С уважением, Дмитрий Котельников
Служба поддержки УкрСклад.
===8<===========Окончание оригинала теста письма========
В вашем случае valuta_id - это переменная которая не заполнена. Ниже пример где заполняем valuta_id текущего товара:
SELECT
tn.cena_curr_id
FROM
tovar_name tn
WHERE
tn.num = :tovar_id_in
INTO
valuta_id;
-- valuta_id = ID приходной валюты товара
-- если надо ID расходной валюты узнавать, выше вместо cena_curr_id используйте cena_out_curr_id
IF (cena_in > 5000 AND cena_in <= 8000 AND valuta_id = 1) THEN
BEGIN
cena_r_out = udf_roundto(cena_in * 1.10, 2);
cena_o_out = udf_roundto(cena_in * 1.03, 2);
cena_1_out = udf_roundto(cena_in * 1.07, 2);
cena_2_out = udf_roundto(cena_in * 1.08, 2);
cena_3_out = udf_roundto(cena_in * 1.09, 2);
END
ELSE
IF (cena_in > 5000 AND cena_in <= 8000 AND valuta_id = 0) THEN
BEGIN
cena_r_out = udf_roundto(cena_in * 1.20, 2);
cena_o_out = udf_roundto(cena_in * 1.08, 2);
cena_1_out = udf_roundto(cena_in * 1.15, 2);
cena_2_out = udf_roundto(cena_in * 1.17, 2);
cena_3_out = udf_roundto(cena_in * 1.18, 2);
END
Или сразу две валюты узнаем:
SELECT
tn.cena_curr_id,
tn.cena_out_curr_id
FROM
tovar_name tn
WHERE
tn.num = :tovar_id_in
INTO
tmp_int1,
tmp_int2;
tmp_int1 - ID входящей
tmp_int1 - ID расходной валюты