[fix] fetch expiary date from membership to member doctype
diff --git a/erpnext/non_profit/doctype/member/member.js b/erpnext/non_profit/doctype/member/member.js
index 5cfbe42..1612e21 100644
--- a/erpnext/non_profit/doctype/member/member.js
+++ b/erpnext/non_profit/doctype/member/member.js
@@ -28,5 +28,18 @@
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) {
+ frappe.model.set_value(frm.doctype,frm.docname, "expires_on", data.message.to_date);
+ }
+ });
}
});
diff --git a/erpnext/non_profit/doctype/membership/membership.py b/erpnext/non_profit/doctype/membership/membership.py
index e645e5f..436f607 100644
--- a/erpnext/non_profit/doctype/membership/membership.py
+++ b/erpnext/non_profit/doctype/membership/membership.py
@@ -19,6 +19,7 @@
member = frappe.get_doc(dict(
doctype='Member',
email=frappe.session.user,
+ membership_type=self.membership_type,
member_name=user.get_fullname()
)).insert(ignore_permissions=True)
member_name = member.name
@@ -29,12 +30,15 @@
# get last membership (if active)
last_membership = erpnext.get_last_membership()
- if last_membership:
+ # if person applied for offline membership
+ if last_membership and not frappe.session.user == "Administrator":
# if last membership does not expire in 30 days, then do not allow to renew
- if getdate(add_days(last_membership.to_date, -30)) > getdate(nowdate()):
+ if getdate(add_days(last_membership.to_date, -30)) > getdate(nowdate()) :
frappe.throw(_('You can only renew if your membership expires within 30 days'))
self.from_date = add_days(last_membership.to_date, 1)
+ elif frappe.session.user == "Administrator":
+ self.from_date = self.from_date
else:
self.from_date = nowdate()