service provider/client info

This commit is contained in:
zhangshine 2015-06-09 00:30:47 +08:00
parent 07b99f7e94
commit 42af588ed9
2 changed files with 14 additions and 9 deletions

View file

@ -1,5 +1,6 @@
from __future__ import unicode_literals
from datetime import datetime, date
from reportlab.lib import colors
from reportlab.lib.enums import TA_CENTER, TA_RIGHT
from reportlab.lib.pagesizes import letter
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
@ -33,7 +34,7 @@ class SimpleInvoice(SimpleDocTemplate):
ParagraphStyle('RightHeading1', parent=self._defined_styles.get('Heading1'), alignment=TA_RIGHT)
)
self._defined_styles.add(
ParagraphStyle('ItemTableParagraph', parent=self._defined_styles.get('Normal'), alignment=TA_CENTER)
ParagraphStyle('TableParagraph', parent=self._defined_styles.get('Normal'), alignment=TA_CENTER)
)
self.invoice_info = None
@ -129,11 +130,14 @@ class SimpleInvoice(SimpleDocTemplate):
if isinstance(self.service_provider_info, ServiceProviderInfo) and isinstance(self.client_info, ClientInfo):
# Merge Table
table_data = [
[Paragraph('Service Provider', self._defined_styles.get('Heading1')), '', Paragraph('Client', self._defined_styles.get('Heading1')), '']
[Paragraph('Service Provider', self._defined_styles.get('Heading1')), '', '', Paragraph('Client', self._defined_styles.get('Heading1')), '']
]
table_style = [
('SPAN', (0, 0), (1, 0)),
('SPAN', (2, 0), (3, 0)),
('SPAN', (3, 0), (4, 0)),
('LINEBELOW', (0, 0), (1, 0), 1, colors.gray),
('LINEBELOW', (3, 0), (4, 0), 1, colors.gray),
('LEFTPADDING', (0, 0), (-1, -1), 0),
]
client_info_data = self.__client_info_data()
service_provider_data = self.__service_provider_data()
@ -144,6 +148,7 @@ class SimpleInvoice(SimpleDocTemplate):
else:
service_provider_data.extend([["", ""]*diff])
for d in zip(service_provider_data, client_info_data):
d[0].append('')
d[0].extend(d[1])
table_data.append(d[0])
self._story.append(
@ -159,7 +164,7 @@ class SimpleInvoice(SimpleDocTemplate):
(
item.item_id,
item.name,
Paragraph(item.description, self._defined_styles.get('ItemTableParagraph')),
Paragraph(item.description, self._defined_styles.get('TableParagraph')),
item.units,
item.unit_price,
item.subtotal
@ -178,9 +183,9 @@ class SimpleInvoice(SimpleDocTemplate):
transaction_table_data = [
(
t.transaction_id,
t.gateway,
Paragraph(t.gateway, self._defined_styles.get('TableParagraph')),
self.__format_value(t.transaction_datetime),
t.amount
t.amount,
) for t in self._transactions if isinstance(t, Transaction)
]

View file

@ -32,9 +32,9 @@ doc.client_info = ClientInfo(
post_code='222222'
)
doc.add_item(Item('0000', 'Item 0000', 'Item Description 1', 1, Decimal('1.1')))
doc.add_item(Item('1111', 'Item 1111', 'Item Description 2', 2, Decimal('2.2')))
doc.add_item(Item('2222', 'Item 2222', 'Item Description 3', 3, Decimal('3.3')))
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_transaction(Transaction('Paypal', 111, datetime.now(), 1))
doc.add_transaction(Transaction('Strip', 222, datetime.now(), 2))