diff --git a/erpnext/accounts/doctype/journal_entry/journal_entry.py b/erpnext/accounts/doctype/journal_entry/journal_entry.py
index 9bb3fe4..06724b1 100644
--- a/erpnext/accounts/doctype/journal_entry/journal_entry.py
+++ b/erpnext/accounts/doctype/journal_entry/journal_entry.py
@@ -10,6 +10,7 @@
 from erpnext.setup.utils import get_company_currency
 from erpnext.accounts.party import get_party_account
 from erpnext.hr.doctype.expense_claim.expense_claim import update_reimbursed_amount
+from erpnext.hr.doctype.employee_loan.employee_loan import update_disbursement_status
 
 class JournalEntry(AccountsController):
 	def __init__(self, arg1, arg2=None):
@@ -46,6 +47,7 @@
 		self.make_gl_entries()
 		self.update_advance_paid()
 		self.update_expense_claim()
+		self.update_employee_loan()
 
 	def get_title(self):
 		return self.pay_to_recd_from or self.accounts[0].account
@@ -69,6 +71,7 @@
 		self.make_gl_entries(1)
 		self.update_advance_paid()
 		self.update_expense_claim()
+		self.update_employee_loan()
 		self.unlink_advance_entry_reference()
 
 	def unlink_advance_entry_reference(self):
@@ -503,6 +506,12 @@
 				doc = frappe.get_doc("Expense Claim", d.reference_name)
 				update_reimbursed_amount(doc)
 
+	def update_employee_loan(self):
+		for d in self.accounts:
+			if d.reference_type=="Employee Loan" and flt(d.debit) > 0:
+				doc = frappe.get_doc("Employee Loan", d.reference_name)
+				update_disbursement_status(doc)
+
 	def validate_expense_claim(self):
 		for d in self.accounts:
 			if d.reference_type=="Expense Claim":
diff --git a/erpnext/accounts/doctype/journal_entry_account/journal_entry_account.json b/erpnext/accounts/doctype/journal_entry_account/journal_entry_account.json
index 0bd6f86..54af579 100644
--- a/erpnext/accounts/doctype/journal_entry_account/journal_entry_account.json
+++ b/erpnext/accounts/doctype/journal_entry_account/journal_entry_account.json
@@ -8,6 +8,7 @@
  "custom": 0, 
  "docstatus": 0, 
  "doctype": "DocType", 
+ "document_type": "Document", 
  "editable_grid": 1, 
  "engine": "InnoDB", 
  "fields": [
@@ -596,7 +597,7 @@
    "label": "Reference Type", 
    "length": 0, 
    "no_copy": 0, 
-   "options": "\nSales Invoice\nPurchase Invoice\nJournal Entry\nSales Order\nPurchase Order\nExpense Claim\nAsset", 
+   "options": "\nSales Invoice\nPurchase Invoice\nJournal Entry\nSales Order\nPurchase Order\nExpense Claim\nAsset\nEmployee Loan", 
    "permlevel": 0, 
    "precision": "", 
    "print_hide": 0, 
@@ -768,7 +769,7 @@
  "issingle": 0, 
  "istable": 1, 
  "max_attachments": 0, 
- "modified": "2017-02-17 16:28:35.118357", 
+ "modified": "2017-03-02 05:02:10.102039", 
  "modified_by": "Administrator", 
  "module": "Accounts", 
  "name": "Journal Entry Account", 
diff --git a/erpnext/hr/doctype/employee_loan/employee_loan.js b/erpnext/hr/doctype/employee_loan/employee_loan.js
index cb9216f..2f87acf 100644
--- a/erpnext/hr/doctype/employee_loan/employee_loan.js
+++ b/erpnext/hr/doctype/employee_loan/employee_loan.js
@@ -36,7 +36,34 @@
 		})
 	},
 
