-
- Downloads
[FIX] product: remove digits_precision from uom factor fields
Remove the hardcoded precision of 12 on factor and factor_inv, to use the complete natural precision of NUMERIC types, preserving all significant digits. e.g. a UoM with a factor_inv of 6.0 used to be computed as: factor_inv: 6.0 -> factor: 0.166666666667 (1.0/6.0, rounded to 12 digits) -> factor_inv: 5.999999999988 (1.0/factor) which could lead to errors such 12*0.166666666667 = 2.000000000004 instead of 2.0 Slightly changed the way the ORM handles float fields to allow setting `digits=0` as a way to explicitly require a NUMERIC value but without enforcing/rounding the values at the ORM level, i.e. a truly full-precision field. NUMERIC type has unlimited precision but is less efficient so should not be used as the default behaviour, which is why we keep float8 as an alternative. Modified the view to display the product UOM factor with a 5 digits value by default. This value is for usability purpose only, the field still accepts bigger precision, by setting the `digits` option on the field in the form view. This change is safe in a stable series, the `digits=0` alternative is treated the same as the default `digits=None` everywhere in the framework, except when creating the database field.
Loading
Please register or sign in to comment