diff --git a/erpnext/accounts/doctype/payment_entry/payment_entry.py b/erpnext/accounts/doctype/payment_entry/payment_entry.py
index e663983..c93e5f9 100644
--- a/erpnext/accounts/doctype/payment_entry/payment_entry.py
+++ b/erpnext/accounts/doctype/payment_entry/payment_entry.py
@@ -212,18 +212,16 @@
 						self.validate_journal_entry()
 
 					if d.reference_doctype in ("Sales Invoice", "Purchase Invoice", "Expense Claim", "Fees"):
-						if self.party_type in ("Customer", "Student"):
+						if self.party_type == "Customer":
 							ref_party_account = ref_doc.debit_to
+						elif self.party_type == "Student":
+							ref_party_account = ref_doc.receivable_account
 						elif self.party_type=="Supplier":
 							ref_party_account = ref_doc.credit_to
 						elif self.party_type=="Employee":
 							ref_party_account = ref_doc.payable_account
 
-					if d.reference_doctype in ("Sales Invoice", "Purchase Invoice", "Fees"):
-						ref_party_account = ref_doc.debit_to \
-							if self.party_type in ("Customer", "Student") else ref_doc.credit_to
-
-						if ref_party_account != self.party_account:
+					if ref_party_account != self.party_account:
 							frappe.throw(_("{0} {1} is associated with {2}, but Party Account is {3}")
 								.format(d.reference_doctype, d.reference_name, ref_party_account, self.party_account))
 
@@ -695,10 +693,12 @@
 		party_type = "Student"
 
 	# party account
-	if dt in ("Sales Invoice", "Fees"):
+	if dt == "Sales Invoice":
 		party_account = doc.debit_to
 	elif dt == "Purchase Invoice":
 		party_account = doc.credit_to
+	elif dt == "Fees":
+		party_account = doc.receivable_account
 	else:
 		party_account = get_party_account(party_type, doc.get(party_type.lower()), doc.company)
 
diff --git a/erpnext/schools/doctype/fee_component/fee_component.json b/erpnext/schools/doctype/fee_component/fee_component.json
index da659fa..ccf1f65 100644
--- a/erpnext/schools/doctype/fee_component/fee_component.json
+++ b/erpnext/schools/doctype/fee_component/fee_component.json
@@ -51,6 +51,36 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
+   "fieldname": "description", 
+   "fieldtype": "Small Text", 
+   "hidden": 0, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_global_search": 0, 
+   "in_list_view": 1, 
+   "in_standard_filter": 0, 
+   "label": "Description", 
+   "length": 0, 
+   "no_copy": 0, 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 1, 
+   "print_hide_if_no_value": 0, 
+   "read_only": 0, 
+   "remember_last_selected_value": 0, 
+   "report_hide": 0, 
+   "reqd": 0, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
    "fieldname": "column_break_2", 
    "fieldtype": "Column Break", 
    "hidden": 0, 
@@ -107,36 +137,6 @@
    "set_only_once": 0, 
    "unique": 0, 
    "width": "300px"
-  }, 
-  {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "description", 
-   "fieldtype": "Small Text", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_global_search": 0, 
-   "in_list_view": 0, 
-   "in_standard_filter": 0, 
-   "label": "Description", 
-   "length": 0, 
-   "no_copy": 0, 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 1, 
-   "print_hide_if_no_value": 0, 
-   "read_only": 0, 
-   "remember_last_selected_value": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "unique": 0
   }
  ], 
  "has_web_view": 0, 
@@ -150,7 +150,7 @@
  "issingle": 0, 
  "istable": 1, 
  "max_attachments": 0, 
- "modified": "2017-07-18 15:03:18.945746", 
+ "modified": "2017-09-11 16:48:07.810959", 
  "modified_by": "Administrator", 
  "module": "Schools", 
  "name": "Fee Component", 
