fix: set exchange rate
diff --git a/erpnext/crm/doctype/lead/lead.js b/erpnext/crm/doctype/lead/lead.js
index 4814311..37fb350 100644
--- a/erpnext/crm/doctype/lead/lead.js
+++ b/erpnext/crm/doctype/lead/lead.js
@@ -232,4 +232,4 @@
});
}
}
-})
\ No newline at end of file
+});
\ No newline at end of file
diff --git a/erpnext/crm/doctype/opportunity/opportunity.py b/erpnext/crm/doctype/opportunity/opportunity.py
index 0dc0cd3..08eb472 100644
--- a/erpnext/crm/doctype/opportunity/opportunity.py
+++ b/erpnext/crm/doctype/opportunity/opportunity.py
@@ -47,6 +47,7 @@
self.validate_uom_is_integer("uom", "qty")
self.validate_cust_name()
self.map_fields()
+ self.set_exchange_rate()
if not self.title:
self.title = self.customer_name
@@ -63,12 +64,21 @@
except Exception:
continue
+ def set_exchange_rate(self):
+ company_currency = frappe.get_cached_value("Company", self.company, "default_currency")
+ if self.currency == company_currency:
+ self.conversion_rate = 1.0
+ return
+
+ if not self.conversion_rate or self.conversion_rate == 1.0:
+ self.conversion_rate = get_exchange_rate(self.currency, company_currency, self.transaction_date)
+
def calculate_totals(self):
total = base_total = 0
for item in self.get("items"):
item.amount = flt(item.rate) * flt(item.qty)
- item.base_rate = flt(self.conversion_rate * item.rate)
- item.base_amount = flt(self.conversion_rate * item.amount)
+ item.base_rate = flt(self.conversion_rate) * flt(item.rate)
+ item.base_amount = flt(self.conversion_rate) * flt(item.amount)
total += item.amount
base_total += item.base_amount
diff --git a/erpnext/patches/v14_0/crm_ux_cleanup.py b/erpnext/patches/v14_0/crm_ux_cleanup.py
index 923daee..c1bc6b2 100644
--- a/erpnext/patches/v14_0/crm_ux_cleanup.py
+++ b/erpnext/patches/v14_0/crm_ux_cleanup.py
@@ -10,7 +10,14 @@
try:
rename_field("Lead", "designation", "job_title")
rename_field("Opportunity", "converted_by", "opportunity_owner")
- rename_field("Prospect", "prospect_lead", "leads")
+
+ frappe.db.sql(
+ """
+ update `tabProspect Lead`
+ set parentfield='leads'
+ where parentfield='partner_lead'
+ """
+ )
except Exception as e:
if e.args[0] != 1054:
raise