diff --git a/erpnext/manufacturing/doctype/work_order/work_order.py b/erpnext/manufacturing/doctype/work_order/work_order.py
index 38e1157..efa901b 100644
--- a/erpnext/manufacturing/doctype/work_order/work_order.py
+++ b/erpnext/manufacturing/doctype/work_order/work_order.py
@@ -735,33 +735,22 @@
 		else:
 			target.delete()
 
-	doc = get_mapped_doc("Work Order", source_name, {
-		"Work Order": {
-			"doctype": "Pick List",
-			"validation": {
-				"docstatus": ["=", 1]
+	doc = get_mapped_doc('Work Order', source_name, {
+		'Work Order': {
+			'doctype': 'Pick List',
+			'validation': {
+				'docstatus': ['=', 1]
 			}
 		},
-		"Work Order Item": {
-			"doctype": "Pick List Reference Item",
-			"postprocess": update_item_quantity,
-			"condition": lambda doc: abs(doc.transferred_qty) < abs(doc.required_qty)
+		'Work Order Item': {
+			'doctype': 'Pick List Item',
+			'postprocess': update_item_quantity,
+			'condition': lambda doc: abs(doc.transferred_qty) < abs(doc.required_qty)
 		},
 	}, target_doc)
 
-	# # aggregate qty for same item
-	# item_map = frappe._dict()
-	# for item in doc.items:
-	# 	item.idx = None
-	# 	if not item_map.get(item.item_code):
-	# 		item_map[item.item_code] = item
-	# 	else:
-	# 		item_map[item.item_code].qty += item.qty
-	# 		item_map[item.item_code].stock_qty += item.stock_qty
-
-	# doc.delete_key('items')
-	# doc.set('items', item_map.values())
-
 	doc.for_qty = for_qty
 
+	doc.set_item_locations()
+
 	return doc
\ No newline at end of file
diff --git a/erpnext/selling/doctype/sales_order/sales_order.py b/erpnext/selling/doctype/sales_order/sales_order.py
index e6621b1..c9aaab4 100755
--- a/erpnext/selling/doctype/sales_order/sales_order.py
+++ b/erpnext/selling/doctype/sales_order/sales_order.py
@@ -998,24 +998,26 @@
 		target.qty = flt(source.qty) - flt(source.delivered_qty)
 		target.stock_qty = (flt(source.qty) - flt(source.delivered_qty)) * flt(source.conversion_factor)
 
-	doc = get_mapped_doc("Sales Order", source_name, {
-		"Sales Order": {
-			"doctype": "Pick List",
-			"validation": {
-				"docstatus": ["=", 1]
+	doc = get_mapped_doc('Sales Order', source_name, {
+		'Sales Order': {
+			'doctype': 'Pick List',
+			'validation': {
+				'docstatus': ['=', 1]
 			}
 		},
-		"Sales Order Item": {
-			"doctype": "Pick List Reference Item",
-			"field_map": {
-				"parent": "sales_order",
-				"name": "sales_order_item"
+		'Sales Order Item': {
+			'doctype': 'Pick List Item',
+			'field_map': {
+				'parent': 'sales_order',
+				'name': 'sales_order_item'
 			},
-			"postprocess": update_item_quantity,
-			"condition": lambda doc: abs(doc.delivered_qty) < abs(doc.qty) and doc.delivered_by_supplier!=1
+			'postprocess': update_item_quantity,
+			'condition': lambda doc: abs(doc.delivered_qty) < abs(doc.qty) and doc.delivered_by_supplier!=1
 		},
 	}, target_doc)
 
 	doc.purpose = 'Delivery against Sales Order'
 
+	doc.set_item_locations()
+
 	return doc
diff --git a/erpnext/stock/doctype/material_request/material_request.py b/erpnext/stock/doctype/material_request/material_request.py
index 9cad3f0..44e890c 100644
--- a/erpnext/stock/doctype/material_request/material_request.py
+++ b/erpnext/stock/doctype/material_request/material_request.py
@@ -516,7 +516,7 @@
 			}
 		},
 		'Material Request Item': {
-			'doctype': 'Pick List Reference Item',
+			'doctype': 'Pick List Item',
 			'field_map': {
 				'name': 'material_request_item',
 				'qty': 'stock_qty'
@@ -524,4 +524,6 @@
 		},
 	}, target_doc)
 
+	doc.set_item_locations()
+
 	return doc
\ No newline at end of file
diff --git a/erpnext/stock/doctype/pick_list/pick_list.js b/erpnext/stock/doctype/pick_list/pick_list.js
index 163ff8c..54a2ca9 100644
--- a/erpnext/stock/doctype/pick_list/pick_list.js
+++ b/erpnext/stock/doctype/pick_list/pick_list.js
@@ -30,6 +30,7 @@
 				}
 			};
 		});
+		// frm.set_df_property('get_item_locations', 'hidden', frm.is_dirty());
 	},
 	get_item_locations: (frm) => {
 		frm.call('set_item_locations');
@@ -69,7 +70,6 @@
 					frappe.msgprint(__('Quantity must not be more than {0}', [max]));
 					return;
 				}
-				frm.clear_table('items');
 				frm.clear_table('locations');
 				erpnext.utils.map_current_doc({
 					method: 'erpnext.manufacturing.doctype.work_order.work_order.create_pick_list',
@@ -80,20 +80,13 @@
 		});
 	},
 	material_request: (frm) => {
-		frm.clear_table('items');
-		frm.clear_table('locations');
 		erpnext.utils.map_current_doc({
 			method: 'erpnext.stock.doctype.material_request.material_request.create_pick_list',
 			target: frm,
 			source_name: frm.doc.material_request
 		});
 	},
-	parent_warehouse: (frm) => {
-		frm.clear_table('locations');
-		frm.refresh_field('locations');
-	},
 	purpose: (frm) => {
-		frm.clear_table('items');
 		frm.clear_table('locations');
 		frm.trigger('add_get_items_button');
 	},
@@ -140,7 +133,7 @@
 	}
 });
 
