Skip to content

Commit

Permalink
Wrong Exchange Rate Is Fetched When Exchange Rate Is Different From C…
Browse files Browse the repository at this point in the history
…ompany Currency For Price Lists #12712 (#12714)

* unconditionally fetch exchange rate

* Revert "unconditionally fetch exchange rate"

This reverts commit d0d404d.

* allow for `plc_conversion_rate` field to be reset

* fetch exchange rate using price list currency and company currency not form currency

* clean up
  • Loading branch information
tundebabzy authored and nabinhait committed Feb 12, 2018
1 parent 6e7e70c commit 6e90f49
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 3 deletions.
10 changes: 8 additions & 2 deletions erpnext/public/js/controllers/transaction.js
Original file line number Diff line number Diff line change
Expand Up @@ -704,7 +704,7 @@ erpnext.TransactionController = erpnext.taxes_and_totals.extend({
}

if(!this.in_apply_price_list) {
this.apply_price_list();
this.apply_price_list(null, true);
}
},

Expand Down Expand Up @@ -1056,7 +1056,13 @@ erpnext.TransactionController = erpnext.taxes_and_totals.extend({
if(!price_list_rate_changed) me.calculate_taxes_and_totals();
},

apply_price_list: function(item) {
apply_price_list: function(item, reset_plc_conversion) {
// We need to reset plc_conversion_rate sometimes because the call to
// `erpnext.stock.get_item_details.apply_price_list` is sensitive to its value
if (!reset_plc_conversion) {
this.frm.set_value("plc_conversion_rate", "");
}

var me = this;
var args = this._get_args(item);
if (!((args.items && args.items.length) || args.price_list)) {
Expand Down
4 changes: 3 additions & 1 deletion erpnext/stock/get_item_details.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
from erpnext.setup.utils import get_exchange_rate
from frappe.model.meta import get_field_precision
from erpnext.stock.doctype.batch.batch import get_batch_no
from erpnext import get_company_currency


@frappe.whitelist()
Expand Down Expand Up @@ -590,11 +591,12 @@ def get_price_list_currency_and_exchange_rate(args):
price_list_currency = get_price_list_currency(args.price_list)
price_list_uom_dependant = get_price_list_uom_dependant(args.price_list)
plc_conversion_rate = args.plc_conversion_rate
company_currency = get_company_currency(args.company)

if (not plc_conversion_rate) or (price_list_currency and args.price_list_currency \
and price_list_currency != args.price_list_currency):
# cksgb 19/09/2016: added args.transaction_date as posting_date argument for get_exchange_rate
plc_conversion_rate = get_exchange_rate(price_list_currency, args.currency,
plc_conversion_rate = get_exchange_rate(price_list_currency, company_currency,
args.transaction_date) or plc_conversion_rate

return frappe._dict({
Expand Down

0 comments on commit 6e90f49

Please sign in to comment.