From 39bc4b2a4cc6bdf5c4a9faa79d52f344300f2691 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Tue, 16 Aug 2016 15:18:20 +0530 Subject: [PATCH] Ignore overlap validation while creating timesheet from existing time logs --- .../v7_0/convert_timelog_to_timesheet.py | 26 +++++++++++-------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/erpnext/patches/v7_0/convert_timelog_to_timesheet.py b/erpnext/patches/v7_0/convert_timelog_to_timesheet.py index cb16466dae..072ba13cd0 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 {