diff --git a/import2ledger/importers/nbpy2017.py b/import2ledger/importers/nbpy2017.py index 31927c2..0e5f89c 100644 --- a/import2ledger/importers/nbpy2017.py +++ b/import2ledger/importers/nbpy2017.py @@ -82,14 +82,17 @@ class Invoice2017: self.shirts_sold = decimal.Decimal(0) self.shirt_rate = self.STANDARD_SHIRT_RATE for description, qty, unit_price, total in rows_text: + if qty is None: + continue + total = strparse.currency_decimal(total) + self.amount += total if description.startswith('Ticket - '): - self.tickets_sold += 1 + if total > 0: + self.tickets_sold += 1 elif description.startswith('T-Shirt - '): self.shirts_sold += 1 elif description.startswith('Early Bird ('): self.ticket_rate = self.DISCOUNT_TICKET_RATE - if qty: - self.amount += strparse.currency_decimal(total) def _read_invoice_activity(self, table, first_row_text, rows_text): self.actions = [{ diff --git a/tests/data/imports.yml b/tests/data/imports.yml index 41dd760..f3bfc27 100644 --- a/tests/data/imports.yml +++ b/tests/data/imports.yml @@ -238,9 +238,9 @@ - payee: Python Person C ledger template: nbpy2017 invoice ledger entry date: !!python/object/apply:datetime.date [2017, 9, 5] - amount: !!python/object/apply:decimal.Decimal ["55.00"] - tickets_sold: !!python/object/apply:decimal.Decimal ["1"] - ticket_rate: !!python/object/apply:decimal.Decimal ["21.25"] + amount: !!python/object/apply:decimal.Decimal ["30.00"] + tickets_sold: !!python/object/apply:decimal.Decimal ["0"] + ticket_rate: !!python/object/apply:decimal.Decimal ["42.50"] shirts_sold: !!python/object/apply:decimal.Decimal ["1"] shirt_rate: !!python/object/apply:decimal.Decimal ["25.50"] status: Invoice @@ -250,9 +250,9 @@ - payee: Python Person C ledger template: nbpy2017 payment ledger entry date: !!python/object/apply:datetime.date [2017, 9, 5] - amount: !!python/object/apply:decimal.Decimal ["55.00"] - tickets_sold: !!python/object/apply:decimal.Decimal ["1"] - ticket_rate: !!python/object/apply:decimal.Decimal ["21.25"] + amount: !!python/object/apply:decimal.Decimal ["30.00"] + tickets_sold: !!python/object/apply:decimal.Decimal ["0"] + ticket_rate: !!python/object/apply:decimal.Decimal ["42.50"] shirts_sold: !!python/object/apply:decimal.Decimal ["1"] shirt_rate: !!python/object/apply:decimal.Decimal ["25.50"] status: Payment diff --git a/tests/data/nbpy2017c.html b/tests/data/nbpy2017c.html index fb7ed95..cc61c3a 100644 --- a/tests/data/nbpy2017c.html +++ b/tests/data/nbpy2017c.html @@ -172,10 +172,10 @@