fix: set close date reqd as 1 or 0 based on enabled_forecasting

This commit is contained in:
Shariq Ansari 2025-06-11 19:30:08 +05:30
parent d87a237789
commit 2e27c0459c
2 changed files with 21 additions and 2 deletions

View File

@ -60,7 +60,7 @@
},
{
"default": "0",
"description": "It will make deal's \"Expected Closure Date\" mandatory to get accurate date forecasting insights",
"description": "It will make deal's \"Expected Closure Date\" mandatory to get accurate forecasting insights",
"fieldname": "enable_forecasting",
"fieldtype": "Check",
"label": "Enable Forecasting"
@ -69,7 +69,7 @@
"index_web_pages_for_search": 1,
"issingle": 1,
"links": [],
"modified": "2025-06-11 19:02:50.134252",
"modified": "2025-06-11 19:12:16.762499",
"modified_by": "Administrator",
"module": "FCRM",
"name": "FCRM Settings",

View File

@ -3,6 +3,7 @@
import frappe
from frappe import _
from frappe.custom.doctype.property_setter.property_setter import delete_property_setter, make_property_setter
from frappe.model.document import Document
from crm.install import after_install
@ -15,6 +16,7 @@ class FCRMSettings(Document):
def validate(self):
self.do_not_allow_to_delete_if_standard()
self.setup_forecasting()
def do_not_allow_to_delete_if_standard(self):
if not self.has_value_changed("dropdown_items"):
@ -29,6 +31,23 @@ class FCRMSettings(Document):
return
frappe.throw(_("Cannot delete standard items {0}").format(", ".join(deleted_standard_items)))
def setup_forecasting(self):
if self.has_value_changed("enable_forecasting"):
if not self.enable_forecasting:
delete_property_setter(
"CRM Deal",
"reqd",
"close_date",
)
else:
make_property_setter(
"CRM Deal",
"close_date",
"reqd",
1 if self.enable_forecasting else 0,
"Check",
)
def get_standard_dropdown_items():
return [item.get("name1") for item in frappe.get_hooks("standard_dropdown_items")]