Есть ли способ показать меньше десятичных знаков, чем указанная точность в представлениях Odoo 8?

Я пытаюсь управлять следующим поведением в Odoo 8:

Установите цену продукта 5 десятичных знаков. Для этого я установил десятичную точность цены продукта на 5.

В sale.order просмотреть, показать только 3 знака после запятой, но вычислить промежуточный итог строки с учетом 5 знаков после запятой. Для этого шага я изменяю представление, чтобы поставить это на price_unit поле:

<xpath expr="//field[@name='order_line']/tree/field[@name='price_unit']" position="replace">
    <field name="price_unit" digits="(16,3)"/>
</xpath>

Но это digits Атрибут изменяет результат.

Пример:

Я храню товар с ценой 1,00123. Я добавляю 5 единиц этого в заказ на продажу. Если я не использую digits в представлении XML промежуточный итог составляет 5,01. Поскольку 1,00123 * 5 = 5,00615, округление этого значения до точности счета (2 десятичных знака) дает 5,01. Но если я использую цифры в представлении XML, промежуточный итог составляет 5,00. Поскольку 1,001 * 5 = 5,005, округление этого значения до точности счета (2 десятичных знака) дает 5,00.

На самом деле, я показываю с регистратором line.price_unit значение в sale.order.line метод _calc_line_base_price, С цифрами в представлении XML, line.price_unit значения 1,001, без него он дает 1,00123.

Может кто-нибудь сказать мне, как я могу показать 3 десятичных знака за единицу цены в представлении XML, не изменяя десятичную точность 5 десятичных знаков? Это должно быть сделано только для визуализации.

1 ответ

Решение

Если XML digits действительно учитываются при расчетах (в данный момент это невозможно проверить), у вас всегда может быть два поля: скрытое - для расчетов с максимальной точностью, а другое - для отображения, которое отображает уже рассчитанные числа с заданной точностью.

Другие вопросы по тегам