diff --git a/erpnext/__init__.py b/erpnext/__init__.py index 029d066c4b..b052d09515 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -5,7 +5,7 @@ import frappe from erpnext.hooks import regional_overrides from frappe.utils import getdate -__version__ = '10.0.15' +__version__ = '10.0.16' def get_default_company(user=None): '''Get default company for user''' diff --git a/erpnext/accounts/doctype/subscription/subscription.py b/erpnext/accounts/doctype/subscription/subscription.py index 1103b701dc..480abd42ee 100644 --- a/erpnext/accounts/doctype/subscription/subscription.py +++ b/erpnext/accounts/doctype/subscription/subscription.py @@ -232,6 +232,8 @@ def get_next_date(dt, mcount, day=None): def send_notification(new_rv, subscription_doc, print_format='Standard'): """Notify concerned persons about recurring document generation""" print_format = print_format + subject = subscription_doc.subject or '' + message = subscription_doc.message or '' if not subscription_doc.subject: subject = _("New {0}: #{1}").format(new_rv.doctype, new_rv.name) diff --git a/erpnext/accounts/general_ledger.py b/erpnext/accounts/general_ledger.py index c575d59ae7..03a06cc5f2 100644 --- a/erpnext/accounts/general_ledger.py +++ b/erpnext/accounts/general_ledger.py @@ -191,8 +191,9 @@ def delete_gl_entries(gl_entries=None, voucher_type=None, voucher_no=None, for entry in gl_entries: validate_frozen_account(entry["account"], adv_adj) validate_balance_type(entry["account"], adv_adj) - validate_expense_against_budget(entry) + if not adv_adj: + validate_expense_against_budget(entry) - if entry.get("against_voucher") and update_outstanding == 'Yes': + if entry.get("against_voucher") and update_outstanding == 'Yes' and not adv_adj: update_outstanding_amt(entry["account"], entry.get("party_type"), entry.get("party"), entry.get("against_voucher_type"), entry.get("against_voucher"), on_cancel=True) diff --git a/erpnext/patches/v10_0/set_default_payment_terms_based_on_company.py b/erpnext/patches/v10_0/set_default_payment_terms_based_on_company.py index 1b5963393a..a90e096390 100644 --- a/erpnext/patches/v10_0/set_default_payment_terms_based_on_company.py +++ b/erpnext/patches/v10_0/set_default_payment_terms_based_on_company.py @@ -21,7 +21,7 @@ def execute(): update `tab{0}` set `payment_terms` = %s where name = %s - """.format(dt), (template, d.name)) + """.format(dt), (template.name, d.name)) def create_payment_terms_template(data): if data.credit_days_based_on == "Fixed Days": diff --git a/erpnext/public/js/controllers/transaction.js b/erpnext/public/js/controllers/transaction.js index abde665253..e44c3fb766 100644 --- a/erpnext/public/js/controllers/transaction.js +++ b/erpnext/public/js/controllers/transaction.js @@ -539,7 +539,7 @@ erpnext.TransactionController = erpnext.taxes_and_totals.extend({ due_date: function() { // due_date is to be changed, payment terms template and/or payment schedule must // be removed as due_date is automatically changed based on payment terms - if (this.frm.doc.due_date && !this.frm.updating_party_details) { + if (this.frm.doc.due_date && !this.frm.updating_party_details && !this.frm.doc.is_pos) { if (this.frm.doc.payment_terms_template || (this.frm.doc.payment_schedule && this.frm.doc.payment_schedule.length)) { var message1 = ""; diff --git a/erpnext/stock/doctype/batch/batch.py b/erpnext/stock/doctype/batch/batch.py index 03ce7b664c..dff25dfb13 100644 --- a/erpnext/stock/doctype/batch/batch.py +++ b/erpnext/stock/doctype/batch/batch.py @@ -202,8 +202,8 @@ def set_batch_nos(doc, warehouse_field, throw=False): d.batch_no = get_batch_no(d.item_code, warehouse, qty, throw) else: batch_qty = get_batch_qty(batch_no=d.batch_no, warehouse=warehouse) - if flt(batch_qty) < flt(qty): - frappe.throw(_("Row #{0}: The batch {1} has only {2} qty. Please select another batch which has {3} qty available or split the row into multiple rows, to deliver/issue from multiple batches").format(d.idx, d.batch_no, batch_qty, d.qty)) + if flt(batch_qty, d.precision("stock_qty")) < flt(qty, d.precision("stock_qty")): + frappe.throw(_("Row #{0}: The batch {1} has only {2} qty. Please select another batch which has {3} qty available or split the row into multiple rows, to deliver/issue from multiple batches").format(d.idx, d.batch_no, batch_qty, d.stock_qty)) @frappe.whitelist()