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

Наценка на товары и курс валюты

Автор isian1, Лютий 16, 2014, 12:57:35

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

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

Creat

Цитата: 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

isian1

#16
Я маю на увазі що своя націнка для гривні а своя націнка для долара ,

isian1

Пробував редагувати скрипт ось так :
IF (cena_in <= 1 and cena_in_curr_id = 1) THEN
але видає помилку при збереженні , що не розумію , ну матюкається на "cena_in_curr_id"

admin

#18
Если вы про "Наценки SQL скриптом" в окне "Наценки на товары" то такой переменной как cena_in_curr_id там нет, т.е. вообще нет в этом скрипте переменной валюты товара.

Все что говориться в теме http://www.softbalance.com.ua/forum/index.php/topic,400.0.html никак не касается "Наценки SQL скриптом", скрипты из этой темы предназначены для меню Опции : SQL менеджер.

isian1

 А как тогда в наценке скриптом прописать наценку для двух валют ? или это невозможно?

isian1

Еще сегодня заметил проблемку : если писать скриптом наценку в зависимости от вх. цены , а потом прописать другую наценку для определенных груп то автоматическая наценка считает по первой наценки , пример:
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 добавляю товар,  а автоматическая наценка считает по первому варианту. (пересчитывает только после переоценки группы)

Creat

У вас з логікою проблема, я маю на у вазі в скрипті :).
Ви після першого
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
---

isian1

#22
логично , я уже догадался . Спасибо , а то  уже забыл студенческие годы и информатику с Паскалем  :D .
А в институтах все говорят : " И где мне оно в жизни понадобится... ." :D  , 
Но все таки автоматическая наценка начисляется первого скрипта....

Creat

Якщо ви логічно складете скрипт то все буде працювати!
Покажіть всеь ваш і я спробую сказати де помилка.
Скрипт він один (а не перший і другий) головне правильно сформулювати логіку.

vasilyev4

Возник вопрос, как сделать так, чтобы в справочнике товар "Цена розн." переоценивалась и отображалась в грн., а остальные цены как "Цена опт", "Цена 1" "Цена 2" и "Цена 3" переоценивалась и отображалась в том же справочнике в дол.
Объясню почему так, одна торг. точка продает в розницу в гривне, а другая опт в дол.

admin

Цитата: vasilyev4 від Березень 01, 2014, 21:14:51
Возник вопрос, как сделать так, чтобы в справочнике товар "Цена розн." переоценивалась и отображалась в грн., а остальные цены как "Цена опт", "Цена 1" "Цена 2" и "Цена 3" переоценивалась и отображалась в том же справочнике в дол.

Валюту можно установить разную только для прихода и всех расходных цен.

Цитата: vasilyev4 від Березень 01, 2014, 21:14:51
Объясню почему так, одна торг. точка продает в розницу в гривне, а другая опт в дол.

Так, а что мешает продавать одной в гривне, а другой в долларе если цена например указана в долларе. В одной точке просто указывайте в расходке доллар, в другой гривну, тут будет просто пересчитываться по курсу при выписке.

vasilyev4

#26
Тогда встречный вопрос, как сделать так что-бы в счет-фактуре и расходной накладной розничная цена (cena_r)  округлялась, без копеек?

victorpolo

Подскажите скрипт для обновления цены для определенной группы товара?
UPDATE tovar_name SET CENA_R = CENA_R * 1.1 -- это по всему справочнику (+10%). А как сделать , чтобы применялось только для определенной группы? И где можно узнать ID нужной группы?

admin

Цитата: 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

Creat

Опції - націнки на товари - там бачите всі групи і їх ID .
Зручніше скриптом то
SELECT
  num,
  name
FROM
  tip

num - номер группы
name - название группы
Інша вкладка націнка скриптом - там можете підправити скрипт під себе. І цей скрипт буде діяти постійно.

Якщо ж вам більш зручно робити через SQL менеджер, про який ви говорите то
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 - номер группы