Merge pull request #37552 from frappe/addr_fetch

fix: Ignore addr permission in internal code
diff --git a/erpnext/controllers/selling_controller.py b/erpnext/controllers/selling_controller.py
index 418a56f..c01ac81 100644
--- a/erpnext/controllers/selling_controller.py
+++ b/erpnext/controllers/selling_controller.py
@@ -4,7 +4,6 @@
 
 import frappe
 from frappe import _, bold, throw
-from frappe.contacts.doctype.address.address import get_address_display
 from frappe.utils import cint, flt, get_link_to_form, nowtime
 
 from erpnext.controllers.accounts_controller import get_taxes_and_charges
@@ -593,6 +592,12 @@
 				)
 
 	def set_customer_address(self):
+		try:
+			from frappe.contacts.doctype.address.address import render_address
+		except ImportError:
+			# Older frappe versions where this function is not available
+			from frappe.contacts.doctype.address.address import get_address_display as render_address
+
 		address_dict = {
 			"customer_address": "address_display",
 			"shipping_address_name": "shipping_address",
@@ -602,7 +607,8 @@
 
 		for address_field, address_display_field in address_dict.items():
 			if self.get(address_field):
-				self.set(address_display_field, get_address_display(self.get(address_field)))
+				address = frappe.call(render_address, self.get(address_field), ignore_permissions=True)
+				self.set(address_display_field, address)
 
 	def validate_for_duplicate_items(self):
 		check_list, chk_dupl_itm = [], []