Changes in the Fee structure (#11842)

* academic year non mandatory in the fee structure and minor changes

* update the docs
This commit is contained in:
Manas Solanki 2017-12-04 19:21:50 +05:30 committed by Nabin Hait
parent 58ae5ee563
commit e6fd07fda9
6 changed files with 78 additions and 53 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 77 KiB

After

Width:  |  Height:  |  Size: 203 KiB

View File

@ -1,7 +1,23 @@
# Fee Structure
A Fee Structure is a template that can be used while making fee records.
A Fee Structure is a template that can be used while making Fees records or generating them via the Fee Schedule. In the Accounts section, you can set also the different accounts as for the Fees is an accounting transaction.
You can create the Fee Structure directly from
> Education > Fees > Fee Structure > New Fee Structure
or you can create the Fee Structure from Program also.
<img class="screenshot" alt="Fees Structure" src="/docs/assets/img/education/fees/fee-structure.png">
#### Academic Year Impact
If the Fee amount doesn't change every academic year then Fee Structure can be created without the Acadamic year. In doing so, the same Fee Structure can be used every academic year until the Fees for that particular program doesn't change. Still you can set the academic year and term while creating the Fees or Fee Schedule records.
#### Accounting Impact
You can set the "Income Account" and "Receivable Account" in the Accounts section which refers to an Account of you [Chart of Accounts](/docs/user/manual/en/accounts/chart-of-accounts.md). You must also mention the Cost Center in which your income will be booked.
If you are going to use this in the Fee Schedule, you must select the Accounts carefully as Fee Schedule updates the respected Accounts in bulk.
{next}

View File

@ -30,6 +30,7 @@ frappe.ui.form.on('Fee Schedule', {
frm.set_query("student_group", "student_groups", function() {
return {
"program": frm.doc.program,
"academic_term": frm.doc.academic_term,
"academic_year": frm.doc.academic_year
};
});
@ -95,19 +96,21 @@ frappe.ui.form.on('Fee Schedule', {
frappe.ui.form.on("Fee Schedule Student Group", {
student_group: function(frm, cdt, cdn) {
var row = locals[cdt][cdn];
frappe.call({
method: "erpnext.education.doctype.fee_schedule.fee_schedule.get_total_students",
args: {
"student_group": row.student_group,
"academic_year": frm.doc.academic_year,
"academic_term": frm.doc.academic_term,
"student_category": frm.doc.student_category
},
callback: function(r) {
if(!r.exc) {
frappe.model.set_value(cdt, cdn, "total_students", r.message);
if (row.student_group && frm.doc.academic_year) {
frappe.call({
method: "erpnext.education.doctype.fee_schedule.fee_schedule.get_total_students",
args: {
"student_group": row.student_group,
"academic_year": frm.doc.academic_year,
"academic_term": frm.doc.academic_term,
"student_category": frm.doc.student_category
},
callback: function(r) {
if(!r.exc) {
frappe.model.set_value(cdt, cdn, "total_students", r.message);
}
}
}
});
});
}
}
})

View File

@ -280,10 +280,10 @@
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 1,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"reqd": 1,
"search_index": 0,
"set_only_once": 0,
"unique": 0
@ -311,7 +311,7 @@
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 1,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
@ -1029,7 +1029,7 @@
"issingle": 0,
"istable": 0,
"max_attachments": 0,
"modified": "2017-11-10 18:56:46.330631",
"modified": "2017-12-04 13:08:27.727709",
"modified_by": "Administrator",
"module": "Education",
"name": "Fee Schedule",

View File

@ -34,15 +34,21 @@ class FeeSchedule(Document):
return info
def validate(self):
self.calculate_total()
self.calculate_total_and_program()
def calculate_total(self):
def calculate_total_and_program(self):
no_of_students = 0
for d in self.student_groups:
# if not d.total_students:
d.total_students = get_total_students(d.student_group, self.academic_year,
self.academic_term, self.student_category)
no_of_students += cint(d.total_students)
# validate the program of fee structure and student groups
student_group_program = frappe.db.get_value("Student Group", d.student_group, "program")
if self.program and student_group_program and self.program != student_group_program:
frappe.msgprint(_("Program in the Fee Structure and Student Group {0} are different.")
.format(d.student_group))
self.grand_total = no_of_students*self.total_amount
self.grand_total_in_words = money_in_words(self.grand_total)

View File

@ -44,37 +44,6 @@
"set_only_once": 1,
"unique": 0
},
{
"allow_bulk_edit": 0,
"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_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 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,
"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,
@ -108,6 +77,37 @@
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"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_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 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,
"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,
@ -197,7 +197,7 @@
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 1,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
@ -577,7 +577,7 @@
"istable": 0,
"max_attachments": 0,
"menu_index": 0,
"modified": "2017-11-10 18:56:59.698192",
"modified": "2017-12-04 12:51:06.864660",
"modified_by": "Administrator",
"module": "Education",
"name": "Fee Structure",