diff --git a/erpnext/hr/doctype/vehicle/test_vehicle.js b/erpnext/hr/doctype/vehicle/test_vehicle.js
new file mode 100644
index 0000000..4d40cce
--- /dev/null
+++ b/erpnext/hr/doctype/vehicle/test_vehicle.js
@@ -0,0 +1,23 @@
+/* eslint-disable */
+// rename this file from _test_[name] to test_[name] to activate
+// and remove above this line
+
+QUnit.test("test: Vehicle", function (assert) {
+	let done = assert.async();
+
+	// number of asserts
+	assert.expect(1);
+
+	frappe.run_serially([
+		// insert a new Vehicle
+		() => frappe.tests.make('Vehicle', [
+			// values to be set
+			{key: 'value'}
+		]),
+		() => {
+			assert.equal(cur_frm.doc.key, 'value');
+		},
+		() => done()
+	]);
+
+});
diff --git a/erpnext/hr/doctype/vehicle/vehicle.json b/erpnext/hr/doctype/vehicle/vehicle.json
index 39735e6..6f395b3 100644
--- a/erpnext/hr/doctype/vehicle/vehicle.json
+++ b/erpnext/hr/doctype/vehicle/vehicle.json
@@ -1,5 +1,6 @@
 {
  "allow_copy": 0, 
+ "allow_guest_to_view": 0, 
  "allow_import": 0, 
  "allow_rename": 0, 
  "autoname": "field:license_plate", 
@@ -12,6 +13,7 @@
  "editable_grid": 1, 
  "fields": [
   {
+   "allow_bulk_edit": 0, 
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
@@ -21,7 +23,8 @@
    "hidden": 0, 
    "ignore_user_permissions": 0, 
    "ignore_xss_filter": 0, 
-   "in_filter": 1, 
+   "in_filter": 0, 
+   "in_global_search": 0, 
    "in_list_view": 0, 
    "in_standard_filter": 0, 
    "label": "License Plate", 
@@ -40,6 +43,7 @@
    "unique": 1
   }, 
   {
+   "allow_bulk_edit": 0, 
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
@@ -50,6 +54,7 @@
    "ignore_user_permissions": 0, 
    "ignore_xss_filter": 0, 
    "in_filter": 0, 
+   "in_global_search": 0, 
    "in_list_view": 0, 
    "in_standard_filter": 0, 
    "label": "Make", 
@@ -68,6 +73,7 @@
    "unique": 0
   }, 
   {
+   "allow_bulk_edit": 0, 
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
@@ -78,6 +84,7 @@
    "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, 
@@ -95,6 +102,7 @@
    "unique": 0
   }, 
   {
+   "allow_bulk_edit": 0, 
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
@@ -104,7 +112,8 @@
    "hidden": 0, 
    "ignore_user_permissions": 0, 
    "ignore_xss_filter": 0, 
-   "in_filter": 1, 
+   "in_filter": 0, 
+   "in_global_search": 0, 
    "in_list_view": 1, 
    "in_standard_filter": 1, 
    "label": "Model", 
@@ -123,6 +132,7 @@
    "unique": 0
   }, 
   {
+   "allow_bulk_edit": 0, 
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
@@ -133,6 +143,7 @@
    "ignore_user_permissions": 0, 
    "ignore_xss_filter": 0, 
    "in_filter": 0, 
+   "in_global_search": 0, 
    "in_list_view": 0, 
    "in_standard_filter": 0, 
    "label": "Details", 
@@ -151,6 +162,7 @@
    "unique": 0
   }, 
   {
+   "allow_bulk_edit": 0, 
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
@@ -160,7 +172,8 @@
    "hidden": 0, 
    "ignore_user_permissions": 0, 
    "ignore_xss_filter": 0, 
-   "in_filter": 1, 
+   "in_filter": 0, 
+   "in_global_search": 0, 
    "in_list_view": 1, 
    "in_standard_filter": 0, 
    "label": "Odometer Value (Last)", 
@@ -179,6 +192,7 @@
    "unique": 0
   }, 
   {
+   "allow_bulk_edit": 0, 
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
@@ -188,7 +202,8 @@
    "hidden": 0, 
    "ignore_user_permissions": 0, 
    "ignore_xss_filter": 0, 
-   "in_filter": 1, 
+   "in_filter": 0, 
+   "in_global_search": 0, 
    "in_list_view": 0, 
    "in_standard_filter": 0, 
    "label": "Acquisition Date", 
@@ -207,6 +222,7 @@
    "unique": 0
   }, 
   {
+   "allow_bulk_edit": 0, 
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
@@ -217,6 +233,7 @@
    "ignore_user_permissions": 0, 
    "ignore_xss_filter": 0, 
    "in_filter": 0, 
+   "in_global_search": 0, 
    "in_list_view": 0, 
    "in_standard_filter": 0, 
    "label": "Location", 
@@ -235,6 +252,7 @@
    "unique": 0
   }, 
   {
+   "allow_bulk_edit": 0, 
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
@@ -245,6 +263,7 @@
    "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, 
@@ -262,6 +281,7 @@
    "unique": 0
   }, 
   {
+   "allow_bulk_edit": 0, 
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
@@ -272,6 +292,7 @@
    "ignore_user_permissions": 0, 
    "ignore_xss_filter": 0, 
    "in_filter": 0, 
+   "in_global_search": 0, 
    "in_list_view": 0, 
    "in_standard_filter": 0, 
    "label": "Chassis No", 
@@ -290,6 +311,7 @@
    "unique": 0
   }, 
   {
+   "allow_bulk_edit": 0, 
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
@@ -300,6 +322,7 @@
    "ignore_user_permissions": 0, 
    "ignore_xss_filter": 0, 
    "in_filter": 0, 
+   "in_global_search": 0, 
    "in_list_view": 1, 
    "in_standard_filter": 0, 
    "label": "Vehicle Value", 
@@ -319,6 +342,7 @@
    "unique": 0
   }, 
   {
+   "allow_bulk_edit": 0, 
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
@@ -329,6 +353,7 @@
    "ignore_user_permissions": 0, 
    "ignore_xss_filter": 0, 
    "in_filter": 0, 
+   "in_global_search": 0, 
    "in_list_view": 0, 
    "in_standard_filter": 1, 
    "label": "Employee", 
@@ -348,6 +373,7 @@
    "unique": 0
   }, 
   {
+   "allow_bulk_edit": 0, 
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
@@ -358,6 +384,7 @@
    "ignore_user_permissions": 0, 
    "ignore_xss_filter": 0, 
    "in_filter": 0, 
+   "in_global_search": 0, 
    "in_list_view": 0, 
    "in_standard_filter": 0, 
    "label": "Insurance Details", 
@@ -376,6 +403,7 @@
    "unique": 0
   }, 
   {
+   "allow_bulk_edit": 0, 
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
@@ -385,7 +413,8 @@
    "hidden": 0, 
    "ignore_user_permissions": 0, 
    "ignore_xss_filter": 0, 
-   "in_filter": 1, 
+   "in_filter": 0, 
+   "in_global_search": 0, 
    "in_list_view": 0, 
    "in_standard_filter": 0, 
    "label": "Insurance Company", 
@@ -404,6 +433,7 @@
    "unique": 0
   }, 
   {
+   "allow_bulk_edit": 0, 
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
@@ -413,7 +443,8 @@
    "hidden": 0, 
    "ignore_user_permissions": 0, 
    "ignore_xss_filter": 0, 
-   "in_filter": 1, 
+   "in_filter": 0, 
+   "in_global_search": 0, 
    "in_list_view": 0, 
    "in_standard_filter": 0, 
    "label": "Policy No", 
@@ -432,6 +463,7 @@
    "unique": 0
   }, 
   {
+   "allow_bulk_edit": 0, 
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
@@ -442,6 +474,7 @@
    "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, 
@@ -459,6 +492,7 @@
    "unique": 0
   }, 
   {
+   "allow_bulk_edit": 0, 
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
@@ -469,6 +503,7 @@
    "ignore_user_permissions": 0, 
    "ignore_xss_filter": 0, 
    "in_filter": 0, 
+   "in_global_search": 0, 
    "in_list_view": 0, 
    "in_standard_filter": 0, 
    "label": "Start Date", 
@@ -487,6 +522,7 @@
    "unique": 0
   }, 
   {
+   "allow_bulk_edit": 0, 
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
@@ -497,6 +533,7 @@
    "ignore_user_permissions": 0, 
    "ignore_xss_filter": 0, 
    "in_filter": 0, 
+   "in_global_search": 0, 
    "in_list_view": 0, 
    "in_standard_filter": 0, 
    "label": "End Date", 
@@ -515,6 +552,7 @@
    "unique": 0
   }, 
   {
+   "allow_bulk_edit": 0, 
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
@@ -525,6 +563,7 @@
    "ignore_user_permissions": 0, 
    "ignore_xss_filter": 0, 
    "in_filter": 0, 
+   "in_global_search": 0, 
    "in_list_view": 0, 
    "in_standard_filter": 0, 
    "label": "Additional Details", 
@@ -543,6 +582,7 @@
    "unique": 0
   }, 
   {
+   "allow_bulk_edit": 0, 
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
@@ -553,6 +593,7 @@
    "ignore_user_permissions": 0, 
    "ignore_xss_filter": 0, 
    "in_filter": 0, 
+   "in_global_search": 0, 
    "in_list_view": 1, 
    "in_standard_filter": 1, 
    "label": "Fuel Type", 
@@ -572,17 +613,19 @@
    "unique": 0
   }, 
   {
+   "allow_bulk_edit": 0, 
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
-   "default": "Litre", 
+   "default": "", 
    "fieldname": "uom", 
    "fieldtype": "Link", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
    "ignore_xss_filter": 0, 
    "in_filter": 0, 
+   "in_global_search": 0, 
    "in_list_view": 1, 
    "in_standard_filter": 0, 
    "label": "Fuel UOM", 
@@ -602,6 +645,7 @@
    "unique": 0
   }, 
   {
+   "allow_bulk_edit": 0, 
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
@@ -612,6 +656,7 @@
    "ignore_user_permissions": 0, 
    "ignore_xss_filter": 0, 
    "in_filter": 0, 
+   "in_global_search": 0, 
    "in_list_view": 0, 
    "in_standard_filter": 0, 
    "label": "Last Carbon Check", 
@@ -630,6 +675,7 @@
    "unique": 0
   }, 
   {
+   "allow_bulk_edit": 0, 
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
@@ -640,6 +686,7 @@
    "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, 
@@ -657,6 +704,7 @@
    "unique": 0
   }, 
   {
+   "allow_bulk_edit": 0, 
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
@@ -667,6 +715,7 @@
    "ignore_user_permissions": 0, 
    "ignore_xss_filter": 0, 
    "in_filter": 0, 
+   "in_global_search": 0, 
    "in_list_view": 0, 
    "in_standard_filter": 0, 
    "label": "Color", 
@@ -685,6 +734,7 @@
    "unique": 0
   }, 
   {
+   "allow_bulk_edit": 0, 
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
@@ -695,6 +745,7 @@
    "ignore_user_permissions": 0, 
    "ignore_xss_filter": 0, 
    "in_filter": 0, 
+   "in_global_search": 0, 
    "in_list_view": 0, 
    "in_standard_filter": 0, 
    "label": "Wheels", 
@@ -713,6 +764,7 @@
    "unique": 0
   }, 
   {
+   "allow_bulk_edit": 0, 
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
@@ -723,6 +775,7 @@
    "ignore_user_permissions": 0, 
    "ignore_xss_filter": 0, 
    "in_filter": 0, 
+   "in_global_search": 0, 
    "in_list_view": 0, 
    "in_standard_filter": 0, 
    "label": "Doors", 
@@ -741,6 +794,7 @@
    "unique": 0
   }, 
   {
+   "allow_bulk_edit": 0, 
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
@@ -751,6 +805,7 @@
    "ignore_user_permissions": 0, 
    "ignore_xss_filter": 0, 
    "in_filter": 0, 
+   "in_global_search": 0, 
    "in_list_view": 0, 
    "in_standard_filter": 0, 
    "label": "Amended From", 
@@ -769,17 +824,17 @@
    "unique": 0
   }
  ], 
+ "has_web_view": 0, 
  "hide_heading": 0, 
  "hide_toolbar": 0, 
  "idx": 0, 
  "image_view": 0, 
  "in_create": 0, 
- "in_dialog": 0, 
  "is_submittable": 0, 
  "issingle": 0, 
  "istable": 0, 
  "max_attachments": 0, 
- "modified": "2017-01-09 11:10:11.678834", 
+ "modified": "2017-11-29 14:48:30.813359", 
  "modified_by": "Administrator", 
  "module": "HR", 
  "name": "Vehicle", 
@@ -796,7 +851,6 @@
    "export": 1, 
    "if_owner": 0, 
    "import": 0, 
-   "is_custom": 0, 
    "permlevel": 0, 
    "print": 1, 
    "read": 1, 
@@ -812,6 +866,7 @@
  "read_only": 0, 
  "read_only_onload": 0, 
  "search_fields": "license_plate,location,model", 
+ "show_name_in_global_search": 0, 
  "sort_field": "modified", 
  "sort_order": "DESC", 
  "title_field": "", 
diff --git a/erpnext/stock/doctype/delivery_trip/delivery_trip.js b/erpnext/stock/doctype/delivery_trip/delivery_trip.js
index 5f85530..8477fa2 100644
--- a/erpnext/stock/doctype/delivery_trip/delivery_trip.js
+++ b/erpnext/stock/doctype/delivery_trip/delivery_trip.js
@@ -2,6 +2,34 @@
 // For license information, please see license.txt
 
 frappe.ui.form.on('Delivery Trip', {
+	setup: function(frm) {
+		frm.set_query("address", "delivery_stops", function(doc, cdt, cdn) {
+			var row = locals[cdt][cdn];
+			if (row.customer) {
+				return {
+					query: 'frappe.contacts.doctype.address.address.address_query',
+					filters: {
+						link_doctype: "Customer",
+						link_name: row.customer
+					}
+				};
+			}
+		})
+
+		frm.set_query("contact", "delivery_stops", function(doc, cdt, cdn) {
+			var row = locals[cdt][cdn];
+			if (row.customer) {
+				return {
+					query: 'frappe.contacts.doctype.contact.contact.contact_query',
+					filters: {
+						link_doctype: "Customer",
+						link_name: row.customer
+					}
+				};
+			}
+		})
+	},
+
 	refresh: function (frm) {
 		if (frm.doc.docstatus == 1 && frm.doc.delivery_stops.length > 0) {
 			frm.add_custom_button(__("Notify Customers via Email"), function () {
@@ -9,6 +37,7 @@
 			});
 		}
 	},
+
 	calculate_arrival_time: function (frm) {
 		frappe.call({
 			method: 'erpnext.stock.doctype.delivery_trip.delivery_trip.calculate_time_matrix',
@@ -19,13 +48,14 @@
 			},
 			callback: function (r) {
 				if (r.message.error) {
-					frappe.throw(__("Malformatted address for " + r.message.error.destination.address + ", please fix to continue."));
-					return;
+					frappe.throw(__("Malformatted address for {0}, please fix to continue.",
+						[r.message.error.destination.address]));
 				}
 				frm.reload_doc();
 			}
 		});
 	},
+
 	notify_customers: function (frm) {
 		var owner_email = frm.doc.owner == "Administrator"
 			? frappe.user_info("Administrator").email
@@ -60,74 +90,62 @@
 	}
 });
 
