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
