Thanks Chinmay for bringing this up, +1 from my side. Liked all the points discussed by Taher.
Thanks Aishwary and Jacques too for the inputs :) - Best Regards, Swapnil M Mane On Sun, Oct 1, 2017 at 2:18 PM, Taher Alkhateeb <slidingfilame...@gmail.com> wrote: > So this is one area where I faced many problems in the past, with > units generally and money specifically. You could be surprised how > many times something like rounding and accuracy can end up being a > _big_ problem in systems. > > I think to really achieve flexibility (which is one of the strong > points of OFBiz) then we should have a general purpose accuracy > system. We can perhaps implement it as follows: > - Amount could be a free field with no restriction on accuracy (it > goes as far as the environment provides) > - Accuracy should be a parameter with a default value. However, the > parameter should be customizable to each unit of measurement > (currency) separately. So for example, you can set USD to 2, KWD to 3, > etc ... > - Rounding method should be a parameter with a default value. Examples > could be ROUND_UP, ROUND_DOWN, ROUND_NEAREST > - Rounding time should be a parameter with a default value. Perhaps > something like DURING_CALCULATION, AFTER_CALCULATION > - Then we implement all basic calculations in services or utility > methods that fully utilize the above parameters and settings. > > Sorry if I went overboard :) But I usually always lean towards root > solutions that solve many problems at once. Not sure if any folks are > interested but if you like the idea I'd be willing to help with it. > > On Wed, Sep 27, 2017 at 3:42 PM, Chinmay Patidar > <chinmay.pati...@hotwaxsystems.com> wrote: > > Hello Devs, > > > > Ofbiz places a restriction on saving more than 3 decimal places in price > > related entity-fields. But there can be a number of use cases where a > user > > needs to store more than 2 or 3 decimal places in the currency related > > entity-fields. > > > > I even saw some discussions related to this but didn't found any > > conclusions from them. Even one issue > > <https://issues.apache.org/jira/browse/OFBIZ-494> has been created but > for > > limited fields. So, I would like to propose support for multiple or more > > than 2/3 decimals in price related fields. > > > > Following are some findings related to the currency fields which would be > > helpful to examine the requirement: > > Ofbiz uses two field types to store the currency related entity-fields. > > These two types are 'currency-amount' and 'currency-precise' with their > > respective types being NUMBER(18,2) and NUMBER(18,3). > > > > Upon initial research, one can conclude that changing the field > definitions > > of 'currency-amount' and 'currency-precise' would achieve the > requirement. > > But doing so will raise following questions which need to be answered. > Feel > > free to add in them. > > > > - What would be the precise value of precision(number of decimals)? > > - Will these changes can make the system inconsistent? > > > > In addition, I would like to know the significance of having two separate > > field types, i.e. 'currency-amount' and 'currency-precise'. > > > > Also, I have marked one improvement which will be needed to realize the > > solution. There are multiple occurrences where hardcoded scaling of 2 has > > been set to either display or store a currency field. This needs to be > > changed and must be set dynamically. > > > > I'd like to hear your thoughts. > > > > Thanks, > > *Chinmay Patidar* >