diff --git a/erpnext/hr/doctype/leave_allocation/leave_allocation.py b/erpnext/hr/doctype/leave_allocation/leave_allocation.py
index aa1cc9e..5f474a4 100755
--- a/erpnext/hr/doctype/leave_allocation/leave_allocation.py
+++ b/erpnext/hr/doctype/leave_allocation/leave_allocation.py
@@ -42,10 +42,10 @@
 				.format(self.leave_type, self.employee))
 
 	def on_submit(self):
-		create_leave_ledger_entry(self)
+		self.create_leave_ledger_entry()
 
-	def on_cancel(self):
-		create_leave_ledger_entry(self)
+	# def before_cancel(self):
+	# 	self.create_leave_ledger_entry(submit=False)
 
 	def on_update_after_submit(self):
 		self.validate_new_leaves_allocated_value()
@@ -118,6 +118,24 @@
 			else:
 				frappe.throw(_("Total allocated leaves {0} cannot be less than already approved leaves {1} for the period").format(self.total_leaves_allocated, leaves_taken), LessAllocationError)
 
+	def create_leave_ledger_entry(self, submit=True):
+		if self.carry_forwarded_leaves:
+			expiry_days = frappe.db.get_value("Leave Type", self.leave_type, "carry_forward_leave_expiry")
+
+			args = dict(
+				leaves=self.carry_forwarded_leaves * 1 if submit else -1,
+				to_date=add_days(self.from_date, expiry_days) if expiry_days else self.to_date,
+				is_carry_forward=1
+			)
+			create_leave_ledger_entry(self, args)
+
+		args = dict(
+			leaves=self.new_leaves_allocated * 1 if submit else -1,
+			to_date=self.to_date,
+			is_carry_forward=0
+		)
+		create_leave_ledger_entry(self, args)
+
 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.py b/erpnext/hr/doctype/leave_application/leave_application.py
index f542fa1..61f6178 100755
--- a/erpnext/hr/doctype/leave_application/leave_application.py
+++ b/erpnext/hr/doctype/leave_application/leave_application.py
@@ -10,6 +10,7 @@
 from erpnext.hr.doctype.leave_block_list.leave_block_list import get_applicable_block_dates
 from erpnext.hr.doctype.employee.employee import get_holiday_list_for_employee
 from erpnext.buying.doctype.supplier_scorecard.supplier_scorecard import daterange
+from erpnext.hr.doctype.leave_ledger_entry.leave_ledger_entry import create_leave_ledger_entry
 
 class LeaveDayBlockedError(frappe.ValidationError): pass
 class OverlapError(frappe.ValidationError): pass
@@ -50,6 +51,7 @@
 
 		# notify leave applier about approval
 		self.notify_employee()
+		self.create_leave_ledger_entry()
 		self.reload()
 
 	def on_cancel(self):
@@ -57,6 +59,7 @@
 		# notify leave applier about cancellation
 		self.notify_employee()
 		self.cancel_attendance()
+		self.create_leave_ledger_entry(submit=False)
 
 	def validate_applicable_after(self):
 		if self.leave_type:
@@ -346,6 +349,14 @@
 			except frappe.OutgoingEmailError:
 				pass
 
+	def create_leave_ledger_entry(self, submit=True):
+		args = dict(
+			leaves=self.total_leave_days * -1 if submit else 1,
+			to_date=self.to_date,
+			is_carry_forward=0
+		)
+		create_leave_ledger_entry(self, args)
+
 @frappe.whitelist()
 def get_number_of_leave_days(employee, leave_type, from_date, to_date, half_day = None, half_day_date = None):
 	number_of_days = 0
@@ -385,6 +396,16 @@
 	return ret
 
 @frappe.whitelist()
+def get_leave_balance(employee, leave_type, date):
+	leave_records = frappe.get_all("Leave Ledger Entry",
+	filters={'Employee':employee,
+	'leave_type':leave_type,
+	'to_date':("<=", date)},
+	fields=['leaves'])
+
+	return sum(record.get("leaves") for record in leave_records)
+
+@frappe.whitelist()
 def get_leave_balance_on(employee, leave_type, date, allocation_records=None, docname=None,
 		consider_all_leaves_in_the_allocation_period=False, consider_encashed_leaves=True):
 
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 35dce97..60d3595 100644
--- a/erpnext/hr/doctype/leave_ledger_entry/leave_ledger_entry.py
+++ b/erpnext/hr/doctype/leave_ledger_entry/leave_ledger_entry.py
@@ -10,7 +10,7 @@
 class LeaveLedgerEntry(Document):
 	pass
 
-def create_leave_ledger_entry(ref_doc, submit=True):
+def create_leave_ledger_entry(ref_doc, args):
 	ledger = dict(
 		doctype='Leave Ledger Entry',
 		employee=ref_doc.employee,
@@ -20,19 +20,6 @@
 		transaction_type=ref_doc.doctype,
 		transaction_name=ref_doc.name
 	)
-	if ref_doc.carry_forwarded_leaves:
-		expiry_days = frappe.db.get_value("Leave Type", ref_doc.leave_type, "carry_forward_leave_expiry")
 
-		ledger.update(dict(
-			leaves=ref_doc.carry_forwarded_leaves * 1 if submit else -1,
-			to_date=add_days(ref_doc.from_date, expiry_days) if expiry_days else ref_doc.to_date,
-			is_carry_forward=1
-		))
-		frappe.get_doc(ledger).submit()
-
-	ledger.update(dict(
-		leaves=ref_doc.new_leaves_allocated * 1 if submit else -1,
-		to_date=ref_doc.to_date,
-		is_carry_forward=0
-	))
-	frappe.get_doc(ledger).submit()
\ No newline at end of file
+	ledger.update(args)
+	frappe.get_doc(ledger).insert(ignore_permissions=True)
\ No newline at end of file
