diff --git a/erpnext/config/schools.py b/erpnext/config/schools.py index 857a4223b0..ce0c5dc3dc 100644 --- a/erpnext/config/schools.py +++ b/erpnext/config/schools.py @@ -122,11 +122,15 @@ def get_data(): }, { "type": "doctype", - "name": "Grading Structure" + "name": "Program" }, { "type": "doctype", - "name": "Program" + "name": "Student Category" + }, + { + "type": "doctype", + "name": "Grading Structure" }, { "type": "doctype", diff --git a/erpnext/schools/api.py b/erpnext/schools/api.py index 3554fe76dd..6011158633 100644 --- a/erpnext/schools/api.py +++ b/erpnext/schools/api.py @@ -103,13 +103,14 @@ def get_fee_components(fee_structure): return fs @frappe.whitelist() -def get_fee_schedule(program): +def get_fee_schedule(program, student_category=None): """Returns Fee Schedule. :param program: Program. + :param student_category: Student Category """ fs = frappe.get_list("Program Fee", fields=["academic_term", "fee_structure", "due_date", "amount"] , - filters={"parent": program}, order_by= "idx") + filters={"parent": program, "student_category": student_category }, order_by= "idx") return fs @frappe.whitelist() diff --git a/erpnext/schools/doctype/fee_structure/fee_structure.json b/erpnext/schools/doctype/fee_structure/fee_structure.json index d6c5a7fa28..95a2f6f139 100644 --- a/erpnext/schools/doctype/fee_structure/fee_structure.json +++ b/erpnext/schools/doctype/fee_structure/fee_structure.json @@ -15,6 +15,7 @@ "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "program", "fieldtype": "Link", "hidden": 0, @@ -43,6 +44,7 @@ "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "naming_series", "fieldtype": "Select", "hidden": 0, @@ -69,6 +71,7 @@ "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "column_break_2", "fieldtype": "Column Break", "hidden": 0, @@ -93,6 +96,7 @@ "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "academic_term", "fieldtype": "Link", "hidden": 0, @@ -122,6 +126,34 @@ "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, + "fieldname": "student_category", + "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Student Category", + "length": 0, + "no_copy": 0, + "options": "Student Category", + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 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_4", "fieldtype": "Section Break", "hidden": 0, @@ -146,6 +178,7 @@ "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "components", "fieldtype": "Table", "hidden": 0, @@ -172,6 +205,7 @@ "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "section_break_6", "fieldtype": "Section Break", "hidden": 0, @@ -196,6 +230,7 @@ "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "total_amount", "fieldtype": "Currency", "hidden": 0, @@ -230,7 +265,7 @@ "istable": 0, "max_attachments": 0, "menu_index": 0, - "modified": "2016-07-25 08:44:07.886467", + "modified": "2016-09-05 06:54:22.360035", "modified_by": "Administrator", "module": "Schools", "name": "Fee Structure", diff --git a/erpnext/schools/doctype/fees/fees.json b/erpnext/schools/doctype/fees/fees.json index 5682ef9329..a3af99bd58 100644 --- a/erpnext/schools/doctype/fees/fees.json +++ b/erpnext/schools/doctype/fees/fees.json @@ -15,6 +15,7 @@ "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "student", "fieldtype": "Link", "hidden": 0, @@ -41,6 +42,7 @@ "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "academic_year", "fieldtype": "Link", "hidden": 0, @@ -67,6 +69,7 @@ "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "academic_term", "fieldtype": "Link", "hidden": 0, @@ -93,6 +96,7 @@ "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "fee_structure", "fieldtype": "Link", "hidden": 0, @@ -119,6 +123,33 @@ "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, + "fieldname": "due_date", + "fieldtype": "Date", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Due Date", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 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": "column_break_4", "fieldtype": "Column Break", "hidden": 0, @@ -143,6 +174,7 @@ "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "student_name", "fieldtype": "Data", "hidden": 0, @@ -168,6 +200,7 @@ "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "naming_series", "fieldtype": "Select", "hidden": 0, @@ -194,6 +227,7 @@ "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "program", "fieldtype": "Link", "hidden": 0, @@ -220,6 +254,7 @@ "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "program_enrollment", "fieldtype": "Link", "hidden": 0, @@ -246,16 +281,18 @@ "allow_on_submit": 0, "bold": 0, "collapsible": 0, - "fieldname": "due_date", - "fieldtype": "Date", + "columns": 0, + "fieldname": "student_category", + "fieldtype": "Link", "hidden": 0, "ignore_user_permissions": 0, "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, - "label": "Due Date", + "label": "Student Category", "length": 0, "no_copy": 0, + "options": "Student Category", "permlevel": 0, "precision": "", "print_hide": 0, @@ -271,6 +308,7 @@ "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "section_break_7", "fieldtype": "Section Break", "hidden": 0, @@ -295,6 +333,7 @@ "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "components", "fieldtype": "Table", "hidden": 0, @@ -321,6 +360,7 @@ "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "section_break_10", "fieldtype": "Section Break", "hidden": 0, @@ -345,6 +385,7 @@ "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "amended_from", "fieldtype": "Link", "hidden": 0, @@ -370,6 +411,7 @@ "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "column_break_11", "fieldtype": "Column Break", "hidden": 0, @@ -394,6 +436,7 @@ "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "default": "0", "fieldname": "total_amount", "fieldtype": "Currency", @@ -420,6 +463,7 @@ "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "default": "0", "fieldname": "paid_amount", "fieldtype": "Currency", @@ -446,6 +490,7 @@ "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "default": "0", "fieldname": "outstanding_amount", "fieldtype": "Currency", @@ -480,7 +525,7 @@ "istable": 0, "max_attachments": 0, "menu_index": 0, - "modified": "2016-08-26 02:28:48.877990", + "modified": "2016-09-05 06:56:33.012835", "modified_by": "Administrator", "module": "Schools", "name": "Fees", diff --git a/erpnext/schools/doctype/program_enrollment/program_enrollment.js b/erpnext/schools/doctype/program_enrollment/program_enrollment.js index 72fc6f2e6b..96c8f96dc6 100644 --- a/erpnext/schools/doctype/program_enrollment/program_enrollment.js +++ b/erpnext/schools/doctype/program_enrollment/program_enrollment.js @@ -9,7 +9,8 @@ frappe.ui.form.on("Program Enrollment", { frappe.call({ method: "erpnext.schools.api.get_fee_schedule", args: { - "program": frm.doc.program + "program": frm.doc.program, + "student_category": frm.doc.student_category }, callback: function(r) { if(r.message) { @@ -20,6 +21,10 @@ frappe.ui.form.on("Program Enrollment", { } }, + student_category: function() { + frappe.ui.form.trigger("Program Enrollment", "program"); + }, + onload: function(frm, cdt, cdn){ cur_frm.set_query("academic_term", "fees", function(){ return{ diff --git a/erpnext/schools/doctype/program_enrollment/program_enrollment.json b/erpnext/schools/doctype/program_enrollment/program_enrollment.json index c7c5eed839..199b5e1f38 100644 --- a/erpnext/schools/doctype/program_enrollment/program_enrollment.json +++ b/erpnext/schools/doctype/program_enrollment/program_enrollment.json @@ -15,6 +15,7 @@ "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "student", "fieldtype": "Link", "hidden": 0, @@ -41,6 +42,7 @@ "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "student_name", "fieldtype": "Read Only", "hidden": 0, @@ -67,6 +69,34 @@ "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, + "fieldname": "student_category", + "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Student Category", + "length": 0, + "no_copy": 0, + "options": "Student Category", + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 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": "column_break_4", "fieldtype": "Column Break", "hidden": 0, @@ -91,6 +121,7 @@ "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "program", "fieldtype": "Link", "hidden": 0, @@ -117,6 +148,7 @@ "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "academic_year", "fieldtype": "Link", "hidden": 0, @@ -143,6 +175,7 @@ "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "default": "Today", "fieldname": "enrollment_date", "fieldtype": "Date", @@ -169,6 +202,7 @@ "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "section_break_7", "fieldtype": "Section Break", "hidden": 0, @@ -194,6 +228,7 @@ "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "fees", "fieldtype": "Table", "hidden": 0, @@ -214,12 +249,14 @@ "reqd": 0, "search_index": 0, "set_only_once": 0, - "unique": 0 + "unique": 0, + "width": "" }, { "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "amended_from", "fieldtype": "Link", "hidden": 0, @@ -245,6 +282,7 @@ "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "image", "fieldtype": "Attach Image", "hidden": 1, @@ -279,7 +317,7 @@ "istable": 0, "max_attachments": 0, "menu_index": 0, - "modified": "2016-08-11 08:50:24.317353", + "modified": "2016-09-05 06:59:18.620611", "modified_by": "Administrator", "module": "Schools", "name": "Program Enrollment", diff --git a/erpnext/schools/doctype/program_enrollment_fee/program_enrollment_fee.json b/erpnext/schools/doctype/program_enrollment_fee/program_enrollment_fee.json index 6760384bf4..17d740e801 100644 --- a/erpnext/schools/doctype/program_enrollment_fee/program_enrollment_fee.json +++ b/erpnext/schools/doctype/program_enrollment_fee/program_enrollment_fee.json @@ -14,6 +14,7 @@ "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "academic_term", "fieldtype": "Link", "hidden": 0, @@ -40,6 +41,7 @@ "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "fee_structure", "fieldtype": "Link", "hidden": 0, @@ -66,6 +68,7 @@ "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "column_break_3", "fieldtype": "Column Break", "hidden": 0, @@ -90,6 +93,7 @@ "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "due_date", "fieldtype": "Date", "hidden": 0, @@ -115,6 +119,7 @@ "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "amount", "fieldtype": "Currency", "hidden": 0, @@ -147,7 +152,7 @@ "issingle": 0, "istable": 1, "max_attachments": 0, - "modified": "2016-07-21 12:27:02.547926", + "modified": "2016-09-05 07:05:20.118119", "modified_by": "Administrator", "module": "Schools", "name": "Program Enrollment Fee", diff --git a/erpnext/schools/doctype/program_fee/program_fee.json b/erpnext/schools/doctype/program_fee/program_fee.json index 6b320a0569..d5d3b5fc49 100644 --- a/erpnext/schools/doctype/program_fee/program_fee.json +++ b/erpnext/schools/doctype/program_fee/program_fee.json @@ -14,6 +14,7 @@ "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "academic_term", "fieldtype": "Link", "hidden": 0, @@ -40,13 +41,14 @@ "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "fee_structure", "fieldtype": "Link", "hidden": 0, "ignore_user_permissions": 0, "ignore_xss_filter": 0, "in_filter": 0, - "in_list_view": 0, + "in_list_view": 1, "label": "Fee Structure", "length": 0, "no_copy": 0, @@ -66,6 +68,34 @@ "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, + "fieldname": "student_category", + "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 1, + "label": "Student Category", + "length": 0, + "no_copy": 0, + "options": "Student Category", + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 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": "column_break_3", "fieldtype": "Column Break", "hidden": 0, @@ -90,6 +120,7 @@ "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "due_date", "fieldtype": "Date", "hidden": 0, @@ -115,6 +146,7 @@ "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "amount", "fieldtype": "Currency", "hidden": 0, @@ -147,7 +179,7 @@ "issingle": 0, "istable": 1, "max_attachments": 0, - "modified": "2016-07-21 12:27:02.153696", + "modified": "2016-09-05 07:07:39.776848", "modified_by": "Administrator", "module": "Schools", "name": "Program Fee", diff --git a/erpnext/schools/doctype/student_category/__init__.py b/erpnext/schools/doctype/student_category/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/erpnext/schools/doctype/student_category/student_category.js b/erpnext/schools/doctype/student_category/student_category.js new file mode 100644 index 0000000000..3a264d1d4a --- /dev/null +++ b/erpnext/schools/doctype/student_category/student_category.js @@ -0,0 +1,8 @@ +// Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on('Student Category', { + refresh: function(frm) { + + } +}); diff --git a/erpnext/schools/doctype/student_category/student_category.json b/erpnext/schools/doctype/student_category/student_category.json new file mode 100644 index 0000000000..03ec0d1e5e --- /dev/null +++ b/erpnext/schools/doctype/student_category/student_category.json @@ -0,0 +1,85 @@ +{ + "allow_copy": 0, + "allow_import": 0, + "allow_rename": 0, + "autoname": "field:category", + "beta": 0, + "creation": "2016-09-05 06:28:33.679415", + "custom": 0, + "docstatus": 0, + "doctype": "DocType", + "document_type": "", + "editable_grid": 1, + "fields": [ + { + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "category", + "fieldtype": "Data", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Category", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 1, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + } + ], + "hide_heading": 0, + "hide_toolbar": 0, + "idx": 0, + "image_view": 0, + "in_create": 0, + "in_dialog": 0, + "is_submittable": 0, + "issingle": 0, + "istable": 0, + "max_attachments": 0, + "modified": "2016-09-05 06:28:33.679415", + "modified_by": "Administrator", + "module": "Schools", + "name": "Student Category", + "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, + "sort_field": "modified", + "sort_order": "DESC", + "track_seen": 0 +} \ No newline at end of file diff --git a/erpnext/schools/doctype/student_category/student_category.py b/erpnext/schools/doctype/student_category/student_category.py new file mode 100644 index 0000000000..bd3a835889 --- /dev/null +++ b/erpnext/schools/doctype/student_category/student_category.py @@ -0,0 +1,10 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2015, 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 StudentCategory(Document): + pass diff --git a/erpnext/schools/doctype/student_category/test_student_category.py b/erpnext/schools/doctype/student_category/test_student_category.py new file mode 100644 index 0000000000..756cab87eb --- /dev/null +++ b/erpnext/schools/doctype/student_category/test_student_category.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt +from __future__ import unicode_literals + +import frappe +import unittest + +# test_records = frappe.get_test_records('Student Category') + +class TestStudentCategory(unittest.TestCase): + pass