[fix] update timestamps and relink communication for timesheet

This commit is contained in:
RobertSchouten 2016-10-07 11:01:12 +08:00 committed by GitHub
parent 77ede941b0
commit ef4e41380b

View File

@ -0,0 +1,24 @@
from __future__ import unicode_literals
import frappe
def execute():
if frappe.db.table_exists("Time Log") and "employee" in frappe.db.get_table_columns("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 `tabTimesheet` set creation = %(creation)s,
owner = %(owner)s, modified = %(modified)s, modified_by = %(modified_by)s
where name = %(name)s""", data)
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)