[fix] [minor] conversion arte related fixes
diff --git a/accounts/doctype/sales_invoice/sales_invoice.js b/accounts/doctype/sales_invoice/sales_invoice.js
index 5220c0f..46e336f 100644
--- a/accounts/doctype/sales_invoice/sales_invoice.js
+++ b/accounts/doctype/sales_invoice/sales_invoice.js
@@ -147,7 +147,6 @@
});
}
}
-
},
debit_to: function() {
diff --git a/controllers/accounts_controller.py b/controllers/accounts_controller.py
index 927b249..3af9c7a 100644
--- a/controllers/accounts_controller.py
+++ b/controllers/accounts_controller.py
@@ -52,7 +52,7 @@
msgprint(_("Account for this ") + fieldname + _(" has been freezed. ") +
self.doc.doctype + _(" can not be made."), raise_exception=1)
- def set_price_list_currency(self, buying_or_selling):
+ def set_price_list_currency(self, buying_or_selling, for_validate=False):
if self.meta.get_field("currency"):
company_currency = get_company_currency(self.doc.company)
@@ -60,14 +60,13 @@
fieldname = "selling_price_list" if buying_or_selling.lower() == "selling" \
else "buying_price_list"
if self.meta.get_field(fieldname) and self.doc.fields.get(fieldname):
- if not self.doc.price_list_currency:
- self.doc.price_list_currency = webnotes.conn.get_value("Price List",
- self.doc.fields.get(fieldname), "currency")
+ self.doc.price_list_currency = webnotes.conn.get_value("Price List",
+ self.doc.fields.get(fieldname), "currency")
if self.doc.price_list_currency == company_currency:
self.doc.plc_conversion_rate = 1.0
- elif not self.doc.plc_conversion_rate:
+ elif not self.doc.plc_conversion_rate or not for_validate:
self.doc.plc_conversion_rate = self.get_exchange_rate(
self.doc.price_list_currency, company_currency)
@@ -77,7 +76,7 @@
self.doc.conversion_rate = self.doc.plc_conversion_rate
elif self.doc.currency == company_currency:
self.doc.conversion_rate = 1.0
- elif not self.doc.conversion_rate:
+ elif not self.doc.conversion_rate or not for_validate:
self.doc.conversion_rate = self.get_exchange_rate(self.doc.currency,
company_currency)
diff --git a/controllers/selling_controller.py b/controllers/selling_controller.py
index 37674ee..845ba85 100644
--- a/controllers/selling_controller.py
+++ b/controllers/selling_controller.py
@@ -20,7 +20,7 @@
# set contact and address details for customer, if they are not mentioned
self.set_missing_lead_customer_details()
- self.set_price_list_and_item_details()
+ self.set_price_list_and_item_details(for_validate)
if self.doc.fields.get("__islocal"):
self.set_taxes("other_charges", "charge")
@@ -38,8 +38,8 @@
if not self.doc.fields.get(fieldname) and self.meta.get_field(fieldname):
self.doc.fields[fieldname] = val
- def set_price_list_and_item_details(self):
- self.set_price_list_currency("Selling")
+ def set_price_list_and_item_details(self, for_validate=False):
+ self.set_price_list_currency("Selling", for_validate)
self.set_missing_item_details(get_item_details)
def get_other_charges(self):
diff --git a/public/js/transaction.js b/public/js/transaction.js
index a7be5bd..79ea536 100644
--- a/public/js/transaction.js
+++ b/public/js/transaction.js
@@ -39,18 +39,19 @@
},
onload_post_render: function() {
- if(this.frm.doc.__islocal && this.frm.doc.company && !this.frm.doc.customer) {
- var me = this;
- return this.frm.call({
- doc: this.frm.doc,
- method: "onload_post_render",
- freeze: true,
- callback: function(r) {
- // remove this call when using client side mapper
- me.set_default_values();
- me.set_dynamic_labels();
- }
- });
+ if(this.frm.doc.__islocal && this.frm.doc.company &&
+ !this.frm.doc.customer && !this.frm.doc.is_pos) {
+ var me = this;
+ return this.frm.call({
+ doc: this.frm.doc,
+ method: "onload_post_render",
+ freeze: true,
+ callback: function(r) {
+ // remove this call when using client side mapper
+ me.set_default_values();
+ me.set_dynamic_labels();
+ }
+ });
}
},
@@ -130,14 +131,16 @@
company: function() {
if(this.frm.doc.company && this.frm.fields_dict.currency) {
var company_currency = this.get_company_currency();
- if(!this.frm.doc.currency) {
+ if (!this.frm.doc.currency) {
this.frm.set_value("currency", company_currency);
}
- if(this.frm.doc.currency == company_currency)
+ if (this.frm.doc.currency == company_currency) {
this.frm.set_value("conversion_rate", 1.0);
- if(this.frm.doc.price_list_currency == company_currency)
+ }
+ if (this.frm.doc.price_list_currency == company_currency) {
this.frm.set_value('plc_conversion_rate', 1.0);
+ }
this.frm.script_manager.trigger("currency");
}
@@ -150,15 +153,13 @@
currency: function() {
var me = this;
this.set_dynamic_labels();
-
+
var company_currency = this.get_company_currency();
if(this.frm.doc.currency !== company_currency) {
this.get_exchange_rate(this.frm.doc.currency, company_currency,
function(exchange_rate) {
- if(exchange_rate) {
- me.frm.set_value("conversion_rate", exchange_rate);
- me.conversion_rate();
- }
+ me.frm.set_value("conversion_rate", exchange_rate);
+ me.conversion_rate();
});
} else {
this.conversion_rate();
@@ -172,7 +173,7 @@
this.frm.doc.plc_conversion_rate !== this.frm.doc.conversion_rate) {
this.frm.set_value("plc_conversion_rate", this.frm.doc.conversion_rate);
}
-
+
this.calculate_taxes_and_totals();
},
diff --git a/utilities/transaction_base.py b/utilities/transaction_base.py
index 9921910..0f4d6bc 100644
--- a/utilities/transaction_base.py
+++ b/utilities/transaction_base.py
@@ -144,7 +144,6 @@
def get_customer_address(self, args):
args = load_json(args)
- webnotes.errprint(args)
ret = {
'customer_address' : args["address"],
'address_display' : get_address_display(args["address"]),