Fix: Se actualizan dependencias para python3.12 y primeros pasos con pruebas
This commit is contained in:
		| @@ -4,7 +4,7 @@ import hashlib | ||||
| from functools import reduce | ||||
| import copy | ||||
| import dataclasses | ||||
| from dataclasses import dataclass | ||||
| from dataclasses import dataclass, field | ||||
| from datetime import datetime, date | ||||
| from collections import defaultdict | ||||
| import decimal | ||||
| @@ -216,10 +216,10 @@ class PostalZone: | ||||
| class Address: | ||||
|     name: str | ||||
|     street: str = '' | ||||
|     city: City = City('05001') | ||||
|     country: Country = Country('CO') | ||||
|     countrysubentity: CountrySubentity = CountrySubentity('05') | ||||
|     postalzone: PostalZone = PostalZone('') | ||||
|     city: City = field(default_factory=lambda: City('05001')) | ||||
|     country: Country = field(default_factory=lambda: Country('CO')) | ||||
|     countrysubentity: CountrySubentity = field(default_factory=lambda: CountrySubentity('05')) | ||||
|     postalzone: PostalZone = field(default_factory=lambda: PostalZone('')) | ||||
|  | ||||
| @dataclass | ||||
| class PartyIdentification: | ||||
| @@ -276,10 +276,10 @@ class Party: | ||||
|     responsability_code: typing.List[Responsability] | ||||
|     responsability_regime_code: str | ||||
|     organization_code: str | ||||
|     tax_scheme: TaxScheme = TaxScheme('01') | ||||
|     tax_scheme: TaxScheme = field(default_factory=lambda: TaxScheme('01')) | ||||
|  | ||||
|     phone: str = '' | ||||
|     address: Address = Address('') | ||||
|     address: Address = field(default_factory=lambda: Address('')) | ||||
|     email: str = '' | ||||
|     legal_name: str = '' | ||||
|     legal_company_ident: str = '' | ||||
| @@ -307,7 +307,7 @@ class TaxScheme: | ||||
| class TaxSubTotal: | ||||
|     percent: float | ||||
|     scheme: typing.Optional[TaxScheme] = None | ||||
|     tax_amount: Amount = Amount(0.0) | ||||
|     tax_amount: Amount = field(default_factory=lambda: Amount(0.0)) | ||||
|  | ||||
|     def calculate(self, invline): | ||||
|         if self.percent is not None: | ||||
| @@ -317,8 +317,8 @@ class TaxSubTotal: | ||||
| @dataclass | ||||
| class TaxTotal: | ||||
|     subtotals: list | ||||
|     tax_amount: Amount = Amount(0.0) | ||||
|     taxable_amount: Amount = Amount(0.0) | ||||
|     tax_amount: Amount = field(default_factory=lambda: Amount(0.0)) | ||||
|     taxable_amount: Amount = field(default_factory=lambda: Amount(0.0)) | ||||
|  | ||||
|     def calculate(self, invline): | ||||
|         self.taxable_amount = invline.total_amount | ||||
| @@ -338,17 +338,17 @@ class TaxTotalOmit(TaxTotal): | ||||
| class WithholdingTaxSubTotal: | ||||
|     percent: float | ||||
|     scheme: typing.Optional[TaxScheme] = None | ||||
|     tax_amount: Amount = Amount(0.0) | ||||
|     tax_amount: Amount = field(default_factory=lambda: Amount(0.0)) | ||||
|  | ||||
|     def calculate(self, invline): | ||||
|         if self.percent is not None: | ||||
|             self.tax_amount = invline.total_amount * Amount(self.percent / 100) | ||||
|          | ||||
|  | ||||
| @dataclass | ||||
| class WithholdingTaxTotal: | ||||
|     subtotals: list | ||||
|     tax_amount: Amount = Amount(0.0) | ||||
|     taxable_amount: Amount = Amount(0.0) | ||||
|     tax_amount: Amount = field(default_factory=lambda: Amount(0.0)) | ||||
|     taxable_amount: Amount = field(default_factory=lambda: Amount(0.0)) | ||||
|  | ||||
|     def calculate(self, invline): | ||||
|         self.taxable_amount = invline.total_amount | ||||
| @@ -397,7 +397,7 @@ class PaymentMean: | ||||
| @dataclass | ||||
| class PrePaidPayment: | ||||
|     #DIAN 1.7.-2020: FBD03 | ||||
|     paid_amount: Amount = Amount(0.0) | ||||
|     paid_amount: Amount = field(default_factory=lambda: Amount(0.0)) | ||||
|  | ||||
| @dataclass | ||||
| class BillingResponse: | ||||
| @@ -454,17 +454,19 @@ class AllowanceChargeReason: | ||||
|  | ||||
| @dataclass | ||||
| class AllowanceCharge: | ||||
|     #DIAN 1.7.-2020: FAQ03 | ||||
|     # DIAN 1.7.-2020: FAQ03 | ||||
|     charge_indicator: bool = True | ||||
|     amount: Amount = Amount(0.0) | ||||
|     amount: Amount = field(default_factory=lambda: Amount(0.0)) | ||||
|     reason: AllowanceChargeReason = None | ||||
|  | ||||
|     #Valor Base para calcular el descuento o el cargo | ||||
|     base_amount: typing.Optional[Amount] = Amount(0.0) | ||||
|      | ||||
|     # Valor Base para calcular el descuento o el cargo | ||||
|     base_amount: typing.Optional[Amount] = field( | ||||
|         default_factory=lambda: Amount(0.0)) | ||||
|  | ||||
|     # Porcentaje: Porcentaje que aplicar. | ||||
|     multiplier_factor_numeric: Amount = Amount(1.0) | ||||
|      | ||||
|     multiplier_factor_numeric: Amount = field( | ||||
|         default_factory=lambda: Amount(1.0)) | ||||
|  | ||||
|     def isCharge(self): | ||||
|         return self.charge_indicator == True | ||||
|  | ||||
| @@ -562,19 +564,19 @@ class InvoiceLine: | ||||
|  | ||||
|         if self.tax is None: | ||||
|             self.tax = TaxTotalOmit() | ||||
|              | ||||
|  | ||||
|         if self.withholding is None: | ||||
|             self.withholding = WithholdingTaxTotalOmit() | ||||
|  | ||||
| @dataclass | ||||
| class LegalMonetaryTotal: | ||||
|     line_extension_amount: Amount = Amount(0.0) | ||||
|     tax_exclusive_amount: Amount = Amount(0.0) | ||||
|     tax_inclusive_amount: Amount = Amount(0.0) | ||||
|     charge_total_amount: Amount = Amount(0.0) | ||||
|     allowance_total_amount: Amount = Amount(0.0) | ||||
|     payable_amount: Amount = Amount(0.0) | ||||
|     prepaid_amount: Amount = Amount(0.0) | ||||
|     line_extension_amount: Amount = field(default_factory=lambda: Amount(0.0)) | ||||
|     tax_exclusive_amount: Amount = field(default_factory=lambda: Amount(0.0)) | ||||
|     tax_inclusive_amount: Amount = field(default_factory=lambda: Amount(0.0)) | ||||
|     charge_total_amount: Amount = field(default_factory=lambda: Amount(0.0)) | ||||
|     allowance_total_amount: Amount = field(default_factory=lambda: Amount(0.0)) | ||||
|     payable_amount: Amount = field(default_factory=lambda: Amount(0.0)) | ||||
|     prepaid_amount: Amount = field(default_factory=lambda: Amount(0.0)) | ||||
|  | ||||
|     def calculate(self): | ||||
|         #DIAN 1.7.-2020: FAU14 | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| from dataclasses import dataclass | ||||
| from dataclasses import dataclass, field | ||||
|  | ||||
| from ..amount import Amount | ||||
|  | ||||
| @@ -29,7 +29,7 @@ class Trabajador: | ||||
|  | ||||
|     codigo_trabajador: str = None | ||||
|     otros_nombres: str = None | ||||
|     sub_tipo: SubTipoTrabajador = SubTipoTrabajador(code='00') | ||||
|     sub_tipo: SubTipoTrabajador = field(default_factory=lambda: SubTipoTrabajador(code='00')) | ||||
|  | ||||
|     def apply(self, fragment): | ||||
|         fragment.set_attributes('./Trabajador', | ||||
|   | ||||
		Reference in New Issue
	
	Block a user