Skip to content
Snippets Groups Projects
Commit 7bd54882 authored by inso's avatar inso
Browse files

Display quantitative with cents

parent 3f9e54ac
Branches
Tags
No related merge requests found
......@@ -75,7 +75,7 @@ class QuantitativeZSum(BaseReferential):
average = int(monetary_mass / last_members_count)
else:
average = 0
return self.amount - average
return (self.amount - average)/100
def differential(self):
return Quantitative(self.amount, self.currency, self.app).value()
......@@ -87,7 +87,7 @@ class QuantitativeZSum(BaseReferential):
if international_system:
localized_value, prefix = Quantitative.to_si(value, self.app.parameters.digits_after_comma)
else:
localized_value = QLocale().toString(float(value), 'f', 0)
localized_value = QLocale().toString(float(value), 'f', 2)
if units or international_system:
return QCoreApplication.translate("QuantitativeZSum",
......
......@@ -50,7 +50,7 @@ class Quantitative(BaseReferential):
:param sakia.core.community.Community community: Community instance
:return: int
"""
return int(self.amount)
return int(self.amount) / 100
def differential(self):
return self.value()
......@@ -66,12 +66,6 @@ class Quantitative(BaseReferential):
for n in range(4, 10):
unicodes[str(n)] = ord('\u2070') + n
exponent = 0
scientific_value = value
while scientific_value > 1000:
exponent += 3
scientific_value /= 1000
if value < 0:
value = -value
multiplier = -1
......@@ -81,7 +75,7 @@ class Quantitative(BaseReferential):
scientific_value = value
exponent = 0
while scientific_value > 1000:
while scientific_value > 1000 and int(scientific_value) * 10**exponent == scientific_value:
exponent += 3
scientific_value /= 1000
......@@ -89,7 +83,7 @@ class Quantitative(BaseReferential):
localized_value = QLocale().toString(float(scientific_value * multiplier), 'f', digits)
power_of_10 = "x10" + "".join([chr(unicodes[e]) for e in str(exponent)])
else:
localized_value = QLocale().toString(float(value * multiplier), 'f', 0)
localized_value = QLocale().toString(float(value * multiplier), 'f', 2)
power_of_10 = ""
return localized_value, power_of_10
......@@ -98,9 +92,9 @@ class Quantitative(BaseReferential):
value = self.value()
prefix = ""
if international_system:
localized_value, prefix = Quantitative.to_si(value, self.app.parameters.digits_after_comma)
localized_value, prefix = Quantitative.to_si(value, 2)
else:
localized_value = QLocale().toString(float(value), 'f', 0)
localized_value = QLocale().toString(float(value), 'f', 2)
if units or international_system:
return QCoreApplication.translate("Quantitative",
......@@ -115,9 +109,9 @@ class Quantitative(BaseReferential):
value = self.differential()
prefix = ""
if international_system:
localized_value, prefix = Quantitative.to_si(value, self.app.parameters.digits_after_comma)
localized_value, prefix = Quantitative.to_si(value, 2)
else:
localized_value = QLocale().toString(float(value), 'f', 0)
localized_value = QLocale().toString(float(value), 'f', 2)
if units or international_system:
return QCoreApplication.translate("Quantitative",
......
......@@ -14,64 +14,64 @@ def test_diff_units(application_with_one_connection, bob):
def test_value(application_with_one_connection, bob):
referential = Quantitative(101010110, bob.currency, application_with_one_connection, None)
value = referential.value()
assert value == 101010110
assert value == 1010101.10
def test_differential(application_with_one_connection, bob):
referential = Quantitative(110, bob.currency, application_with_one_connection, None)
value = referential.value()
assert value == 110
assert value == 1.10
def test_localized_no_si(application_with_one_connection, bob):
referential = Quantitative(101010110, bob.currency, application_with_one_connection, None)
value = referential.localized(units=True)
assert value == "101,010,110 TC"
assert value == "1,010,101.10 TC"
def test_localized_with_si(application_with_one_connection, bob):
application_with_one_connection.parameters.digits_after_comma = 6
referential = Quantitative(101010110, bob.currency, application_with_one_connection, None)
referential = Quantitative(101000000, bob.currency, application_with_one_connection, None)
value = referential.localized(units=True, international_system=True)
assert value == "101.010110 x10 TC"
assert value == "1,010.00 x10³ TC"
def test_localized_no_units_no_si(application_with_one_connection, bob):
application_with_one_connection.parameters.digits_after_comma = 6
referential = Quantitative(101010110, bob.currency, application_with_one_connection, None)
value = referential.localized(units=False, international_system=False)
assert value == "101,010,110"
assert value == "1,010,101.10"
def test_localized_no_units_with_si(application_with_one_connection, bob):
application_with_one_connection.parameters.digits_after_comma = 6
referential = Quantitative(101010110, bob.currency, application_with_one_connection, None)
referential = Quantitative(101000000, bob.currency, application_with_one_connection, None)
value = referential.localized(units=False, international_system=True)
assert value == "101.010110 x10"
assert value == "1,010.00 x10³"
def test_diff_localized_no_si(application_with_one_connection, bob):
referential = Quantitative(101010110, bob.currency, application_with_one_connection, None)
value = referential.diff_localized(units=True)
assert value == "101,010,110 TC"
assert value == "1,010,101.10 TC"
def test_diff_localized_with_si(application_with_one_connection, bob):
application_with_one_connection.parameters.digits_after_comma = 6
referential = Quantitative(101010110, bob.currency, application_with_one_connection, None)
referential = Quantitative(101000000, bob.currency, application_with_one_connection, None)
value = referential.diff_localized(units=True, international_system=True)
assert value == "101.010110 x10 TC"
assert value == "1,010.00 x10³ TC"
def test_diff_localized_no_units_no_si(application_with_one_connection, bob):
application_with_one_connection.parameters.digits_after_comma = 6
referential = Quantitative(101010110, bob.currency, application_with_one_connection, None)
value = referential.diff_localized(units=False, international_system=False)
assert value == "101,010,110"
assert value == "1,010,101.10"
def test_diff_localized_no_units_with_si(application_with_one_connection, bob):
application_with_one_connection.parameters.digits_after_comma = 6
referential = Quantitative(101010110, bob.currency, application_with_one_connection, None)
referential = Quantitative(101000000, bob.currency, application_with_one_connection, None)
value = referential.diff_localized(units=False, international_system=True)
assert value == "101.010110 x10"
assert value == "1,010.00 x10³"
......@@ -14,64 +14,64 @@ def test_diff_units(application_with_one_connection, bob):
def test_value(application_with_one_connection, bob):
referential = QuantitativeZSum(110, bob.currency, application_with_one_connection, None)
value = referential.value()
assert value == -1079
assert value == -10.79
def test_differential(application_with_one_connection, bob):
referential = QuantitativeZSum(110, bob.currency, application_with_one_connection, None)
value = referential.value()
assert value == -1079
assert value == -10.79
def test_localized_no_si(application_with_one_connection, bob):
referential = QuantitativeZSum(110, bob.currency, application_with_one_connection, None)
value = referential.localized(units=True)
assert value == "-1,079 Q0 TC"
assert value == "-10.79 Q0 TC"
def test_localized_with_si(application_with_one_connection, bob):
application_with_one_connection.parameters.digits_after_comma = 6
referential = QuantitativeZSum(110 * 1000, bob.currency, application_with_one_connection, None)
value = referential.localized(units=True, international_system=True)
assert value == "108.811000 x10³ Q0 TC"
assert value == "1,088.11 Q0 TC"
def test_localized_no_units_no_si(application_with_one_connection, bob):
application_with_one_connection.parameters.digits_after_comma = 6
referential = QuantitativeZSum(110, bob.currency, application_with_one_connection, None)
value = referential.localized(units=False, international_system=False)
assert value == "-1,079"
assert value == "-10.79"
def test_localized_no_units_with_si(application_with_one_connection, bob):
application_with_one_connection.parameters.digits_after_comma = 6
referential = QuantitativeZSum(110 * 1000, bob.currency, application_with_one_connection, None)
value = referential.localized(units=False, international_system=True)
assert value == "108.811000 x10³ Q0"
assert value == "1,088.11 Q0"
def test_diff_localized_no_si(application_with_one_connection, bob):
referential = QuantitativeZSum(110 * 1000, bob.currency, application_with_one_connection, None)
value = referential.diff_localized(units=True)
assert value == "110,000 TC"
assert value == "1,100.00 TC"
def test_diff_localized_with_si(application_with_one_connection, bob):
application_with_one_connection.parameters.digits_after_comma = 6
referential = QuantitativeZSum(101010110, bob.currency, application_with_one_connection, None)
referential = QuantitativeZSum(101000000, bob.currency, application_with_one_connection, None)
value = referential.diff_localized(units=True, international_system=True)
assert value == "101.010110 x10 TC"
assert value == "1,010.00 x10³ TC"
def test_diff_localized_no_units_no_si(application_with_one_connection, bob):
application_with_one_connection.parameters.digits_after_comma = 6
referential = QuantitativeZSum(101010110, bob.currency, application_with_one_connection, None)
value = referential.diff_localized(units=False, international_system=False)
assert value == "101,010,110"
assert value == "1,010,101.10"
def test_diff_localized_no_units_with_si(application_with_one_connection, bob):
application_with_one_connection.parameters.digits_after_comma = 6
referential = QuantitativeZSum(101010110, bob.currency, application_with_one_connection, None)
referential = QuantitativeZSum(101000000, bob.currency, application_with_one_connection, None)
value = referential.diff_localized(units=False, international_system=True)
assert value == "101.010110 x10"
assert value == "1,010.00 x10³"
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment