change in the absent student report (#9185)
diff --git a/erpnext/schools/report/absent_student_report/absent_student_report.py b/erpnext/schools/report/absent_student_report/absent_student_report.py
index 0949831..8e6ce51 100644
--- a/erpnext/schools/report/absent_student_report/absent_student_report.py
+++ b/erpnext/schools/report/absent_student_report/absent_student_report.py
@@ -13,9 +13,13 @@
msgprint(_("Please select date"), raise_exception=1)
columns = get_columns(filters)
+ date = filters.get("date")
- absent_students = get_absent_students(filters.get("date"))
- leave_applicants = get_leave_applications(filters.get("date"))
+ absent_students = get_absent_students(date)
+ leave_applicants = get_leave_applications(date)
+ if absent_students:
+ student_list = [d["student"] for d in absent_students]
+ transportation_details = get_transportation_details(date, student_list)
data = []
for student in absent_students:
@@ -32,6 +36,8 @@
row+=[stud_details.student_mobile_number]
else:
row+= [""]
+ if transportation_details.get(student.student):
+ row += transportation_details.get(student.student)
data.append(row)
@@ -44,6 +50,8 @@
_("Student Group") + "::180",
_("Student Email Address") + "::180",
_("Student Mobile No.") + "::150",
+ _("Mode of Transportation") + "::150",
+ _("Vehicle/Bus Number") + "::150",
]
return columns
@@ -57,4 +65,20 @@
for student in frappe.db.sql("""select student from `tabStudent Leave Application`
where docstatus = 1 and from_date <= %s and to_date >= %s""", (date, date)):
leave_applicants.append(student[0])
- return leave_applicants
\ No newline at end of file
+ return leave_applicants
+
+def get_transportation_details(date, student_list):
+ academic_year = frappe.get_all("Academic Year", filters=[["year_start_date", "<=", date],["year_end_date", ">=", date]])
+ if academic_year:
+ academic_year = academic_year[0].name
+ elif frappe.defaults.get_defaults().academic_year:
+ academic_year = frappe.defaults.get_defaults().academic_year
+ else:
+ return {}
+
+ transportation_details = frappe.get_all("Program Enrollment", fields=["student", "mode_of_transportation", "vehicle_no"],
+ filters={"student": ("in", student_list), "academic_year": academic_year, "docstatus": ("not in", ["2"])})
+ transportation_map = {}
+ for d in transportation_details:
+ transportation_map[d.student] = [d.mode_of_transportation, d.vehicle_no]
+ return transportation_map