diff --git a/erpnext/hr/doctype/expense_claim/expense_claim.js b/erpnext/hr/doctype/expense_claim/expense_claim.js
index c6333db..65d1065 100644
--- a/erpnext/hr/doctype/expense_claim/expense_claim.js
+++ b/erpnext/hr/doctype/expense_claim/expense_claim.js
@@ -168,6 +168,16 @@
 		frm.trigger("set_query_for_payable_account");
 		frm.add_fetch("company", "cost_center", "cost_center");
 		frm.add_fetch("company", "default_payable_account", "payable_account");
+		frm.set_query("employee_advance", "advances", function(doc) {
+			return {
+				filters: [
+					['docstatus', '=', 1],
+					['employee', '=', doc.employee],
+					['paid_amount', '>', 0],
+					['paid_amount', '>', 'claimed_amount']
+				]
+			};
+		});
 	},
 
 	refresh: function(frm) {
@@ -294,10 +304,41 @@
 	}
 });
 
+frappe.ui.form.on("Expense Claim Advance", {
+	employee_advance: function(frm, cdt, cdn) {
+		var child = locals[cdt][cdn];
+		if(!frm.doc.employee){
+			frappe.msgprint('Select an employee to get the employee advance.');
+			frm.doc.advances = [];
+			refresh_field("advances");
+		}
+		else {
+			return frappe.call({
+				method: "erpnext.hr.doctype.expense_claim.expense_claim.get_advances",
+				args: {
+					employee: frm.doc.employee,
+					advance_id: child.employee_advance
+				},
+				callback: function(r, rt) {
+					if(r.message) {
+						child.employee_advance = r.message[0].name;
+						child.posting_date = r.message[0].posting_date;
+						child.advance_account = r.message[0].advance_account;
+						child.advance_paid = r.message[0].paid_amount;
+						child.unclaimed_amount = flt(r.message[0].paid_amount) - flt(r.message[0].claimed_amount);
+						child.allocated_amount = flt(r.message[0].paid_amount) - flt(r.message[0].claimed_amount);
+						refresh_field("advances");
+					}
+				}
+			});
+		}
+	}
+});
+
 cur_frm.fields_dict['task'].get_query = function(doc) {
 	return {
 		filters:{
 			'project': doc.project
 		}
 	};
-};
+};
\ No newline at end of file
diff --git a/erpnext/hr/doctype/expense_claim/expense_claim.py b/erpnext/hr/doctype/expense_claim/expense_claim.py
index d27675c..9462211 100644
--- a/erpnext/hr/doctype/expense_claim/expense_claim.py
+++ b/erpnext/hr/doctype/expense_claim/expense_claim.py
@@ -310,9 +310,16 @@
 	}
 
 @frappe.whitelist()
-def get_advances(employee):
+def get_advances(employee, advance_id=None):
+	if not advance_id:
+		condition = 'docstatus=1 and employee="{0}" and paid_amount > 0 and paid_amount > claimed_amount'.format(frappe.db.escape(employee))
+	else:
+		condition = 'name="{0}"'.format(frappe.db.escape(advance_id))
+
 	return frappe.db.sql("""
-		select name, posting_date, paid_amount, claimed_amount, advance_account
-		from `tabEmployee Advance`
-		where docstatus=1 and employee=%s and paid_amount > 0 and paid_amount > claimed_amount
-	""", employee, as_dict=1)
\ No newline at end of file
+		select 
+			name, posting_date, paid_amount, claimed_amount, advance_account
+		from 
+			`tabEmployee Advance`
+		where {0}
+	""".format(condition), as_dict=1)
\ No newline at end of file
