Separate invoice creation logic to invoice_factory

This commit is contained in:
norohind 2024-08-29 16:16:59 +02:00
parent e4689c6632
commit fee7b98bc5

View File

@ -41,6 +41,10 @@ class Invoice(BaseModel):
def rounding_errors(self) -> Decimal:
return self.total_price - sum(i.total_price for i in self.items)
def invoice_factory(doc: dict) -> Invoice:
inv = Invoice.model_validate(doc)
inv.items.sort(key=lambda item: item.total_price, reverse=True)
return inv
def query_verify_invoice(iic, dateTimeCreated, tin) -> dict:
r = requests.post(
@ -73,7 +77,4 @@ def query_verify_invoice_by_url(url) -> dict:
def invoice_by_url(url: str) -> Invoice:
invoice_dict = query_verify_invoice_by_url(url)
inv = Invoice.model_validate(invoice_dict)
inv.items.sort(key=lambda item: item.total_price, reverse=True)
return inv
return invoice_factory(invoice_dict)