diff --git a/erpnext/stock/doctype/delivery_note/delivery_note.js b/erpnext/stock/doctype/delivery_note/delivery_note.js
index e0ee370..e6029aa 100644
--- a/erpnext/stock/doctype/delivery_note/delivery_note.js
+++ b/erpnext/stock/doctype/delivery_note/delivery_note.js
@@ -103,6 +103,11 @@
 					me.make_sales_return() }, __("Make"));
 			}
 
+			if (doc.docstatus==1) {
+				this.frm.add_custom_button(__('Delivery Trip'), function() {
+					me.make_delivery_trip() }, __("Make"));
+			}
+
 			if(doc.docstatus==0 && !doc.__islocal) {
 				this.frm.add_custom_button(__('Packing Slip'), function() {
 					frappe.model.open_mapped_doc({
@@ -195,6 +200,13 @@
 		})
 	},
 
+	make_delivery_trip: function() {
+		frappe.model.open_mapped_doc({
+			method: "erpnext.stock.doctype.delivery_note.delivery_note.make_delivery_trip",
+			frm: this.frm
+		})
+	},
+
 	tc_name: function() {
 		this.get_terms();
 	},
diff --git a/erpnext/stock/doctype/delivery_note/delivery_note.py b/erpnext/stock/doctype/delivery_note/delivery_note.py
index 65f384f..e7618c2 100644
--- a/erpnext/stock/doctype/delivery_note/delivery_note.py
+++ b/erpnext/stock/doctype/delivery_note/delivery_note.py
@@ -440,6 +440,33 @@
 	return doc
 
 @frappe.whitelist()
+def make_delivery_trip(source_name, target_doc=None):
+	def update_stop_details(source_doc, target_doc, source_parent):
+		target_doc.customer = source_parent.customer
+		target_doc.address = source_parent.shipping_address_name
+		target_doc.customer_address = source_parent.shipping_address
+		target_doc.contact = source_parent.contact_person
+		target_doc.customer_contact = source_parent.contact_display
+
+	doclist = get_mapped_doc("Delivery Note", source_name, {
+		"Delivery Note": {
+			"doctype": "Delivery Trip",
+			"validation": {
+				"docstatus": ["=", 1]
+			}
+		},
+		"Delivery Note Item": {
+			"doctype": "Delivery Stop",
+			"field_map": {
+				"parent": "delivery_note"
+			},
+			"postprocess": update_stop_details,
+		}
+	}, target_doc)
+
+	return doclist
+
+@frappe.whitelist()
 def make_installation_note(source_name, target_doc=None):
 	def update_item(obj, target, source_parent):
 		target.qty = flt(obj.qty) - flt(obj.installed_qty)
diff --git a/erpnext/stock/doctype/delivery_note/test_delivery_note.py b/erpnext/stock/doctype/delivery_note/test_delivery_note.py
index c3dbb8d..7433b71 100644
--- a/erpnext/stock/doctype/delivery_note/test_delivery_note.py
+++ b/erpnext/stock/doctype/delivery_note/test_delivery_note.py
@@ -12,7 +12,7 @@
 from erpnext.accounts.utils import get_balance_on
 from erpnext.stock.doctype.purchase_receipt.test_purchase_receipt \
 	import get_gl_entries, set_perpetual_inventory
-from erpnext.stock.doctype.delivery_note.delivery_note import make_sales_invoice
+from erpnext.stock.doctype.delivery_note.delivery_note import make_sales_invoice, make_delivery_trip
 from erpnext.stock.doctype.stock_entry.test_stock_entry \
 	import make_stock_entry, make_serialized_item, get_qty_after_transaction
 from erpnext.stock.doctype.serial_no.serial_no import get_serial_nos, SerialNoWarehouseError
@@ -564,6 +564,11 @@
 		self.assertEqual(dn.per_billed, 100)
 		self.assertEqual(dn.status, "Completed")
 
+	def test_delivery_trip(self):
+		dn = create_delivery_note()
+		dt = make_delivery_trip(dn.name)
+		self.assertEqual(dn.name, dt.delivery_stops[0].delivery_note)
+
 def create_delivery_note(**args):
 	dn = frappe.new_doc("Delivery Note")
 	args = frappe._dict(args)
diff --git a/erpnext/stock/doctype/delivery_stop/delivery_stop.json b/erpnext/stock/doctype/delivery_stop/delivery_stop.json
index 311f70e..cd71f21 100644
--- a/erpnext/stock/doctype/delivery_stop/delivery_stop.json
+++ b/erpnext/stock/doctype/delivery_stop/delivery_stop.json
@@ -41,6 +41,7 @@
    "reqd": 0, 
    "search_index": 0, 
    "set_only_once": 0, 
+   "translatable": 0, 
    "unique": 0
   }, 
   {
@@ -72,6 +73,7 @@
    "reqd": 1, 
    "search_index": 0, 
    "set_only_once": 0, 
+   "translatable": 0, 
    "unique": 0
   }, 
   {
@@ -101,6 +103,7 @@
    "reqd": 0, 
    "search_index": 0, 
    "set_only_once": 0, 
+   "translatable": 0, 
    "unique": 0
   }, 
   {
@@ -131,6 +134,7 @@
    "reqd": 0, 
    "search_index": 0, 
    "set_only_once": 0, 
+   "translatable": 0, 
    "unique": 0
   }, 
   {
@@ -160,6 +164,7 @@
    "reqd": 0, 
    "search_index": 0, 
    "set_only_once": 0, 
+   "translatable": 0, 
    "unique": 0
   }, 
   {
@@ -191,6 +196,7 @@
    "reqd": 0, 
    "search_index": 0, 
    "set_only_once": 0, 
+   "translatable": 0, 
    "unique": 0
   }, 
   {
@@ -220,6 +226,7 @@
    "reqd": 0, 
    "search_index": 0, 
    "set_only_once": 0, 
+   "translatable": 0, 
    "unique": 0
   }, 
   {
@@ -250,6 +257,7 @@
    "reqd": 0, 
    "search_index": 0, 
    "set_only_once": 0, 
+   "translatable": 0, 
    "unique": 0
   }, 
   {
@@ -279,6 +287,7 @@
    "reqd": 0, 
    "search_index": 0, 
    "set_only_once": 0, 
+   "translatable": 0, 
    "unique": 0
   }, 
   {
@@ -309,6 +318,7 @@
    "reqd": 0, 
    "search_index": 0, 
    "set_only_once": 0, 
+   "translatable": 0, 
    "unique": 0
   }, 
   {
@@ -339,6 +349,7 @@
    "reqd": 0, 
    "search_index": 0, 
    "set_only_once": 0, 
+   "translatable": 0, 
    "unique": 0
   }, 
   {
@@ -368,6 +379,7 @@
    "reqd": 0, 
    "search_index": 0, 
    "set_only_once": 0, 
+   "translatable": 0, 
    "unique": 0
   }, 
   {
@@ -376,8 +388,8 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
-   "fieldname": "select_delivery_notes", 
-   "fieldtype": "Button", 
+   "fieldname": "delivery_note", 
+   "fieldtype": "Link", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
    "ignore_xss_filter": 0, 
@@ -385,71 +397,13 @@
    "in_global_search": 0, 
    "in_list_view": 0, 
    "in_standard_filter": 0, 
-   "label": "Select/Unselect Delivery Notes", 
+   "label": "Delivery Note", 
    "length": 0, 
-   "no_copy": 0, 
+   "no_copy": 1, 
+   "options": "Delivery Note", 
    "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": "column_break_14", 
-   "fieldtype": "Column Break", 
-   "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": "delivery_notes", 
-   "fieldtype": "Text", 
-   "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, 
-   "label": "Delivery Notes", 
-   "length": 0, 
-   "no_copy": 0, 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 0, 
+   "print_hide": 1, 
    "print_hide_if_no_value": 0, 
    "read_only": 1, 
    "remember_last_selected_value": 0, 
@@ -457,6 +411,7 @@
    "reqd": 0, 
    "search_index": 0, 
    "set_only_once": 0, 
+   "translatable": 0, 
    "unique": 0
   }, 
   {
@@ -486,6 +441,7 @@
    "reqd": 0, 
    "search_index": 0, 
    "set_only_once": 0, 
+   "translatable": 0, 
    "unique": 0
   }, 
   {
@@ -516,6 +472,7 @@
    "reqd": 0, 
    "search_index": 0, 
    "set_only_once": 0, 
+   "translatable": 0, 
    "unique": 0
   }, 
   {
@@ -545,6 +502,7 @@
    "reqd": 0, 
    "search_index": 0, 
    "set_only_once": 0, 
+   "translatable": 0, 
    "unique": 0
   }, 
   {
@@ -575,6 +533,7 @@
    "reqd": 0, 
    "search_index": 0, 
    "set_only_once": 0, 
+   "translatable": 0, 
    "unique": 0
   }
  ], 
