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

Display quantitative with cents

parent 3f9e54ac
No related branches found
No related tags found
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