Magento 1.9.1 Проблемы с округлением

Я провел последние 2 недели, пытаясь решить проблемы с округлением при установке magento, я уже искал в Google, я уже прочитал все сообщения здесь, в stackoverflow, но, похоже, ничего не помогает.

Здесь возникает ошибка округления

Как вы можете видеть на изображении, у нас есть:

  • итого: 308,72€
  • итого с налогом (iva 22%): 376,63€
  • Итого ожидается: 308,72 * 1,22 = 376,6384, с округлением в большую сторону: 376,64 €
  • поэтому налог на 1 цент меньше, что является большой проблемой
  • проблема появляется случайным образом, я не смог найти какие-либо закономерности или условия, вызывающие эту проблему.

Немного информации об окружающей среде:

  • Magento версии 1.9.1 (необходимо обновить до SUPEE-8788)
  • Тема CoolBaby (последняя версия)
  • Используемый плагин:
  • 1)PHOENIX Magento-наличными при доставке
  • 2)Extendware: Полностраничный кэш
  • 3)Расширение: минимизация css/js
  • Версия MySQL: 5.6.33
  • PHP-версия: 5.5

Вот некоторые решения и комбинации конфигураций, которые я уже пробовал:

  • Отключить все плагины
  • Измените функцию roundPrice на 4 десятичных знака вместо 2.
  • Создание новой установки magento 1.9.1 с использованием той же базы данных
  • Изменение режима расчета, ни один из 3 вариантов не решает проблему, на самом деле лучший метод кажется «Всего»
  • Изменение «Цена включает налоги» в конфигурации режима расчета
  • Изменение комиссии наложенным платежом включает налог
  • Изменение стоимости доставки включает налог

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

Странный факт: в примере у меня есть наложенный платеж, который составляет 10 евро с учетом НДС, если я уберу наложенный платеж и добавлю продукт с той же ценой (10 евро с НДС), общая сумма с налогами правильно округляется до 376, 64€

Может быть, я что-то упускаю, я не знаю, я не настолько эксперт в magento, но я действительно не знаю, что сейчас проверить, любые советы или идеи будут оценены


person Gianluca Ciambellotti    schedule 25.10.2016    source источник
comment
Magento 1.9.1 не поддерживает PHP 5.6 (1.9.3 поддерживает), поэтому у вас сразу возникает проблема совместимости, которая может быть (хотя, вероятно, и не является) причиной проблем для вас.   -  person scrowler    schedule 26.10.2016
comment
Извините, на рабочем сервере актуальная версия php 5.5.38.   -  person Gianluca Ciambellotti    schedule 26.10.2016
comment
Вероятно, проблема связана с вашими ожиданиями в отношении расчета налога, а не с программным обеспечением. Во-первых, вы получите разные итоги в зависимости от того, рассчитывается ли налог для каждой позиции, а затем суммируется (как, кажется, происходит здесь) или он рассчитывается непосредственно на общую сумму. Во-вторых, вы не можете математически ожидать, что (1) вычисление налога из валовой суммы, (2) округление до ближайшего цента (3) вычитание этого налога для получения чистой суммы, а затем (4) повторное вычисление налога и округление приведет к точному восстановлению исходного значения; вы можете легко ошибиться на цент.   -  person Mark Dickinson    schedule 26.10.2016
comment
Некоторые материалы для чтения: money.stackexchange.com/questions/15051/   -  person Mark Dickinson    schedule 26.10.2016
comment
@MarkDickinson спасибо за поддержку, я понимаю, но по нашему закону счет, показанный в примере, является мошенничеством и может иметь серьезные юридические последствия, так что это на самом деле большая проблема, потому что я не могу попросить своего клиента проверьте все счета, чтобы убедиться, что НДС неправильный. В приведенном мной примере все цены настроены без НДС (также для стоимости доставки и наложенного платежа), поэтому в этом случае расчет (который основан на общей сумме) должен быть довольно линейным. Это происходит и в новейшей версии magento?   -  person Gianluca Ciambellotti    schedule 27.10.2016
comment
@GianlucaCiambellotti: здесь есть фундаментальная математическая проблема, которую не решит никакое программное обеспечение. Например: предположим, что ставка налога составляет 22%, при этом налоговые расчеты всегда округляются, и предположим, что ваша общая сумма (включая налог) составляет ровно 30 евро. Как следует указывать базовую цену? Базовая цена 26,22 дает общую сумму с налогом 31,99. Базовая цена 26,23 дает общую сумму с налогом 32,01. Не существует нет возможной базовой цены, и никакое количество программного обеспечения или конфигурации не изменит ее.   -  person Mark Dickinson    schedule 27.10.2016
comment
@MarkDickinson, вы правы, но в обоих случаях, если я установлю базовую цену без налога на 26,22 или на 26,23, окончательный расчет НДС должен быть правильным (26,22 * 1,22 = 31,9884 => 31,99). НДС = 5,77) (26,23 * 1,22 = 32,00 => 32,00 НДС = 5,77) Оба результата верны. Кстати, как люди справляются с этой проблемой? им просто все равно?   -  person Gianluca Ciambellotti    schedule 27.10.2016