diff --git a/erpnext/hr/doctype/expense_claim/expense_claim.js b/erpnext/hr/doctype/expense_claim/expense_claim.js index b6dcd526635..f9d1c43d63d 100644 --- a/erpnext/hr/doctype/expense_claim/expense_claim.js +++ b/erpnext/hr/doctype/expense_claim/expense_claim.js @@ -150,6 +150,19 @@ frappe.ui.form.on("Expense Claim", { }, onload: function(frm) { + if (frm.doc.docstatus == 0) { + return frappe.call({ + method: "erpnext.hr.doctype.leave_application.leave_application.get_mandatory_approval", + args: { + doctype: frm.doc.doctype, + }, + callback: function(r) { + if (!r.exc && r.message) { + frm.toggle_reqd("expense_approver", true); + } + } + }); + } frm.set_query("expense_approver", function() { return { query: "erpnext.hr.doctype.department_approver.department_approver.get_approvers", @@ -181,11 +194,6 @@ frappe.ui.form.on("Expense Claim", { frm.add_custom_button(__('Payment'), function() { frm.events.make_payment_entry(frm); }, __("Make")); } - frappe.db.get_value('HR Settings', {name: 'HR Settings'}, 'expense_approver_mandatory_in_expense_claim', (r) => { - if (frm.doc.docstatus < 1 && (r.expense_approver_mandatory_in_expense_claim == 1)) { - frm.toggle_reqd("expense_approver", true); - } - }); }, make_payment_entry: function(frm) { diff --git a/erpnext/hr/doctype/leave_application/leave_application.js b/erpnext/hr/doctype/leave_application/leave_application.js index 242c987e58b..48d4650b8ed 100755 --- a/erpnext/hr/doctype/leave_application/leave_application.js +++ b/erpnext/hr/doctype/leave_application/leave_application.js @@ -9,7 +9,19 @@ frappe.ui.form.on("Leave Application", { if (!frm.doc.posting_date) { frm.set_value("posting_date", frappe.datetime.get_today()); } - + if (frm.doc.docstatus == 0) { + return frappe.call({ + method: "erpnext.hr.doctype.leave_application.leave_application.get_mandatory_approval", + args: { + doctype: frm.doc.doctype, + }, + callback: function(r) { + if (!r.exc && r.message) { + frm.toggle_reqd("leave_approver", true); + } + } + }); + } frm.set_query("leave_approver", function() { return { query: "erpnext.hr.doctype.department_approver.department_approver.get_approvers", @@ -35,11 +47,6 @@ frappe.ui.form.on("Leave Application", { if(frm.doc.__islocal && !in_list(frappe.user_roles, "Employee")) { frm.set_intro(__("Fill the form and save it")); } - frappe.db.get_value('HR Settings', {name: 'HR Settings'}, 'leave_approver_mandatory_in_leave_application', (r) => { - if (frm.doc.docstatus < 1 && (r.leave_approver_mandatory_in_leave_application == 1)) { - frm.toggle_reqd("leave_approver", true); - } - }); }, employee: function(frm) { diff --git a/erpnext/hr/doctype/leave_application/leave_application.py b/erpnext/hr/doctype/leave_application/leave_application.py index 4231cc24246..d225463b6f8 100755 --- a/erpnext/hr/doctype/leave_application/leave_application.py +++ b/erpnext/hr/doctype/leave_application/leave_application.py @@ -461,3 +461,16 @@ def add_holidays(events, start, end, employee, company): "title": _("Holiday") + ": " + cstr(holiday.description), "name": holiday.name }) + +@frappe.whitelist() +def get_mandatory_approval(doctype): + mandatory = "" + if doctype == "Leave Application": + mandatory = frappe.db.get_single_value('HR Settings', + 'leave_approver_mandatory_in_leave_application') + else: + mandatory = frappe.db.get_single_value('HR Settings', + 'expense_approver_mandatory_in_expense_claim') + + return mandatory + \ No newline at end of file