diff --git a/erpnext/hr/doctype/payroll_entry/payroll_entry.json b/erpnext/hr/doctype/payroll_entry/payroll_entry.json
index 136f35e..77e38d1 100644
--- a/erpnext/hr/doctype/payroll_entry/payroll_entry.json
+++ b/erpnext/hr/doctype/payroll_entry/payroll_entry.json
@@ -480,6 +480,35 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
+   "fieldname": "data_19", 
+   "fieldtype": "Data", 
+   "hidden": 0, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_global_search": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "length": 0, 
+   "no_copy": 0, 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
+   "read_only": 0, 
+   "remember_last_selected_value": 0, 
+   "report_hide": 0, 
+   "reqd": 0, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
    "fieldname": "section_break_16", 
    "fieldtype": "Section Break", 
    "hidden": 0, 
@@ -788,7 +817,7 @@
  "issingle": 0, 
  "istable": 0, 
  "max_attachments": 0, 
- "modified": "2017-10-27 12:44:07.378315", 
+ "modified": "2017-11-30 12:11:30.985647", 
  "modified_by": "Administrator", 
  "module": "HR", 
  "name": "Payroll Entry", 
diff --git a/erpnext/hr/doctype/payroll_entry/payroll_entry.py b/erpnext/hr/doctype/payroll_entry/payroll_entry.py
index b36afa3..627f13b 100644
--- a/erpnext/hr/doctype/payroll_entry/payroll_entry.py
+++ b/erpnext/hr/doctype/payroll_entry/payroll_entry.py
@@ -156,23 +156,28 @@
 
 		return create_submit_log(submitted_ss, not_submitted_ss, jv_name)
 
-	def get_total_salary_and_loan_amounts(self):
+	def get_loan_details(self):
 		"""
-			Get total loan principal, loan interest and salary amount from submitted salary slip based on selected criteria
+			Get loan details from submitted salary slip based on selected criteria
 		"""
 		cond = self.get_filter_condition()
