From 195f90232d0605e8d9542313e5482b0eb8c9349a Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Thu, 18 Dec 2025 17:05:39 +0530 Subject: [PATCH] fix(pegged currencies): skip adding currencies_to_add items on pegged_currency_item if source_currency or pegged_against currency doc does not exist (backport #51188) (#51203) Co-authored-by: Diptanil Saha fix(pegged currencies): skip adding currencies_to_add items on pegged_currency_item if source_currency or pegged_against currency doc does not exist (#51188) (cherry picked from commit 8ef09c0dc00db0f21472d7be419a866418600e16) --- erpnext/setup/install.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/erpnext/setup/install.py b/erpnext/setup/install.py index ccae5136a9e..fffe9b9bdf0 100644 --- a/erpnext/setup/install.py +++ b/erpnext/setup/install.py @@ -296,8 +296,20 @@ def update_pegged_currencies(): {"source_currency": "SAR", "pegged_against": "USD", "pegged_exchange_rate": 3.75}, ] + # Add items on pegged_currency_item if source_currency and pegged_against currency doc exist. + + currencies_exist = frappe.db.get_list( + "Currency", {"name": ["in", ["AED", "BHD", "JOD", "OMR", "QAR", "SAR", "USD"]]}, pluck="name" + ) + + if "USD" not in currencies_exist: + return + for currency in currencies_to_add: - if currency["source_currency"] not in existing_sources: + if ( + currency["source_currency"] in currencies_exist + and currency["source_currency"] not in existing_sources + ): doc.append("pegged_currency_item", currency) doc.save()