[portal] [minor] show status for order and invoice
diff --git a/accounts/doctype/sales_invoice/templates/pages/invoice.html b/accounts/doctype/sales_invoice/templates/pages/invoice.html
index 376e5df..db6e009 100644
--- a/accounts/doctype/sales_invoice/templates/pages/invoice.html
+++ b/accounts/doctype/sales_invoice/templates/pages/invoice.html
@@ -1 +1,5 @@
-{% extends "app/portal/templates/sale.html" %}
\ No newline at end of file
+{% extends "app/portal/templates/sale.html" %}
+
+{% block status -%}
+	{% if doc.status %}{{ doc.status }}{% endif %}
+{%- endblock %}
\ No newline at end of file
diff --git a/accounts/doctype/sales_invoice/templates/pages/invoice.py b/accounts/doctype/sales_invoice/templates/pages/invoice.py
index 200727c..8fc8913 100644
--- a/accounts/doctype/sales_invoice/templates/pages/invoice.py
+++ b/accounts/doctype/sales_invoice/templates/pages/invoice.py
@@ -3,14 +3,28 @@
 
 from __future__ import unicode_literals
 import webnotes
+from webnotes import _
+from webnotes.utils import flt, fmt_money
 
 no_cache = True
 
 def get_context():
 	from portal.utils import get_transaction_context
 	context = get_transaction_context("Sales Invoice", webnotes.form_dict.name)
+	modify_status(context.get("doc"))
 	context.update({
 		"parent_link": "invoices",
 		"parent_title": "Invoices"
 	})
