diff --git a/erpnext/hr/doctype/leave_allocation/leave_allocation.js b/erpnext/hr/doctype/leave_allocation/leave_allocation.js
index a620d9e..8f734ac 100755
--- a/erpnext/hr/doctype/leave_allocation/leave_allocation.js
+++ b/erpnext/hr/doctype/leave_allocation/leave_allocation.js
@@ -94,19 +94,10 @@
 	calculate_total_leaves_allocated: function(frm) {
 		if (cint(frm.doc.carry_forward) == 1 && frm.doc.leave_type && frm.doc.employee) {
 			return frappe.call({
-				method: "erpnext.hr.doctype.leave_allocation.leave_allocation.get_carry_forwarded_leaves",
-				args: {
-					"employee": frm.doc.employee,
-					"date": frm.doc.from_date,
-					"leave_type": frm.doc.leave_type,
-					"carry_forward": frm.doc.carry_forward
-				},
+				method: "set_total_leaves_allocated",
+				doc: frm.doc,
 				callback: function(r) {
-					if (!r.exc && r.message) {
-						frm.set_value('carry_forwarded_leaves', r.message);
-						frm.set_value("total_leaves_allocated",
-							flt(r.message) + flt(frm.doc.new_leaves_allocated));
-					}
+					frm.refresh_fields();
 				}
 			})
 		} else if (cint(frm.doc.carry_forward) == 0) {
diff --git a/erpnext/hr/doctype/leave_allocation/leave_allocation.py b/erpnext/hr/doctype/leave_allocation/leave_allocation.py
index 72ea273..df479e7 100755
--- a/erpnext/hr/doctype/leave_allocation/leave_allocation.py
+++ b/erpnext/hr/doctype/leave_allocation/leave_allocation.py
@@ -115,7 +115,7 @@
 			args = dict(
 				leaves=self.carry_forwarded_leaves,
 				from_date=self.from_date,
-				to_date=add_days(self.from_date, expiry_days) if expiry_days else self.to_date,
+				to_date=add_days(self.from_date, expiry_days - 1) if expiry_days else self.to_date,
 				is_carry_forward=1
 			)
 			create_leave_ledger_entry(self, args, submit)
@@ -132,11 +132,13 @@
 		''' expires allocation '''
 		date = self.to_date if current else self.from_date
 		leaves = get_unused_leaves(self.employee, self.leave_type, date)
+		ref_name = self.name if current else self.get_previous_allocation()
 
 		if leaves:
 			expiry_date = today() if current else add_days(self.from_date, -1)
 			args = dict(
 				leaves=flt(leaves) * -1,
+				transaction_name=ref_name,
 				from_date=expiry_date,
 				to_date=expiry_date,
 				is_carry_forward=0,
@@ -147,6 +149,17 @@
 		if current:
 			frappe.db.set_value("Leave Allocation", self.name, "status", "Expired")
 
+	def get_previous_allocation(self):
+		return frappe.db.get_value("Leave Allocation",
+			filters={
+				'to_date': ("<", self.from_date),
+				'leave_type': self.leave_type,
+				'employee': self.employee,
+				'docstatus': 1
+			},
+			order_by='to_date DESC',
+			fieldname=['name'])
+
 def get_leave_allocation_for_period(employee, leave_type, from_date, to_date):
 	leave_allocated = 0
 	leave_allocations = frappe.db.sql("""
diff --git a/erpnext/hr/doctype/leave_application/leave_application.js b/erpnext/hr/doctype/leave_application/leave_application.js
index b81e615..44a60b0 100755
--- a/erpnext/hr/doctype/leave_application/leave_application.js
+++ b/erpnext/hr/doctype/leave_application/leave_application.js
@@ -49,7 +49,7 @@
 				async: false,
 				args: {
 					employee: frm.doc.employee,
-					date: frm.doc.posting_date
+					date: frm.doc.from_date? frm.doc.from_date:frm.doc.posting_date
 				},
 				callback: function(r) {
 					if (!r.exc && r.message['leave_allocation']) {
@@ -124,6 +124,7 @@
 	},
 
 	from_date: function(frm) {
+		frm.trigger("make_dashboard");
 		frm.trigger("half_day_datepicker");
 		frm.trigger("calculate_total_days");
 	},
diff --git a/erpnext/hr/doctype/leave_application/leave_application.py b/erpnext/hr/doctype/leave_application/leave_application.py
index d08c9ed..7aa3e95 100755
--- a/erpnext/hr/doctype/leave_application/leave_application.py
+++ b/erpnext/hr/doctype/leave_application/leave_application.py
@@ -417,9 +417,9 @@
 		allocation = allocation_records.get(d, frappe._dict())
 		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) * -1
-		leaves_pending = get_pending_leaves_for_period(employee, d, allocation.from_date, date)
+		end_date = allocation.to_date
+		leaves_taken = get_leaves_for_period(employee, d, allocation.from_date, end_date) * -1
+		leaves_pending = get_pending_leaves_for_period(employee, d, allocation.from_date, end_date)
 
 		leave_allocation[d] = {
 			"total_leaves": allocation.total_leaves_allocated,
@@ -435,14 +435,17 @@
 	return ret
 
 @frappe.whitelist()
-def get_leave_balance_on(employee, leave_type, date, to_date=nowdate(), allocation_records=None,
-		consider_all_leaves_in_the_allocation_period=False):
-	''' Returns leave balance till date and fetches expiry date based on to_date
-		to calculate minimum remaining leave balance '''
+def get_leave_balance_on(employee, leave_type, date, to_date=nowdate(), consider_all_leaves_in_the_allocation_period=False):
+	'''
+		Returns leave balance on date
+		:param employee: employee name
+		:param leave_type: leave type
+		:param date: date to check balance on
+		:param to_date: future date to check for allocation expiry
+		:param consider_all_leaves_in_the_allocation_period: consider all leaves taken till the allocation end date
+	'''
 
-	if not allocation_records:
-		allocation_records = get_leave_allocation_records(employee, date, leave_type)
-
+	allocation_records = get_leave_allocation_records(employee, date, leave_type)
 	allocation = allocation_records.get(leave_type, frappe._dict())
 
 	end_date = allocation.to_date if consider_all_leaves_in_the_allocation_period else date
diff --git a/erpnext/hr/doctype/leave_application/test_leave_application.py b/erpnext/hr/doctype/leave_application/test_leave_application.py
index 54216ee..ca6b99c 100644
--- a/erpnext/hr/doctype/leave_application/test_leave_application.py
+++ b/erpnext/hr/doctype/leave_application/test_leave_application.py
@@ -557,7 +557,7 @@
 			leave_type="_Test_CF_leave_expiry",
 			employee=employee.name,
 			employee_name=employee.employee_name,
-			from_date=add_days(nowdate(), -85),
+			from_date=add_days(nowdate(), -84),
 			to_date=add_days(nowdate(), 100),
 			carry_forward=1)
 		leave_allocation.submit()
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 0166e43..c114222 100644
--- a/erpnext/hr/doctype/leave_ledger_entry/leave_ledger_entry.json
+++ b/erpnext/hr/doctype/leave_ledger_entry/leave_ledger_entry.json
@@ -101,7 +101,7 @@
  ],
  "in_create": 1,
  "is_submittable": 1,
- "modified": "2019-06-06 20:33:37.531161",
+ "modified": "2019-06-21 00:37:07.782810",
  "modified_by": "Administrator",
  "module": "HR",
  "name": "Leave Ledger Entry",
diff --git a/erpnext/hr/doctype/leave_ledger_entry/leave_ledger_entry.py b/erpnext/hr/doctype/leave_ledger_entry/leave_ledger_entry.py
index 6142dcf..a73f10a 100644
--- a/erpnext/hr/doctype/leave_ledger_entry/leave_ledger_entry.py
+++ b/erpnext/hr/doctype/leave_ledger_entry/leave_ledger_entry.py
@@ -6,7 +6,7 @@
 import frappe
 from frappe.model.document import Document
 from frappe import _
-from frappe.utils import add_days, today, flt
+from frappe.utils import add_days, today, flt, DATE_FORMAT
 
 class LeaveLedgerEntry(Document):
 	def on_cancel(self):
@@ -49,14 +49,31 @@
 
 def delete_ledger_entry(ledger):
 	''' Delete ledger entry on cancel of leave application/allocation/encashment '''
-
 	if ledger.transaction_type == "Leave Allocation":
 		validate_leave_allocation_against_leave_application(ledger)
 
+	expired_entry = get_previous_expiry_ledger_entry(ledger)
 	frappe.db.sql("""DELETE
 		FROM `tabLeave Ledger Entry`
 		WHERE
-			`transaction_name`=%s""", (ledger.transaction_name))
+			`transaction_name`=%s
+			OR `name`=%s""", (ledger.transaction_name, expired_entry))
+
+def get_previous_expiry_ledger_entry(ledger):
+	''' Returns the expiry ledger entry having same creation date as the ledger entry to be cancelled '''
+	creation_date = frappe.db.get_value("Leave Ledger Entry", filters={
+			'transaction_name': ledger.transaction_name,
+			'is_expired': 0
+		}, fieldname=['creation']).strftime(DATE_FORMAT)
+
+	return frappe.db.get_value("Leave Ledger Entry", filters={
+		'creation': ('like', creation_date+"%"),
+		'employee': ledger.employee,
+		'leave_type': ledger.leave_type,
+		'is_expired': 1,
+		'docstatus': 1,
+		'is_carry_forward': 0
+	}, fieldname=['name'])
 
 def process_expired_allocation():
 	''' Check if a carry forwarded allocation has expired and create a expiry ledger entry '''
@@ -70,7 +87,7 @@
 		leave_type = [record[0] for record in leave_type_records]
 		expired_allocation = frappe.get_all("Leave Ledger Entry",
 			filters={
-				'to_date': today(),
+				'to_date': add_days(today(), -1),
 				'transaction_type': 'Leave Allocation',
 				'is_carry_forward': 1,
 				'leave_type': ('in', leave_type)
