fix: reverse linking for employee advance
diff --git a/erpnext/hr/doctype/additional_salary/additional_salary.json b/erpnext/hr/doctype/additional_salary/additional_salary.json
index 7d69f7e..9819b38 100644
--- a/erpnext/hr/doctype/additional_salary/additional_salary.json
+++ b/erpnext/hr/doctype/additional_salary/additional_salary.json
@@ -13,6 +13,8 @@
   "salary_component",
   "overwrite_salary_structure_amount",
   "deduct_full_tax_on_selected_payroll_date",
+  "ref_doctype",
+  "ref_docname",
   "column_break_5",
   "company",
   "payroll_date",
@@ -127,11 +129,25 @@
    "options": "Additional Salary",
    "print_hide": 1,
    "read_only": 1
+  },
+  {
+   "fieldname": "ref_doctype",
+   "fieldtype": "Link",
+   "label": "Reference Document Type",
+   "options": "DocType",
+   "read_only": 1
+  },
+  {
+   "fieldname": "ref_docname",
+   "fieldtype": "Dynamic Link",
+   "label": "Reference Document",
+   "options": "ref_doctype",
+   "read_only": 1
   }
  ],
  "is_submittable": 1,
  "links": [],
- "modified": "2019-12-12 19:07:23.635901",
+ "modified": "2020-03-05 18:54:17.763244",
  "modified_by": "Administrator",
  "module": "HR",
  "name": "Additional Salary",
diff --git a/erpnext/hr/doctype/employee_advance/employee_advance.js b/erpnext/hr/doctype/employee_advance/employee_advance.js
index c5d044a..38561d4 100644
--- a/erpnext/hr/doctype/employee_advance/employee_advance.js
+++ b/erpnext/hr/doctype/employee_advance/employee_advance.js
@@ -74,6 +74,11 @@
 			method: "erpnext.hr.doctype.employee_advance.employee_advance.create_return_through_additional_salary",
 			args: {
 				doc: frm.doc
+			},
+			callback: function (r){
+				console.log("Helloxs")
+				var doclist = frappe.model.sync(r.message);
+				frappe.set_route("Form", doclist[0].doctype, doclist[0].name);
 			}
 		});
 	},
diff --git a/erpnext/hr/doctype/employee_advance/employee_advance.json b/erpnext/hr/doctype/employee_advance/employee_advance.json
index 7f599a7..1ab2356 100644
--- a/erpnext/hr/doctype/employee_advance/employee_advance.json
+++ b/erpnext/hr/doctype/employee_advance/employee_advance.json
@@ -14,8 +14,6 @@
   "column_break_4",
   "posting_date",
   "repay_unclaimed_amount_from_salary",
-  "payroll_date",
-  "salary_component",
   "section_break_8",
   "purpose",
   "column_break_11",
@@ -178,24 +176,11 @@
    "fieldname": "repay_unclaimed_amount_from_salary",
    "fieldtype": "Check",
    "label": "Repay unclaimed amount from salary"
-  },
-  {
-   "depends_on": "eval:doc.repay_unclaimed_amount_from_salary == 1",
-   "fieldname": "payroll_date",
-   "fieldtype": "Date",
-   "label": "Payroll date"
-  },
-  {
-   "depends_on": "eval:doc.repay_unclaimed_amount_from_salary == 1",
-   "fieldname": "salary_component",
-   "fieldtype": "Link",
-   "label": "Salary Component",
-   "options": "Salary Component"
   }
  ],
  "is_submittable": 1,
  "links": [],
- "modified": "2020-01-03 13:02:32.094099",
+ "modified": "2020-03-05 16:31:50.417539",
  "modified_by": "Administrator",
  "module": "HR",
  "name": "Employee Advance",
diff --git a/erpnext/hr/doctype/employee_advance/employee_advance.py b/erpnext/hr/doctype/employee_advance/employee_advance.py
index feedccc..a9cccd7 100644
--- a/erpnext/hr/doctype/employee_advance/employee_advance.py
+++ b/erpnext/hr/doctype/employee_advance/employee_advance.py
@@ -138,16 +138,12 @@
 	doc = frappe._dict(json.loads(doc))
 	additional_salary = frappe.new_doc('Additional Salary')
 	additional_salary.employee = doc.employee
