diff --git a/erpnext/hr/doctype/leave_allocation/leave_allocation.js b/erpnext/hr/doctype/leave_allocation/leave_allocation.js index 50dbaadec74..005f45a6576 100755 --- a/erpnext/hr/doctype/leave_allocation/leave_allocation.js +++ b/erpnext/hr/doctype/leave_allocation/leave_allocation.js @@ -29,7 +29,7 @@ frappe.ui.form.on("Leave Allocation", { }); // opens leave balance report for employee - frm.add_custom_button(__('Check Leave Balance'), function() { + frm.add_custom_button(__('Leave Balance'), function() { frappe.route_options = { employee: frm.doc.employee, }; diff --git a/erpnext/hr/doctype/leave_application/leave_application.js b/erpnext/hr/doctype/leave_application/leave_application.js index 11146abce24..cb1042c5ef5 100755 --- a/erpnext/hr/doctype/leave_application/leave_application.js +++ b/erpnext/hr/doctype/leave_application/leave_application.js @@ -86,6 +86,16 @@ frappe.ui.form.on("Leave Application", { frm.set_value('employee', perm['Employee'].map(perm_doc => perm_doc.doc)[0]); } } + + if (frm.doc.docstatus === 1) { + frm.add_custom_button(__('Leave Balance'), function() { + frappe.route_options = { + employee: frm.doc.employee, + group_by: "" + }; + frappe.set_route("query-report", "Employee Leave Balance"); + }); + } }, employee: function(frm) { diff --git a/erpnext/hr/doctype/leave_application/test_leave_application.py b/erpnext/hr/doctype/leave_application/test_leave_application.py index 899ce2ae8d8..54216ee3c71 100644 --- a/erpnext/hr/doctype/leave_application/test_leave_application.py +++ b/erpnext/hr/doctype/leave_application/test_leave_application.py @@ -50,7 +50,7 @@ _test_records = [ class TestLeaveApplication(unittest.TestCase): def setUp(self): for dt in ["Leave Application", "Leave Allocation", "Salary Slip", "Leave Ledger Entry"]: - frappe.db.sql("DELETE FROM `tab%s`" % dt) + frappe.db.sql("DELETE FROM `tab%s`" % dt) #nosec @classmethod def setUpClass(cls): diff --git a/erpnext/hr/doctype/leave_ledger_entry/leave_ledger_entry.json b/erpnext/hr/doctype/leave_ledger_entry/leave_ledger_entry.json index 20b64f81aaa..4234fc4b40d 100644 --- a/erpnext/hr/doctype/leave_ledger_entry/leave_ledger_entry.json +++ b/erpnext/hr/doctype/leave_ledger_entry/leave_ledger_entry.json @@ -14,6 +14,7 @@ "to_date", "is_carry_forward", "is_expired", + "is_lwp", "amended_from" ], "fields": [ @@ -90,11 +91,17 @@ { "fieldname": "column_break_7", "fieldtype": "Column Break" + }, + { + "default": "0", + "fieldname": "is_lwp", + "fieldtype": "Check", + "label": "Is Leave Without Pay" } ], "in_create": 1, "is_submittable": 1, - "modified": "2019-05-30 14:45:16.577534", + "modified": "2019-06-05 12:56:04.980160", "modified_by": "Administrator", "module": "HR", "name": "Leave Ledger Entry", diff --git a/erpnext/hr/report/employee_leave_balance/employee_leave_balance.js b/erpnext/hr/report/employee_leave_balance/employee_leave_balance.js index 68302f6ee4e..05728a297b2 100644 --- a/erpnext/hr/report/employee_leave_balance/employee_leave_balance.js +++ b/erpnext/hr/report/employee_leave_balance/employee_leave_balance.js @@ -30,6 +30,12 @@ frappe.query_reports["Employee Leave Balance"] = { "label": __("Department"), "fieldtype": "Link", "options": "Department", + }, + { + "fieldname":"employee", + "label": __("Employee"), + "fieldtype": "Link", + "options": "Employee", } ] } diff --git a/erpnext/hr/report/employee_leave_balance/employee_leave_balance.py b/erpnext/hr/report/employee_leave_balance/employee_leave_balance.py index e65220ae257..48e9bf5e5df 100644 --- a/erpnext/hr/report/employee_leave_balance/employee_leave_balance.py +++ b/erpnext/hr/report/employee_leave_balance/employee_leave_balance.py @@ -37,9 +37,10 @@ def get_conditions(filters): "company": filters.company, } if filters.get("department"): - conditions.update({ - "department": filters.get("department") - }) + conditions.update({"department": filters.get("department")}) + if filters.get("employee"): + conditions.update({"employee": filters.get("employee")}) + return conditions def get_data(filters, leave_types):