diff --git a/erpnext/schools/doctype/program_enrollment/program_enrollment.json b/erpnext/schools/doctype/program_enrollment/program_enrollment.json
index 331f79e..b1941c7 100644
--- a/erpnext/schools/doctype/program_enrollment/program_enrollment.json
+++ b/erpnext/schools/doctype/program_enrollment/program_enrollment.json
@@ -1,5 +1,6 @@
 {
  "allow_copy": 0, 
+ "allow_guest_to_view": 0, 
  "allow_import": 0, 
  "allow_rename": 0, 
  "autoname": "PE.#####", 
@@ -107,19 +108,19 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
-   "fieldname": "student_batch_name", 
+   "fieldname": "school_house", 
    "fieldtype": "Link", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
    "ignore_xss_filter": 0, 
    "in_filter": 0, 
-   "in_global_search": 1, 
+   "in_global_search": 0, 
    "in_list_view": 0, 
    "in_standard_filter": 0, 
-   "label": "Student Batch Name", 
+   "label": "School House", 
    "length": 0, 
    "no_copy": 0, 
-   "options": "Student Batch Name", 
+   "options": "School House", 
    "permlevel": 0, 
    "precision": "", 
    "print_hide": 0, 
@@ -195,6 +196,36 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
+   "fieldname": "student_batch_name", 
+   "fieldtype": "Link", 
+   "hidden": 0, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_global_search": 1, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "label": "Batch Name", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Student Batch Name", 
+   "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_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
    "fieldname": "academic_year", 
    "fieldtype": "Link", 
    "hidden": 0, 
@@ -369,19 +400,19 @@
    "unique": 0
   }
  ], 
+ "has_web_view": 0, 
  "hide_heading": 0, 
  "hide_toolbar": 0, 
  "idx": 0, 
  "image_field": "image", 
  "image_view": 0, 
  "in_create": 0, 
- "in_dialog": 0, 
  "is_submittable": 1, 
  "issingle": 0, 
  "istable": 0, 
  "max_attachments": 0, 
  "menu_index": 0, 
- "modified": "2017-02-20 13:19:29.456157", 
+ "modified": "2017-03-29 15:30:03.359985", 
  "modified_by": "Administrator", 
  "module": "Schools", 
  "name": "Program Enrollment", 
diff --git a/erpnext/schools/doctype/program_enrollment_tool/program_enrollment_tool.py b/erpnext/schools/doctype/program_enrollment_tool/program_enrollment_tool.py
index 6c10880..2e7daa7 100644
--- a/erpnext/schools/doctype/program_enrollment_tool/program_enrollment_tool.py
+++ b/erpnext/schools/doctype/program_enrollment_tool/program_enrollment_tool.py
@@ -23,6 +23,16 @@
 			else:
 				students = frappe.db.sql("select student, student_name from \
 					`tabProgram Enrollment` where program = %s and academic_year = %s",(self.program, self.academic_year), as_dict=1)
+				student_list = [d.student for d in students]
+
+				inactive_students = frappe.db.sql('''
+					select name as student, title as student_name from `tabStudent` where name in (%s) and enabled = 0''' %
+					', '.join(['%s']*len(student_list)), tuple(student_list), as_dict=1)
+
+				for student in students:
+					if student.student in [d.student for d in inactive_students]:
+						students.remove(student)
+
 		if students:
 			return students
 		else:
diff --git a/erpnext/schools/doctype/school_house/__init__.py b/erpnext/schools/doctype/school_house/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/schools/doctype/school_house/__init__.py
diff --git a/erpnext/schools/doctype/school_house/school_house.js b/erpnext/schools/doctype/school_house/school_house.js
new file mode 100644
index 0000000..cf1dcd4
--- /dev/null
+++ b/erpnext/schools/doctype/school_house/school_house.js
@@ -0,0 +1,8 @@
+// Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors
+// For license information, please see license.txt
+
+frappe.ui.form.on('School House', {
+	refresh: function(frm) {
+
+	}
+});
diff --git a/erpnext/schools/doctype/school_house/school_house.json b/erpnext/schools/doctype/school_house/school_house.json
new file mode 100644
index 0000000..60d0976
--- /dev/null
+++ b/erpnext/schools/doctype/school_house/school_house.json
@@ -0,0 +1,92 @@
+{
+ "allow_copy": 0, 
+ "allow_guest_to_view": 0, 
+ "allow_import": 0, 
+ "allow_rename": 0, 
+ "autoname": "field:house_name", 
+ "beta": 0, 
+ "creation": "2017-03-27 15:19:54.672995", 
+ "custom": 0, 
+ "docstatus": 0, 
+ "doctype": "DocType", 
+ "document_type": "Setup", 
+ "editable_grid": 1, 
+ "engine": "InnoDB", 
+ "fields": [
+  {
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "house_name", 
+   "fieldtype": "Data", 
+   "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": "House Name", 
+   "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": 1, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }
+ ], 
+ "has_web_view": 0, 
+ "hide_heading": 0, 
+ "hide_toolbar": 0, 
+ "idx": 0, 
+ "image_view": 0, 
+ "in_create": 0, 
+ "is_submittable": 0, 
+ "issingle": 0, 
+ "istable": 0, 
+ "max_attachments": 0, 
+ "modified": "2017-03-29 15:33:15.757309", 
+ "modified_by": "Administrator", 
+ "module": "Schools", 
+ "name": "School House", 
+ "name_case": "", 
+ "owner": "Administrator", 
+ "permissions": [
+  {
+   "amend": 0, 
+   "apply_user_permissions": 0, 
+   "cancel": 0, 
+   "create": 1, 
+   "delete": 1, 
+   "email": 1, 
+   "export": 1, 
+   "if_owner": 0, 
+   "import": 0, 
+   "permlevel": 0, 
+   "print": 1, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Academics User", 
+   "set_user_permissions": 0, 
+   "share": 1, 
+   "submit": 0, 
+   "write": 1
+  }
+ ], 
+ "quick_entry": 1, 
+ "read_only": 0, 
+ "read_only_onload": 0, 
+ "show_name_in_global_search": 0, 
+ "sort_field": "modified", 
+ "sort_order": "DESC", 
+ "track_changes": 0, 
+ "track_seen": 0
+}
\ No newline at end of file
diff --git a/erpnext/schools/doctype/school_house/school_house.py b/erpnext/schools/doctype/school_house/school_house.py
new file mode 100644
index 0000000..8751e5c
--- /dev/null
+++ b/erpnext/schools/doctype/school_house/school_house.py
@@ -0,0 +1,10 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors
+# For license information, please see license.txt
+
+from __future__ import unicode_literals
+import frappe
+from frappe.model.document import Document
+
+class SchoolHouse(Document):
+	pass
diff --git a/erpnext/schools/doctype/school_house/test_school_house.py b/erpnext/schools/doctype/school_house/test_school_house.py
new file mode 100644
index 0000000..5cf96d5
--- /dev/null
+++ b/erpnext/schools/doctype/school_house/test_school_house.py
@@ -0,0 +1,10 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and Contributors
+# See license.txt
+from __future__ import unicode_literals
+
+import frappe
+import unittest
+
+class TestSchoolHouse(unittest.TestCase):
+	pass
diff --git a/erpnext/schools/doctype/student/student.json b/erpnext/schools/doctype/student/student.json
index 08b0f17..c685fcb 100644
--- a/erpnext/schools/doctype/student/student.json
+++ b/erpnext/schools/doctype/student/student.json
@@ -18,6 +18,92 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
+   "fieldname": "section_break_1", 
+   "fieldtype": "Section Break", 
+   "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, 
+   "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_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "default": "1", 
+   "fieldname": "enabled", 
+   "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": "Enabled", 
+   "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_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "section_break_3", 
+   "fieldtype": "Section Break", 
+   "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, 
+   "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_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
    "fieldname": "first_name", 
    "fieldtype": "Data", 
    "hidden": 0, 
@@ -992,7 +1078,7 @@
  "istable": 0, 
  "max_attachments": 0, 
  "menu_index": 0, 
- "modified": "2017-03-15 17:50:09.677184", 
+ "modified": "2017-03-29 12:57:26.293876", 
  "modified_by": "Administrator", 
  "module": "Schools", 
  "name": "Student", 
diff --git a/erpnext/schools/report/student_and_guardian_contact_details/__init__.py b/erpnext/schools/report/student_and_guardian_contact_details/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/schools/report/student_and_guardian_contact_details/__init__.py
diff --git a/erpnext/schools/report/student_and_guardian_contact_details/student_and_guardian_contact_details.js b/erpnext/schools/report/student_and_guardian_contact_details/student_and_guardian_contact_details.js
new file mode 100644
index 0000000..2734b53
--- /dev/null
+++ b/erpnext/schools/report/student_and_guardian_contact_details/student_and_guardian_contact_details.js
@@ -0,0 +1,29 @@
+// Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and contributors
+// For license information, please see license.txt
+
+frappe.query_reports["Student and Guardian Contact Details"] = {
+	"filters": [
+		{
+			"fieldname":"academic_year",
+			"label": __("Academic Year"),
+			"fieldtype": "Link",
+			"options": "Academic Year",
+			"reqd": 1,
+		},
+		{
+			"fieldname":"program",
+			"label": __("Program"),
+			"fieldtype": "Link",
+			"options": "Program",
+			"reqd": 1
+		},
+		{
+			"fieldname":"student_batch_name",
+			"label": __("Batch Name"),
+			"fieldtype": "Link",
+			"options": "Student Batch Name",
+			"reqd": 1
+		},
+
+	]
+}
diff --git a/erpnext/schools/report/student_and_guardian_contact_details/student_and_guardian_contact_details.json b/erpnext/schools/report/student_and_guardian_contact_details/student_and_guardian_contact_details.json
new file mode 100644
index 0000000..e822549
--- /dev/null
+++ b/erpnext/schools/report/student_and_guardian_contact_details/student_and_guardian_contact_details.json
@@ -0,0 +1,26 @@
+{
+ "add_total_row": 0, 
+ "apply_user_permissions": 1, 
+ "creation": "2017-03-27 17:47:16.831433", 
+ "disabled": 0, 
+ "docstatus": 0, 
+ "doctype": "Report", 
+ "idx": 0, 
+ "is_standard": "Yes", 
+ "modified": "2017-03-27 18:34:08.867661", 
+ "modified_by": "Administrator", 
+ "module": "Schools", 
+ "name": "Student and Guardian Contact Details", 
+ "owner": "Administrator", 
+ "ref_doctype": "Program Enrollment", 
+ "report_name": "Student and Guardian Contact Details", 
+ "report_type": "Script Report", 
+ "roles": [
+  {
+   "role": "Instructor"
+  }, 
+  {
+   "role": "Academics User"
+  }
+ ]
+}
\ No newline at end of file
diff --git a/erpnext/schools/report/student_and_guardian_contact_details/student_and_guardian_contact_details.py b/erpnext/schools/report/student_and_guardian_contact_details/student_and_guardian_contact_details.py
new file mode 100644
index 0000000..5258bf4
--- /dev/null
+++ b/erpnext/schools/report/student_and_guardian_contact_details/student_and_guardian_contact_details.py
@@ -0,0 +1,82 @@
+# Copyright (c) 2013, Frappe Technologies Pvt. Ltd. and contributors
+# For license information, please see license.txt
+
+from __future__ import unicode_literals
+import frappe
+from frappe import _
+
+
+def execute(filters=None):
+	columns, data = [], []
+
+	academic_year = filters.get("academic_year")
+	program = filters.get("program")
+	student_batch_name = filters.get("student_batch_name")
+
+	columns = get_columns()
+	
+	program_enrollments = frappe.get_list("Program Enrollment", fields=["student", "student_name"],
+		filters={"academic_year": academic_year, "program": program, "student_batch_name": student_batch_name})
+
+	student_list = [d.student for d in program_enrollments]
+	if not student_list:
+		return  columns, []
+
+	student_mobile_map = get_student_mobile_no(student_list)
+	guardian_map = get_guardian_map(student_list)
+
+	for d in program_enrollments:
+		row = [d.student, d.student_name, student_mobile_map.get(d.student)]
+
+		student_guardians = guardian_map.get(d.student)
+
+		if student_guardians:
+			for i in xrange(2):
+				if i < len(student_guardians):
+					g = student_guardians[i]
+					row += [g.guardian_name, g.relation, g.mobile_number]
+
+		data.append(row)
+
+	return columns, data
+
+
+def get_columns():
+	columns = [ 
+		_("Student ID") + ":Link/Student:90", 
+		_("Student Name") + "::150", 
+		_("Student Mobile No.") + "::110",
+		_("Guardian1 Name") + "::150",
+		_("Relation with Guardian1") + "::80",
+		_("Guardian1 Mobile No") + "::125",
+		_("Guardian2 Name") + "::150",
+		_("Relation with Guardian2") + "::80",
+		_("Guardian2 Mobile No") + "::125",
+	]
+	return columns
+
+def get_student_mobile_no(student_list):
+	student_mobile_map = frappe._dict()
+	student_mobile_no = frappe.db.sql('''
+		select name, student_mobile_number from `tabStudent` where name in (%s)''' %
+		', '.join(['%s']*len(student_list)), tuple(student_list), as_dict=1)
+	for s in student_mobile_no:
+		student_mobile_map[s.name] = s.student_mobile_number
+	return student_mobile_map
+
+def get_guardian_map(student_list):
+	guardian_map = frappe._dict()
+	guardian_details = frappe.db.sql('''
+		select  parent, guardian, guardian_name, relation  from `tabStudent Guardian` where parent in (%s)''' %
+		', '.join(['%s']*len(student_list)), tuple(student_list), as_dict=1)
+
+	guardian_list = list(set([g.guardian for g in guardian_details]))
+
+	guardian_mobile_no = dict(frappe.db.sql("""select name, mobile_number from `tabGuardian` 
+			where name in (%s)""" % ", ".join(['%s']*len(guardian_list)), tuple(guardian_list)))
+
+	for guardian in guardian_details:
+		guardian["mobile_number"] = guardian_mobile_no.get(guardian.guardian)
+		guardian_map.setdefault(guardian.parent, []).append(guardian)
+
+	return guardian_map
\ No newline at end of file
