From 7837827e30190b5090de47d91a0f01974c638e4c Mon Sep 17 00:00:00 2001 From: Akhilesh Darjee Date: Fri, 11 Oct 2013 19:06:30 +0530 Subject: [PATCH] [fix] [minor] conversion arte related fixes --- .../doctype/sales_invoice/sales_invoice.js | 1 - controllers/accounts_controller.py | 11 +++-- controllers/selling_controller.py | 6 +-- public/js/transaction.js | 43 ++++++++++--------- utilities/transaction_base.py | 1 - 5 files changed, 30 insertions(+), 32 deletions(-) diff --git a/accounts/doctype/sales_invoice/sales_invoice.js b/accounts/doctype/sales_invoice/sales_invoice.js index 5220c0fa20..46e336f029 100644 --- a/accounts/doctype/sales_invoice/sales_invoice.js +++ b/accounts/doctype/sales_invoice/sales_invoice.js @@ -147,7 +147,6 @@ erpnext.accounts.SalesInvoiceController = erpnext.selling.SellingController.exte }); } } - }, debit_to: function() { diff --git a/controllers/accounts_controller.py b/controllers/accounts_controller.py index 927b24980f..3af9c7a547 100644 --- a/controllers/accounts_controller.py +++ b/controllers/accounts_controller.py @@ -52,7 +52,7 @@ class AccountsController(TransactionBase): 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 @@ class AccountsController(TransactionBase): 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 @@ class AccountsController(TransactionBase): 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 37674ee4bf..845ba859e0 100644 --- a/controllers/selling_controller.py +++ b/controllers/selling_controller.py @@ -20,7 +20,7 @@ class SellingController(StockController): # 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 @@ class SellingController(StockController): 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 a7be5bdbf5..79ea53623f 100644 --- a/public/js/transaction.js +++ b/public/js/transaction.js @@ -39,18 +39,19 @@ erpnext.TransactionController = erpnext.stock.StockController.extend({ }, 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 @@ erpnext.TransactionController = erpnext.stock.StockController.extend({ 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 @@ erpnext.TransactionController = erpnext.stock.StockController.extend({ 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 @@ erpnext.TransactionController = erpnext.stock.StockController.extend({ 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 9921910a8a..0f4d6bcacd 100644 --- a/utilities/transaction_base.py +++ b/utilities/transaction_base.py @@ -144,7 +144,6 @@ class TransactionBase(StatusUpdater): 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"]),