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

Наши программы => УкрСклад => Тема розпочата: Sanych від Жовтень 08, 2008, 16:48:32

Назва: ДОЛАР СКАЧЕТ !!! Как перевести товар во всей БД из грн. в У.Е. ?
Відправлено: Sanych від Жовтень 08, 2008, 16:48:32
ДОЛАР СКАЧЕТ !!!   :o

Постоянно работаем с УкрСкладом в гривнах.
Вносим приход, списываем расход и т.д. ...
В связи с нестабильностью на рынке - поставшики переходят на расчеты в у.е.
И теперь:
- 1 нед. назад получили товар за 4800 грн. ($1000)
- теперь курс 6,1 и мы уже должні за него 6100 грн.  :(  ($1000)
- каждый день переоценивать товар невозможно.

Как перевести уже внесённый товар во всей БД из грн.  в У.Е. ?
Назва: Re: ДОЛАР СКАЧЕТ !!! Как перевести товар во всей БД из грн. в У.Е. ?
Відправлено: admin від Жовтень 09, 2008, 10:11:04
Скрипт выполнит перевод справочника товаров с цен в гривне в цены доллар

1. ВАЖНО. Делаем резерв базы данных меню Опции : Резервирование
2. В SQL менеджере выполняем скрипт:

SELECT
  num,
  name
FROM
  currency
WHERE
  visible = 1


В результате получаем таблицу валют:

num   name
1     Гривна
2     Доллар
3     Евро


num - внутренний номер валюты
name - название валюты

3. Далее делаем сами изменения в справочнике товаров:
только розничные цены:

UPDATE
  tovar_name
SET
  cena_r = cena_r / 5.65,
  cena_o = cena_o / 5.65,
  cena_1 = cena_1 / 5.65,
  cena_2 = cena_2 / 5.65,
  cena_out_curr_id = 1
WHERE
  cena_out_curr_id = 0


только приходная цена:

UPDATE
  tovar_name
SET
  cena = cena / 5.65,
  cena_curr_id = 1
WHERE
  cena_curr_id = 0



Объяснения по скрипту

cena_out_curr_id - внутренний номер расходной валюты
cena_curr_id - внутренний номер приходной валюты
cena - цена прихода
cena_r - цена розничная
cena_o - цена оптовая
cena_1 - цена 1
cena_2 - цена 2

/---------------------------
cena_2 = cena_2 / 5.65,     <-- cena_2 делим 5.65
  cena_out_curr_id = 1      <-- тут указывать внутренний номер валюты в долларах
WHERE
  cena_out_curr_id = 0      <-- тут указывать внутренний номер валюты в гривнах
/---------------------------
Назва: Re: ДОЛАР СКАЧЕТ !!! Как перевести товар во всей БД из грн. в У.Е. ?
Відправлено: Figa від Жовтень 09, 2008, 13:15:25
Спасибі. В мене все працює.
В мене інша проблема, як тепер перевести всі розрахунки в долар.
Завжди працював в ГРН, тому і всі архіви (накладні, ордери) в ГРН.
баланси всіх клієнтів також в ГРН.
Питання : Як це все також перевести в ГРН ?
І ще : як відредагувати всі товари на основну валюту (прихідну і розхідну) з гривні на долар ?
Назва: Re: ДОЛАР СКАЧЕТ !!! Как перевести товар во всей БД из грн. в У.Е. ?
Відправлено: admin від Жовтень 09, 2008, 17:44:32
Цитата: Figa від Жовтень 09, 2008, 13:15:25
Спасибі. В мене все працює.
В мене інша проблема, як тепер перевести всі розрахунки в долар.
Завжди працював в ГРН, тому і всі архіви (накладні, ордери) в ГРН.
баланси всіх клієнтів також в ГРН.
Питання : Як це все також перевести в ГРН ?
І ще : як відредагувати всі товари на основну валюту (прихідну і розхідну) з гривні на долар ?

Выписывать документы можете в любой валюте товар будет пересчитываться по курсу. Основная валюта это 0 (ноль) как установить справочник товаров описано выше. Вся отчетность и внутренние пересчеты идут в основной валюте, основную валюту менять нельзя во время работы программы.
Назва: Re: ДОЛАР СКАЧЕТ !!! Как перевести товар во всей БД из грн. в У.Е. ?
Відправлено: Portes від Жовтень 26, 2008, 12:16:19
Дмитрий, подскажите как сделать так что бы перевести не весь справочник товаров, а только определённую его группу с гривны в доллары, просто не все товары привязаны к валюте и было бы не правильно и нам это делать.
На сегодня в этих группах цена указана в гривнах при перерасчёте с долларов по курсу 5.00.
Назва: Re: ДОЛАР СКАЧЕТ !!! Как перевести товар во всей БД из грн. в У.Е. ?
Відправлено: Portes від Жовтень 28, 2008, 15:17:57
?
Назва: Re: ДОЛАР СКАЧЕТ !!! Как перевести товар во всей БД из грн. в У.Е. ?
Відправлено: admin від Жовтень 28, 2008, 17:00:29
Выполняйте скрипт:

SELECT
  num,
  name
FROM
  tip


получаем


num - номер группы
name - название группы


далее делаем уже изменения по курсу например в группе с номером 5, просто добавляем к скрипту

AND tip = 5

например:


UPDATE
  tovar_name
SET
  cena_r = cena_r / 5.65,
  cena_o = cena_o / 5.65,
  cena_1 = cena_1 / 5.65,
  cena_2 = cena_2 / 5.65,
  cena_out_curr_id = 1
WHERE
  cena_out_curr_id = 0 AND
  tip = 5



UPDATE
  tovar_name
SET
  cena = cena / 5.65,
  cena_curr_id = 1
WHERE
  cena_curr_id = 0 AND
  tip = 5
Назва: Re: ДОЛАР СКАЧЕТ !!! Как перевести товар во всей БД из грн. в У.Е. ?
Відправлено: v008 від Листопад 28, 2008, 15:00:13
спасибо. проблема решена. но у меня несколько поставщиков. и цены менялись по разным курсам... в коде товара первые 2 буквы - это код поставщика. можно скриптик для такого случая, чтобы перевести гривневые цены в валютные соответственно по каждому поставщику?
Назва: Re: ДОЛАР СКАЧЕТ !!! Как перевести товар во всей БД из грн. в У.Е. ?
Відправлено: DeFault від Листопад 28, 2008, 21:31:19
Цитата: v008 від Листопад 28, 2008, 15:00:13
спасибо. проблема решена. но у меня несколько поставщиков. и цены менялись по разным курсам... в коде товара первые 2 буквы - это код поставщика. можно скриптик для такого случая, чтобы перевести гривневые цены в валютные соответственно по каждому поставщику?

Добавте в условие
"...  tip = 5"
еще, например, такое
" and kod like "xx%" "
где xx Ваши "первые 2 буквы - это код поставщика" и получится
"...  tip = 5 and kod like "xx%" "
Назва: Re:ДОЛАР СКАЧЕТ !!! Как перевести товар во всей БД из грн. в У.Е. ?
Відправлено: jokester від Квітень 09, 2012, 04:34:47
Цитата: admin від Жовтень 09, 2008, 17:44:32
Выписывать документы можете в любой валюте товар будет пересчитываться по курсу. Основная валюта это 0 (ноль) как установить справочник товаров описано выше. Вся отчетность и внутренние пересчеты идут в основной валюте, основную валюту менять нельзя во время работы программы.
А что делать, если всё таки была изменена основная валюта с ГРН в ЄВРО, а потом обратно в ГРН, и сейчас при выписке расходной накладной цена в ЕВРО считается как ГРН * курс (сейчас 11), в не наоборот как должно быть (т.е. цена в ЕВРО = цена в ГРН / 11). Помогите!
Назва: Re:ДОЛАР СКАЧЕТ !!! Как перевести товар во всей БД из грн. в У.Е. ?
Відправлено: admin від Квітень 09, 2012, 09:59:33
Цитата: jokester від Квітень 09, 2012, 04:34:47
А что делать, если всё таки была изменена основная валюта с ГРН в ЄВРО, а потом обратно в ГРН, и сейчас при выписке расходной накладной цена в ЕВРО считается как ГРН * курс (сейчас 11), в не наоборот как должно быть (т.е. цена в ЕВРО = цена в ГРН / 11). Помогите!

Если было бы как должно быть, считало бы верно. Если не так считает значит выставьте вместо умножения деление, или наоборот.
Назва: Re: ДОЛАР СКАЧЕТ !!! Как перевести товар во всей БД из грн. в У.Е. ?
Відправлено: admin від Лютий 17, 2014, 09:40:01
up темы, т.к. много подобных вопросов как и в 2008 году
Назва: Re: ДОЛАР СКАЧЕТ !!! Как перевести товар во всей БД из грн. в У.Е. ?
Відправлено: victorpolo від Лютий 17, 2014, 10:20:42
Дык насколько я понимаю, отныне стабильного курса и не будет уже... НБУ отпускает курс на усмотрение рынка...
п.с.: нашей стране легче вообще отказаться от гривны и пользоваться долларами, так как гривна - пустышка и привязана на 100% к долларам и еврам... экономику положили надежно... одни торгаши в стране, поэтому и трясутся все, как бы доллар не скакнул куда...
Назва: Re: ДОЛАР СКАЧЕТ !!! Как перевести товар во всей БД из грн. в У.Е. ?
Відправлено: victorpolo від Березень 07, 2014, 14:49:28

UPDATE
  tovar_name
SET
  cena = cena / 5.65,
  cena_curr_id = 1
WHERE
  cena_curr_id = 0 AND
  tip = 5

А что означает в этом скрипте  cena_curr_id ? У меня без него все работает, цены меняются. а если с этой переменной - ничего не меняет...(((
Назва: Re: ДОЛАР СКАЧЕТ !!! Как перевести товар во всей БД из грн. в У.Е. ?
Відправлено: Creat від Березень 07, 2014, 17:28:40
Це значить порахувати ціну поділивши на курс, встановити що це ціна в доларах   cena_curr_id = 1, для тих у кого зараз ціна гривня 0 cena_curr_id = 0 та група 5.

Це Просили ті в кого прихідна ціна була в гривнях. Таким чином вони перерахували прихідну ціну в долар і встановили що прихідну ціну рахувати в доларах.
Назва: Re: ДОЛАР СКАЧЕТ !!! Как перевести товар во всей БД из грн. в У.Е. ?
Відправлено: victorpolo від Березень 11, 2014, 13:02:51
Не въехал, ну да ладно... доллары и валюты пока не интересуют...
Вопрос созрел дополнительный: как через SQL сделать наценку на товар по определенной группе так, чтобы при цене до 10,00 грн. новая цена округлялась до 2 знаков после запятой (0,00), а при цене выше 10,00грн. новая цена округлялась до десятых (0,0).
Пример: (здесь по группе №27 меняет цену с округлением до десятых) где здесь добавить условие цены до 10 и выше 10грн?
UPDATE
  tovar_Name
SET
  cena_r= CAST(cena_r *1.2  as NUMERIC(6,1))

WHERE TIP =27

Логику я понимаю, а синтаксис SQL- очень плохо... Может кто то подскажет?
Назва: Re: ДОЛАР СКАЧЕТ !!! Как перевести товар во всей БД из грн. в У.Е. ?
Відправлено: Creat від Березень 11, 2014, 16:34:16
Користуйтесь опції - націнка на товари - націнка SQL скриптом поставити галочку
IF(grupa_id_in = 103)  THEN
  BEGIN
   cena_r_out = udf_roundto(cena_in * 1.3,2);
     IF (cena_r_out >= 10) THEN cena_r_out = udf_roundto(cena_r_out, 1);
  END
Назва: Re: ДОЛАР СКАЧЕТ !!! Как перевести товар во всей БД из грн. в У.Е. ?
Відправлено: victorpolo від Березень 12, 2014, 12:15:28
Цитата: Creat від Березень 11, 2014, 16:34:16
Користуйтесь опції - націнка на товари - націнка SQL скриптом поставити галочку
IF(grupa_id_in = 103)  THEN
  BEGIN
   cena_r_out = udf_roundto(cena_in * 1.3,2);
     IF (cena_r_out >= 10) THEN cena_r_out = udf_roundto(cena_r_out, 1);
  END
Спасибо за подсказку. Один ньюанс: мне нужно эти разные округления - в пределах одной группы сделать. Правильно ли будет вот так построить запрос:

IF(grupa_id_in = 27)  THEN
  BEGIN
IF (cena_r <= 10) THEN
            cena_r_out = udf_roundto(cena_r * 1.2, 2);
  ELSE
   cena_r_out = udf_roundto(cena_r * 1.2,1);

  END

хотя...уже разобрался и с предложенным вариантом - там тоже все в одной группе. но, думаю, и мой вариант - сработает?
Назва: Re: ДОЛАР СКАЧЕТ !!! Как перевести товар во всей БД из грн. в У.Е. ?
Відправлено: Creat від Березень 12, 2014, 12:57:04
Правильно буде саме мій варіант.
cena_r такої змінної немає взагалі в цьому варіанті скрипта.
cena_in це прихідна ціна.
якщо ви хочете просто змінити роздрібну ціну збільшивши її на 10% від поточної то
IF(grupa_id_in = 27)  THEN
  BEGIN
   cena_r_out = udf_roundto(cena_r_out * 1.1,2);
     IF (cena_r_out >= 10) THEN cena_r_out = udf_roundto(cena_r_out, 1);
  END
Логіка скрипта:
для групи 27 роздрібну ціну збільшити на 10% з округленням до 2 знаків, а далі для тих роздрібних цін які більше 10 грн провести округлення до 1 знаку.
Зробіть резерв бази і спробуйте.
"Практика - критерій істини"
Назва: Re: ДОЛАР СКАЧЕТ !!! Как перевести товар во всей БД из грн. в У.Е. ?
Відправлено: victorpolo від Березень 12, 2014, 13:28:58
да, саме змінити роздрібну треба. дякую, зрозумів тепер!
Назва: Re: ДОЛАР СКАЧЕТ !!! Как перевести товар во всей БД из грн. в У.Е. ?
Відправлено: geographic від Квітень 10, 2014, 16:07:10
може не дуже в тему але цікавить таке питання :

як переоцінити весь товар із бази SQL скриптом маючи при цьому різний процент націнки на кожен товар різної цінової категорії при цьому врахувати зміну курсу долара а також те що частина товару в базі в гривнях .

наприклад :
0,0001   1,6500    націнка на товар ціною в дол. від 0,0001 до 0,0125  65%
0,0125
      
0,0125   1,6300   націнка на товар ціною в дол. від 0,0125 до 0,3  63%
0,3000
      
0,3000   1,6200,  націнка на товар ціною в дол. від 0,35 до 0,5  62%
0,5000
      
0,5000   1,6000,  націнка на товар ціною в дол. від 0,35 до 0,5  60%
1,0000   

і т.д.   ,  ?

З.І. Роздрібна ціна в грн.   
Назва: Re: ДОЛАР СКАЧЕТ !!! Как перевести товар во всей БД из грн. в У.Е. ?
Відправлено: installer від Квітень 15, 2014, 10:46:13
подскажите скрипт для наценки по групе товаров +20% от проставленой розницы в грн
Назва: Re: ДОЛАР СКАЧЕТ !!! Как перевести товар во всей БД из грн. в У.Е. ?
Відправлено: Creat від Квітень 15, 2014, 11:09:50
Так на цій же сторінці самий верхній пост. Ще й з округленням до десятих :)
Назва: Re: ДОЛАР СКАЧЕТ !!! Как перевести товар во всей БД из грн. в У.Е. ?
Відправлено: stdon від Квітень 18, 2014, 16:02:04
По переводу с гривны в доллар все сделал как написано. Получилось. Только у меня несколько складов: 2 - в гривне приход и продажа; 1 - в долларах - приход, в гривне - продажа. Теперь у меня все склады в долларах... Как мне сделать перевод приходных цен только на одном складе, не затрагивая другие? Или может как-то включить в скрипт по переводу цен в доллары только по 2-м поставщикам, от которых мне и заходит товар на долларовый склад?
Назва: Re: ДОЛАР СКАЧЕТ !!! Как перевести товар во всей БД из грн. в У.Е. ?
Відправлено: Creat від Квітень 22, 2014, 16:28:08
Цитата: stdon від Квітень 18, 2014, 16:02:04
По переводу с гривны в доллар все сделал как написано. Получилось. Только у меня несколько складов: 2 - в гривне приход и продажа; 1 - в долларах - приход, в гривне - продажа. Теперь у меня все склады в долларах... Как мне сделать перевод приходных цен только на одном складе, не затрагивая другие? Или может как-то включить в скрипт по переводу цен в доллары только по 2-м поставщикам, от которых мне и заходит товар на долларовый склад?
Переведіть ціни для груп, які в певному складі.
Назва: Re: ДОЛАР СКАЧЕТ !!! Как перевести товар во всей БД из грн. в У.Е. ?
Відправлено: installer від Вересень 25, 2014, 01:50:39
Здравствуйте!
Столкнулся с проблемой округления копеек.
База переведена в уе. цена товара выщитывается согласно проставленного курса доллара, курс меняется очень часто, но если товар стоимостью 0,61 уе и проставить  курс, например 15,10, то  сумма получается 9,21 грн, пробовал округлять скриптом, но скрипт округляет только цену проставленную в справочнике товаров и это не спасает, подскажите как сделать, что бы можно было каким- либо образом округлять копейки хотя бы до 5ти. или может можно как нибудь убрать десятые из цены вообще. Если бы в параметрах количество знаков после запятой для цены можно было выставить 1 - это бы решило проблему. А то с изменением курса вылазят по две или три копейки в стоимости товара. может есть способ, что бы в окне кассира сумма округлялась или вообще ищезли эти копейки
Назва: Re: ДОЛАР СКАЧЕТ !!! Как перевести товар во всей БД из грн. в У.Е. ?
Відправлено: installer від Вересень 25, 2014, 17:18:40
Еще одна просьба к разрабам:
перевели товар скриптом в уе розница и приходная цена. Теперь в справочнике товаров цены в уе. Сделайте в выборе колонок цену для приходной и расходной в грн , что бы можно было включать отключать. А то совсем неудобно. ведь не сложно добавить две позиции , которые будут вытягивать данные из проставленного курса. Может как то можно добавить самому подскажите!
Назва: Re: ДОЛАР СКАЧЕТ !!! Как перевести товар во всей БД из грн. в У.Е. ?
Відправлено: admin від Вересень 26, 2014, 12:41:17
Цитата: installer від Вересень 25, 2014, 01:50:39
Здравствуйте!
Столкнулся с проблемой округления копеек.
База переведена в уе. цена товара выщитывается согласно проставленного курса доллара, курс меняется очень часто, но если товар стоимостью 0,61 уе и проставить  курс, например 15,10, то  сумма получается 9,21 грн, пробовал округлять скриптом, но скрипт округляет только цену проставленную в справочнике товаров и это не спасает, подскажите как сделать, что бы можно было каким- либо образом округлять копейки хотя бы до 5ти. или может можно как нибудь убрать десятые из цены вообще. Если бы в параметрах количество знаков после запятой для цены можно было выставить 1 - это бы решило проблему. А то с изменением курса вылазят по две или три копейки в стоимости товара. может есть способ, что бы в окне кассира сумма округлялась или вообще ищезли эти копейки

И такое будет в УкрСклад 6, даже копейки можно будет перекидывать на бонусную карту. Вот фрагмент экрана из настроек Окна кассира в параметрах программы:
(http://www.softbalance.com.ua/forum/index.php?action=dlattach;topic=400.0;attach=3398;image)
Назва: Re: ДОЛАР СКАЧЕТ !!! Как перевести товар во всей БД из грн. в У.Е. ?
Відправлено: UA_pp від Вересень 30, 2014, 11:51:18
Цитата: admin від Вересень 26, 2014, 12:41:17
И такое будет в УкрСклад 6, даже копейки можно будет перекидывать на бонусную карту. Вот фрагмент экрана из настроек Окна кассира в параметрах программы:
(http://www.softbalance.com.ua/forum/index.php?action=dlattach;topic=400.0;attach=3398;image)
Интересно. А рассчитываться бонусами можно будет?
Назва: Re: ДОЛАР СКАЧЕТ !!! Как перевести товар во всей БД из грн. в У.Е. ?
Відправлено: admin від Вересень 30, 2014, 17:28:45
Цитата: UA_pp від Вересень 30, 2014, 11:51:18
Интересно. А рассчитываться бонусами можно будет?

Да, зачем же их тогда накапливать, для этого и есть параметр "Коэффициент бонус в грн".