diff --git a/erpnext/__init__.py b/erpnext/__init__.py
index 44ba88a..2258949 100644
--- a/erpnext/__init__.py
+++ b/erpnext/__init__.py
@@ -2,7 +2,7 @@
 from __future__ import unicode_literals
 import frappe
 
-__version__ = '8.0.18'
+__version__ = '8.0.19'
 
 def get_default_company(user=None):
 	'''Get default company for user'''
diff --git a/erpnext/buying/doctype/purchase_order/purchase_order_dashboard.py b/erpnext/buying/doctype/purchase_order/purchase_order_dashboard.py
index 5e460df..50382d5 100644
--- a/erpnext/buying/doctype/purchase_order/purchase_order_dashboard.py
+++ b/erpnext/buying/doctype/purchase_order/purchase_order_dashboard.py
@@ -3,6 +3,10 @@
 def get_data():
 	return {
 		'fieldname': 'purchase_order',
+		'non_standard_fieldnames': {
+			'Journal Entry': 'reference_name',
+			'Payment Entry': 'reference_name'
+		},
 		'internal_links': {
 			'Material Request': ['items', 'material_request'],
 			'Supplier Quotation': ['items', 'supplier_quotation'],
@@ -14,12 +18,16 @@
 				'items': ['Purchase Receipt', 'Purchase Invoice']
 			},
 			{
+				'label': _('Payment'),
+				'items': ['Payment Entry', 'Journal Entry']
+			},
+			{
 				'label': _('Reference'),
 				'items': ['Material Request', 'Supplier Quotation', 'Project']
 			},
 			{
 				'label': _('Sub-contracting'),
 				'items': ['Stock Entry']
-			},
+			}
 		]
 	}
\ No newline at end of file
diff --git a/erpnext/selling/doctype/sales_order/sales_order_dashboard.py b/erpnext/selling/doctype/sales_order/sales_order_dashboard.py
index 51f81f8..a0ed034 100644
--- a/erpnext/selling/doctype/sales_order/sales_order_dashboard.py
+++ b/erpnext/selling/doctype/sales_order/sales_order_dashboard.py
@@ -5,6 +5,9 @@
 		'fieldname': 'sales_order',
 		'non_standard_fieldnames': {
 			'Delivery Note': 'against_sales_order',
+			'Journal Entry': 'reference_name',
+			'Payment Entry': 'reference_name',
+			'Payment Request': 'reference_name'
 		},
 		'internal_links': {
 			'Quotation': ['items', 'prevdoc_docname']
@@ -30,5 +33,9 @@
 				'label': _('Reference'),
 				'items': ['Quotation']
 			},
+			{
+				'label': _('Payment'),
+				'items': ['Payment Entry', 'Payment Request', 'Journal Entry']
+			},
 		]
 	}
\ No newline at end of file
diff --git a/erpnext/stock/doctype/batch/batch.py b/erpnext/stock/doctype/batch/batch.py
index 8ef8e91..5749afb 100644
--- a/erpnext/stock/doctype/batch/batch.py
+++ b/erpnext/stock/doctype/batch/batch.py
@@ -101,16 +101,18 @@
 
 def get_batch_no(item_code, warehouse, qty, throw=False):
 	'''get the smallest batch with for the given item_code, warehouse and qty'''
-	batches = sorted(
-		get_batch_qty(item_code = item_code, warehouse = warehouse),
-		lambda a, b: 1 if a.qty > b.qty else -1)
-
+	
 	batch_no = None
-	for b in batches:
-		if b.qty >= qty:
-			batch_no = b.batch_no
-			# found!
-			break
+	
+	batches = get_batch_qty(item_code = item_code, warehouse = warehouse)
+	if batches:
+		batches = sorted(batches, lambda a, b: 1 if a.qty > b.qty else -1)
+
+		for b in batches:
+			if b.qty >= qty:
+				batch_no = b.batch_no
+				# found!
+				break
 
 	if not batch_no:
 		frappe.msgprint(_('Please select a Batch for Item {0}. Unable to find a single batch that fulfills this requirement').format(frappe.bold(item_code)))