@@ -588,7 +547,7 @@
  "issingle": 0, 
  "istable": 1, 
  "max_attachments": 0, 
- "modified": "2017-11-13 04:09:56.257540", 
+ "modified": "2018-02-22 16:43:55.257470", 
  "modified_by": "Administrator", 
  "module": "Stock", 
  "name": "Delivery Stop", 
diff --git a/erpnext/stock/doctype/delivery_trip/delivery_trip.js b/erpnext/stock/doctype/delivery_trip/delivery_trip.js
index 4091463..f7ec7e3 100644
--- a/erpnext/stock/doctype/delivery_trip/delivery_trip.js
+++ b/erpnext/stock/doctype/delivery_trip/delivery_trip.js
@@ -36,6 +36,24 @@
 				frm.trigger('notify_customers');
 			});
 		}
+
+		if (frm.doc.docstatus===0) {
+			frm.add_custom_button(__('Delivery Note'), () => {
+				erpnext.utils.map_current_doc({
+					method: "erpnext.stock.doctype.delivery_note.delivery_note.make_delivery_trip",
+					source_doctype: "Delivery Note",
+					target: frm,
+					date_field: "posting_date",
+					setters: {
+						company: frm.doc.company,
+					},
+					get_query_filters: {
+						docstatus: 1,
+						company: frm.doc.company,
+					}
+				})
+			}, __("Get customers from"));
+		}
 	},
 
 	calculate_arrival_time: function (frm) {
@@ -154,58 +172,5 @@
 		} else {
 			frappe.model.set_value(cdt, cdn, "customer_contact", "");
 		}
