Details
-
Type: Improvement
-
Status: Closed
-
Priority: Major
-
Resolution: Duplicate
-
Affects Version/s: 3.0.0
-
Fix Version/s: None
-
Component/s: None
-
Labels:None
-
Epic Link:
Description
The issue:
Invoices generated in currencies without decimal places may contain decimal places from various calculations (tax, for example) in their total. In some cases this may not be desirable.
Solution:
-Add an option for each currency to set whether or not values should be rounded to the formatted decimals. For example, if the currency format is #,###.## and this option is enabled, round to 2 decimal places. If currency format is #,### and this option is enabled, round to 0 decimal places.-
Add field for each currency to set precision of that currency. Default values to those that match for the currency format.
-Rounding should occur only for invoice total calculations.-
When converting values to decimal format (Currencies::toDecimal), there is a parameter to specify precision, which I believe defaults to 2-decimals places. We should add a new method to fetch the precision for a particular currency so that it can be passed into Currencies::toDecimal and Currencies::toCurrency to override the default precision.
Initial discussion can be found here: http://www.blesta.com/forums/index.php?/topic/979-invoice-rounding-in-different-currency/#entry15852
To update:
This task should update all instances of currency formatting, both for display and for calculation as described in CORE-1581. Currency decimal formatting should always be considered when rounding, and an invoice total would equate to the sum of its rounded line items in the selected currency.
This has previously been resolved via
CORE-3036