diff --git a/erpnext/__version__.py b/erpnext/__version__.py index e4f549b68b..e78a8c3102 100644 --- a/erpnext/__version__.py +++ b/erpnext/__version__.py @@ -1,2 +1,2 @@ from __future__ import unicode_literals -__version__ = '5.0.2' +__version__ = '5.0.3' diff --git a/erpnext/accounts/general_ledger.py b/erpnext/accounts/general_ledger.py index 1d60efa838..9b97e4bc6b 100644 --- a/erpnext/accounts/general_ledger.py +++ b/erpnext/accounts/general_ledger.py @@ -71,12 +71,11 @@ def save_entries(gl_map, adv_adj, update_outstanding): # check against budget validate_expense_against_budget(entry) - # update total debit / credit total_debit += flt(entry.debit) total_credit += flt(entry.credit) - validate_total_debit_credit(total_debit, total_credit) + validate_total_debit_credit(total_debit, total_credit, gl_map) def make_entry(args, adv_adj, update_outstanding): args.update({"doctype": "GL Entry"}) @@ -86,9 +85,9 @@ def make_entry(args, adv_adj, update_outstanding): gle.run_method("on_update_with_args", adv_adj, update_outstanding) gle.submit() -def validate_total_debit_credit(total_debit, total_credit): +def validate_total_debit_credit(total_debit, total_credit, gl_map): if abs(total_debit - total_credit) > 0.005: - frappe.throw(_("Debit and Credit not equal for this voucher. Difference is {0}.").format(total_debit - total_credit)) + frappe.throw(_("Debit and Credit not equal for {0} #{1}. Difference is {2}.").format(gl_map[0].voucher_type, gl_map[0].voucher_no, total_debit - total_credit)) def validate_account_for_auto_accounting_for_stock(gl_map): if gl_map[0].voucher_type=="Journal Entry": diff --git a/erpnext/controllers/taxes_and_totals.py b/erpnext/controllers/taxes_and_totals.py index 3efb9132f2..e77a9a6619 100644 --- a/erpnext/controllers/taxes_and_totals.py +++ b/erpnext/controllers/taxes_and_totals.py @@ -282,6 +282,9 @@ class calculate_taxes_and_totals(object): last_tax.tax_amount += diff last_tax.tax_amount_after_discount_amount += diff last_tax.total += diff + + self._set_in_company_currency(last_tax, + ["total", "tax_amount", "tax_amount_after_discount_amount"]) def calculate_totals(self): self.doc.grand_total = flt(self.doc.get("taxes")[-1].total diff --git a/erpnext/hooks.py b/erpnext/hooks.py index 846e49ef57..ae1bb5708d 100644 --- a/erpnext/hooks.py +++ b/erpnext/hooks.py @@ -5,7 +5,7 @@ app_publisher = "Frappe Technologies Pvt. Ltd. and Contributors" app_description = "Open Source Enterprise Resource Planning for Small and Midsized Organizations" app_icon = "icon-th" app_color = "#e74c3c" -app_version = "5.0.2" +app_version = "5.0.3" error_report_email = "support@erpnext.com" diff --git a/erpnext/public/js/controllers/taxes_and_totals.js b/erpnext/public/js/controllers/taxes_and_totals.js index fd99d80600..4a26d6d39c 100644 --- a/erpnext/public/js/controllers/taxes_and_totals.js +++ b/erpnext/public/js/controllers/taxes_and_totals.js @@ -46,14 +46,19 @@ erpnext.taxes_and_totals = erpnext.stock.StockController.extend({ var company_currency = this.get_company_currency(); if(!this.frm.doc.conversion_rate) { - frappe.throw(repl('%(conversion_rate_label)s' + - __(' is mandatory. Maybe Currency Exchange record is not created for ') + - '%(from_currency)s' + __(" to ") + '%(to_currency)s', - { - "conversion_rate_label": conversion_rate_label, - "from_currency": this.frm.doc.currency, - "to_currency": company_currency - })); + if(this.frm.doc.currency == company_currency) { + this.frm.set_value("conversion_rate", 1); + } else { + frappe.throw(repl('%(conversion_rate_label)s' + + __(' is mandatory. Maybe Currency Exchange record is not created for ') + + '%(from_currency)s' + __(" to ") + '%(to_currency)s', + { + "conversion_rate_label": conversion_rate_label, + "from_currency": this.frm.doc.currency, + "to_currency": company_currency + })); + } + } }, @@ -314,6 +319,8 @@ erpnext.taxes_and_totals = erpnext.stock.StockController.extend({ tax.tax_amount_after_discount_amount = flt(tax.tax_amount_after_discount_amount + discount_amount_loss, precision("tax_amount", tax)); tax.total = flt(tax.total + discount_amount_loss, precision("total", tax)); + + this.set_in_company_currency(tax, ["total", "tax_amount_after_discount_amount"]); }, manipulate_grand_total_for_inclusive_tax: function() { @@ -333,6 +340,9 @@ erpnext.taxes_and_totals = erpnext.stock.StockController.extend({ last_tax.tax_amount += diff; last_tax.tax_amount_after_discount += diff; last_tax.total += diff; + + this.set_in_company_currency(last_tax, + ["total", "tax_amount", "tax_amount_after_discount_amount"]); } } } diff --git a/erpnext/public/js/controllers/transaction.js b/erpnext/public/js/controllers/transaction.js index c8b2b64684..a3f1ecae9c 100644 --- a/erpnext/public/js/controllers/transaction.js +++ b/erpnext/public/js/controllers/transaction.js @@ -75,7 +75,6 @@ erpnext.TransactionController = erpnext.taxes_and_totals.extend({ callback: function(r) { if(!r.exc) { me.frm.set_value("taxes", r.message); - me.calculate_taxes_and_totals(); } } }); diff --git a/setup.py b/setup.py index 30ebbbb872..93f31f0b30 100644 --- a/setup.py +++ b/setup.py @@ -1,6 +1,6 @@ from setuptools import setup, find_packages -version = "5.0.2" +version = "5.0.3" with open("requirements.txt", "r") as f: install_requires = f.readlines()