Skip to content

Commit

Permalink
fix: parsing of optional floatsvalues
Browse files Browse the repository at this point in the history
  • Loading branch information
barredterra committed Dec 4, 2024
1 parent 079615e commit 046236f
Showing 1 changed file with 10 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -232,18 +232,17 @@ def parse_line_item(self, li: "LineItem"):
)
item.item = item_code or None

item.billed_quantity = float(li.delivery.billed_quantity._amount)
item.billed_quantity = flt_or_none(li.delivery.billed_quantity._amount)
item.unit_code = str(li.delivery.billed_quantity._unit_code)
item.net_rate = rate
if li.settlement.trade_tax.rate_applicable_percent._value:
item.tax_rate = float(li.settlement.trade_tax.rate_applicable_percent._value)
item.total_amount = float(li.settlement.monetary_summation.total_amount._value)
item.tax_rate = flt_or_none(li.settlement.trade_tax.rate_applicable_percent._value)
item.total_amount = flt_or_none(li.settlement.monetary_summation.total_amount._value)

def parse_tax(self, tax: "ApplicableTradeTax"):
t = self.append("taxes")
t.basis_amount = float(tax.basis_amount._value or 0) or None
t.rate_applicable_percent = float(tax.rate_applicable_percent._value)
t.calculated_amount = float(tax.calculated_amount._value)
t.basis_amount = flt_or_none(tax.basis_amount._value)
t.rate_applicable_percent = flt_or_none(tax.rate_applicable_percent._value)
t.calculated_amount = flt_or_none(tax.calculated_amount._value)

def parse_payment_term(self, term: "PaymentTerms"):
if not term.partial_amount.children:
Expand Down Expand Up @@ -324,6 +323,10 @@ def add_seller_product_ids_to_items(self):
)


def flt_or_none(value) -> float | None:
return float(value) if value is not None else None


def format_heading(heading: str) -> str:
return "-" * (len(heading) + 4) + "\n" + f"{heading}\n" + "-" * (len(heading) + 4) + "\n"

Expand Down

0 comments on commit 046236f

Please sign in to comment.