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:
parent
58ae5ee563
commit
e6fd07fda9
Binary file not shown.
Before Width: | Height: | Size: 77 KiB After Width: | Height: | Size: 203 KiB |
@ -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}
|
@ -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,6 +96,7 @@ 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];
|
||||
if (row.student_group && frm.doc.academic_year) {
|
||||
frappe.call({
|
||||
method: "erpnext.education.doctype.fee_schedule.fee_schedule.get_total_students",
|
||||
args: {
|
||||
@ -110,4 +112,5 @@ frappe.ui.form.on("Fee Schedule Student Group", {
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
})
|
@ -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",
|
||||
|
@ -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)
|
||||
|
||||
|
@ -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",
|
||||
|
Loading…
x
Reference in New Issue
Block a user