# Copyright (c) 2017, Frappe and Contributors # License: GNU General Public License v3. See license.txt import frappe def execute(): frappe.reload_doc('setup', 'doctype', 'global_defaults', force=True) frappe.reload_doc('stock', 'doctype', 'delivery_trip') frappe.reload_doc('stock', 'doctype', 'delivery_stop', force=True) for trip in frappe.get_all("Delivery Trip"): trip_doc = frappe.get_doc("Delivery Trip", trip.name) status = { 0: "Draft", 1: "Scheduled", 2: "Cancelled" }[trip_doc.docstatus] if trip_doc.docstatus == 1: visited_stops = [stop.visited for stop in trip_doc.delivery_stops] if all(visited_stops): status = "Completed" elif any(visited_stops): status = "In Transit" frappe.db.set_value("Delivery Trip", trip.name, "status", status, update_modified=False)