Merge pull request #6572 from RobertSchouten/patch-33

[fix] update timestamps and relink communication for timesheet
diff --git a/erpnext/patches.txt b/erpnext/patches.txt
index 9822fc0..3f19f92 100644
--- a/erpnext/patches.txt
+++ b/erpnext/patches.txt
@@ -318,3 +318,4 @@
 execute:frappe.db.sql("update `tabTimesheet` ts, `tabEmployee` emp set ts.employee_name = emp.employee_name where emp.name = ts.employee and ts.employee_name is null and ts.employee is not null")
 execute:frappe.db.sql("delete from `tabTimesheet Detail` where NOT EXISTS (select name from `tabTimesheet` where name = `tabTimesheet Detail`.parent)")
 erpnext.patches.v7_0.update_mode_of_payment_type
+finally:erpnext.patches.v7_0.update_timesheet_communications
diff --git a/erpnext/patches/v7_0/update_timesheet_communications b/erpnext/patches/v7_0/update_timesheet_communications
new file mode 100644
index 0000000..01d3210
--- /dev/null
+++ b/erpnext/patches/v7_0/update_timesheet_communications
@@ -0,0 +1,23 @@
+from __future__ import unicode_literals
+import frappe
+
+def execute():
+	if frappe.db.table_exists("Time Log"):
+		timesheet = frappe.db.sql("""SELECT ts.name AS name, tl.name AS timelogname,
+				tl.modified AS modified, tl.modified_by AS modified_by, tl.creation AS creation, tl.owner AS owner
+			FROM 
+				`tabTimesheet` ts, `tabTimesheet Detail` tsd, `tabTime Log` tl
+			WHERE 
+				tsd.parent = ts.name AND tl.from_time = tsd.from_time AND tl.to_time = tsd.to_time 
+				AND tl.hours = tsd.hours AND tl.billing_rate = tsd.billing_rate AND tsd.idx=1 
+				AND tl.docstatus < 2""", as_dict=1)
+				
+		for data in timesheet:
+			frappe.db.sql("""
+				update 
+					tabCommunication 
+				set 
+					reference_doctype = "Timesheet", reference_name = %(timesheet)s
+				where 
+					reference_doctype = "Time Log" and reference_name = %(timelog)s
+			""", {'timesheet': data.name, 'timelog': data.timelogname}, auto_commit=1)