diff --git a/db/dblib.cpp b/db/dblib.cpp index bcf67b97c..d674a1f6d 100755 --- a/db/dblib.cpp +++ b/db/dblib.cpp @@ -118,6 +118,20 @@ void TQuantita::convert2umbase() } } + +void TQuantita::currency2umbase(TCurrency& val) const +{ + TCodice_um ub; + find_umbase(ub); + if (_um != ub && !val.is_zero()) + { + const fraction& mul = get_factor(_um); + const fraction& div = get_factor(ub); + const real v = fraction(val.get_num(), UNO) * mul / div; + val.set_num(v); + } +} + real TQuantita::base_val() const { TCodice_um dummy; diff --git a/db/dblib.h b/db/dblib.h index b59ac6cf5..99cf34ffc 100755 --- a/db/dblib.h +++ b/db/dblib.h @@ -191,6 +191,8 @@ public: void convert2umbase(); void convert2umdist(); + void currency2umbase(TCurrency& val) const; + TQuantita(); TQuantita(const TQuantita& q); TQuantita(const TString& art, const TString& um, const real& val);