[Fix] Leave Application & Expense Claim query fix | Leave Balance Report fix (#14149)
* move set_query to setup function * rectify leave balance report according to deparmtent changes
This commit is contained in:
parent
d08ac1fe79
commit
1f3f18534b
@ -147,6 +147,15 @@ frappe.ui.form.on("Expense Claim", {
|
|||||||
]
|
]
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
frm.set_query("expense_approver", function() {
|
||||||
|
return {
|
||||||
|
query: "erpnext.hr.doctype.department_approver.department_approver.get_approvers",
|
||||||
|
filters: {
|
||||||
|
employee: frm.doc.employee,
|
||||||
|
doctype: frm.doc.doctype
|
||||||
|
}
|
||||||
|
};
|
||||||
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
onload: function(frm) {
|
onload: function(frm) {
|
||||||
@ -163,15 +172,6 @@ frappe.ui.form.on("Expense Claim", {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
frm.set_query("expense_approver", function() {
|
|
||||||
return {
|
|
||||||
query: "erpnext.hr.doctype.department_approver.department_approver.get_approvers",
|
|
||||||
filters: {
|
|
||||||
employee: frm.doc.employee,
|
|
||||||
doctype: frm.doc.doctype
|
|
||||||
}
|
|
||||||
};
|
|
||||||
});
|
|
||||||
},
|
},
|
||||||
|
|
||||||
refresh: function(frm) {
|
refresh: function(frm) {
|
||||||
|
@ -5,6 +5,19 @@ cur_frm.add_fetch('employee','employee_name','employee_name');
|
|||||||
cur_frm.add_fetch('employee','company','company');
|
cur_frm.add_fetch('employee','company','company');
|
||||||
|
|
||||||
frappe.ui.form.on("Leave Application", {
|
frappe.ui.form.on("Leave Application", {
|
||||||
|
setup: function(frm) {
|
||||||
|
frm.set_query("leave_approver", function() {
|
||||||
|
return {
|
||||||
|
query: "erpnext.hr.doctype.department_approver.department_approver.get_approvers",
|
||||||
|
filters: {
|
||||||
|
employee: frm.doc.employee,
|
||||||
|
doctype: frm.doc.doctype
|
||||||
|
}
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
frm.set_query("employee", erpnext.queries.employee);
|
||||||
|
},
|
||||||
onload: function(frm) {
|
onload: function(frm) {
|
||||||
if (!frm.doc.posting_date) {
|
if (!frm.doc.posting_date) {
|
||||||
frm.set_value("posting_date", frappe.datetime.get_today());
|
frm.set_value("posting_date", frappe.datetime.get_today());
|
||||||
@ -22,17 +35,6 @@ frappe.ui.form.on("Leave Application", {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
frm.set_query("leave_approver", function() {
|
|
||||||
return {
|
|
||||||
query: "erpnext.hr.doctype.department_approver.department_approver.get_approvers",
|
|
||||||
filters: {
|
|
||||||
employee: frm.doc.employee,
|
|
||||||
doctype: frm.doc.doctype
|
|
||||||
}
|
|
||||||
};
|
|
||||||
});
|
|
||||||
|
|
||||||
frm.set_query("employee", erpnext.queries.employee);
|
|
||||||
},
|
},
|
||||||
|
|
||||||
validate: function(frm) {
|
validate: function(frm) {
|
||||||
|
@ -39,8 +39,7 @@ def get_data(filters, leave_types):
|
|||||||
|
|
||||||
data = []
|
data = []
|
||||||
for employee in active_employees:
|
for employee in active_employees:
|
||||||
leave_approvers = [l.leave_approver for l in frappe.db.sql("""select leave_approver from `tabEmployee Leave Approver` where parent = %s""",
|
leave_approvers = get_approvers(employee.department)
|
||||||
(employee.name),as_dict=True)]
|
|
||||||
if (len(leave_approvers) and user in leave_approvers) or (user in ["Administrator", employee.user_id]) or ("HR Manager" in frappe.get_roles(user)):
|
if (len(leave_approvers) and user in leave_approvers) or (user in ["Administrator", employee.user_id]) or ("HR Manager" in frappe.get_roles(user)):
|
||||||
row = [employee.name, employee.employee_name, employee.department]
|
row = [employee.name, employee.employee_name, employee.department]
|
||||||
|
|
||||||
@ -54,7 +53,25 @@ def get_data(filters, leave_types):
|
|||||||
allocation_records_based_on_to_date.get(employee.name, frappe._dict()))
|
allocation_records_based_on_to_date.get(employee.name, frappe._dict()))
|
||||||
|
|
||||||
row += [leaves_taken, closing]
|
row += [leaves_taken, closing]
|
||||||
|
|
||||||
data.append(row)
|
data.append(row)
|
||||||
|
|
||||||
return data
|
return data
|
||||||
|
|
||||||
|
def get_approvers(department):
|
||||||
|
if not department:
|
||||||
|
return []
|
||||||
|
|
||||||
|
approvers = []
|
||||||
|
# get current department and all its child
|
||||||
|
department_details = frappe.db.get_value("Department", {"name": department}, ["lft", "rgt"], as_dict=True)
|
||||||
|
department_list = frappe.db.sql("""select name from `tabDepartment`
|
||||||
|
where lft >= %s and rgt <= %s order by lft desc
|
||||||
|
""", (department_details.lft, department_details.rgt), as_list = True)
|
||||||
|
|
||||||
|
# retrieve approvers list from current department and from its subsequent child departments
|
||||||
|
for d in department_list:
|
||||||
|
approvers.extend([l.leave_approver for l in frappe.db.sql("""select approver from `tabDepartment Approver` \
|
||||||
|
where parent = %s and parentfield = 'leave_approver'""", (d), as_dict=True)])
|
||||||
|
|
||||||
|
return approvers
|
||||||
|
Loading…
x
Reference in New Issue
Block a user