Added Absent Student Report
diff --git a/erpnext/config/schools.py b/erpnext/config/schools.py
index b494268..2299305 100644
--- a/erpnext/config/schools.py
+++ b/erpnext/config/schools.py
@@ -73,6 +73,12 @@
 				{
 					"type": "report",
 					"is_query_report": True,
+					"name": "Absent Student Report",
+					"doctype": "Attendance"
+				},
+				{
+					"type": "report",
+					"is_query_report": True,
 					"name": "Student Monthly Attendance Sheet",
 					"doctype": "Attendance"
 				}
diff --git a/erpnext/schools/report/absent_student_report/__init__.py b/erpnext/schools/report/absent_student_report/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/schools/report/absent_student_report/__init__.py
diff --git a/erpnext/schools/report/absent_student_report/absent_student_report.js b/erpnext/schools/report/absent_student_report/absent_student_report.js
new file mode 100644
index 0000000..7515f22
--- /dev/null
+++ b/erpnext/schools/report/absent_student_report/absent_student_report.js
@@ -0,0 +1,15 @@
+// Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
+// License: GNU General Public License v3. See license.txt
+
+
+frappe.query_reports["Absent Student Report"] = {
+	"filters": [
+		{
+			"fieldname":"date",
+			"label": __("Date"),
+			"fieldtype": "Date",
+			"default": get_today(),
+			"reqd": 1
+		}
+	]
+}
diff --git a/erpnext/schools/report/absent_student_report/absent_student_report.json b/erpnext/schools/report/absent_student_report/absent_student_report.json
new file mode 100644
index 0000000..26989d1
--- /dev/null
+++ b/erpnext/schools/report/absent_student_report/absent_student_report.json
@@ -0,0 +1,17 @@
+{
+ "add_total_row": 0, 
+ "apply_user_permissions": 1, 
+ "creation": "2013-05-13 14:04:03", 
+ "docstatus": 0, 
+ "doctype": "Report", 
+ "idx": 1, 
+ "is_standard": "Yes", 
+ "modified": "2014-06-03 07:18:17.181332", 
+ "modified_by": "Administrator", 
+ "module": "Schools", 
+ "name": "Absent Student Report", 
+ "owner": "Administrator", 
+ "ref_doctype": "Attendance", 
+ "report_name": "Absent Student Report", 
+ "report_type": "Script Report"
+}
\ No newline at end of file
diff --git a/erpnext/schools/report/absent_student_report/absent_student_report.py b/erpnext/schools/report/absent_student_report/absent_student_report.py
new file mode 100644
index 0000000..a138ca6
--- /dev/null
+++ b/erpnext/schools/report/absent_student_report/absent_student_report.py
@@ -0,0 +1,60 @@
+# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
+# License: GNU General Public License v3. See license.txt
+
+from __future__ import unicode_literals
+import frappe
+from frappe.utils import cstr, cint, getdate
+from frappe import msgprint, _
+
+def execute(filters=None):
+	if not filters: filters = {}
+
+	if not filters.get("date"):
+		msgprint(_("Please select date"), raise_exception=1)
+	
+	columns = get_columns(filters)
+
+	absent_students = get_absent_students(filters.get("date"))
+	leave_applicants = get_leave_applications(filters.get("date"))
+
+	data = []
+	for student in absent_students:
+		if not student.student in leave_applicants:
+			row = [student.student, student.student_name, student.student_batch]
+			stud_details = frappe.db.get_value("Student", student.student, ['student_email_id', 'student_mobile_number'], as_dict=True)
+			
+			if stud_details.student_email_id:
+				row+=[stud_details.student_email_id]
+			else:
+				row+= [""]
+			
+			if stud_details.student_mobile_number:
+				row+=[stud_details.student_mobile_number]
+			else:
+				row+= [""]
+				
+			data.append(row)
+	
+	return columns, data
+
+def get_columns(filters):
+	columns = [ 
+		_("Student") + ":Link/Student:90", 
+		_("Student Name") + "::150", 
+		_("Student Batch") + "::180",
+		_("Student Email ID") + "::180",
+		_("Student Mobile No.") + "::150",
+	]
+	return columns
+
+def get_absent_students(date):
+	absent_students = frappe.db.sql("""select student, student_name, student_batch from `tabStudent Attendance` 
+		where docstatus = 1 and date = %s order by student_batch, student_name""", date, as_dict=1)
+	return absent_students
+
+def get_leave_applications(date):
+	leave_applicants = []
+	for student in frappe.db.sql("""select student from `tabStudent Leave Application` 
+		where docstatus = 1 and date = %s""", date):
+		leave_applicants.append(student[0])
+	return leave_applicants
\ No newline at end of file