-	additional_salary.salary_component = doc.salary_component
 	additional_salary.amount = doc.paid_amount - doc.claimed_amount
-	additional_salary.payroll_date = doc.payroll_date
 	additional_salary.company = doc.company
+	additional_salary.ref_doctype = doc.doctype
+	additional_salary.ref_docname = doc.name
 
-	additional_salary.submit()
-
-	frappe.db.set_value("Employee Advance", doc.name, "return_amount", additional_salary.amount)
-
-	return additional_salary.name
+	return additional_salary
 
 @frappe.whitelist()
 def make_return_entry(employee_name, company, employee_advance_name, return_amount, mode_of_payment, advance_account):
diff --git a/erpnext/hr/doctype/employee_incentive/employee_incentive.json b/erpnext/hr/doctype/employee_incentive/employee_incentive.json
index ce8e1ea..e2d8a11 100644
--- a/erpnext/hr/doctype/employee_incentive/employee_incentive.json
+++ b/erpnext/hr/doctype/employee_incentive/employee_incentive.json
@@ -9,10 +9,9 @@
   "employee",
   "incentive_amount",
   "employee_name",
-  "additional_salary",
+  "salary_component",
   "column_break_5",
   "payroll_date",
-  "salary_component",
   "department",
   "amended_from"
  ],
@@ -66,14 +65,6 @@
    "read_only": 1
   },
   {
-   "fieldname": "additional_salary",
-   "fieldtype": "Link",
-   "label": "Additional Salary",
-   "no_copy": 1,
-   "options": "Additional Salary",
-   "read_only": 1
-  },
-  {
    "fieldname": "salary_component",
    "fieldtype": "Link",
    "label": "Salary Component",
@@ -83,7 +74,7 @@
  ],
  "is_submittable": 1,
  "links": [],
- "modified": "2019-12-12 13:24:44.761540",
+ "modified": "2020-03-05 18:59:40.526014",
  "modified_by": "Administrator",
  "module": "HR",
  "name": "Employee Incentive",
diff --git a/erpnext/hr/doctype/employee_incentive/employee_incentive.py b/erpnext/hr/doctype/employee_incentive/employee_incentive.py
index 2e138f8..1cc52e1 100644
--- a/erpnext/hr/doctype/employee_incentive/employee_incentive.py
+++ b/erpnext/hr/doctype/employee_incentive/employee_incentive.py
@@ -10,11 +10,13 @@
 	def on_submit(self):
 		company = frappe.db.get_value('Employee', self.employee, 'company')
 		additional_salary = frappe.db.exists('Additional Salary', {
-				'employee': self.employee, 
+				'employee': self.employee,
+				'ref_doctype': self.doctype,
+				'ref_docname': self.name,
 				'salary_component': self.salary_component,
-				'payroll_date': self.payroll_date, 
+				'payroll_date': self.payroll_date,
 				'company': company,
-				'docstatus': 1
+				'docstatus': ["!=", 2]
 			})
 
 		if not additional_salary:
@@ -24,22 +26,10 @@
 			additional_salary.amount = self.incentive_amount
 			additional_salary.payroll_date = self.payroll_date
 			additional_salary.company = company
+			additional_salary.ref_doctype = self.doctype
+			additional_salary.ref_docname = self.name
 			additional_salary.submit()
-			self.db_set('additional_salary', additional_salary.name)
-
 		else:
 			incentive_added = frappe.db.get_value('Additional Salary', additional_salary, 'amount') + self.incentive_amount
-			frappe.db.set_value('Additional Salary', additional_salary, 'amount', incentive_added)
-			self.db_set('additional_salary', additional_salary)
+			frappe.db.set_value('Additional Salary', additional_salary, {'amount', incentive_added})
 
-	def on_cancel(self):
-		if self.additional_salary:
-			incentive_removed = frappe.db.get_value('Additional Salary', self.additional_salary, 'amount') - self.incentive_amount
-			if incentive_removed == 0:
-				frappe.get_doc('Additional Salary', self.additional_salary).cancel()
-			else:
-				frappe.db.set_value('Additional Salary', self.additional_salary, 'amount', incentive_removed)
-
-			self.db_set('additional_salary', '')
-
-