[fix] mark completed docuemts on document flow
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):