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; } });