feat: Auto update expected deal value based on products value

(cherry picked from commit 7e21a5fee206723cf714f7a8732bb8929aaa57df)
This commit is contained in:
Shariq Ansari 2025-09-16 17:46:17 +05:30 committed by Mergify
parent 0399fc32be
commit a4d3852c0e
2 changed files with 15 additions and 3 deletions

View File

@ -25,7 +25,7 @@ class CRMDeal(Document):
add_status_change_log(self)
if frappe.db.get_value("CRM Deal Status", self.status, "type") == "Won":
self.closed_date = frappe.utils.nowdate()
self.validate_forcasting_fields()
self.validate_forecasting_fields()
self.validate_lost_reason()
self.update_exchange_rate()
@ -151,9 +151,21 @@ class CRMDeal(Document):
if not self.probability or self.probability == 0:
self.probability = frappe.db.get_value("CRM Deal Status", self.status, "probability") or 0
def validate_forcasting_fields(self):
def update_expected_deal_value(self):
"""
Update the expected deal value based on the net total or total.
"""
if (
frappe.db.get_single_value("FCRM Settings", "auto_update_expected_deal_value")
and (self.net_total or self.total)
and self.expected_deal_value
):
self.expected_deal_value = self.net_total or self.total
def validate_forecasting_fields(self):
self.update_closed_date()
self.update_default_probability()
self.update_expected_deal_value()
if frappe.db.get_single_value("FCRM Settings", "enable_forecasting"):
if not self.expected_deal_value or self.expected_deal_value == 0:
frappe.throw(_("Expected Deal Value is required."), frappe.MandatoryError)

View File

@ -5,7 +5,7 @@
{{ __('Forecasting') }}
</h2>
<p class="text-p-base text-ink-gray-6">
{{ __('Configure forecasting settings for your CRM') }}
{{ __('Configure forecasting feature to help predict sales performance and growth') }}
</p>
</div>