from __future__ import unicode_literals import frappe from frappe.utils import flt def execute(): frappe.reload_doc('projects', 'doctype', 'timesheet') for data in frappe.get_all('Timesheet', fields=["name, total_costing_amount"], filters = [["docstatus", "<", "2"]]): if flt(data.total_costing_amount) == 0.0: ts = frappe.get_doc('Timesheet', data.name) ts.update_cost() ts.calculate_total_amounts() ts.flags.ignore_validate = True ts.flags.ignore_mandatory = True ts.flags.ignore_validate_update_after_submit = True ts.flags.ignore_links = True ts.save()