Merge branch 'develop' into dev_enhance_upgrade_process
diff --git a/erpnext/patches/v14_0/update_opportunity_currency_fields.py b/erpnext/patches/v14_0/update_opportunity_currency_fields.py
index 076de52..17df853 100644
--- a/erpnext/patches/v14_0/update_opportunity_currency_fields.py
+++ b/erpnext/patches/v14_0/update_opportunity_currency_fields.py
@@ -1,3 +1,4 @@
+import click
 import frappe
 from frappe.utils import flt
 
@@ -16,6 +17,19 @@
 	for opportunity in opportunities:
 		company_currency = erpnext.get_company_currency(opportunity.company)
 
+		if opportunity.currency is None or opportunity.currency == "":
+			opportunity.currency = company_currency
+			frappe.db.set_value(
+				"Opportunity",
+				opportunity.name,
+				{"currency": opportunity.currency},
+				update_modified=False,
+			)
+			click.secho(
+				f' Opportunity `{opportunity.name}` has no currency set. We force it to company currency : `{opportunity.currency}`"\n',
+				fg="yellow",
+			)
+
 		# base total and total will be 0 only since item table did not have amount field earlier
 		if opportunity.currency != company_currency:
 			conversion_rate = get_exchange_rate(opportunity.currency, company_currency)