-	mode_of_payment: function(frm){
+	refresh: function(frm) {
+		if (frm.doc.docstatus == 1 && (frm.doc.status == "Sanctioned" || frm.doc.status == "Partially Disbursed")) {
+			frm.add_custom_button(__('Make Disbursement Entry'), function() {
+				frm.trigger("make_jv");
+			})
+		}
+		frm.trigger("toggle_fields");
+	},
+
+	make_jv: function(frm) {
+		frappe.call({
+			args: {
+				"employee_loan": frm.doc.name,
+				"company": frm.doc.company,
+				"employee_loan_account": frm.doc.employee_loan_account,
+				"employee": frm.doc.employee,
+				"loan_amount": frm.doc.loan_amount,
+				"payment_account": frm.doc.payment_account
+			},
+			method: "erpnext.hr.doctype.employee_loan.employee_loan.make_jv_entry",
+			callback: function(r) {
+				if (r.message)
+					var doc = frappe.model.sync(r.message)[0];
+					frappe.set_route("Form", doc.doctype, doc.name);
+			}
+		})
+	},
+	mode_of_payment: function(frm) {
 		frappe.call({
 			method: "erpnext.accounts.doctype.sales_invoice.sales_invoice.get_bank_cash_account",
 			args: {
@@ -51,23 +78,6 @@
 		});
 	},
 
-	refresh: function(frm) {
-		frm.trigger("toggle_fields");
-
-		if(frm.doc.docstatus==1) {
-			frm.add_custom_button(__('Ledger'), function() {
-				frappe.route_options = {
-					"voucher_no": frm.doc.name,
-					"from_date": frm.doc.posting_date,
-					"to_date": frm.doc.posting_date,
-					"company": frm.doc.company,
-					group_by_voucher: 0
-				};
-				frappe.set_route("query-report", "General Ledger");
-			}, "fa fa-table");
-		}
-	},
-
 	employee_loan_application: function(frm) {
 		return frm.call({
 			method: "erpnext.hr.doctype.employee_loan.employee_loan.get_employee_loan_application",
diff --git a/erpnext/hr/doctype/employee_loan/employee_loan.json b/erpnext/hr/doctype/employee_loan/employee_loan.json
index c052dc0..a14c1e0 100644
--- a/erpnext/hr/doctype/employee_loan/employee_loan.json
+++ b/erpnext/hr/doctype/employee_loan/employee_loan.json
@@ -1,5 +1,6 @@
 {
  "allow_copy": 0, 
+ "allow_guest_to_view": 0, 
  "allow_import": 1, 
  "allow_rename": 0, 
  "autoname": "ELN.####", 
@@ -237,7 +238,7 @@
    "label": "Status", 
    "length": 0, 
    "no_copy": 0, 
-   "options": "Loan Unpaid\nLoan Paid\nEMI in progress\nLoan Repaid", 
+   "options": "Sanctioned\nPartially Disbursed\nFully Disbursed\nRepaid/Closed", 
    "permlevel": 0, 
    "precision": "", 
    "print_hide": 0, 
@@ -325,6 +326,7 @@
    "label": "Loan Amount", 
    "length": 0, 
    "no_copy": 0, 
+   "options": "Company:company:default_currency", 
    "permlevel": 0, 
    "precision": "", 
    "print_hide": 0, 
@@ -506,6 +508,7 @@
    "label": "Monthly Repayment Amount", 
    "length": 0, 
    "no_copy": 0, 
+   "options": "Company:company:default_currency", 
    "permlevel": 0, 
    "precision": "", 
    "print_hide": 0, 
@@ -690,7 +693,7 @@
    "read_only": 0, 
    "remember_last_selected_value": 0, 
    "report_hide": 0, 
-   "reqd": 0, 
+   "reqd": 1, 
    "search_index": 0, 
    "set_only_once": 0, 
    "unique": 0
@@ -801,6 +804,7 @@
    "label": "Total Payment", 
    "length": 0, 
    "no_copy": 0, 
+   "options": "Company:company:default_currency", 
    "permlevel": 0, 
    "precision": "", 
    "print_hide": 0, 
@@ -859,6 +863,7 @@
    "label": "Total Interest Payable", 
    "length": 0, 
    "no_copy": 0, 
+   "options": "Company:company:default_currency", 
    "permlevel": 0, 
    "precision": "", 
    "print_hide": 0, 
@@ -901,17 +906,17 @@
    "unique": 0
   }
  ], 
+ "has_web_view": 0, 
  "hide_heading": 0, 
  "hide_toolbar": 0, 
  "idx": 0, 
  "image_view": 0, 
  "in_create": 0, 
- "in_dialog": 0, 
  "is_submittable": 1, 
  "issingle": 0, 
  "istable": 0, 
  "max_attachments": 0, 
- "modified": "2017-02-22 04:27:13.174800", 
+ "modified": "2017-03-09 01:30:19.231918", 
  "modified_by": "Administrator", 
  "module": "HR", 
  "name": "Employee Loan", 
diff --git a/erpnext/hr/doctype/employee_loan/employee_loan.py b/erpnext/hr/doctype/employee_loan/employee_loan.py
index 568596e..d4e9a20 100644
--- a/erpnext/hr/doctype/employee_loan/employee_loan.py
+++ b/erpnext/hr/doctype/employee_loan/employee_loan.py
@@ -8,7 +8,6 @@
 from frappe import _
 from frappe.utils import flt, rounded, add_months, nowdate
 from erpnext.controllers.accounts_controller import AccountsController
-from erpnext.accounts.general_ledger import make_gl_entries
 
 class EmployeeLoan(AccountsController):
 	def validate(self):
@@ -26,33 +25,32 @@
 		self.set_repayment_period()
 		self.calculate_totals()
 
-	def on_submit(self):
-		self.make_gl_entries()
+	def make_jv_entry(self):
+		self.check_permission('write')
+		journal_entry = frappe.new_doc('Journal Entry')
+		journal_entry.voucher_type = 'Bank Entry'
+		journal_entry.user_remark = _('Against Employee Loan: {0}').format(self.name)
+		journal_entry.company = self.company
+		journal_entry.posting_date = nowdate()
 
-	def on_cancel(self):
-		self.make_gl_entries()
+		account_amt_list = []
 
-	def make_gl_entries(self):
-		gl_entries = []
-		# Gl entries for employee loan account
-		gl_entries.append(
-			self.get_gl_dict({
-				"account": self.employee_loan_account,
-				"party_type": "Employee",
-				"party": self.employee,
-				"debit": self.loan_amount,
-				"debit_in_account_currency": self.loan_amount
+		account_amt_list.append({
+			"account": self.employee_loan_account,
+			"party_type": "Employee",
+			"party": self.employee,
+			"debit_in_account_currency": self.loan_amount,
+			"reference_type": "Employee Loan",
+			"reference_name": self.name,
 			})
-		)
-		# Gl entries for payment account
-		gl_entries.append(
-			self.get_gl_dict({
-				"account": self.payment_account,
-				"credit": self.loan_amount,
-				"credit_in_account_currency": self.loan_amount
+		account_amt_list.append({
+			"account": self.payment_account,
+			"credit_in_account_currency": self.loan_amount,
+			"reference_type": "Employee Loan",
+			"reference_name": self.name,
 			})
-		)
-		make_gl_entries(gl_entries, cancel=(self.docstatus == 2))
+		journal_entry.set("accounts", account_amt_list)
+		return journal_entry.as_dict()
 
 	def make_repayment_schedule(self):
 		self.repayment_schedule = []
@@ -94,11 +92,19 @@
 			self.total_payment += data.total_payment
 			self.total_interest_payable +=data.interest_amount
 
-	def update_status(self):
-		if self.disbursement_date:
-			self.status = "Loan Paid"
-		if len(self.repayment_schedule)>0:
-			self.status = "repayment in progress"
+
+def update_disbursement_status(doc):
+	disbursed_amount = frappe.db.sql("""select ifnull(sum(debit_in_account_currency), 0) as disbursed_amount 
+		from `tabGL Entry` where against_voucher_type = 'Employee Loan' and against_voucher = %s""", 
+		(doc.name), as_dict=1)[0].disbursed_amount
+	if disbursed_amount == doc.loan_amount:
+		frappe.db.set_value("Employee Loan", doc.name , "status", "Fully Disbursed")
+	if disbursed_amount < doc.loan_amount and disbursed_amount != 0:
+		frappe.db.set_value("Employee Loan", doc.name , "status", "Partially Disbursed")
+	if disbursed_amount == 0:
+		frappe.db.set_value("Employee Loan", doc.name , "status", "Sanctioned")
+	if disbursed_amount > doc.loan_amount:
+		frappe.throw(_("Disbursed Amount cannot be greater than Loan Amount {0}").format(doc.loan_amount))
 	
 def check_repayment_method(repayment_method, loan_amount, monthly_repayment_amount, repayment_periods):
 	if repayment_method == "Repay Over Number of Periods" and not repayment_periods:
@@ -124,4 +130,29 @@
 def get_employee_loan_application(employee_loan_application):
 	employee_loan = frappe.get_doc("Employee Loan Application", employee_loan_application)
 	if employee_loan:
-		return employee_loan
\ No newline at end of file
+		return employee_loan
+
+@frappe.whitelist()
+def make_jv_entry(employee_loan, company, employee_loan_account, employee, loan_amount, payment_account):
+	journal_entry = frappe.new_doc('Journal Entry')
+	journal_entry.voucher_type = 'Bank Entry'
+	journal_entry.user_remark = _('Against Employee Loan: {0}').format(employee_loan)
+	journal_entry.company = company
+	journal_entry.posting_date = nowdate()
+
+	account_amt_list = []
+
+	account_amt_list.append({
+		"account": employee_loan_account,
+		"debit_in_account_currency": loan_amount,
+		"reference_type": "Employee Loan",
+		"reference_name": employee_loan,
+		})
+	account_amt_list.append({
+		"account": payment_account,
+		"credit_in_account_currency": loan_amount,
+		"reference_type": "Employee Loan",
+		"reference_name": employee_loan,
+		})
+	journal_entry.set("accounts", account_amt_list)
+	return journal_entry.as_dict()
\ No newline at end of file
diff --git a/erpnext/hr/doctype/employee_loan/test_employee_loan.py b/erpnext/hr/doctype/employee_loan/test_employee_loan.py
index c1c6ba2..8671baa 100644
--- a/erpnext/hr/doctype/employee_loan/test_employee_loan.py
+++ b/erpnext/hr/doctype/employee_loan/test_employee_loan.py
@@ -60,7 +60,8 @@
 				"disbursement_date": nowdate(),
 				"mode_of_payment": frappe.db.get_value('Mode of Payment', {'type': 'Cash'}, 'name'),
 				"payment_account": frappe.db.get_value('Account', {'account_type': 'Cash', 'company': erpnext.get_default_company(),'is_group':0}, "name"),
-				"employee_loan_account": frappe.db.get_value('Account', {'account_type': 'Cash', 'company': erpnext.get_default_company(),'is_group':0}, "name")
+				"employee_loan_account": frappe.db.get_value('Account', {'account_type': 'Cash', 'company': erpnext.get_default_company(),'is_group':0}, "name"),
+				"interest_income_account": frappe.db.get_value('Account', {'account_type': 'Cash', 'company': erpnext.get_default_company(),'is_group':0}, "name")
 			})
 		employee_loan.insert()
 		return employee_loan
diff --git a/erpnext/hr/doctype/employee_loan_application/employee_loan_application.json b/erpnext/hr/doctype/employee_loan_application/employee_loan_application.json
index 29617dd..4c673c3 100644
--- a/erpnext/hr/doctype/employee_loan_application/employee_loan_application.json
+++ b/erpnext/hr/doctype/employee_loan_application/employee_loan_application.json
@@ -266,6 +266,7 @@
    "label": "Loan Amount", 
    "length": 0, 
    "no_copy": 0, 
+   "options": "Company:company:default_currency", 
    "permlevel": 0, 
    "precision": "", 
    "print_hide": 0, 
@@ -470,6 +471,7 @@
    "label": "Total Payable Interest", 
    "length": 0, 
    "no_copy": 0, 
+   "options": "Company:company:default_currency", 
    "permlevel": 0, 
    "precision": "", 
    "print_hide": 0, 
@@ -528,6 +530,7 @@
    "label": "Monthly Repayment Amount", 
    "length": 0, 
    "no_copy": 0, 
+   "options": "Company:company:default_currency", 
    "permlevel": 0, 
    "precision": "", 
    "print_hide": 0, 
@@ -587,6 +590,7 @@
    "label": "Total Payable Amount", 
    "length": 0, 
    "no_copy": 0, 
+   "options": "Company:company:default_currency", 
    "permlevel": 0, 
    "precision": "", 
    "print_hide": 0, 
@@ -639,7 +643,7 @@
  "issingle": 0, 
  "istable": 0, 
  "max_attachments": 0, 
- "modified": "2017-02-27 04:52:39.344524", 
+ "modified": "2017-03-02 04:25:43.397934", 
  "modified_by": "Administrator", 
  "module": "HR", 
  "name": "Employee Loan Application", 
diff --git a/erpnext/hr/doctype/loan_type/loan_type.json b/erpnext/hr/doctype/loan_type/loan_type.json
index 3809fc1..ce93979 100644
--- a/erpnext/hr/doctype/loan_type/loan_type.json
+++ b/erpnext/hr/doctype/loan_type/loan_type.json
@@ -58,6 +58,7 @@
    "label": "Maximum Loan Amount", 
    "length": 0, 
    "no_copy": 0, 
+   "options": "Company:company:default_currency", 
    "permlevel": 0, 
    "precision": "", 
    "print_hide": 0, 
@@ -198,7 +199,7 @@
  "issingle": 0, 
  "istable": 0, 
  "max_attachments": 0, 
- "modified": "2017-02-27 04:53:51.949600", 
+ "modified": "2017-03-02 04:26:05.375693", 
  "modified_by": "Administrator", 
  "module": "HR", 
  "name": "Loan Type", 
