Перейти к содержимому


Фотография
- - - - -

Неправильный расчёт цен


Сообщений в теме: 9

#1 Alex Def

Alex Def

Отправлено 26 September 2016 - 21:37

Здравствуйте.

 

1. В карточке товара вывожу full-div.php. С расчётом происходит, что-то непонятное.

2. В модуле корзины вообще третья цифра появляется.

 

В корзине валюта — рубли. В шаблоне вывода цены добавлен элемент "Валюты" с единственной выбранной — рубли.

Как так-то?

 

Joomla: 3.6.2 JBZoo: 2.2.9 Pro rev3184 Zoo: 3.3.21 WidgetKit: 2.7.7

PS: не удаётся приложить картинку. https://drive.google...eHV4S1ctNWVIV1E


Сообщение отредактировал Alex Def: 26 September 2016 - 23:43

  • 0

#2 Alex Def

Alex Def

Отправлено 27 September 2016 - 13:55

Проблема в модуле с price4one решается в настройках конкретной валюты выставлением "округлять до" отличным от нуля.

Проблему с убогим расчётом экономии решил в full-div.php:

//вместо
echo $save->html($currency);
//это
round($price->val($currency)) - round($total->val($currency));

Но это костыли конечно ещё те  :(


  • 0

#3 SmetDenis

SmetDenis

Отправлено 27 September 2016 - 14:55

Вижу на сайте есть конвертации валюты.

Можете показать настройки каждой из них?


  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#4 Alex Def

Alex Def

Отправлено 27 September 2016 - 15:00

https://drive.google...RV9yVFRNenFWMXM


  • 0

#5 SmetDenis

SmetDenis

Отправлено 30 September 2016 - 09:19

Здравствуйте,

 

Извините и спасибо за ожидание.

 

Дело в округлении. У вас везде стоит "0" знаков после запятой. Это опция влияет на вывод а не вычисления.

Приложение вычисляет все и только потом показывает результат с округлением.

 

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


  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#6 Alex Def

Alex Def

Отправлено 30 September 2016 - 11:01

Да. Вот только одно но: в скриншоте из первого поста стоят настройки с округлением до "0".

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

 

Я на некоторое время подумал даже, что это я "в лыжи обутый", пересчитал половину всех цен на сайте руками, ну никак не должно быть "погрешности" при округлении до нуля. А она есть.


  • 0

#7 SmetDenis

SmetDenis

Отправлено 30 September 2016 - 12:44

Раз уж вы пошли в код, то есть легкий способ отладки цен.

 

При включенном режиме отладки каждый объект цены собирает историю модификаций.

Его можно посмотреть через лог

 

print_r($money->logs());

  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#8 Alex Def

Alex Def

Отправлено 30 September 2016 - 13:41

Ну это не код, а переопределение шаблона вывода. О! Удобная штука.

Выставил округлять до "0". Смотрим скриншот...

Очевидно, что с "Formated output in rub as html" что-то не так =))

Прикрепленные изображения

  • Без имени-2.jpg

Сообщение отредактировал Alex Def: 30 September 2016 - 13:45

  • 0

#9 SmetDenis

SmetDenis

Отправлено 30 September 2016 - 14:25

Так опция и направлена на округление для вывода, а не для вычислений.


  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#10 Alex Def

Alex Def

Отправлено 30 September 2016 - 14:38

В том то и дело, что каждое значение считается в заданной валюте отдельно, а потом пересчитывается в выбранную валюту и округляется также по отдельности. Из-за этого появляется погрешность, как в расчёте экономии, так и в расчёте конечной цены в модуле корзины.

Почему именно так? Неужели ни у кого не возникало подобных проблем раньше?


Сообщение отредактировал Alex Def: 30 September 2016 - 14:39

  • 0




Click to return to top of page in style!