diff --git a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py
index ceba01e..8d7f653 100644
--- a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py
+++ b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py
@@ -35,6 +35,15 @@
 			'percent_join_field': 'purchase_order',
 			'overflow_type': 'billing'
 		}]
+		
+		self.prev_link_mapper = {
+			"Purchase Order": {
+				"fieldname": "purchase_order"
+			},
+			"Purchase Receipt": {
+				"fieldname": "purchase_receipt"
+			}
+		}
 
 	def validate(self):
 		if not self.is_opening:
@@ -665,15 +674,6 @@
 		self.due_date = None
 	
 	def get_link_filters(self, for_doctype):
-		self.prev_link_mapper = {
-			"Purchase Order": {
-				"fieldname": "purchase_order"
-			},
-			"Purchase Receipt": {
-				"fieldname": "purchase_receipt"
-			}
-		}
-		
 		return super(PurchaseInvoice, self).get_link_filters(for_doctype)
 
 @frappe.whitelist()
diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
index 377f9fa..bbbbccf 100644
--- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
+++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
@@ -38,6 +38,15 @@
 			'keyword': 'Billed',
 			'overflow_type': 'billing'
 		}]
+		
+		self.prev_link_mapper = {
+			"Sales Order": {
+				"fieldname": "sales_order"
+			},
+			"Delivery Note": {
+				"fieldname": "delivery_note"
+			}
+		}
 
 	def set_indicator(self):
 		"""Set indicator for portal"""
@@ -698,15 +707,6 @@
 		self.due_date = None
 	
 	def get_link_filters(self, for_doctype):
-		self.prev_link_mapper = {
-			"Sales Order": {
-				"fieldname": "sales_order"
-			},
-			"Delivery Note": {
-				"fieldname": "delivery_note"
-			}
-		}
-		
 		return super(SalesInvoice, self).get_link_filters(for_doctype)
 
 def get_list_context(context=None):
diff --git a/erpnext/buying/doctype/purchase_order/purchase_order.py b/erpnext/buying/doctype/purchase_order/purchase_order.py
index 49a44e9..9c7288c 100644
--- a/erpnext/buying/doctype/purchase_order/purchase_order.py
+++ b/erpnext/buying/doctype/purchase_order/purchase_order.py
@@ -32,6 +32,12 @@
 			'percent_join_field': 'prevdoc_docname',
 			'overflow_type': 'order'
 		}]
+		
+		self.prev_link_mapper = {
+			"Supplier Quotation": {
+				"fieldname": "supplier_quotation"
+			}
+		}
 
 	def validate(self):
 		super(PurchaseOrder, self).validate()
@@ -236,12 +242,6 @@
 				item.received_qty = item.qty
 
 	def get_link_filters(self, for_doctype):
-		self.prev_link_mapper = {
-			"Supplier Quotation": {
-				"fieldname": "supplier_quotation"
-			}
-		}
-		
 		return super(PurchaseOrder, self).get_link_filters(for_doctype)
 
 @frappe.whitelist()
diff --git a/erpnext/selling/doctype/sales_order/sales_order.py b/erpnext/selling/doctype/sales_order/sales_order.py
index 63e307d..a34c12a 100644
--- a/erpnext/selling/doctype/sales_order/sales_order.py
+++ b/erpnext/selling/doctype/sales_order/sales_order.py
@@ -21,6 +21,15 @@
 class WarehouseRequired(frappe.ValidationError): pass
 
 class SalesOrder(SellingController):
+	def __init__(self, arg1, arg2=None):
+		super(SalesOrder, self).__init__(arg1, arg2)
+		
+		self.prev_link_mapper = {
+			"Quotation": {
+				"fieldname": "prevdoc_docname"
+			}
+		}
+		
 	def validate(self):
 		super(SalesOrder, self).validate()
 
@@ -308,12 +317,6 @@
 						cint(reference_doc.repeat_on_day_of_month)))
 
 	def get_link_filters(self, for_doctype):
-		self.prev_link_mapper = {
-			"Quotation": {
-				"fieldname": "prevdoc_docname"
-			}
-		}
-		
 		return super(SalesOrder, self).get_link_filters(for_doctype)
 		
 def get_list_context(context=None):
diff --git a/erpnext/stock/doctype/delivery_note/delivery_note.py b/erpnext/stock/doctype/delivery_note/delivery_note.py
index be6c797..7d0cdcd 100644
--- a/erpnext/stock/doctype/delivery_note/delivery_note.py
+++ b/erpnext/stock/doctype/delivery_note/delivery_note.py
@@ -60,7 +60,14 @@
 			'source_field': '-1 * qty',
 			'extra_cond': """ and exists (select name from `tabDelivery Note` where name=`tabDelivery Note Item`.parent and is_return=1)"""
 		}]
+		
+		self.prev_link_mapper = {
+			"Sales Order": {
+				"fieldname": "against_sales_order"
+			}
+		}
 
+		
 	def before_print(self):
 		def toggle_print_hide(meta, fieldname):
 			df = meta.get_field(fieldname)
@@ -284,12 +291,6 @@
 		self.load_from_db()
 	
 	def get_link_filters(self, for_doctype):
-		self.prev_link_mapper = {
-			"Sales Order": {
-				"fieldname": "against_sales_order"
-			}
-		}
-		
 		return super(DeliveryNote, self).get_link_filters(for_doctype)
 
 def update_billed_amount_based_on_so(so_detail, update_modified=True):
diff --git a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py
index bfcecbd..751d321 100644
--- a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py
+++ b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py
@@ -45,6 +45,12 @@
 			# 'overflow_type': 'receipt',
 			'extra_cond': """ and exists (select name from `tabPurchase Receipt` where name=`tabPurchase Receipt Item`.parent and is_return=1)"""
 		}]
+		
+		self.prev_link_mapper = {
+			"Purchase Order": {
+				"fieldname": "prevdoc_docname"
+			}
+		}
 
 	def validate(self):
 		super(PurchaseReceipt, self).validate()
@@ -334,12 +340,6 @@
 		self.load_from_db()
 
 	def get_link_filters(self, for_doctype):
-		self.prev_link_mapper = {
-			"Purchase Order": {
-				"fieldname": "prevdoc_docname"
-			}
-		}
-		
 		return super(PurchaseReceipt, self).get_link_filters(for_doctype)
 
 def update_billed_amount_based_on_po(po_detail, update_modified=True):
