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

Как Опенкарт считает налог


Recommended Posts

Приветствую. Столкнулся с неприятной проблемой. Была необходимость добавить в магазин налог. +10% для одной группы и +20% для другой.

Ремарка: в настройках системы 2 знака после запятой.

Как считает OpenCart: стоимость товара в базе 0,48, налог 20%. 0,48 + 20% = 0,576 и тут, казалось бы в настройках два знака и нужно округлить, но система берет эти 0,576 умножает на 8 единиц товара (клиент заказывает 8 единиц товара) 0,576 * 8 = 4,608 и тут он округляет до 4,61. Выходит товар за 0,58 * 8 штук = 4,61, берем калькулятор 0,58*8=4,64.

Решил это с помощью round до двух знаков в контроллерах карточки и налога и вроде всё ок, только остался заказ в просмотре админки и там все суммы, именно поле всего, когда товаров несколько сначала умножаются на налог и потом только округляются.

Сам вопрос, вот массив из файла order.php, который выводит данные цифры, я думаю, что это данный массив

<?

'price'   => $this->currency->format($product['price'] + ($this->config->get('config_tax') ? $product['tax'] : 0), $order_info['currency_code'], $order_info['currency_value']),
'total'   => $this->currency->format($product['total'] + ($this->config->get('config_tax') ? $product['tax'] * $product['quantity'] : 0), $order_info['currency_code'], $order_info['currency_value']),

Так вот, как мне округлить стоимость товара после добавления налога до того, как просчитается сумма? Вставка round сюда не приносит результата, я так понимаю эта конструкция , format($product['price'] + ($this->config->get('config_tax') мне нужна. Саму функцию format файла curency смотрел, не то, куда копать?

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

Стоимость 1 товара: 0,48

Налог: 0,48 * 0,2 = 0,096 после округления 0,10

Стоимость 1 товара + налог: 0,48 + 0,10 = 0,58

 

Стоимость 8 товаров: 0,48 * 8 = 3,84

Налог: 3,84 * 0,2 = 0,768 после округления 0,77

Стоимость 8 товаров + налог: 3,84 + 0,77 = 4,61

 

Налог и наценка - разные понятия.

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

Но так же неправильно.

Единица товара стоит с налогом 0,58 (0,48*0,2=0,096, округлили 0,10+0,48=0,58), следовательно две единицы 0,58*2=1,16

Но, если считать две единицы сразу по вашему примеру 0,48*2=0,96, 0,96*0,2=0,192, после округления 0,19 и таким образом 0,96+0,19=1,15

Один товар стоит 0,58, а два 1,15 где тут логика?

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

Это правильно!
Наценка рассчитывается на единицу товара

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

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

хм... ну если в таком ключе тогда в этом есть логика. Налог использовать для налога, а не для наценки, жалко, что в ОпенКарте нет наценки.

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

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

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

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

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

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

Вхід

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

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

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