Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Вывод двух белоруских валют


melnykserhiy

Recommended Posts

А кто поможет реализовать округление копеек?

У меня стоит округление старой валюты до тысячи, допустим если цена 125 300руб, то отображается просто как 125 000руб, если например 130 800руб, то отображается как 131 000руб

А вот округления копеек не могу добиться. Показывает сейчас  Цена: 6 р. 96 к. (или 70.000 руб.)

Как добиться, что бы показывалась Цена: 7 р. 00 к. (или 70.000 руб.)

Спасибо!

Змінено користувачем Evgenka
Надіслати
Поділитися на інших сайтах


 

Для вывода рублей с копейками.

 

В файле system/library/currency.php

Перед строкой:

return $string;

Добавляем:

        if ($format && $currency == 'BYN') {
            $value = round($value, 2);
            $rub = floor($value);
            $cop = (int)(($value - $rub) * 100);
            $string = sprintf('%u руб %.2u коп', $rub, $cop);
        }

Корректировка кода.

Допустил пару неточностей на скорую руку.

 

Подправленный код:

        if ($format && $currency == 'BYN') {
            $value = round($value, (int)$decimal_place);
            $rub = floor($value);
            $cop = round(($value - $rub) * 100);
            $string = sprintf('%u руб %02u коп', $rub, $cop);
        }
Надіслати
Поділитися на інших сайтах

А кто поможет реализовать округление копеек?

У меня стоит округление старой валюты до тысячи, допустим если цена 125 300руб, то отображается просто как 125 000руб, если например 130 800руб, то отображается как 131 000руб

А вот округления копеек не могу добиться. Показывает сейчас  Цена: 6 р. 96 к. (или 70.000 руб.)

Как добиться, что бы показывалась Цена: 7 р. 00 к. (или 70.000 руб.)

Спасибо!

 

Возьмите скорректированный код ля вывода копеек.

Потом в админке поставьте количество знаков после запятой = 0. И должно всё получиться.

Надіслати
Поділитися на інших сайтах

Возьмите скорректированный код ля вывода копеек.

Потом в админке поставьте количество знаков после запятой = 0. И должно всё получиться.

 

Спасибо, все получилось.

Выставил в админке количество знаков после запятой = 1 , теперь то, что нужно.

Надіслати
Поділитися на інших сайтах


Может кто подскажет как сюда поставить округление цены?
$price2 = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax')), 'BYN');

Надіслати
Поділитися на інших сайтах


Просто вторую валюту (BYN) вывожу в старом формате, а там много хвостов. Например: 

16 585 492 руб. надо 16 585 000 руб.

Основную валюту округлил в Currency, вот так:

 

$string .= number_format(round($value, 1), (int)$decimal_place, $decimal_point, $thousand_point);

Но вот как округлить вторую валюту ума не приложу....

 

Надіслати
Поділитися на інших сайтах


Просто вторую валюту (BYN) вывожу в старом формате, а там много хвостов. Например: 

16 585 492 руб. надо 16 585 000 руб.

Основную валюту округлил в Currency, вот так:

 

$string .= number_format(round($value, 1), (int)$decimal_place, $decimal_point, $thousand_point);

Но вот как округлить вторую валюту ума не приложу....

 

 

Надо строчку:

$string .= number_format(round($value, (int)$decimal_place), (int)$decimal_place, $decimal_point, $thousand_point);

Замень на:

if ($currency == 'BYR') {
    $value = round($value, -3);
} else if ($currency == 'BYN') {
    $value = round($value, 1);
} else {
    $value = round($value, (int)$decimal_place);
}
$string .= number_format($value, (int)$decimal_place, $decimal_point, $thousand_point);

Как-то так.

И если используется модуль обновления цены при выборе опции, то там в скрипте нужно сделать то же самое.

  • +1 1
Надіслати
Поділитися на інших сайтах

 

Проблема не в экселе, а в импорте-экспорте километровых файлов.

Того же можно добиться намного проще, SQL-запросом:

update oc_product set price=price/10000;

Подскажите пожалуйста как будет выглядеть команда, чтобы также уменьшить цену для опций?

Надіслати
Поділитися на інших сайтах


эх, что-то никак не могу разобраться с этими нулями, сменой валют и т.д.

VERSION', '1.5.5.1.2'

чую где-то рядом, но стремно накосячить, да и мозгов походу не хватает для этого

возьмется кто? я заплачУ естественно

да и вообще нужно пару модулей навешать и по-мелочи мож еще чего

или скайп:  alex.soll или на крайняк в личку (редко захожу)

спасибо откликнувшимся

Надіслати
Поділитися на інших сайтах


эх, что-то никак не могу разобраться с этими нулями, сменой валют и т.д.

VERSION', '1.5.5.1.2'

чую где-то рядом, но стремно накосячить, да и мозгов походу не хватает для этого

возьмется кто? я заплачУ естественно

да и вообще нужно пару модулей навешать и по-мелочи мож еще чего

или скайп:  alex.soll или на крайняк в личку (редко захожу)

спасибо откликнувшимся

 

 

https://opencartforum.com/topic/62653-%D0%B4%D0%B5%D0%BB%D0%B0%D0%B5%D0%BC-%D0%B2%D1%82%D0%BE%D1%80%D0%BE%D0%B5-%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B2%D0%B0%D0%BB%D1%8E%D1%82%D1%8B-%D0%B4%D0%BB%D1%8F-%D0%B1%D0%B5%D0%BB%D0%BE%D1%80%D1%83%D1%81%D1%81%D0%BA%D0%B8%D1%85/

