diff --git a/InvenTree/templates/js/translated/pricing.js b/InvenTree/templates/js/translated/pricing.js
index 690ed1762a..590d5124c7 100644
--- a/InvenTree/templates/js/translated/pricing.js
+++ b/InvenTree/templates/js/translated/pricing.js
@@ -106,9 +106,9 @@ var cached_exchange_rates = null;
/*
* Retrieve currency conversion rate information from the server
*/
-function getCurrencyConversionRates() {
+function getCurrencyConversionRates(cache=true) {
- if (cached_exchange_rates != null) {
+ if (cache && cached_exchange_rates != null) {
return cached_exchange_rates;
}
@@ -236,6 +236,11 @@ function convertCurrency(value, source_currency, target_currency, rate_data) {
return value;
}
+ if (rate_data == null) {
+ console.error('convertCurrency() called without rate_data');
+ return null;
+ }
+
if (!('base_currency' in rate_data)) {
console.error('Currency data missing base_currency parameter');
return null;
diff --git a/InvenTree/templates/js/translated/stock.js b/InvenTree/templates/js/translated/stock.js
index 412305251b..36ca11a64a 100644
--- a/InvenTree/templates/js/translated/stock.js
+++ b/InvenTree/templates/js/translated/stock.js
@@ -2041,9 +2041,27 @@ function loadStockTable(table, options) {
title: '{% trans "Purchase Price" %}',
sortable: false,
formatter: function(value, row) {
- return formatCurrency(value, {
+ let html = formatCurrency(value, {
currency: row.purchase_price_currency,
});
+
+ var base = baseCurrency();
+
+ if (row.purchase_price_currency != base) {
+ let converted = convertCurrency(
+ row.purchase_price,
+ row.purchase_price_currency,
+ base,
+ getCurrencyConversionRates(),
+ );
+
+ if (converted) {
+ converted = formatCurrency(converted, {currency: baseCurrency()});
+ html += `
${converted}`;
+ }
+ }
+
+ return html;
}
});