diff --git a/erpnext/schools/doctype/fee_schedule/fee_schedule.js b/erpnext/schools/doctype/fee_schedule/fee_schedule.js
index 757355d..5eba62d 100644
--- a/erpnext/schools/doctype/fee_schedule/fee_schedule.js
+++ b/erpnext/schools/doctype/fee_schedule/fee_schedule.js
@@ -3,10 +3,39 @@
 
 frappe.ui.form.on('Fee Schedule', {
 	setup: function(frm) {
-		frm.add_fetch("fee_structure", "default_receivable_account", "debit_to");
-		frm.add_fetch("fee_structure", "default_income_account", "against_income_account");
+		frm.add_fetch("fee_structure", "receivable_account", "receivable_account");
+		frm.add_fetch("fee_structure", "income_account", "income_account");
 		frm.add_fetch("fee_structure", "cost_center", "cost_center");
+		frappe.realtime.on("fee_schedule_progress", function(data) {
+			if (data.progress && data.progress === 0) {
+				frappe.msgprint(__("Fee records will be created in the background. In case of any error the error message will be updated in the Schedule."));
+			}
+			if (data.progress) {
+				frm.reload_doc();
+				frm.dashboard.add_progress("Fee Creation Status", data.progress);
+			}
+		});
+	},
 
+	onload: function(frm) {
+		frm.set_query("receivable_account", function(doc) {
+			return {
+				filters: {
+					'account_type': 'Receivable',
+					'is_group': 0,
+					'company': doc.company
+				}
+			};
+		});
+		frm.set_query("income_account", function(doc) {
+			return {
+				filters: {
+					'account_type': 'Income Account',
+					'is_group': 0,
+					'company': doc.company
+				}
+			};
+		});
 		frm.set_query("student_group", "student_groups", function() {
 			return {
 				"program": frm.doc.program,
@@ -24,7 +53,8 @@
 			frm.dashboard.add_indicator(__('Total Outstanding: {0}', [format_currency(info.total_unpaid,
 				info.currency)]), info.total_unpaid ? 'orange' : 'green');
 		}
-		if (!frm.doc.fee_creation_status || frm.doc.fee_creation_status == "Failed") {
+		
+		if (!frm.doc.__islocal && !frm.doc.fee_creation_status || frm.doc.fee_creation_status == "Failed") {
 			frm.add_custom_button(__('Create Fees'), function() {
 				frappe.call({
 					method: "create_fees",
diff --git a/erpnext/schools/doctype/fee_schedule/fee_schedule.json b/erpnext/schools/doctype/fee_schedule/fee_schedule.json
index 7215603..8dd51f7 100644
--- a/erpnext/schools/doctype/fee_schedule/fee_schedule.json
+++ b/erpnext/schools/doctype/fee_schedule/fee_schedule.json
@@ -142,6 +142,36 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
+   "fieldname": "send_email", 
+   "fieldtype": "Check", 
+   "hidden": 0, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_global_search": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "label": "Send Email", 
+   "length": 0, 
+   "no_copy": 0, 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
+   "read_only": 0, 
+   "remember_last_selected_value": 0, 
+   "report_hide": 0, 
+   "reqd": 0, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
    "fieldname": "column_break_4", 
    "fieldtype": "Column Break", 
    "hidden": 0, 
@@ -749,7 +779,7 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
-   "fieldname": "debit_to", 
+   "fieldname": "receivable_account", 
    "fieldtype": "Link", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
@@ -758,7 +788,7 @@
    "in_global_search": 0, 
    "in_list_view": 0, 
    "in_standard_filter": 0, 
-   "label": "Academic Receivable Account", 
+   "label": "Receivable Account", 
    "length": 0, 
    "no_copy": 0, 
    "options": "Account", 
@@ -780,7 +810,7 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
-   "fieldname": "against_income_account", 
+   "fieldname": "income_account", 
    "fieldtype": "Link", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
@@ -999,7 +1029,7 @@
  "issingle": 0, 
  "istable": 0, 
  "max_attachments": 0, 
- "modified": "2017-09-07 12:36:02.678355", 
+ "modified": "2017-09-11 16:57:27.427777", 
  "modified_by": "Administrator", 
  "module": "Schools", 
  "name": "Fee Schedule", 
diff --git a/erpnext/schools/doctype/fee_schedule/fee_schedule.py b/erpnext/schools/doctype/fee_schedule/fee_schedule.py
index 822a62d..1b2299c 100644
--- a/erpnext/schools/doctype/fee_schedule/fee_schedule.py
+++ b/erpnext/schools/doctype/fee_schedule/fee_schedule.py
@@ -42,14 +42,15 @@
 	def create_fees(self):
 		if not self.fee_creation_status or self.fee_creation_status == "Failed":
 			self.fee_creation_status = "In Process"
+			frappe.publish_realtime("fee_schedule_progress", {"progress": 0, "reload": True}, user=frappe.session.user)
 			enqueue(generate_fee, queue='default', timeout=6000, event='generate_fee',
 				fee_schedule=self.name)
-			frappe.msgprint(_("Fee records will be created in the background. In case of any error, the error message will be updated in the Schedule, check after refresh in 5 minutes."))
-
 
 def generate_fee(fee_schedule):
 	doc = frappe.get_doc("Fee Schedule", fee_schedule)
 	error = False
+	total_records = sum([int(d.total_students) for d in doc.student_groups])
+	created_records = 0
 	for d in doc.student_groups:
 		try:
 			students = frappe.db.sql(""" select sg.program, sg.batch, sgs.student, sgs.student_name
@@ -74,6 +75,9 @@
 				doc.send_payment_request = 1
 				doc.save()
 				doc.submit()
+				created_records += 1
+				frappe.publish_realtime("fee_schedule_progress", {"progress": created_records}, user=frappe.session.user)
+
 		except Exception as e:
 			error = True
 			err_msg = frappe.local.message_log and "\n\n".join(frappe.local.message_log) or cstr(e)
diff --git a/erpnext/schools/doctype/fee_structure/fee_structure.js b/erpnext/schools/doctype/fee_structure/fee_structure.js
index 78b8588..300bdc8 100644
--- a/erpnext/schools/doctype/fee_structure/fee_structure.js
+++ b/erpnext/schools/doctype/fee_structure/fee_structure.js
@@ -1,13 +1,15 @@
 // Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors
 // For license information, please see license.txt
 
-cur_frm.add_fetch("company", "default_receivable_account", "debit_to");
-cur_frm.add_fetch("company", "default_income_account", "against_income_account");
-cur_frm.add_fetch("company", "cost_center", "cost_center");
-
 frappe.ui.form.on('Fee Structure', {
+	setup: function(frm) {
+		frm.add_fetch("company", "default_receivable_account", "receivable_account");
+		frm.add_fetch("company", "default_income_account", "income_account");
+		frm.add_fetch("company", "cost_center", "cost_center");
+	},
+
 	onload: function(frm) {
-		frm.set_query("debit_to", function(doc) {
+		frm.set_query("receivable_account", function(doc) {
 			return {
 				filters: {
 					'account_type': 'Receivable',
@@ -16,6 +18,15 @@
 				}
 			};
 		});
+		frm.set_query("income_account", function(doc) {
+			return {
+				filters: {
+					'account_type': 'Income Account',
+					'is_group': 0,
+					'company': doc.company
+				}
+			};
+		});
 	},
 
 	refresh: function(frm) {
diff --git a/erpnext/schools/doctype/fee_structure/fee_structure.json b/erpnext/schools/doctype/fee_structure/fee_structure.json
index c3df7bb6..d93a667 100644
--- a/erpnext/schools/doctype/fee_structure/fee_structure.json
+++ b/erpnext/schools/doctype/fee_structure/fee_structure.json
@@ -208,37 +208,6 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
-   "default": "", 
-   "fieldname": "disabled", 
-   "fieldtype": "Check", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_global_search": 0, 
-   "in_list_view": 0, 
-   "in_standard_filter": 0, 
-   "label": "Disabled", 
-   "length": 0, 
-   "no_copy": 0, 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 0, 
-   "print_hide_if_no_value": 0, 
-   "read_only": 0, 
-   "remember_last_selected_value": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
    "fieldname": "section_break_4", 
    "fieldtype": "Section Break", 
    "hidden": 0, 
@@ -418,7 +387,7 @@
    "collapsible": 0, 
    "columns": 0, 
    "default": "", 
-   "fieldname": "debit_to", 
+   "fieldname": "receivable_account", 
    "fieldtype": "Link", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
@@ -427,7 +396,7 @@
    "in_global_search": 0, 
    "in_list_view": 0, 
    "in_standard_filter": 0, 
-   "label": "Academic Receivable Account", 
+   "label": "Receivable Account", 
    "length": 0, 
    "no_copy": 0, 
    "options": "Account", 
@@ -449,7 +418,7 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
-   "fieldname": "against_income_account", 
+   "fieldname": "income_account", 
    "fieldtype": "Link", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
@@ -608,7 +577,7 @@
  "istable": 0, 
  "max_attachments": 0, 
  "menu_index": 0, 
- "modified": "2017-09-07 12:04:14.807690", 
+ "modified": "2017-09-11 15:18:27.975666", 
  "modified_by": "Administrator", 
  "module": "Schools", 
  "name": "Fee Structure", 
diff --git a/erpnext/schools/doctype/fees/fees.js b/erpnext/schools/doctype/fees/fees.js
index 5bb130b..45d30d4 100644
--- a/erpnext/schools/doctype/fees/fees.js
+++ b/erpnext/schools/doctype/fees/fees.js
@@ -6,8 +6,8 @@
 	setup: function(frm) {
 		frm.add_fetch("student", "title", "student_name");
 		frm.add_fetch("student", "student_email_id", "student_email");
-		frm.add_fetch("fee_structure", "debit_to", "debit_to");
-		frm.add_fetch("fee_structure", "against_income_account", "against_income_account");
+		frm.add_fetch("fee_structure", "receivable_account", "receivable_account");
+		frm.add_fetch("fee_structure", "income_account", "income_account");
 		frm.add_fetch("fee_structure", "cost_center", "cost_center");
 	},
 
@@ -19,7 +19,6 @@
 				}
 			};
 		});
-
 		frm.set_query("fee_structure",function(){
 			return{
 				"filters":{
@@ -27,9 +26,7 @@
 				}
 			};
 		});
-
-		// debit account for booking the fee
-		frm.set_query("debit_to", function(doc) {
+		frm.set_query("receivable_account", function(doc) {
 			return {
 				filters: {
 					'account_type': 'Receivable',
@@ -38,7 +35,15 @@
 				}
 			};
 		});
-
+		frm.set_query("income_account", function(doc) {
+			return {
+				filters: {
+					'account_type': 'Income Account',
+					'is_group': 0,
+					'company': doc.company
+				}
+			};
+		});
 		if (!frm.doc.posting_date) {
 			frm.doc.posting_date = frappe.datetime.get_today();
 		}
@@ -98,7 +103,7 @@
 	},
 
 	make_payment_request: function(frm) {
-		if (!frm.doc.contact_email) {
+		if (!frm.doc.student_email) {
 			frappe.msgprint(__("Please set the Email ID for the Student to send the Payment Request"));
 		} else {
 			frappe.call({
@@ -106,7 +111,7 @@
 				args: {
 					"dt": frm.doc.doctype,
 					"dn": frm.doc.name,
-					"recipient_id": frm.doc.contact_email
+					"recipient_id": frm.doc.student_email
 				},
 				callback: function(r) {
 					if(!r.exc){
@@ -136,23 +141,6 @@
 		frm.refresh();
 	},
 
-	program: function(frm) {
-		if (frm.doc.program && frm.doc.academic_term) {
-			frappe.call({
-				method: "erpnext.schools.api.get_fee_structure",
-				args: {
-					"program": frm.doc.program,
-					"academic_term": frm.doc.academic_term
-				},
-				callback: function(r) {
-					if(r.message) {
-						frm.set_value("fee_structure" ,r.message);
-					}
-				}
-			});
-		}
-	},
-
 	academic_term: function() {
 		frappe.ui.form.trigger("Fees", "program");
 	},
diff --git a/erpnext/schools/doctype/fees/fees.json b/erpnext/schools/doctype/fees/fees.json
index b01b5d0..8286048 100644
--- a/erpnext/schools/doctype/fees/fees.json
+++ b/erpnext/schools/doctype/fees/fees.json
@@ -1146,7 +1146,7 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
-   "fieldname": "debit_to", 
+   "fieldname": "receivable_account", 
    "fieldtype": "Link", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
@@ -1155,7 +1155,7 @@
    "in_global_search": 0, 
    "in_list_view": 0, 
    "in_standard_filter": 0, 
-   "label": "Academic Receivable Account", 
+   "label": "Receivable Account", 
    "length": 0, 
    "no_copy": 0, 
    "options": "Account", 
@@ -1177,7 +1177,7 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
-   "fieldname": "against_income_account", 
+   "fieldname": "income_account", 
    "fieldtype": "Link", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
@@ -1274,7 +1274,7 @@
  "istable": 0, 
  "max_attachments": 0, 
  "menu_index": 0, 
- "modified": "2017-08-23 14:12:58.772381", 
+ "modified": "2017-09-11 16:04:35.725204", 
  "modified_by": "Administrator", 
  "module": "Schools", 
  "name": "Fees", 
diff --git a/erpnext/schools/doctype/fees/fees.py b/erpnext/schools/doctype/fees/fees.py
index ac5564e..2ce115b 100644
--- a/erpnext/schools/doctype/fees/fees.py
+++ b/erpnext/schools/doctype/fees/fees.py
@@ -11,6 +11,7 @@
 from frappe.utils.csvutils import getlink
 from erpnext.controllers.accounts_controller import AccountsController
 from erpnext.accounts.general_ledger import delete_gl_entries
+from erpnext.schools.api import get_student_guardians
 
 
 class Fees(AccountsController):
@@ -32,15 +33,27 @@
 			self.company = frappe.defaults.get_defaults().company
 		if not self.currency:
 			self.currency = frappe.defaults.get_defaults().currency
-		if not (self.debit_to and self.against_income_account and self.cost_center):
+		if not (self.receivable_account and self.income_account and self.cost_center):
 			accounts_details = frappe.get_all("Company", fields=["default_receivable_account",
 				"default_income_account", "cost_center"], filters={"name": self.company})[0]
-		if not self.debit_to:
-			self.debit_to = accounts_details.default_receivable_account
-		if not self.against_income_account:
-			self.against_income_account = accounts_details.default_income_account
+		if not self.receivable_account:
+			self.receivable_account = accounts_details.default_receivable_account
+		if not self.income_account:
+			self.income_account = accounts_details.default_income_account
 		if not self.cost_center:
 			self.cost_center = accounts_details.cost_center
+		if not self.student_email:
+			self.student_email = self.get_student_emails()
+
+	def get_student_emails(self):
+		guardians = get_student_guardians(self.student)
+		email_list = []
+		for guardian in guardians:
+			email = frappe.db.get_value("Guardian", guardian.guardian, "email_address")
+			if email:
+				email_list.append(email)
+		return ", ".join(email_list)
+
 
 	def calculate_total(self):
 		"""Calculates total amount."""
@@ -55,7 +68,7 @@
 		self.make_gl_entries()
 
 		if self.send_payment_request and self.student_email:
-			pr = make_payment_request(dt="Fees", dn=self.name, recipient_id=self.contact_email,
+			pr = make_payment_request(dt="Fees", dn=self.name, recipient_id=self.student_email,
 					submit_doc=True, use_dummy_message=True)
 			frappe.msgprint(_("Payment request {0} created").format(getlink("Payment Request", pr.name)))
 
@@ -68,17 +81,17 @@
 		if not self.grand_total:
 			return
 		student_gl_entries =  self.get_gl_dict({
-			"account": self.debit_to,
+			"account": self.receivable_account,
 			"party_type": "Student",
 			"party": self.student,
-			"against": self.against_income_account,
+			"against": self.income_account,
 			"debit": self.grand_total,
 			"debit_in_account_currency": self.grand_total,
 			"against_voucher": self.name,
 			"against_voucher_type": self.doctype
 		})
 		fee_gl_entry = self.get_gl_dict({
-			"account": self.against_income_account,
+			"account": self.income_account,
 			"against": self.student,
 			"credit": self.grand_total,
 			"credit_in_account_currency": self.grand_total,