-	},
-
-	select_delivery_notes: function (frm, cdt, cdn) {
-		var row = locals[cdt][cdn];
-		frappe.call({
-			method: "erpnext.stock.doctype.delivery_trip.delivery_trip.get_delivery_notes",
-			args: {"customer": row.customer},
-			callback: function (r) {
-				var delivery_notes = [];
-				$.each(r.message, function (field, value) {
-					delivery_notes.push(value.name);
-				});
-				if (r.message) {
-					var d = new frappe.ui.Dialog({
-						title: __("Select Delivery Notes"),
-						fields: [{fieldtype: "HTML", fieldname: "delivery_notes_html"}]
-					});
-					var html = $(`
-						<div style="border: 1px solid #d1d8dd">
-							<div class="list-item list-item--head">
-								<div class="list-item__content list-item__content--flex-2">
-									${__('Delivery Notes')}
-								</div>
-							</div>
-							${delivery_notes.map(delivery_note => `
-								<div class="list-item">
-									<div class="list-item__content list-item__content--flex-2">
-										<label>
-										<input type="checkbox" data-delivery-note="${delivery_note}" checked="checked"/>
-										${delivery_note}
-										</label>
-									</div>
-								</div>
-							`).join("")}
-						</div>
-					`);
-
-					var delivery_notes_el = d.fields_dict.delivery_notes_html.$wrapper.html(html);
-
-					d.set_primary_action(__("Select"), function () {
-						var delivery_notes = delivery_notes_el.find('input[type=checkbox]:checked')
-							.map((i, el) => $(el).attr('data-delivery-note')).toArray();
-						if (!delivery_notes) return;
-						frappe.model.set_value(cdt, cdn, "delivery_notes", delivery_notes.join(","));
-						d.hide();
-					});
-					d.show();
-				}
-				else {
-					frappe.msgprint(__("No submitted Delivery Notes found"));
-				}
-			}
-		});
 	}
 });
\ No newline at end of file
diff --git a/erpnext/stock/doctype/delivery_trip/delivery_trip.json b/erpnext/stock/doctype/delivery_trip/delivery_trip.json
index 98aaa1c..d6872da 100644
--- a/erpnext/stock/doctype/delivery_trip/delivery_trip.json
+++ b/erpnext/stock/doctype/delivery_trip/delivery_trip.json
@@ -42,6 +42,7 @@
    "reqd": 0, 
    "search_index": 0, 
    "set_only_once": 0, 
