generacion de cufe desde invoice
FossilOrigin-Name: d3494f20063452571b1e86d505f211e61fdf435aa43b870408136e3e9302bc17
This commit is contained in:
		| @@ -54,8 +54,8 @@ class AmountCollection(Collection): | ||||
|         return total | ||||
|  | ||||
| class Amount: | ||||
|     def __init__(self, amount: int or float or str or Amount, currency: Currency = Currency('COP')): | ||||
|  | ||||
|     def __init__(self, amount: int or float or str or Amount, currency: Currency = Currency('COP'), precision = DECIMAL_PRECISION): | ||||
|         self.precision = precision | ||||
|         #DIAN 1.7.-2020: 1.2.3.1 | ||||
|         if isinstance(amount, Amount): | ||||
|             if amount < Amount(0.0): | ||||
| @@ -67,7 +67,7 @@ class Amount: | ||||
|             if float(amount) < 0: | ||||
|                 raise ValueError('amount must be positive >= 0') | ||||
|  | ||||
|             self.amount = Decimal(amount, decimal.Context(prec=DECIMAL_PRECISION, | ||||
|             self.amount = Decimal(amount, decimal.Context(prec=self.precision, | ||||
|                                                           #DIAN 1.7.-2020: 1.2.1.1 | ||||
|                                                           rounding=decimal.ROUND_HALF_EVEN )) | ||||
|             self.currency = currency | ||||
| @@ -87,18 +87,21 @@ class Amount: | ||||
|     def __lt__(self, other): | ||||
|         if not self.is_same_currency(other): | ||||
|             raise AmountCurrencyError() | ||||
|         return round(self.amount, DECIMAL_PRECISION) < round(other, 2) | ||||
|         return round(self.amount, self.precision) < round(other, 2) | ||||
|  | ||||
|     def __eq__(self, other): | ||||
|         if not self.is_same_currency(other): | ||||
|             raise AmountCurrencyError() | ||||
|         return round(self.amount, DECIMAL_PRECISION) == round(other.amount, DECIMAL_PRECISION) | ||||
|         return round(self.amount, self.precision) == round(other.amount, self.precision) | ||||
|  | ||||
|     def _cast(self, val): | ||||
|         if type(val) in [int, float]: | ||||
|             return self.fromNumber(val) | ||||
|         if isinstance(val, Amount): | ||||
|             return val | ||||
|         if isinstance(val, Decimal): | ||||
|             return self.fromNumber(float(val)) | ||||
|  | ||||
|         raise TypeError("cant cast %s to amount" % (type(val))) | ||||
|      | ||||
|     def __add__(self, rother): | ||||
|   | ||||
		Reference in New Issue
	
	Block a user