diff --git a/paramecio/cromosoma/extrafields/moneyfield.py b/paramecio/cromosoma/extrafields/moneyfield.py new file mode 100644 index 0000000..b02b4bf --- /dev/null +++ b/paramecio/cromosoma/extrafields/moneyfield.py @@ -0,0 +1,26 @@ +from paramecio.cromosoma.corefields import FloatField +from decimal import Decimal, getcontext +from locale import format + +getcontext().prec=2 + +class MoneyField(FloatField): + + def __init__(self, name, required=False): + + super().__init__(name, 11, required) + + def check(self, value): + + value=Decimal(value) + + return value + + def show_formatted(self, value): + + return format('%.2f', Decimal(value), grouping=True) + + @staticmethod + def format_money(value): + return format('%.2f', Decimal(value), grouping=True) + diff --git a/paramecio/cromosoma/extrafields/percentfield.py b/paramecio/cromosoma/extrafields/percentfield.py new file mode 100644 index 0000000..1aa3eb2 --- /dev/null +++ b/paramecio/cromosoma/extrafields/percentfield.py @@ -0,0 +1,22 @@ +from paramecio.cromosoma.corefields import IntegerField + +class PercentField(IntegerField): + + def __init__(self, name, required=False): + + super().__init__(name, 2, required) + + def check(self, value): + + try: + value=int(value) + + if value<0: + value=0 + if value>100: + value=100 + + except: + value=0 + + return value