-	return context
\ No newline at end of file
+	return context
+	
+def modify_status(doc):
+	doc.status = ""
+	if flt(doc.outstanding_amount):
+		doc.status = '<span class="label %s"><i class="icon-fixed-width %s"></i> %s</span>' % \
+			("label-warning", "icon-exclamation-sign", 
+			_("To Pay") + " = " + fmt_money(doc.outstanding_amount, currency=doc.currency))
+	else:
+		doc.status = '<span class="label %s"><i class="icon-fixed-width %s"></i> %s</span>' % \
+			("label-success", "icon-ok", _("Paid"))
+		
\ No newline at end of file
diff --git a/accounts/doctype/sales_invoice/templates/pages/invoices.py b/accounts/doctype/sales_invoice/templates/pages/invoices.py
index ec957f3..59e53a0 100644
--- a/accounts/doctype/sales_invoice/templates/pages/invoices.py
+++ b/accounts/doctype/sales_invoice/templates/pages/invoices.py
@@ -11,7 +11,7 @@
 	context = get_currency_context()
 	context.update({
 		"title": "Invoices",
-		"method": "portal.templates.pages.invoices.get_invoices",
+		"method": "accounts.doctype.sales_invoice.templates.pages.invoices.get_invoices",
 		"icon": "icon-file-text",
 		"empty_list_message": "No Invoices Found",
 		"page": "invoice"
@@ -21,4 +21,8 @@
 @webnotes.whitelist()
 def get_invoices(start=0):
 	from portal.utils import get_transaction_list
-	return get_transaction_list("Sales Invoice", start)
\ No newline at end of file
+	from accounts.doctype.sales_invoice.templates.pages.invoice import modify_status
+	invoices = get_transaction_list("Sales Invoice", start, ["outstanding_amount"])
+	for d in invoices:
+		modify_status(d)
+	return invoices
\ No newline at end of file
diff --git a/portal/templates/sale.html b/portal/templates/sale.html
index 41ba297..2a7c603 100644
--- a/portal/templates/sale.html
+++ b/portal/templates/sale.html
@@ -17,7 +17,7 @@
 	<div>
 	<div class="row">
 		<div class="col-xs-6">
-			{% if doc.status -%}<div class="label label-default">{{ doc.status }}</div>{%- endif %}
+			{% block status -%}{%- endblock %}
 		</div>
 		<div class="col-xs-6">
 			<span class="pull-right">{{ utils.formatdate(doc.posting_date or doc.transaction_date) }}</span>
diff --git a/portal/templates/sales_transactions.html b/portal/templates/sales_transactions.html
index 10139c3..5f33797 100644
--- a/portal/templates/sales_transactions.html
+++ b/portal/templates/sales_transactions.html
@@ -12,12 +12,14 @@
 <script>
 	var render = function(doc) {
 		doc.grand_total_export = format_currency(doc.grand_total_export, doc.currency);
-	
+		if(!doc.status) doc.status = "";
+		
 		$(repl('<a href="{{ page }}?name=%(name)s" class="list-group-item">\
 				<div class="row">\
 					<div class="col-md-6">\
 						<div class="row col-md-12">%(name)s</div>\
-						<div class="row col-md-12 text-muted">%(items)s...</div>\
+						<div class="row col-md-12 text-muted">%(items)s</div>\
+						<div class="row col-md-12">%(status)s</div>\
 					</div>\
 					<div class="col-md-3 text-right">%(grand_total_export)s</div>\
 					<div class="col-md-3 text-right text-muted">%(creation)s</div>\
diff --git a/portal/utils.py b/portal/utils.py
index 25da39c..8f42d9b 100644
--- a/portal/utils.py
+++ b/portal/utils.py
@@ -6,19 +6,27 @@
 from webnotes.utils import cint, formatdate
 import json
 
-def get_transaction_list(doctype, start):
+def get_transaction_list(doctype, start, additional_fields=None):
 	# find customer id
 	customer = webnotes.conn.get_value("Contact", {"email_id": webnotes.session.user}, 
 		"customer")
-		
+	
 	if customer:
-		transactions = webnotes.conn.sql("""select name, creation, currency, grand_total_export 
+		if additional_fields:
+			additional_fields = ", " + ", ".join(("`%s`" % f for f in additional_fields))
+		else:
+			additional_fields = ""
+			
+		transactions = webnotes.conn.sql("""select name, creation, currency, grand_total_export
+			%s
 			from `tab%s` where customer=%s and docstatus=1
 			order by creation desc
-			limit %s, 20""" % (doctype, "%s", "%s"), (customer, cint(start)), as_dict=True)
+			limit %s, 20""" % (additional_fields, doctype, "%s", "%s"), 
+			(customer, cint(start)), as_dict=True)
 		for doc in transactions:
-			doc.items = ", ".join(webnotes.conn.sql_list("""select item_name
-				from `tab%s Item` where parent=%s limit 5""" % (doctype, "%s"), doc.name))
+			items = webnotes.conn.sql_list("""select item_name
+				from `tab%s Item` where parent=%s limit 6""" % (doctype, "%s"), doc.name)
+			doc.items = ", ".join(items[:5]) + ("..." if (len(items) > 5) else "")
 			doc.creation = formatdate(doc.creation)
 		return transactions
 	else:
diff --git a/selling/doctype/sales_order/templates/pages/order.html b/selling/doctype/sales_order/templates/pages/order.html
index 376e5df..db6e009 100644
--- a/selling/doctype/sales_order/templates/pages/order.html
+++ b/selling/doctype/sales_order/templates/pages/order.html
@@ -1 +1,5 @@
-{% extends "app/portal/templates/sale.html" %}
\ No newline at end of file
+{% extends "app/portal/templates/sale.html" %}
+
+{% block status -%}
+	{% if doc.status %}{{ doc.status }}{% endif %}
+{%- endblock %}
\ No newline at end of file
diff --git a/selling/doctype/sales_order/templates/pages/order.py b/selling/doctype/sales_order/templates/pages/order.py
index 6152e17..88a4d46 100644
--- a/selling/doctype/sales_order/templates/pages/order.py
+++ b/selling/doctype/sales_order/templates/pages/order.py
@@ -3,14 +3,30 @@
 
 from __future__ import unicode_literals
 import webnotes
+from webnotes import _
 
 no_cache = True
 
 def get_context():
 	from portal.utils import get_transaction_context
 	context = get_transaction_context("Sales Order", webnotes.form_dict.name)
+	modify_status(context.get("doc"))
 	context.update({
 		"parent_link": "orders",
 		"parent_title": "My Orders"
 	})
-	return context
\ No newline at end of file
+	return context
+	
+def modify_status(doc):
+	doc.status = []
+	if 0 < doc.per_billed < 100:
+		doc.status.append(("label-warning", "icon-ok", _("Partially Billed")))
+	elif doc.per_billed == 100:
+		doc.status.append(("label-success", "icon-ok", _("Billed")))
+	
+	if 0 < doc.per_delivered < 100:
+		doc.status.append(("label-warning", "icon-truck", _("Partially Delivered")))
+	elif doc.per_delivered == 100:
+		doc.status.append(("label-success", "icon-truck", _("Delivered")))
+	doc.status = " " + " ".join(('<span class="label %s"><i class="icon-fixed-width %s"></i> %s</span>' % s 
+			for s in doc.status))
diff --git a/selling/doctype/sales_order/templates/pages/orders.py b/selling/doctype/sales_order/templates/pages/orders.py
index aea81a9..150a20f 100644
--- a/selling/doctype/sales_order/templates/pages/orders.py
+++ b/selling/doctype/sales_order/templates/pages/orders.py
@@ -11,7 +11,7 @@
 	context = get_currency_context()
 	context.update({
 		"title": "My Orders",
-		"method": "portal.templates.pages.orders.get_orders",
+		"method": "selling.doctype.sales_order.templates.pages.orders.get_orders",
 		"icon": "icon-list",
 		"empty_list_message": "No Orders Yet",
 		"page": "order",
@@ -21,5 +21,10 @@
 @webnotes.whitelist()
 def get_orders(start=0):
 	from portal.utils import get_transaction_list
-	return get_transaction_list("Sales Order", start)
+	from selling.doctype.sales_order.templates.pages.order import modify_status
+	orders = get_transaction_list("Sales Order", start, ["per_billed", "per_delivered"])
+	for d in orders:
+		modify_status(d)
+		
+	return orders
 	
\ No newline at end of file