diff --git a/erpnext/accounts/doctype/invoice_discounting/invoice_discounting.py b/erpnext/accounts/doctype/invoice_discounting/invoice_discounting.py
index 2777d0b..7b1dcd4 100644
--- a/erpnext/accounts/doctype/invoice_discounting/invoice_discounting.py
+++ b/erpnext/accounts/doctype/invoice_discounting/invoice_discounting.py
@@ -103,7 +103,6 @@
 			"reference_type": "Invoice Discounting",
 			"reference_name": self.name
 		})
-
 		for d in self.invoices:
 			je.append("accounts", {
 				"account": self.accounts_receivable_discounted,
@@ -123,7 +122,7 @@
 				"party": d.customer
 			})
 
-		return je.as_dict()
+		return je
 
 	def close_loan(self):
 		je = frappe.new_doc("Journal Entry")
@@ -163,7 +162,7 @@
 					"party": d.customer
 				})
 
-		return je.as_dict()
+		return je
 
 @frappe.whitelist()
 def get_invoices(filters):
diff --git a/erpnext/accounts/doctype/invoice_discounting/test_invoice_discounting.py b/erpnext/accounts/doctype/invoice_discounting/test_invoice_discounting.py
index 96e3991..3e19448 100644
--- a/erpnext/accounts/doctype/invoice_discounting/test_invoice_discounting.py
+++ b/erpnext/accounts/doctype/invoice_discounting/test_invoice_discounting.py
@@ -4,12 +4,12 @@
 from __future__ import unicode_literals
 
 import frappe
-from frappe.utils import nowdate, add_days
+from frappe.utils import nowdate, add_days, flt
 import unittest
 from erpnext.accounts.doctype.sales_invoice.test_sales_invoice import create_sales_invoice
 from erpnext.stock.doctype.purchase_receipt.test_purchase_receipt import get_gl_entries
 from erpnext.accounts.doctype.account.test_account import create_account
-
+from erpnext.accounts.doctype.journal_entry.journal_entry import get_payment_entry_against_invoice
 class TestInvoiceDiscounting(unittest.TestCase):
 	def setUp(self):
 		self.ar_credit = create_account(account_name="_Test Accounts Receivable Credit", parent_account = "Accounts Receivable - _TC")
@@ -19,7 +19,6 @@
 		self.bank_account = create_account(account_name="_Test Bank 2", parent_account = "Bank Accounts - _TC" )
 		self.bank_charges_account = create_account(account_name="_Test Bank Charges Account", parent_account = "Expenses - _TC")
 
-
 	def test_total_amount(self):
 		inv1 = create_sales_invoice(rate=200)
 		inv2 = create_sales_invoice(rate=500)
@@ -70,8 +69,9 @@
 		self.assertEqual(inv_disc.status, "Sanctioned")
 		self.assertEqual(inv_disc.loan_end_date, add_days(inv_disc.loan_start_date, inv_disc.loan_period))
 
-	'''def test_on_disbursed(self):
-		inv = create_sales_invoice(rate=300)
+
+	def test_on_disbursed(self):
+		inv = create_sales_invoice(rate=500)
 		inv_disc = create_invoice_discounting([inv.name],
 			accounts_receivable_credit=self.ar_credit,
 			accounts_receivable_discounted=self.ar_discounted,
@@ -79,14 +79,149 @@
 			short_term_loan=self.short_term_loan,
 			bank_charges_account=self.bank_charges_account,
 			bank_account=self.bank_account,
-			set_status='Disbursed'
 			)
 
-		gle = get_gl_entries("Invoice Discounting", inv_disc.name)
-		from pprint import pprint
-		pprint(gle)'''
+		je = inv_disc.create_disbursement_entry()
 