+   "translatable": 0, 
    "unique": 0
   }, 
   {
@@ -73,6 +74,7 @@
    "reqd": 1, 
    "search_index": 0, 
    "set_only_once": 0, 
+   "translatable": 0, 
    "unique": 0
   }, 
   {
@@ -102,6 +104,7 @@
    "reqd": 0, 
    "search_index": 0, 
    "set_only_once": 0, 
+   "translatable": 0, 
    "unique": 0
   }, 
   {
@@ -132,6 +135,7 @@
    "reqd": 0, 
    "search_index": 0, 
    "set_only_once": 0, 
+   "translatable": 0, 
    "unique": 0
   }, 
   {
@@ -161,6 +165,7 @@
    "reqd": 0, 
    "search_index": 0, 
    "set_only_once": 0, 
+   "translatable": 0, 
    "unique": 0
   }, 
   {
@@ -191,6 +196,7 @@
    "reqd": 1, 
    "search_index": 0, 
    "set_only_once": 0, 
+   "translatable": 0, 
    "unique": 0
   }, 
   {
@@ -221,6 +227,7 @@
    "reqd": 1, 
    "search_index": 0, 
    "set_only_once": 0, 
+   "translatable": 0, 
    "unique": 0
   }, 
   {
@@ -250,6 +257,7 @@
    "reqd": 0, 
    "search_index": 0, 
    "set_only_once": 0, 
+   "translatable": 0, 
    "unique": 0
   }, 
   {
@@ -281,6 +289,7 @@
    "reqd": 1, 
    "search_index": 0, 
    "set_only_once": 0, 
+   "translatable": 0, 
    "unique": 0
   }, 
   {
@@ -312,6 +321,7 @@
    "reqd": 0, 
    "search_index": 0, 
    "set_only_once": 0, 
+   "translatable": 0, 
    "unique": 0
   }, 
   {
@@ -343,6 +353,7 @@
    "reqd": 1, 
    "search_index": 0, 
    "set_only_once": 0, 
+   "translatable": 0, 
    "unique": 0
   }, 
   {
@@ -373,6 +384,7 @@
    "reqd": 0, 
    "search_index": 0, 
    "set_only_once": 0, 
+   "translatable": 0, 
    "unique": 0
   }, 
   {
@@ -404,6 +416,7 @@
    "reqd": 0, 
    "search_index": 0, 
    "set_only_once": 0, 
+   "translatable": 0, 
    "unique": 0
   }, 
   {
@@ -435,6 +448,7 @@
    "reqd": 0, 
    "search_index": 0, 
    "set_only_once": 0, 
+   "translatable": 0, 
    "unique": 0
   }, 
   {
@@ -464,6 +478,7 @@
    "reqd": 0, 
    "search_index": 0, 
    "set_only_once": 0, 
+   "translatable": 0, 
    "unique": 0
   }, 
   {
@@ -472,7 +487,7 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
-   "default": "Delivery Notification", 
+   "default": "", 
    "fieldname": "delivery_notification", 
    "fieldtype": "Link", 
    "hidden": 0, 
@@ -496,6 +511,7 @@
    "reqd": 1, 
    "search_index": 0, 
    "set_only_once": 0, 
+   "translatable": 0, 
    "unique": 0
   }, 
   {
@@ -526,6 +542,7 @@
    "reqd": 0, 
    "search_index": 0, 
    "set_only_once": 0, 
+   "translatable": 0, 
    "unique": 0
   }
  ], 
@@ -539,8 +556,8 @@
  "issingle": 0, 
  "istable": 0, 
  "max_attachments": 0, 
- "modified": "2017-12-19 12:00:49.226226", 
- "modified_by": "nabinhait@gmail.com", 
+ "modified": "2018-02-22 17:36:05.521302", 
+ "modified_by": "Administrator", 
  "module": "Stock", 
  "name": "Delivery Trip", 
  "name_case": "", 
diff --git a/erpnext/stock/doctype/delivery_trip/delivery_trip.py b/erpnext/stock/doctype/delivery_trip/delivery_trip.py
index 45de5e7..471e1a3 100644
--- a/erpnext/stock/doctype/delivery_trip/delivery_trip.py
+++ b/erpnext/stock/doctype/delivery_trip/delivery_trip.py
@@ -82,14 +82,6 @@
 	}
 	return contact_info.html
 
-
-@frappe.whitelist()
-def get_delivery_notes(customer):
-	return frappe.db.get_all("Delivery Note", filters={
-		'customer': customer,
-		'docstatus': 1
-	})
-
 @frappe.whitelist()
 def calculate_time_matrix(name):
 	"""Calucation and round in closest 15 minutes, delivery stops"""
@@ -156,21 +148,17 @@
 		delivery_stop_info = frappe.db.get_value(
 			"Delivery Stop",
 			delivery_stop.name,
-			["notified_by_email", "estimated_arrival", "details", "contact", "delivery_notes"],
+			["notified_by_email", "estimated_arrival", "details", "contact", "delivery_note"],
 		as_dict=1)
 		contact_info = frappe.db.get_value("Contact", delivery_stop_info.contact,
 			["first_name", "last_name", "email_id", "gender"], as_dict=1)
 
-		if delivery_stop_info.delivery_notes:
-			delivery_notes = (delivery_stop_info.delivery_notes).split(",")
+		if delivery_stop_info.delivery_note:
 			default_print_format = frappe.get_meta('Delivery Note').default_print_format
-			attachments = []
-			for delivery_note in delivery_notes:
-				attachments.append(
-					frappe.attach_print('Delivery Note',
-	 					 delivery_note,
-						 file_name="Delivery Note",
-						 print_format=default_print_format or "Standard"))
+			attachments = frappe.attach_print('Delivery Note',
+				delivery_stop_info.delivery_note,
+				file_name="Delivery Note",
+				print_format=default_print_format or "Standard")
 
 		if not delivery_stop_info.notified_by_email and contact_info.email_id:
 			driver_info = frappe.db.get_value("Driver", driver, ["full_name", "cell_number"], as_dict=1)
