From 01945c44407c16b6ab99232320627d3a84d2853b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pavel=20=C5=A0imerda?= Date: Fri, 3 Feb 2012 18:57:06 +0100 Subject: [PATCH] Added 'summary' command. --- lib/invoice/cli.py | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/lib/invoice/cli.py b/lib/invoice/cli.py index 0dc1404..52f26a0 100644 --- a/lib/invoice/cli.py +++ b/lib/invoice/cli.py @@ -51,8 +51,8 @@ class Application: help="additional help") for list_ in "invoices", "companies": - for action in "list", "new", "edit", "show", "pdf", "delete": - if action == "pdf" and list_ != "invoices": + for action in "list", "summary", "new", "edit", "show", "pdf", "delete": + if action in ("pdf", "summary") and list_ != "invoices": continue suffix = '' if list_ == "companies": @@ -90,6 +90,23 @@ class Application: for item in sorted(self.db.invoices): print(item) + def do_summary(self): + """Show invoice summary.""" + total = paid = 0 + for invoice in sorted(self.db.invoices): + data = invoice.data() + log.debug(data._data) + print("{number:7} {due!s:10} {paid!s:10} {sum:>6} {company_name}" + .format(**data._data)) + total += data.sum + if data.paid: + paid += data.sum + + print() + print("Total: {:6}".format(total)) + print("Paid: {:6}".format(paid)) + print("Unpaid: {:6}".format(total-paid)) + def do_new(self, company_name): """Create and edit a new invoice.""" item = self.db.invoices.new(company_name)