diff --git a/erpnext/hr/doctype/leave_application/leave_application.py b/erpnext/hr/doctype/leave_application/leave_application.py
index f3bb9f7..9eb0b91 100755
--- a/erpnext/hr/doctype/leave_application/leave_application.py
+++ b/erpnext/hr/doctype/leave_application/leave_application.py
@@ -411,7 +411,8 @@
 	leave_allocation = {}
 	for d in allocation_records:
 		allocation = allocation_records.get(d, frappe._dict())
-		remaining_leaves = get_leave_balance_on(employee, d, date)
+		remaining_leaves = get_leave_balance_on(employee, d, date, to_date = allocation.to_date,
+			consider_all_leaves_in_the_allocation_period=True)
 		date = allocation.to_date
 		leaves_taken = get_leaves_for_period(employee, d, allocation.from_date, date, status="Approved")
 		leaves_pending = get_leaves_for_period(employee, d, allocation.from_date, date, status="Open")
@@ -441,6 +442,7 @@
 	expiry = get_allocation_expiry(employee, leave_type, to_date, from_date)
 
 	leaves_taken = get_leaves_taken(employee, leave_type, allocation.from_date, end_date)
+
 	return get_remaining_leaves(allocation, leaves_taken, from_date, expiry)
 
 def get_remaining_leaves(allocation, leaves_taken, date, expiry):
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 ba33d75..3af013d 100644
--- a/erpnext/hr/doctype/leave_ledger_entry/leave_ledger_entry.json
+++ b/erpnext/hr/doctype/leave_ledger_entry/leave_ledger_entry.json
@@ -65,21 +65,21 @@
   {
    "fieldname": "from_date",
    "fieldtype": "Date",
-   "in_list_view": 1,
    "label": "From Date"
   },
   {
    "fieldname": "to_date",
    "fieldtype": "Date",
-   "in_list_view": 1,
    "label": "To Date"
   },
   {
+   "default": "0",
    "fieldname": "is_carry_forward",
    "fieldtype": "Check",
    "label": "Is Carry Forward"
   },
   {
+   "default": "0",
    "fieldname": "is_expired",
    "fieldtype": "Check",
    "label": "Is Expired"
@@ -87,7 +87,7 @@
  ],
  "in_create": 1,
  "is_submittable": 1,
- "modified": "2019-05-27 03:25:47.805142",
+ "modified": "2019-05-29 15:58:29.656351",
  "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 59c2560..ecb3e30 100644
--- a/erpnext/hr/report/employee_leave_balance/employee_leave_balance.js
+++ b/erpnext/hr/report/employee_leave_balance/employee_leave_balance.js
@@ -24,6 +24,13 @@
 			"options": "Company",
 			"reqd": 1,
 			"default": frappe.defaults.get_user_default("Company")
+		},
+		{
+			"fieldname":"department",
+			"label": __("Department"),
+			"fieldtype": "Link",
+			"options": "Department",
+			"reqd": 1,
 		}
 	]
 }
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 95cb30b..02be799 100644
--- a/erpnext/hr/report/employee_leave_balance/employee_leave_balance.py
+++ b/erpnext/hr/report/employee_leave_balance/employee_leave_balance.py
@@ -4,6 +4,7 @@
 from __future__ import unicode_literals
 import frappe
 from frappe import _
+from frappe.utils import flt
 from erpnext.hr.doctype.leave_application.leave_application \
 	import get_leave_allocation_records, get_leave_balance_on, get_approved_leaves_for_period, get_total_allocated_leaves
 
@@ -30,14 +31,23 @@
 
 	return columns
 
+def get_conditions(filters):
+	filters = {
+		"status": "Active",
+		"company": filters.company,
+	}
+	if filters.get("Department"):
+		filters.update(filters.get("Department"))
+
+	return filters
+
 def get_data(filters, leave_types):
 	user = frappe.session.user
-	allocation_records_based_on_to_date = get_leave_allocation_records(filters.to_date)
-	allocation_records_based_on_from_date = get_leave_allocation_records(filters.from_date)
+	conditions = get_conditions(filters)
 
 	active_employees = frappe.get_all("Employee",
-		filters = { "status": "Active", "company": filters.company},
-		fields = ["name", "employee_name", "department", "user_id"])
+		filters=conditions,
+		fields=["name", "employee_name", "department", "user_id"])
 
 	data = []
 	for employee in active_employees:
@@ -54,8 +64,7 @@
 				opening = get_total_allocated_leaves(employee.name, leave_type, filters.to_date)
 
 				# closing balance
-				closing = get_leave_balance_on(employee.name, leave_type, filters.to_date,
-					allocation_records_based_on_to_date.get(employee.name, frappe._dict()))
+				closing = flt(opening) - flt(leaves_taken)
 
 				row += [opening, leaves_taken, closing]
 
