fix due_date autopopulate commit
diff --git a/erpnext/accounts/doctype/journal_entry/journal_entry.js b/erpnext/accounts/doctype/journal_entry/journal_entry.js
index 934dbeb..38bd612 100644
--- a/erpnext/accounts/doctype/journal_entry/journal_entry.js
+++ b/erpnext/accounts/doctype/journal_entry/journal_entry.js
@@ -185,24 +185,38 @@
 		})
 	},
 
+	due_date_options_cache: {},
+
 	reference_name: function(doc, cdt, cdn) {
 		var d = frappe.get_doc(cdt, cdn);
+		var me = this;
 
-		const get_invoice_due_dates = (invoice_name) => {
-			frappe.call({
-				method: "erpnext.accounts.doctype.journal_entry.journal_entry.get_invoice_due_dates",
-				args: {name: invoice_name},
-				callback: function(r){
-					const wrapper = cur_frm.fields_dict["accounts"].wrapper;
-					const input = $(wrapper).find("select[data-fieldname=reference_due_date]");
+		const get_invoice_due_dates = invoice_name => {
+			const options = this.due_date_options_cache[invoice_name];
+			const input = $(cur_frm.fields_dict["accounts"].wrapper).find("select[data-fieldname=reference_due_date]");
 
-					input.children('option').remove();
-
-					$.each(r.message, function(key, value) {
-						input.append(new Option(value.due_date, "", false, false));
-					});
-				}
-			});
+			if (options) {
+				input.empty();
+				input.add_options(options);
+				frappe.model.set_value(cdt, cdn, "reference_due_date", options[0]);
+			}
+			else {
+				frappe.call({
+					method: "erpnext.accounts.doctype.journal_entry.journal_entry.get_invoice_due_dates",
+					args: {name: invoice_name},
+					callback: function(r) {
+						const options = [];
+						$.each(r.message, function(key, value) {
+							options.push(value.due_date);
+						});
+						input.empty();
+						input.add_options(options);
+						frappe.model.set_value(cdt, cdn, "reference_due_date", options[0]);
+						me.due_date_options_cache[d.reference_name] = options;
+						console.log("input:", input);
+					}
+				});
+			}
 		}
 
 		if(d.reference_name) {
@@ -215,7 +229,7 @@
 			if (d.reference_type==="Journal Entry" && !flt(d.credit) && !flt(d.debit)) {
 				this.get_outstanding('Journal Entry', d.reference_name, doc.company, d);
 			}
-			if( in_list(d.reference_type), ["Sales Invoice", "Purchase Invoice"]) {
+			if( in_list(["Sales Invoice", "Purchase Invoice"]), d.reference_type) {
 				get_invoice_due_dates(d.reference_name);
 			}
 		}