From 03b18cec2ffbf53d0f4bcdc38412051eab09309d Mon Sep 17 00:00:00 2001 From: zhangshine Date: Tue, 9 Jun 2015 00:51:36 +0800 Subject: [PATCH] vat tax --- pyinvoice/models.py | 8 +++----- pyinvoice/templates.py | 3 ++- simple.py | 6 +++--- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/pyinvoice/models.py b/pyinvoice/models.py index 476732b..8733005 100644 --- a/pyinvoice/models.py +++ b/pyinvoice/models.py @@ -55,7 +55,7 @@ class Item(object): """ Product/Item information """ - def __init__(self, item_id, name, description, units, unit_price): + def __init__(self, item_id, name, description, units, unit_price, subtotal, vat_tax=None): """ Item modal init :param item_id: Order id or Item id @@ -70,10 +70,8 @@ class Item(object): self.description = description self.units = units self.unit_price = unit_price - - @property - def subtotal(self): - return int(self.units) * self.unit_price + self.vat_tax = vat_tax + self.subtotal = subtotal class Transaction(object): diff --git a/pyinvoice/templates.py b/pyinvoice/templates.py index 87b3a5c..1524ef2 100644 --- a/pyinvoice/templates.py +++ b/pyinvoice/templates.py @@ -167,6 +167,7 @@ class SimpleInvoice(SimpleDocTemplate): Paragraph(item.description, self._defined_styles.get('TableParagraph')), item.units, item.unit_price, + item.vat_tax if item.vat_tax is not None else '-', item.subtotal ) for item in self._items if isinstance(item, Item) ] @@ -175,7 +176,7 @@ class SimpleInvoice(SimpleDocTemplate): self._story.append( Paragraph('Detail', self._defined_styles.get('Heading1')) ) - item_data.insert(0, ('Item id', 'Name', 'Description', 'Units', 'Unit Price', 'Subtotal')) + item_data.insert(0, ('Item id', 'Name', 'Description', 'Units', 'Unit Price', 'Vat/Tax', 'Subtotal')) self._story.append(TableWithHeader(item_data, horizontal_align='LEFT')) def __build_transactions(self): diff --git a/simple.py b/simple.py index fe639b8..0caf4a4 100644 --- a/simple.py +++ b/simple.py @@ -32,9 +32,9 @@ doc.client_info = ClientInfo( post_code='222222' ) -doc.add_item(Item('0000', 'Item', 'Item', 1, Decimal('1.1'))) -doc.add_item(Item('1111', 'Item', 'Item', 2, Decimal('2.2'))) -doc.add_item(Item('2222', 'Item', 'Item', 3, Decimal('3.3'))) +doc.add_item(Item('0000', 'Item', 'Item', 1, '1.1', '1.1')) +doc.add_item(Item('1111', 'Item', 'Item', 2, '2.2', '4.4')) +doc.add_item(Item('2222', 'Item', 'Item', 3, '3.3', '9.9')) doc.add_transaction(Transaction('Paypal', 111, datetime.now(), 1)) doc.add_transaction(Transaction('Strip', 222, datetime.now(), 2))