-		totals = frappe.db.sql("""
-			select sum(principal_amount) as total_principal_amount, sum(interest_amount) as total_interest_amount, 
-			sum(total_loan_repayment) as total_loan_repayment, sum(rounded_total) as rounded_total from `tabSalary Slip` t1
+		return frappe.db.sql(""" select eld.employee_loan_account,
+				eld.interest_income_account, eld.principal_amount, eld.interest_amount, eld.total_payment
+			from
+				`tabSalary Slip` t1, `tabSalary Slip Loan` eld
+			where
+				t1.docstatus = 1 and t1.name = eld.parent and start_date >= %s and end_date <= %s %s
+			""" % ('%s', '%s', cond), (self.start_date, self.end_date), as_dict=True) or []
+
+	def get_total_salary_amount(self):
+		"""
+			Get total salary amount from submitted salary slip based on selected criteria
+		"""
+		cond = self.get_filter_condition()
+		totals = frappe.db.sql(""" select sum(rounded_total) as rounded_total from `tabSalary Slip` t1
 			where t1.docstatus = 1 and start_date >= %s and end_date <= %s %s
 			""" % ('%s', '%s', cond), (self.start_date, self.end_date), as_dict=True)
-		return totals[0]
-
-	def get_loan_accounts(self):
-		loan_accounts = frappe.get_all("Employee Loan", fields=["employee_loan_account", "interest_income_account"],
-						filters = {"company": self.company, "docstatus":1})
-		if loan_accounts:
-			return loan_accounts[0]
+		return totals and totals[0] or None
 
 	def get_salary_component_account(self, salary_component):
 		account = frappe.db.get_value("Salary Component Account",
@@ -223,8 +228,7 @@
 		earnings = self.get_salary_component_total(component_type = "earnings") or {}
 		deductions = self.get_salary_component_total(component_type = "deductions") or {}
 		default_payroll_payable_account = self.get_default_payroll_payable_account()
-		loan_amounts = self.get_total_salary_and_loan_amounts()
-		loan_accounts = self.get_loan_accounts()
+		loan_details = self.get_loan_details()
 		jv_name = ""
 		precision = frappe.get_precision("Journal Entry Account", "debit_in_account_currency")
 
@@ -260,18 +264,18 @@
 					})
 
 			# Employee loan
-			if loan_amounts.total_loan_repayment:
+			for data in loan_details:
 				accounts.append({
-						"account": loan_accounts.employee_loan_account,
-						"credit_in_account_currency": loan_amounts.total_principal_amount
+						"account": data.employee_loan_account,
+						"credit_in_account_currency": data.principal_amount
 					})
 				accounts.append({
-						"account": loan_accounts.interest_income_account,
-						"credit_in_account_currency": loan_amounts.total_interest_amount,
+						"account": data.interest_income_account,
+						"credit_in_account_currency": data.interest_amount,
 						"cost_center": self.cost_center,
 						"project": self.project
 					})
-				payable_amount -= flt(loan_amounts.total_loan_repayment, precision)
+				payable_amount -= flt(data.total_payment, precision)
 
 			# Payable amount
 			accounts.append({
@@ -293,11 +297,11 @@
 
 	def make_payment_entry(self):
 		self.check_permission('write')
-		total_salary_amount = self.get_total_salary_and_loan_amounts()
+		total_salary_amount = self.get_total_salary_amount()
 		default_payroll_payable_account = self.get_default_payroll_payable_account()
 		precision = frappe.get_precision("Journal Entry Account", "debit_in_account_currency")
 
-		if total_salary_amount.rounded_total:
+		if total_salary_amount and total_salary_amount.rounded_total:
 			journal_entry = frappe.new_doc('Journal Entry')
 			journal_entry.voucher_type = 'Bank Entry'
 			journal_entry.user_remark = _('Payment of salary from {0} to {1}')\
@@ -413,9 +417,11 @@
 	else:
 		frappe.throw(_("Fiscal Year {0} not found").format(year))
 
+@frappe.whitelist()
 def create_log(ss_list):
 	if not ss_list or len(ss_list) < 1:
 		frappe.throw(_("No employee for the above selected criteria OR salary slip already created"))
+	return ss_list
 
 def format_as_links(salary_slip):
 	return ['<a href="#Form/Salary Slip/{0}">{0}</a>'.format(salary_slip)]
diff --git a/erpnext/hr/doctype/salary_slip/salary_slip.js b/erpnext/hr/doctype/salary_slip/salary_slip.js
index 4679cbd..840387c 100644
--- a/erpnext/hr/doctype/salary_slip/salary_slip.js
+++ b/erpnext/hr/doctype/salary_slip/salary_slip.js
@@ -37,7 +37,7 @@
 
 	set_end_date: function(frm){
 		frappe.call({
-			method: 'erpnext.hr.doctype.process_payroll.process_payroll.get_end_date',
+			method: 'erpnext.hr.doctype.payroll_entry.payroll_entry.get_end_date',
 			args: {
 				frequency: frm.doc.payroll_frequency,
 				start_date: frm.doc.start_date
diff --git a/erpnext/hr/doctype/salary_slip/salary_slip.py b/erpnext/hr/doctype/salary_slip/salary_slip.py
index ea5f35b..656a4ac 100644
--- a/erpnext/hr/doctype/salary_slip/salary_slip.py
+++ b/erpnext/hr/doctype/salary_slip/salary_slip.py
@@ -8,7 +8,7 @@
 from frappe.model.naming import make_autoname
 
 from frappe import msgprint, _
-from erpnext.hr.doctype.process_payroll.process_payroll import get_start_end_dates
+from erpnext.hr.doctype.payroll_entry.payroll_entry import get_start_end_dates
 from erpnext.hr.doctype.employee.employee import get_holiday_list_for_employee
 from erpnext.utilities.transaction_base import TransactionBase
 from frappe.utils.background_jobs import enqueue
diff --git a/erpnext/hr/doctype/salary_slip/test_salary_slip.py b/erpnext/hr/doctype/salary_slip/test_salary_slip.py
index f136cb5..493a825 100644
--- a/erpnext/hr/doctype/salary_slip/test_salary_slip.py
+++ b/erpnext/hr/doctype/salary_slip/test_salary_slip.py
@@ -9,8 +9,8 @@
 from erpnext.accounts.utils import get_fiscal_year
 from frappe.utils import getdate, nowdate, add_days, add_months, flt
 from erpnext.hr.doctype.salary_structure.salary_structure import make_salary_slip
-from erpnext.hr.doctype.process_payroll.test_process_payroll import get_salary_component_account
-from erpnext.hr.doctype.process_payroll.process_payroll import get_month_details
+from erpnext.hr.doctype.payroll_entry.payroll_entry import get_salary_component_account
+from erpnext.hr.doctype.payroll_entry.payroll_entry import get_month_details
 
 class TestSalarySlip(unittest.TestCase):
 	def setUp(self):
