refactor: checkbox to toggle exchange rate inheritence in PO->PI
diff --git a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.json b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.json
index e489882..2d1f445 100644
--- a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.json
+++ b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.json
@@ -36,6 +36,7 @@
"currency_and_price_list",
"currency",
"conversion_rate",
+ "use_transaction_date_exchange_rate",
"column_break2",
"buying_price_list",
"price_list_currency",
@@ -1588,13 +1589,20 @@
"label": "Repost Required",
"options": "Account",
"read_only": 1
+ },
+ {
+ "default": "0",
+ "fieldname": "use_transaction_date_exchange_rate",
+ "fieldtype": "Check",
+ "label": "Use Transaction Date Exchange Rate",
+ "read_only": 1
}
],
"icon": "fa fa-file-text",
"idx": 204,
"is_submittable": 1,
"links": [],
- "modified": "2023-10-01 21:01:47.282533",
+ "modified": "2023-10-16 16:24:51.886231",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Purchase Invoice",
diff --git a/erpnext/buying/doctype/buying_settings/buying_settings.json b/erpnext/buying/doctype/buying_settings/buying_settings.json
index 8c73e56..71cb01b 100644
--- a/erpnext/buying/doctype/buying_settings/buying_settings.json
+++ b/erpnext/buying/doctype/buying_settings/buying_settings.json
@@ -24,6 +24,7 @@
"bill_for_rejected_quantity_in_purchase_invoice",
"disable_last_purchase_rate",
"show_pay_button",
+ "use_transaction_date_exchange_rate",
"subcontract",
"backflush_raw_materials_of_subcontract_based_on",
"column_break_11",
@@ -164,6 +165,13 @@
"fieldname": "over_order_allowance",
"fieldtype": "Float",
"label": "Over Order Allowance (%)"
+ },
+ {
+ "default": "0",
+ "description": "While making Purchase Invoice from Purchase Order, use Exchange Rate on Invoice's transaction date rather than inheriting it from Purchase Order. Only applies for Purchase Invoice.",
+ "fieldname": "use_transaction_date_exchange_rate",
+ "fieldtype": "Check",
+ "label": "Use Transaction Date Exchange Rate"
}
],
"icon": "fa fa-cog",
@@ -171,7 +179,7 @@
"index_web_pages_for_search": 1,
"issingle": 1,
"links": [],
- "modified": "2023-03-02 17:02:14.404622",
+ "modified": "2023-10-16 16:22:03.201078",
"modified_by": "Administrator",
"module": "Buying",
"name": "Buying Settings",
diff --git a/erpnext/controllers/accounts_controller.py b/erpnext/controllers/accounts_controller.py
index 6812940..2beee28 100644
--- a/erpnext/controllers/accounts_controller.py
+++ b/erpnext/controllers/accounts_controller.py
@@ -572,6 +572,17 @@
self.currency, self.company_currency, transaction_date, args
)
+ if (
+ self.currency
+ and buying_or_selling == "Buying"
+ and frappe.db.get_single_value("Buying Settings", "use_transaction_date_exchange_rate")
+ and self.doctype == "Purchase Invoice"
+ ):
+ self.use_transaction_date_exchange_rate = True
+ self.conversion_rate = get_exchange_rate(
+ self.currency, self.company_currency, transaction_date, args
+ )
+
def set_missing_item_details(self, for_validate=False):
"""set missing item values"""
from erpnext.stock.doctype.serial_no.serial_no import get_serial_nos