diff --git a/erpnext/__init__.py b/erpnext/__init__.py index c77d8bca032..5a7705e3145 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -149,6 +149,7 @@ def allow_regional(fn): return caller +@frappe.whitelist() def get_last_membership(member): """Returns last membership if exists""" last_membership = frappe.get_all( diff --git a/erpnext/non_profit/doctype/member/member.js b/erpnext/non_profit/doctype/member/member.js index e58ec0f5eea..40926c23633 100644 --- a/erpnext/non_profit/doctype/member/member.js +++ b/erpnext/non_profit/doctype/member/member.js @@ -44,21 +44,18 @@ frappe.ui.form.on('Member', { frappe.contacts.clear_address_and_contact(frm); } - frappe.call({ - method:"frappe.client.get_value", - args:{ - 'doctype':"Membership", - 'filters':{'member': frm.doc.name}, - 'fieldname':[ - 'to_date' - ] - }, - callback: function (data) { - if(data.message) { - frappe.model.set_value(frm.doctype,frm.docname, - "membership_expiry_date", data.message.to_date); + if (!frm.doc.membership_expiry_date && !frm.doc.__islocal) { + frappe.call({ + method: "erpnext.get_last_membership", + args: { + member: frm.doc.member + }, + callback: function(data) { + if (data.message) { + frappe.model.set_value(frm.doctype, frm.docname, "membership_expiry_date", data.message.to_date); + } } - } - }); + }); + } } });