From d2bb2a192d8b7c1c3ad35693c731dc27e00ceb7d Mon Sep 17 00:00:00 2001 From: Rucha Mahabal Date: Tue, 7 Jun 2022 13:38:49 +0530 Subject: [PATCH] fix: only fetch membership expiry if not already set in `member.js` --- erpnext/__init__.py | 1 + erpnext/non_profit/doctype/member/member.js | 27 +++++++++------------ 2 files changed, 13 insertions(+), 15 deletions(-) diff --git a/erpnext/__init__.py b/erpnext/__init__.py index c77d8bca0322..5a7705e31451 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -149,6 +149,7 @@ def caller(*args, **kwargs): 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 e58ec0f5eea3..40926c23633d 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); + } } - } - }); + }); + } } });