patch: to link additional salary with salary slip and leave encashment, incentive with additional salary
diff --git a/erpnext/hr/doctype/salary_detail/salary_detail.json b/erpnext/hr/doctype/salary_detail/salary_detail.json
index 92942d8..fe5f83b 100644
--- a/erpnext/hr/doctype/salary_detail/salary_detail.json
+++ b/erpnext/hr/doctype/salary_detail/salary_detail.json
@@ -211,7 +211,7 @@
],
"istable": 1,
"links": [],
- "modified": "2020-04-24 20:00:16.475295",
+ "modified": "2020-04-04 20:00:16.475295",
"modified_by": "Administrator",
"module": "HR",
"name": "Salary Detail",
diff --git a/erpnext/patches.txt b/erpnext/patches.txt
index 5295399..533a349 100644
--- a/erpnext/patches.txt
+++ b/erpnext/patches.txt
@@ -677,3 +677,4 @@
erpnext.patches.v12_0.fix_quotation_expired_status
erpnext.patches.v12_0.update_appointment_reminder_scheduler_entry
erpnext.patches.v12_0.retain_permission_rules_for_video_doctype
+erpnext.patches.v13_0.patch_to_fix_reverse_linking_in_additional_salary_encashment_and_incentive #gyhdghksdhsjsd
diff --git a/erpnext/patches/v13_0/patch_to_fix_reverse_linking_in_additional_salary_encashment_and_incentive.py b/erpnext/patches/v13_0/patch_to_fix_reverse_linking_in_additional_salary_encashment_and_incentive.py
new file mode 100644
index 0000000..8b8e60d
--- /dev/null
+++ b/erpnext/patches/v13_0/patch_to_fix_reverse_linking_in_additional_salary_encashment_and_incentive.py
@@ -0,0 +1,35 @@
+from __future__ import unicode_literals
+
+import frappe
+
+def execute():
+
+ additional_salaries = frappe.get_all("Additional Salary", fields = ['name', "salary_slip", "type", "salary_component"], group_by = 'salary_slip')
+ leave_encashments = frappe.get_all("Leave Encashment", fields = ["name","additional_salary"])
+ employee_incentives = frappe.get_all("Employee Incentive", fields= ["name", "additional_salary"])
+
+ for incentive in employee_incentives:
+ frappe.db.sql(""" UPDATE `tabAdditional Salary`
+ SET ref_doctype = 'Employee Incentive', ref_docname = %s
+ WHERE name = %s
+ """, (incentive['name'], incentive['additional_salary']))
+
+
+ for leave_encashment in leave_encashments:
+ frappe.db.sql(""" UPDATE `tabAdditional Salary`
+ SET ref_doctype = 'Leave Encashment', ref_docname = %s
+ WHERE name = %s
+ """, (leave_encashment['name'], leave_encashment['additional_salary']))
+
+ salary_slips = [sal["salary_slip"] for sal in additional_salaries]
+
+ for salary in additional_salaries:
+ comp_type = "earnings" if salary['type'] == 'Earning' else 'deductions'
+ if salary["salary_slip"] and salary_slips.count(salary["salary_slip"]) == 1:
+ frappe.db.sql(""" UPDATE `tabsalary Detail`
+ SET additional_salary = %s
+ WHERE parenttype = 'Salary Slip'
+ and parentfield = %s
+ and parent = %s
+ and salary_component = %s""", (salary["name"], comp_type, salary["salary_slip"], salary["salary_component"]))
+