-cur_frm.fields_dict['delivery_stops'].grid.get_field("address").get_query = function (doc, cdt, cdn) {
-	var row = locals[cdt][cdn];
-	if (row.customer) {
-		return {
-			query: 'frappe.contacts.doctype.address.address.address_query',
-			filters: {
-				link_doctype: "Customer",
-				link_name: row.customer
-			}
-		};
-	}
-};
 
-cur_frm.fields_dict['delivery_stops'].grid.get_field("contact").get_query = function (doc, cdt, cdn) {
-	var row = locals[cdt][cdn];
-	if (row.customer) {
-		return {
-			query: 'frappe.contacts.doctype.contact.contact.contact_query',
-			filters: {
-				link_doctype: "Customer",
-				link_name: row.customer
-			}
-		};
-	}
-};
 
 frappe.ui.form.on('Delivery Stop', {
 	customer: function (frm, cdt, cdn) {
 		var row = locals[cdt][cdn];
-		frappe.call({
-			method: "erpnext.stock.doctype.delivery_trip.delivery_trip.get_contact_and_address",
-			args: {"name": row.customer},
-			callback: function (r) {
-				if (r.message) {
-					if (r.message["shipping_address"]) {
-						frappe.model.set_value(cdt, cdn, "address", r.message["shipping_address"].parent);
-					}
-					if (r.message["contact_person"]) {
-						frappe.model.set_value(cdt, cdn, "contact", r.message["contact_person"].parent);
+		if(row.customer) {
+			frappe.call({
+				method: "erpnext.stock.doctype.delivery_trip.delivery_trip.get_contact_and_address",
+				args: {"name": row.customer},
+				callback: function (r) {
+					if (r.message) {
+						if (r.message["shipping_address"]) {
+							frappe.model.set_value(cdt, cdn, "address", r.message["shipping_address"].parent);
+						}
+						if (r.message["contact_person"]) {
+							frappe.model.set_value(cdt, cdn, "contact", r.message["contact_person"].parent);
+						}
 					}
 				}
-			}
-		});
+			});
+		}
 	},
 	address: function (frm, cdt, cdn) {
 		var row = locals[cdt][cdn];
-		frappe.call({
-			method: "frappe.contacts.doctype.address.address.get_address_display",
-			args: {"address_dict": row.address},
-			callback: function (r) {
-				if (r.message) {
-					frappe.model.set_value(cdt, cdn, "customer_address", r.message);
+		if(row.address) {
+			frappe.call({
+				method: "frappe.contacts.doctype.address.address.get_address_display",
+				args: {"address_dict": row.address},
+				callback: function (r) {
+					if (r.message) {
+						frappe.model.set_value(cdt, cdn, "customer_address", r.message);
+					}
 				}
-			}
-		});
+			});
+		} else {
+			frappe.model.set_value(cdt, cdn, "customer_address", "");
+		}
 	},
+
 	contact: function (frm, cdt, cdn) {
 		var row = locals[cdt][cdn];
-		frappe.call({
-			method: "erpnext.stock.doctype.delivery_trip.delivery_trip.get_contact_display",
-			args: {"contact": row.contact},
-			callback: function (r) {
-				if (r.message) {
-					frappe.model.set_value(cdt, cdn, "customer_contact", r.message);
+		if(row.contact) {
+			frappe.call({
+				method: "erpnext.stock.doctype.delivery_trip.delivery_trip.get_contact_display",
+				args: {"contact": row.contact},
+				callback: function (r) {
+					if (r.message) {
+						frappe.model.set_value(cdt, cdn, "customer_contact", r.message);
+					}
 				}
-			}
-		});
+			});
+		} else {
+			frappe.model.set_value(cdt, cdn, "customer_contact", "");
+		}
 	},
+
 	select_delivery_notes: function (frm, cdt, cdn) {
 		var row = locals[cdt][cdn];
 		frappe.call({
@@ -166,7 +184,8 @@
 					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();
+						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();
diff --git a/erpnext/stock/doctype/delivery_trip/delivery_trip.py b/erpnext/stock/doctype/delivery_trip/delivery_trip.py
index 6923c5f..d9c7b59 100644
--- a/erpnext/stock/doctype/delivery_trip/delivery_trip.py
+++ b/erpnext/stock/doctype/delivery_trip/delivery_trip.py
@@ -11,7 +11,7 @@
 from frappe.utils.user import get_user_fullname
 from frappe.utils import getdate
 from frappe.integrations.doctype.google_maps.google_maps import round_timedelta
-from frappe.integrations.doctype.google_maps.google_maps import customer_address_format
+from frappe.integrations.doctype.google_maps.google_maps import format_address
 
 class DeliveryTrip(Document):
 	pass
@@ -42,13 +42,13 @@
 def get_default_address(out, name):
 	shipping_addresses = frappe.db.sql(
 		"""
-			select
-				parent, (select is_shipping_address from tabAddress a where a.name=dl.parent) as is_shipping_address
+			select parent,
+				(select is_shipping_address from tabAddress a where a.name=dl.parent) as is_shipping_address
 			from `tabDynamic Link` dl
-			where link_doctype="Customer" and link_name=%s
+			where link_doctype="Customer"
+				and link_name=%s
 				and parenttype = 'Address'
-		"""
-		, (name), as_dict=1)
+		""", (name), as_dict=1)
 
 	if shipping_addresses:
 		for out.shipping_address in shipping_addresses:
@@ -76,28 +76,35 @@
 	as_dict=1)
 	contact_info.html = """ <b>%(first_name)s %(last_name)s</b> <br> %(phone)s <br> %(mobile_no)s""" % {
 		"first_name": contact_info.first_name,
-		"last_name": contact_info.last_name,
-		"phone": contact_info.phone if contact_info.phone else "",
-		"mobile_no": contact_info.mobile_no if contact_info.mobile_no else "",
+		"last_name": contact_info.last_name or "",
+		"phone": contact_info.phone or "",
+		"mobile_no": contact_info.mobile_no or "",
 	}
 	return contact_info.html
 
 
 @frappe.whitelist()
 def get_delivery_notes(customer):
-	return frappe.db.get_all(
-			"Delivery Note",
-		  	filters={'customer': customer,
-					 'docstatus': 1,
-					 'status': ('!=', 'Completed')})
+	return frappe.db.get_all("Delivery Note", filters={
+		'customer': customer,
+		'docstatus': 1,
+		'status': ('!=', 'Completed')
+	})
 
 @frappe.whitelist()
 def calculate_time_matrix(name):
 	"""Calucation and round in closest 15 minutes, delivery stops"""
 
-	gmaps_client = frappe.db.get_single_value('Google Maps', 'client_key')
-	gmaps = googlemaps.Client(key=gmaps_client)
-	home = frappe.db.get_single_value('Google Maps', 'home_address')
+	gmaps = frappe.db.get_value('Google Maps', None,
+		['client_key', 'enabled', 'home_address'], as_dict=1)
+
+	if not gmaps.enabled:
+		frappe.throw(_("Google Maps integration is not enabled"))
+
+	try:
+		gmaps_client = googlemaps.Client(key=gmaps.client_key)
+	except Exception as e:
+		frappe.throw(e.message)
 
 	secs_15min = 900
 	doc = frappe.get_doc('Delivery Trip', name)
@@ -105,38 +112,40 @@
 	matrix_duration = []
 
 	for i, stop in enumerate(doc.delivery_stop):
-
 		if i == 0:
 			# The first row is the starting pointing
-			origin = home
-			destination = customer_address_format(doc.delivery_stop[i].address)
-			distance_calc = gmaps.distance_matrix(origin, destination)
+			origin = gmaps.home_address
+			destination = format_address(doc.delivery_stop[i].address)
+			distance_calc = gmaps_client.distance_matrix(origin, destination)
 			matrix_duration.append(distance_calc)
+
 			try:
 				distance_secs = distance_calc['rows'][0]['elements'][0]['duration']['value']
 			except Exception as e:
 				frappe.throw(_("Error '{0}' occured. Arguments {1}.").format(e.message, e.args))
-			stop.estimated_arrival = round_timedelta(departure_time + datetime.timedelta(0, distance_secs + secs_15min),
-													 datetime.timedelta(minutes=15))
-			stop.save()
-			frappe.db.commit()
+
+			stop.estimated_arrival = round_timedelta(
+				departure_time + datetime.timedelta(0, distance_secs + secs_15min),
+				datetime.timedelta(minutes=15))
 		else:
 			# Calculation based on previous
-			origin = customer_address_format(doc.delivery_stop[i - 1].address)
-			destination = customer_address_format(doc.delivery_stop[i].address)
-			distance_calc = gmaps.distance_matrix(origin, destination)
+			origin = format_address(doc.delivery_stop[i - 1].address)
+			destination = format_address(doc.delivery_stop[i].address)
+			distance_calc = gmaps_client.distance_matrix(origin, destination)
 			matrix_duration.append(distance_calc)
+
 			try:
 				distance_secs = distance_calc['rows'][0]['elements'][0]['duration']['value']
 			except Exception as e:
 				frappe.throw(_("Error '{0}' occured. Arguments {1}.").format(e.message, e.args))
-			stop.estimated_arrival = round_timedelta(
-				doc.delivery_stop[i - 1].estimated_arrival + datetime.timedelta(0, distance_secs + secs_15min),
-				datetime.timedelta(minutes=15))
-			stop.save()
-			frappe.db.commit()
-	return matrix_duration
 
+			stop.estimated_arrival = round_timedelta(
+				doc.delivery_stop[i - 1].estimated_arrival +
+				datetime.timedelta(0, distance_secs + secs_15min), datetime.timedelta(minutes=15))
+		stop.save()
+		frappe.db.commit()
+
+	return matrix_duration
 
 @frappe.whitelist()
 def notify_customers(docname, date, driver, vehicle, sender_email, delivery_notification):
@@ -146,15 +155,12 @@
 
 	for delivery_stop in delivery_stops:
 		delivery_stop_info = frappe.db.get_value(
-				"Delivery Stop",
-				delivery_stop.name,
-				["notified_by_email", "estimated_arrival",
-				 "details", "contact", "delivery_notes"],
+			"Delivery Stop",
+			delivery_stop.name,
+			["notified_by_email", "estimated_arrival", "details", "contact", "delivery_notes"],
 		as_dict=1)
-		contact_info = frappe.db.get_value(
-				"Contact", delivery_stop_info.contact,
-				["first_name", "last_name", "email_id", "gender"],
-		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(",")
@@ -162,31 +168,24 @@
 			for delivery_note in delivery_notes:
 				attachments.append(
 					frappe.attach_print('Delivery Note',
-					 					 delivery_note,
-										 file_name="Delivery Note",
-										 print_format='Delivery Note'))
+	 					 delivery_note,
+						 file_name="Delivery Note",
+						 print_format='Delivery Note'))
 
 		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)
-			sender_designation = frappe.db.get_value("Employee",
-													 sender_email,
-													 ["designation"])
+			driver_info = frappe.db.get_value("Driver", driver, ["full_name", "cell_number"], as_dict=1)
+			sender_designation = frappe.db.get_value("Employee", sender_email, ["designation"])
 
 			estimated_arrival = str(delivery_stop_info.estimated_arrival)[:-3]
-			email_template = frappe.get_doc("Standard Reply",
-											delivery_notification)
+			email_template = frappe.get_doc("Standard Reply", delivery_notification)
 			message = frappe.render_template(
-						 email_template.response,
-						 dict(contact_info=contact_info, sender_name=sender_name,
-							  details=delivery_stop_info.details,
-							  estimated_arrival=estimated_arrival,
-							  date=getdate(date).strftime('%d.%m.%y'), vehicle=vehicle,
-							  driver_info=driver_info,
-							  sender_designation=sender_designation)
+				email_template.response,
+				dict(contact_info=contact_info, sender_name=sender_name,
+					details=delivery_stop_info.details,
+					estimated_arrival=estimated_arrival,
+					date=getdate(date).strftime('%d.%m.%y'), vehicle=vehicle,
+					driver_info=driver_info,
+					sender_designation=sender_designation)
 			)
 			frappe.sendmail(
 				recipients=contact_info.email_id,
@@ -194,13 +193,9 @@
 				message=message,
 				attachments=attachments,
 				subject=_(email_template.subject).format(getdate(date).strftime('%d.%m.%y'),
-						  estimated_arrival))
+					estimated_arrival))
 
-			frappe.db.set_value("Delivery Stop",
-								delivery_stop.name,
-								"notified_by_email", 1)
-			frappe.db.set_value("Delivery Stop",
-								 delivery_stop.name,
-								 "email_sent_to",
-							 	 contact_info.email_id)
+			frappe.db.set_value("Delivery Stop", delivery_stop.name, "notified_by_email", 1)
+			frappe.db.set_value("Delivery Stop", delivery_stop.name,
+				"email_sent_to", contact_info.email_id)
 			frappe.msgprint(_("Email sent to {0}").format(contact_info.email_id))
\ No newline at end of file
