From c0b1f3f37af3619913d5327fd4b4d300a1abab3f Mon Sep 17 00:00:00 2001 From: rocketdebris Date: Thu, 22 Jan 2026 10:46:11 -0500 Subject: [PATCH] Added sales order items as tasks to the project. --- custom_ui/api/db/jobs.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/custom_ui/api/db/jobs.py b/custom_ui/api/db/jobs.py index 082733e..16bd48a 100644 --- a/custom_ui/api/db/jobs.py +++ b/custom_ui/api/db/jobs.py @@ -25,7 +25,7 @@ def create_job_from_sales_order(sales_order_name): try: sales_order = frappe.get_doc("Sales Order", sales_order_name) project_template = frappe.get_doc("Project Template", "SNW Install") - new_job = frappe.get_doc({ + new_project = frappe.get_doc({ "doctype": "Project", "custom_address": sales_order.custom_job_address, # "custom_installation_address": sales_order.custom_installation_address, @@ -35,13 +35,22 @@ def create_job_from_sales_order(sales_order_name): "sales_order": sales_order, "custom_company": sales_order.company }) - new_job.insert() + new_project.insert() + for sales_order_item in sales_order.items: + new_task = frappe.get_doc({ + "doctype": "Task", + "project": new_project.name, + "company": sales_order.company, + "custom_property": sales_order.custom_job_address, + "subject": sales_order_item.description, + }) + new_task.insert() # Iterate through new tasks (if any) and set customer, address # job_tasks = frappe.get_all("Task", filters={"Project": new_job.name}) # for task in job_tasks: # task.custom_property = new_job.job_address # task.save() - return build_success_response(new_job.as_dict()) + return build_success_response(new_project.as_dict()) except Exception as e: return build_error_response(str(e), 500)