-	def test_on_invoice_payment
+		self.assertEqual(je.accounts[0].account, self.bank_account)
+		self.assertEqual(je.accounts[0].debit_in_account_currency, flt(inv_disc.total_amount) - flt(inv_disc.bank_charges))
+
+		self.assertEqual(je.accounts[1].account, self.bank_charges_account)
+		self.assertEqual(je.accounts[1].debit_in_account_currency, flt(inv_disc.bank_charges))
+
+		self.assertEqual(je.accounts[2].account, self.short_term_loan)
+		self.assertEqual(je.accounts[2].credit_in_account_currency, flt(inv_disc.total_amount))
+
+		self.assertEqual(je.accounts[3].account, self.ar_discounted)
+		self.assertEqual(je.accounts[3].debit_in_account_currency, flt(inv.outstanding_amount))
+
+		self.assertEqual(je.accounts[4].account, self.ar_credit)
+		self.assertEqual(je.accounts[4].credit_in_account_currency, flt(inv.outstanding_amount))
+
+
+		je.posting_date = nowdate()
+		je.submit()
+
+		inv_disc.reload()
+
+		self.assertEqual(inv_disc.status, "Disbursed")
+
+	def test_on_close_after_loan_period(self):
+		inv = create_sales_invoice(rate=600)
+		inv_disc = create_invoice_discounting([inv.name],
+			accounts_receivable_credit=self.ar_credit,
+			accounts_receivable_discounted=self.ar_discounted,
+			accounts_receivable_unpaid=self.ar_unpaid,
+			short_term_loan=self.short_term_loan,
+			bank_charges_account=self.bank_charges_account,
+			bank_account=self.bank_account,
+			start=nowdate(),
+			period=60
+			)
+
+		inv_disc.create_disbursement_entry()
+		je = inv_disc.close_loan()
+
+		self.assertEqual(je.accounts[0].account, self.short_term_loan)
+		self.assertEqual(je.accounts[0].debit_in_account_currency, flt(inv_disc.total_amount))
+
+		self.assertEqual(je.accounts[1].account, self.bank_account)
+		self.assertEqual(je.accounts[1].credit_in_account_currency, flt(inv_disc.total_amount))
+
+		self.assertEqual(je.accounts[2].account, self.ar_discounted)
+		self.assertEqual(je.accounts[2].credit_in_account_currency, flt(inv.outstanding_amount))
+
+		self.assertEqual(je.accounts[3].account, self.ar_unpaid)
+		self.assertEqual(je.accounts[3].debit_in_account_currency, flt(inv.outstanding_amount))
+
+		je.posting_date = nowdate()
+		je.submit()
+		inv_disc.reload()
+
+		self.assertEqual(inv_disc.status, "Settled")
+
+	def test_on_close_before_loan_period(self):
+		inv = create_sales_invoice(rate=700)
+		inv_disc = create_invoice_discounting([inv.name],
+			accounts_receivable_credit=self.ar_credit,
+			accounts_receivable_discounted=self.ar_discounted,
+			accounts_receivable_unpaid=self.ar_unpaid,
+			short_term_loan=self.short_term_loan,
+			bank_charges_account=self.bank_charges_account,
+			bank_account=self.bank_account,
+			start=add_days(nowdate(), -80),
+			period=60
+			)
+
+		inv_disc.create_disbursement_entry()
+		je = inv_disc.close_loan()
+
+		je.posting_date = nowdate()
+		je.submit()
+
+		self.assertEqual(je.accounts[0].account, self.short_term_loan)
+		self.assertEqual(je.accounts[0].debit_in_account_currency, flt(inv_disc.total_amount))
+
+		self.assertEqual(je.accounts[1].account, self.bank_account)
+		self.assertEqual(je.accounts[1].credit_in_account_currency, flt(inv_disc.total_amount))
+
+		inv_disc.reload()
+
+		self.assertEqual(inv_disc.status, "Settled")
+
+	def test_make_payment_before_loan_period(self):
+		#it has problem
+		inv = create_sales_invoice(rate=700)
+		inv_disc = create_invoice_discounting([inv.name],
+				accounts_receivable_credit=self.ar_credit,
+				accounts_receivable_discounted=self.ar_discounted,
+				accounts_receivable_unpaid=self.ar_unpaid,
+				short_term_loan=self.short_term_loan,
+				bank_charges_account=self.bank_charges_account,
+				bank_account=self.bank_account
+				)
+		je = inv_disc.create_disbursement_entry()
+		inv_disc.reload()
+		je.posting_date = nowdate()
+		je.submit()
+
+		je_on_payment = get_payment_entry_against_invoice("Sales Invoice", inv.name)
+
+		self.assertEqual(je_on_payment.accounts[0].account, self.ar_discounted)
+		self.assertEqual(je_on_payment.accounts[0].credit_in_account_currency, flt(inv.outstanding_amount))
+		#self.assertEqual(je_on_payment.accounts[0].account, self.bank_account)
+		self.assertEqual(je_on_payment.accounts[1].debit_in_account_currency, flt(inv.outstanding_amount))
+
+	def test_make_payment_before_after_period(self):
+		#it has problem
+		inv = create_sales_invoice(rate=700)
+		inv_disc = create_invoice_discounting([inv.name],
+				accounts_receivable_credit=self.ar_credit,
+				accounts_receivable_discounted=self.ar_discounted,
+				accounts_receivable_unpaid=self.ar_unpaid,
+				short_term_loan=self.short_term_loan,
+				bank_charges_account=self.bank_charges_account,
+				bank_account=self.bank_account,
+				loan_start_date=add_days(nowdate(), -10),
+				period=5
+				)
+		je = inv_disc.create_disbursement_entry()
+		inv_disc.reload()
+		je.posting_date = nowdate()
+		je.submit()
+
+		je = inv_disc.close_loan()
+		inv_disc.reload()
+		je.posting_date = nowdate()
+		je.submit()
+
+		je_on_payment = get_payment_entry_against_invoice("Sales Invoice", inv.name)
+
+		self.assertEqual(je_on_payment.accounts[0].account, self.ar_unpaid)
+		self.assertEqual(je_on_payment.accounts[0].credit_in_account_currency, flt(inv.outstanding_amount))
+		#self.assertEqual(je_on_payment.accounts[0].account, self.bank_account)
+		self.assertEqual(je_on_payment.accounts[1].debit_in_account_currency, flt(inv.outstanding_amount))
+
 
 def create_invoice_discounting(invoices, **args):
 	args = frappe._dict(args)
@@ -113,7 +248,4 @@
 	if not args.do_not_submit:
 		inv_disc.submit()
 
-	if args.set_status:
-		inv_disc.status = args.set_status
-
 	return inv_disc