Надіслати
Поділитися на інших сайтах

Подскажите пожалуйста как будет выглядеть команда, чтобы также уменьшить цену для опций?

 

Снесу всё в кучу.

 

Делим цены товара на 10000:

UPDATE oc_product SET price=price/10000;

Делим цены опций:

UPDATE oc_product_option_value SET price=price/10000 WHERE price_prefix = '+' OR price_prefix = '-' OR price_prefix = '='

Делим скидки:

UPDATE oc_product_discount SET price=price/10000;

Делим акции:

UPDATE oc_product_special SET price=price/10000;

Если у вас другой префикс в БД, то надо "oc_" заменить на свой префикс.

  • +1 1
Надіслати
Поділитися на інших сайтах

Спасибо вам большое, ещё одна проблемка осталась выводятся надписи хх руб хх коп в категории, а в карточке товара на секундочку появляется и потом сразу меняется просто на хх.хх руб

Надіслати
Поділитися на інших сайтах


Спасибо вам большое, ещё одна проблемка осталась выводятся надписи хх руб хх коп в категории, а в карточке товара на секундочку появляется и потом сразу меняется просто на хх.хх руб

Это потому, что стоит модуль обновления цены.

 

Отключите используемой модуль обновления цены и возьмите эту версию: autocalc_v2.0.18_multicurrency_by.xml

Там уже встроена и доработка корзины. Поэтому можно ручные правки убрать и поставить этот модуль.

 

Модуль можно скачать тут: https://opencartforum.com/files/file/743-%D0%BE%D0%B1%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-%D1%86%D0%B5%D0%BD%D1%8B-%D0%BF%D1%80%D0%B8-%D0%B2%D1%8B%D0%B1%D0%BE%D1%80%D0%B5-%D0%BE%D0%BF%D1%86%D0%B8%D0%B8-%D0%B1%D0%B5%D0%B7-ajax-vqmod/

Змінено користувачем mpn2005
Надіслати
Поділитися на інших сайтах

Рубли и копейки (т.е. "__руб.__коп.") подписывать необязательно, можно указывать в виде "10.00 BYN" или еще двумя вариантами без копеек, как указано в рекомендациях Минторга, подробнее тут: http://www.mintorg.gov.by/index.php?option=com_content&task=view&id=2682&Itemid=30.

И в корзине, на мой взгляд, достаточно просто в новых рублях писать суммы заказа, посмотрите на чеки в магазинах - там валюта не дублируется, только ценники с двойной ценой!

Змінено користувачем zees
Надіслати
Поділитися на інших сайтах


Рубли и копейки (т.е. "__руб.__коп.") подписывать необязательно, можно указывать в виде "10.00 BYN" или еще двумя вариантами без копеек, как указано в рекомендациях Минторга, подробнее тут: http://www.mintorg.gov.by/index.php?option=com_content&task=view&id=2682&Itemid=30.

И в корзине, на мой взгляд, достаточно просто в новых рублях писать суммы заказа, посмотрите на чеки в магазинах - там валюта не дублируется, только ценники с двойной ценой!

Мне кажется рубли и копейки всплыли больше из эстетического пожелания.

Соскучились люди уже по копейкам. :-)

Надіслати
Поділитися на інших сайтах

Мне кажется рубли и копейки всплыли больше из эстетического пожелания.

Соскучились люди уже по копейкам. :-)

Да, это понятно, просто если разрешено в упрощенном формате писать, то править Опенкарту из-за этого считаю нецелесообразным. Я реализовал без "__руб.__коп."

Змінено користувачем zees
Надіслати
Поділитися на інших сайтах


Не пойму уже 3-й раз значение BYR в админке меняется с 10000 на 1.01020002 с чем это может быть связано?

У вас BYR валюта по умолчанию? У валюты "по умолчанию" значение должно быть ровно 1.

Надіслати
Поділитися на інших сайтах


По умолчанию BYN 1, а BYR ставлю 10000, а он через пару дней меняется на 1.01020002

Проверьте в админке Настройки -> Локализация -> Валюта - чтобы валюта была выбрана BYN и в автоматическом обновлении валют флажок на "Нет". Если у вас конечно доллара нет и он не обновляется.

Надіслати
Поділитися на інших сайтах


 

Подправленный код:

        if ($format && $currency == 'BYN') {
            $value = round($value, (int)$decimal_place);
            $rub = floor($value);
            $cop = round(($value - $rub) * 100);
            $string = sprintf('%u руб %02u коп', $rub, $cop);
        }

 

При вставке этого куска кода начинает неправильно работать "Ночная скидка".

post-694191-0-47212000-1468191149_thumb.png

Хотя подсчет суммы верный.

Как-то неправильно отрабатывается сл.код из "Ночной скидки". Тут "night_discount_type" определяет скидку в процентах или в рублях. В обоих случаях возникает эта ошибка

if (!$this->config->get('night_discount_type')){
			$discount_amount /= 100 ;
			$discount *=  - $discount_amount;
			$discount_text = $this->config->get('night_discount_amount') . '%';
		}
		else {
			$discount = - $discount_amount;
			$discount_text = $this->currency->format($this->config->get('night_discount_amount'));
		}
Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.