Merge pull request #6095 from nabinhait/timesheet_patch
Ignore overlap validation while creating timesheet from existing time logs
diff --git a/erpnext/patches/v7_0/convert_timelog_to_timesheet.py b/erpnext/patches/v7_0/convert_timelog_to_timesheet.py
index cb16466..072ba13 100644
--- a/erpnext/patches/v7_0/convert_timelog_to_timesheet.py
+++ b/erpnext/patches/v7_0/convert_timelog_to_timesheet.py
@@ -1,19 +1,23 @@
import frappe
-
-from erpnext.manufacturing.doctype.production_order.production_order import make_timesheet, add_timesheet_detail
+from erpnext.manufacturing.doctype.production_order.production_order \
+ import make_timesheet, add_timesheet_detail
+from erpnext.projects.doctype.timesheet.timesheet import OverlapError
def execute():
frappe.reload_doc('projects', 'doctype', 'timesheet')
- for data in frappe.get_all('Time Log', fields=["*"],
- filters = [["docstatus", "<", "2"]]):
- time_sheet = make_timesheet(data.production_order)
- args = get_timelog_data(data)
- add_timesheet_detail(time_sheet, args)
- time_sheet.docstatus = data.docstatus
- time_sheet.note = data.note
- time_sheet.company = frappe.db.get_single_value('Global Defaults', 'default_company')
- time_sheet.save(ignore_permissions=True)
+ for data in frappe.get_all('Time Log', fields=["*"], filters = [["docstatus", "<", "2"]]):
+ try:
+ time_sheet = make_timesheet(data.production_order)
+ args = get_timelog_data(data)
+ add_timesheet_detail(time_sheet, args)
+ time_sheet.docstatus = data.docstatus
+ time_sheet.note = data.note
+ time_sheet.company = frappe.db.get_single_value('Global Defaults', 'default_company')
+ time_sheet.save(ignore_permissions=True)
+ except OverlapError:
+ time_sheet.flags.ignore_validate = True
+ time_sheet.save(ignore_permissions=True)
def get_timelog_data(data):
return {