-frappe.ui.form.on('Pick List Reference Item', {
+frappe.ui.form.on('Pick List Item', {
 	item_code: (frm, cdt, cdn) => {
 		let row = frappe.get_doc(cdt, cdn);
 		if (row.item_code) {
diff --git a/erpnext/stock/doctype/pick_list/pick_list.json b/erpnext/stock/doctype/pick_list/pick_list.json
index 5d33378..e635db0 100644
--- a/erpnext/stock/doctype/pick_list/pick_list.json
+++ b/erpnext/stock/doctype/pick_list/pick_list.json
@@ -14,8 +14,6 @@
   "for_qty",
   "column_break_4",
   "parent_warehouse",
-  "section_break_4",
-  "items",
   "get_item_locations",
   "section_break_6",
   "locations",
@@ -39,10 +37,6 @@
    "fieldtype": "Section Break"
   },
   {
-   "fieldname": "section_break_4",
-   "fieldtype": "Section Break"
-  },
-  {
    "description": "Items under this warehouse will be suggested",
    "fieldname": "parent_warehouse",
    "fieldtype": "Link",
@@ -65,13 +59,6 @@
    "options": "Work Order"
   },
   {
-   "fieldname": "items",
-   "fieldtype": "Table",
-   "label": "Items To Be Picked",
-   "options": "Pick List Reference Item",
-   "reqd": 1
-  },
-  {
    "fieldname": "locations",
    "fieldtype": "Table",
    "label": "Item Locations",
@@ -109,7 +96,6 @@
    "options": "Material Request"
   },
   {
-   "depends_on": "eval: doc.items.length && (doc.items.length > 1 || doc.items[0].item_code) && doc.docstatus === 0",
    "fieldname": "get_item_locations",
    "fieldtype": "Button",
    "label": "Get Item Locations"
@@ -124,7 +110,7 @@
   }
  ],
  "is_submittable": 1,
- "modified": "2019-08-28 12:27:22.743705",
+ "modified": "2019-08-28 12:49:59.800807",
  "modified_by": "Administrator",
  "module": "Stock",
  "name": "Pick List",
@@ -191,7 +177,6 @@
    "write": 1
   }
  ],
- "quick_entry": 1,
  "sort_field": "modified",
  "sort_order": "DESC",
  "track_changes": 1
diff --git a/erpnext/stock/doctype/pick_list/pick_list.py b/erpnext/stock/doctype/pick_list/pick_list.py
index 11a9985..0932c5a 100644
--- a/erpnext/stock/doctype/pick_list/pick_list.py
+++ b/erpnext/stock/doctype/pick_list/pick_list.py
@@ -17,7 +17,7 @@
 
 class PickList(Document):
 	def set_item_locations(self):
-		items = self.items
+		item_locations = self.locations
 		self.item_location_map = frappe._dict()
 
 		from_warehouses = None
@@ -26,7 +26,7 @@
 
 		# Reset
 		self.delete_key('locations')
-		for item_doc in items:
+		for item_doc in item_locations:
 			item_code = item_doc.item_code
 			if frappe.get_cached_value('Item', item_code, 'has_serial_no'):
 				locations = get_item_locations_based_on_serial_nos(item_doc)
@@ -37,20 +37,21 @@
 					self.item_location_map[item_code] = get_available_items(item_code, from_warehouses)
 				locations = get_items_with_warehouse_and_quantity(item_doc, from_warehouses, self.item_location_map)
 
+			# hack
+			del item_doc.idx
+			if len(locations) > 1:
+				del item_doc.name
+
 			for row in locations:
+				stock_qty = row.get('qty', 0) * item_doc.conversion_factor
 				row.update({
-					'item_code': item_code,
-					'sales_order': item_doc.sales_order,
-					'sales_order_item': item_doc.sales_order_item,
-					'material_request': item_doc.material_request,
-					'material_request_item': item_doc.material_request_item,
-					'uom': item_doc.uom,
-					'stock_uom': item_doc.stock_uom,
-					'conversion_factor': item_doc.conversion_factor,
-					'stock_qty': row.get("qty", 0) * item_doc.conversion_factor,
-					'picked_qty': row.get("qty", 0) * item_doc.conversion_factor
+					'stock_qty': stock_qty,
+					'picked_qty': stock_qty
 				})
-				self.append('locations', row)
+
+				location = item_doc
+				location.update(row)
+				self.append('locations', location)
 
 def get_items_with_warehouse_and_quantity(item_doc, from_warehouses, item_location_map):
 	available_locations = item_location_map.get(item_doc.item_code)
@@ -243,27 +244,6 @@
 	return stock_entry.as_dict()
 
 @frappe.whitelist()
-def create_stock_entry_with_material_request_items(pick_list):
-	stock_entry = frappe.new_doc('Stock Entry')
-	stock_entry.pick_list = pick_list.get('name')
-	stock_entry.purpose = pick_list.get('purpose')
-	stock_entry.set_stock_entry_type()
-
-	doc = get_mapped_doc("Work Order", source_name, {
-		"Work Order": {
-			"doctype": "Pick List",
-			"validation": {
-				"docstatus": ["=", 1]
-			}
-		},
-		"Work Order Item": {
-			"doctype": "Pick List Reference Item",
-			"postprocess": update_item_quantity,
-			"condition": lambda doc: abs(doc.transferred_qty) < abs(doc.required_qty)
-		},
-	}, target_doc)
-
-@frappe.whitelist()
 def get_pending_work_orders(doctype, txt, searchfield, start, page_length, filters, as_dict):
 	return frappe.db.sql("""
 		SELECT
diff --git a/erpnext/stock/doctype/pick_list_item/pick_list_item.json b/erpnext/stock/doctype/pick_list_item/pick_list_item.json
index 4dc3ae4..552764d 100644
--- a/erpnext/stock/doctype/pick_list_item/pick_list_item.json
+++ b/erpnext/stock/doctype/pick_list_item/pick_list_item.json
@@ -33,8 +33,7 @@
    "fieldname": "qty",
    "fieldtype": "Float",
    "in_list_view": 1,
-   "label": "Qty",
-   "read_only": 1
+   "label": "Qty"
   },
   {
    "fieldname": "picked_qty",
@@ -100,8 +99,7 @@
    "fieldname": "uom",
    "fieldtype": "Link",
    "label": "UOM",
-   "options": "UOM",
-   "read_only": 1
+   "options": "UOM"
   },
   {
    "fieldname": "conversion_factor",
@@ -121,8 +119,7 @@
    "fieldtype": "Link",
    "in_list_view": 1,
    "label": "Item",
-   "options": "Item",
-   "read_only": 1
+   "options": "Item"
   },
   {
    "fieldname": "quantity_section",
@@ -171,7 +168,7 @@
   }
  ],
  "istable": 1,
- "modified": "2019-08-28 12:34:06.224534",
+ "modified": "2019-08-28 15:56:14.507776",
  "modified_by": "Administrator",
  "module": "Stock",
  "name": "Pick List Item",
diff --git a/erpnext/stock/doctype/pick_list_reference_item/__init__.py b/erpnext/stock/doctype/pick_list_reference_item/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/stock/doctype/pick_list_reference_item/__init__.py
+++ /dev/null
diff --git a/erpnext/stock/doctype/pick_list_reference_item/pick_list_reference_item.js b/erpnext/stock/doctype/pick_list_reference_item/pick_list_reference_item.js
deleted file mode 100644
index 875ce23..0000000
--- a/erpnext/stock/doctype/pick_list_reference_item/pick_list_reference_item.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// Copyright (c) 2019, Frappe Technologies Pvt. Ltd. and contributors
-// For license information, please see license.txt
-
-frappe.ui.form.on('Pick List Reference Item', {
-	// refresh: function(frm) {
-
-	// }
-});
diff --git a/erpnext/stock/doctype/pick_list_reference_item/pick_list_reference_item.json b/erpnext/stock/doctype/pick_list_reference_item/pick_list_reference_item.json
deleted file mode 100644
index 861e696..0000000
--- a/erpnext/stock/doctype/pick_list_reference_item/pick_list_reference_item.json
+++ /dev/null
@@ -1,109 +0,0 @@
-{
- "creation": "2019-07-24 16:11:07.415562",
- "doctype": "DocType",
- "editable_grid": 1,
- "engine": "InnoDB",
- "field_order": [
-  "item_code",
-  "quantity_section",
-  "qty",
-  "stock_qty",
-  "column_break_5",
-  "uom",
-  "conversion_factor",
-  "stock_uom",
-  "reference_section",
-  "sales_order",
-  "sales_order_item",
-  "material_request",
-  "material_request_item"
- ],
- "fields": [
-  {
-   "fieldname": "qty",
-   "fieldtype": "Float",
-   "in_list_view": 1,
-   "label": "Qty"
-  },
-  {
-   "fieldname": "quantity_section",
-   "fieldtype": "Section Break",
-   "label": "Quantity"
-  },
-  {
-   "fieldname": "stock_qty",
-   "fieldtype": "Float",
-   "label": "Stock Qty",
-   "read_only": 1
-  },
-  {
-   "fieldname": "uom",
-   "fieldtype": "Link",
-   "label": "UOM",
-   "options": "UOM"
-  },
-  {
-   "fieldname": "stock_uom",
-   "fieldtype": "Link",
-   "label": "Stock UOM",
-   "options": "UOM",
-   "read_only": 1
-  },
-  {
-   "fieldname": "item_code",
-   "fieldtype": "Link",
-   "in_list_view": 1,
-   "label": "Item",
-   "options": "Item"
-  },
-  {
-   "fieldname": "column_break_5",
-   "fieldtype": "Column Break"
-  },
-  {
-   "fieldname": "reference_section",
-   "fieldtype": "Section Break",
-   "label": "Reference"
-  },
-  {
-   "fieldname": "sales_order",
-   "fieldtype": "Link",
-   "label": "Sales Order",
-   "options": "Sales Order",
-   "read_only": 1
-  },
-  {
-   "fieldname": "sales_order_item",
-   "fieldtype": "Data",
-   "label": "Sales Order Item",
-   "read_only": 1
-  },
-  {
-   "fieldname": "conversion_factor",
-   "fieldtype": "Float",
-   "label": "UOM Conversion Factor"
-  },
-  {
-   "fieldname": "material_request",
-   "fieldtype": "Link",
-   "label": "Material Request",
-   "options": "Material Request",
-   "read_only": 1
-  },
-  {
-   "fieldname": "material_request_item",
-   "fieldtype": "Data",
-   "label": "Material Request Item",
-   "read_only": 1
-  }
- ],
- "istable": 1,
- "modified": "2019-08-27 08:40:21.870638",
- "modified_by": "Administrator",
- "module": "Stock",
- "name": "Pick List Reference Item",
- "owner": "Administrator",
- "permissions": [],
- "sort_field": "modified",
- "sort_order": "DESC"
-}
\ No newline at end of file
diff --git a/erpnext/stock/doctype/pick_list_reference_item/pick_list_reference_item.py b/erpnext/stock/doctype/pick_list_reference_item/pick_list_reference_item.py
deleted file mode 100644
index 74f0563..0000000
--- a/erpnext/stock/doctype/pick_list_reference_item/pick_list_reference_item.py
+++ /dev/null
@@ -1,10 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (c) 2019, Frappe Technologies Pvt. Ltd. and contributors
-# For license information, please see license.txt
-
-from __future__ import unicode_literals
-# import frappe
-from frappe.model.document import Document
-
-class PickListReferenceItem(Document):
-	pass
