From 29132f6f23213cf433a5b400a7292420993516ba Mon Sep 17 00:00:00 2001 From: Shariq Ansari Date: Tue, 1 Jul 2025 12:07:44 +0530 Subject: [PATCH] fix: add default probabilities in deal status (cherry picked from commit 6d3268a61ecd96710f2c7d1cede33a5cc6f939d6) --- .../crm_deal_status/crm_deal_status.json | 3 ++- crm/install.py | 7 ++++++ crm/patches.txt | 3 ++- .../v1_0/update_deal_status_probabilities.py | 24 +++++++++++++++++++ 4 files changed, 35 insertions(+), 2 deletions(-) create mode 100644 crm/patches/v1_0/update_deal_status_probabilities.py diff --git a/crm/fcrm/doctype/crm_deal_status/crm_deal_status.json b/crm/fcrm/doctype/crm_deal_status/crm_deal_status.json index ae026c74..d9b5f203 100644 --- a/crm/fcrm/doctype/crm_deal_status/crm_deal_status.json +++ b/crm/fcrm/doctype/crm_deal_status/crm_deal_status.json @@ -37,13 +37,14 @@ { "fieldname": "probability", "fieldtype": "Percent", + "in_list_view": 1, "label": "Probability" } ], "grid_page_length": 50, "index_web_pages_for_search": 1, "links": [], - "modified": "2025-06-11 13:00:34.518808", + "modified": "2025-07-01 12:06:42.937440", "modified_by": "Administrator", "module": "FCRM", "name": "CRM Deal Status", diff --git a/crm/install.py b/crm/install.py index 5ffa5a67..ffa84e90 100644 --- a/crm/install.py +++ b/crm/install.py @@ -68,26 +68,32 @@ def add_default_deal_statuses(): statuses = { "Qualification": { "color": "gray", + "probability": 10, "position": 1, }, "Demo/Making": { "color": "orange", + "probability": 25, "position": 2, }, "Proposal/Quotation": { "color": "blue", + "probability": 50, "position": 3, }, "Negotiation": { "color": "yellow", + "probability": 70, "position": 4, }, "Ready to Close": { "color": "purple", + "probability": 90, "position": 5, }, "Won": { "color": "green", + "probability": 100, "position": 6, }, "Lost": { @@ -103,6 +109,7 @@ def add_default_deal_statuses(): doc = frappe.new_doc("CRM Deal Status") doc.deal_status = status doc.color = statuses[status]["color"] + doc.probability = statuses[status]["probability"] doc.position = statuses[status]["position"] doc.insert() diff --git a/crm/patches.txt b/crm/patches.txt index ee56be84..484c73dc 100644 --- a/crm/patches.txt +++ b/crm/patches.txt @@ -12,4 +12,5 @@ crm.patches.v1_0.create_default_sidebar_fields_layout crm.patches.v1_0.update_deal_quick_entry_layout crm.patches.v1_0.update_layouts_to_new_format crm.patches.v1_0.move_twilio_agent_to_telephony_agent -crm.patches.v1_0.create_default_scripts # 13-06-2025 \ No newline at end of file +crm.patches.v1_0.create_default_scripts # 13-06-2025 +crm.patches.v1_0.update_deal_status_probabilities \ No newline at end of file diff --git a/crm/patches/v1_0/update_deal_status_probabilities.py b/crm/patches/v1_0/update_deal_status_probabilities.py new file mode 100644 index 00000000..3460784e --- /dev/null +++ b/crm/patches/v1_0/update_deal_status_probabilities.py @@ -0,0 +1,24 @@ +import frappe + + +def execute(): + deal_statuses = frappe.get_all("CRM Deal Status", fields=["name", "probability", "deal_status"]) + + for status in deal_statuses: + if status.probability is None or status.probability == 0: + if status.deal_status == "Qualification": + probability = 10 + elif status.deal_status == "Demo/Making": + probability = 25 + elif status.deal_status == "Proposal/Quotation": + probability = 50 + elif status.deal_status == "Negotiation": + probability = 70 + elif status.deal_status == "Ready to Close": + probability = 90 + elif status.deal_status == "Won": + probability = 100 + else: + probability = 0 + + frappe.db.set_value("CRM Deal Status", status.name, "probability", probability)