Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Пересчет валют по курсу.

00 голосов
7
Здравствуйте!
Суть проблемы состоит в следующем:
имеется базовая цена в евро, курс к рублю установлен, на сайте все отображается в рублях правильно. На некоторые товары необходимо установить отдельную цену в РУБЛЯХ. В управлении ценами для конкретного товара устанавливаю цену в РУБЛЯХ, но на сайте она все равно пересчитывается по курсу так, будто цена указана в ЕВРО. Подскажите, пожалуйста, знающие люди, в каком направлении копать.
Буду очень признателен за помощь!
Спасибо!
спросил 27 Май, 13 от AlexSol (240 баллов)

7 Ответы

00 голосов
посмотрите в шаблоне откуда выводится значение валюты, возможно там конвертируется автоматом, не учитывая текущую установленную валюту для товара
ответил 27 Май, 13 от Run (1,300 баллов)
00 голосов
Вы имеете ввиду вот этот шаблон?
Здесь вроде две валюты присутствуют.
Код
if(isset($arElement["PRICE_MATRIX"]["MATRIX"][2][0]["PRICE"])) {
              $priceval = $arElement["PRICE_MATRIX"]["MATRIX"][2][0]["PRICE"];
              $prucecurr = $arElement["PRICE_MATRIX"]["MATRIX"][2][0]["CURRENCY"];
              $rurval = CCurrencyRates::ConvertCurrency($priceval, "EUR", "RUR");
              $rurval_str = number_format($rurval, 2, ".", " ");
                  /*$rurval_str = number_format($priceval, 2, ".", " ").' ?';*/
              ?>
                  <span 
class="price-msg"><?=GetMessage('CATALOG_PRICE');?>:</span>  <span 
class="catalog-item-price"><?=$rurval_str?></span>
ответил 28 Май, 13 от AlexSol (240 баллов)
00 голосов
Цитата
Кирилл Кругленко пишет:
$rurval = CCurrencyRates::ConvertCurrency($priceval, "EUR", "RUR");

Вот эта строка - она откуда?
ответил 24 Авг, 13 от Pomnep (13,960 баллов)
00 голосов
Код
$rurval = CCurrencyRates::ConvertCurrency($priceval, "EUR", "RUR");

вот как раз эта строка и конвертирует и рубли, считая их евро.
ответил 22 Ноя, 13 от Run (1,300 баллов)
00 голосов
Да, так и есть, спасибо большое!
Прочитал про CCurrencyRates::ConvertCurrency, но в итоге не пришел к решению проблемы. У меня конечные цены в рублях, а выгружаются они из 1С в евро, но некоторые цены нужно править руками и делать это в рублях. То есть в итоге будет каталог, в котором есть цены и в евро и в рублях, но на сайте должны отображаться рубли.
Конкретного решения не прошу, ткните, плиз, носом, где всё это приблизительно находится.
Спасибо!
ответил 03 Март, 14 от AlexSol (240 баллов)
00 голосов
Банально. Вместо строки
Цитата
Кирилл Кругленко пишет:
$rurval = CCurrencyRates::ConvertCurrency($priceval, "EUR", "RUR");

пишите такой код:
Код
if ($prucecurr == 'RUB' || $prucecurr == 'RUR')
      $rurval = $priceval;
else
      $rurval = CCurrencyRates::ConvertCurrency($priceval, $prucecurr, "RUR"); 

Будет работать с любой валютой.
ответил 23 Июнь, 14 от Pomnep (13,960 баллов)
00 голосов
Евгений, большое спасибо!
Все работает и в корзине тоже отображается верно.
Вопрос закрыт.
ответил 23 Окт, 14 от AlexSol (240 баллов)

Похожие вопросы

0 голосов
4 ответов
спросил 12 Фев, 13 от Eliga (360 баллов)
0 голосов
2 ответов
спросил 14 Апр, 14 от Jagami (100 баллов)
0 голосов
4 ответов
спросил 11 Апр, 13 от Geralda (400 баллов)