feat: generate invoice on payment authorized
diff --git a/erpnext/non_profit/doctype/membership/membership.py b/erpnext/non_profit/doctype/membership/membership.py
index 4c85cb6..97de63b 100644
--- a/erpnext/non_profit/doctype/membership/membership.py
+++ b/erpnext/non_profit/doctype/membership/membership.py
@@ -54,9 +54,14 @@
 			self.to_date = add_months(self.from_date, 1)
 
 	def on_payment_authorized(self, status_changed_to=None):
-		if status_changed_to in ("Completed", "Authorized"):
-			self.load_from_db()
-			self.db_set('paid', 1)
+		if status_changed_to not in ("Completed", "Authorized"):
+			return
+		self.load_from_db()
+		self.db_set('paid', 1)
+		settings = frappe.get_doc("Membership Settings")
+		if settings.enable_invoicing and settings.create_for_web_forms:
+			self.generate_invoice(with_payment_entry=settings.make_payment_entry, save=True)
+
 
 	def generate_invoice(self, save=True):
 		if not (self.paid or self.currency or self.amount):
diff --git a/erpnext/non_profit/doctype/membership_settings/membership_settings.json b/erpnext/non_profit/doctype/membership_settings/membership_settings.json
index a70c3c4..a25f5ff 100644
--- a/erpnext/non_profit/doctype/membership_settings/membership_settings.json
+++ b/erpnext/non_profit/doctype/membership_settings/membership_settings.json
@@ -12,6 +12,7 @@
   "webhook_secret",
   "column_break_6",
   "enable_invoicing",
+  "create_for_web_forms",
   "make_payment_entry",
   "company",
   "debit_account",
@@ -136,12 +137,19 @@
    "label": "Payment To",
    "mandatory_depends_on": "eval:doc.make_payment_entry",
    "options": "Account"
+  },
+  {
+   "depends_on": "eval:doc.enable_invoicing",
+   "description": "Automatically create an invoice when payment is authorized from a web form entry",
+   "fieldname": "create_for_web_forms",
+   "fieldtype": "Data",
+   "label": "Auto Create Invoice for Web Forms"
   }
  ],
  "index_web_pages_for_search": 1,
  "issingle": 1,
  "links": [],
- "modified": "2020-11-04 19:51:21.990595",
+ "modified": "2020-11-04 20:19:55.163749",
  "modified_by": "Administrator",
  "module": "Non Profit",
  "name": "Membership Settings",