from __future__ import unicode_literals
import frappe

def execute():
	if frappe.db.table_exists("Time Log"):
		timesheet = frappe.db.sql("""select tl.employee as employee, ts.name as name,
				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 and (ts.employee = '' or ts.employee is null)""", as_dict=1)
		
		for data in timesheet:
			ts_doc = frappe.get_doc('Timesheet', data.name)
			if len(ts_doc.time_logs) == 1:
				frappe.db.sql(""" update `tabTimesheet` set creation = %(creation)s,
					owner = %(owner)s, modified = %(modified)s, modified_by = %(modified_by)s,
					employee = %(employee)s where name = %(name)s""", data)

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 tl.employee as employee, ts.name as name,
				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 and (ts.employee = '' or ts.employee is null)""", as_dict=1)
		
		for data in timesheet:
			ts_doc = frappe.get_doc('Timesheet', data.name)
			if len(ts_doc.time_logs) == 1:
				frappe.db.sql(""" update `tabTimesheet` set creation = %(creation)s,
					owner = %(owner)s, modified = %(modified)s, modified_by = %(modified_by)s,
					employee = %(employee)s where name = %(name)s""", data)

Migrate employee field to timesheet only if it exists in time log
Migrate employee field to timesheet only if it exists in time log

  from __future__ import unicode_literals
  import frappe
  
  def execute():
- 	if frappe.db.table_exists("Time Log"):
+ 	if frappe.db.table_exists("Time Log") and "employee" in frappe.db.get_table_columns("Time Log"):
  		timesheet = frappe.db.sql("""select tl.employee as employee, ts.name as name,
  				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 and (ts.employee = '' or ts.employee is null)""", as_dict=1)
  		
  		for data in timesheet:
  			ts_doc = frappe.get_doc('Timesheet', data.name)
  			if len(ts_doc.time_logs) == 1:
  				frappe.db.sql(""" update `tabTimesheet` set creation = %(creation)s,
  					owner = %(owner)s, modified = %(modified)s, modified_by = %(modified_by)s,
  					employee = %(employee)s where name = %(name)s""", data)
  
Migrate employee field to timesheet only if it exists in time log
## Code Before:
from __future__ import unicode_literals
import frappe

def execute():
	if frappe.db.table_exists("Time Log"):
		timesheet = frappe.db.sql("""select tl.employee as employee, ts.name as name,
				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 and (ts.employee = '' or ts.employee is null)""", as_dict=1)
		
		for data in timesheet:
			ts_doc = frappe.get_doc('Timesheet', data.name)
			if len(ts_doc.time_logs) == 1:
				frappe.db.sql(""" update `tabTimesheet` set creation = %(creation)s,
					owner = %(owner)s, modified = %(modified)s, modified_by = %(modified_by)s,
					employee = %(employee)s where name = %(name)s""", data)

## Instruction:
Migrate employee field to timesheet only if it exists in time log
## Code After:
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 tl.employee as employee, ts.name as name,
				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 and (ts.employee = '' or ts.employee is null)""", as_dict=1)
		
		for data in timesheet:
			ts_doc = frappe.get_doc('Timesheet', data.name)
			if len(ts_doc.time_logs) == 1:
				frappe.db.sql(""" update `tabTimesheet` set creation = %(creation)s,
					owner = %(owner)s, modified = %(modified)s, modified_by = %(modified_by)s,
					employee = %(employee)s where name = %(name)s""", data)
