frappe/frappe#478
diff --git a/erpnext/stock/doctype/delivery_note/delivery_note.py b/erpnext/stock/doctype/delivery_note/delivery_note.py
index d48024f..ce6986c 100644
--- a/erpnext/stock/doctype/delivery_note/delivery_note.py
+++ b/erpnext/stock/doctype/delivery_note/delivery_note.py
@@ -289,7 +289,7 @@
 	invoiced_qty_map = get_invoiced_qty_map(source_name)
 	
 	def update_accounts(source, target):
-		si = frappe.bean(target)
+		si = frappe.get_doc(target)
 		si.is_pos = 0
 		si.run_method("onload_post_render")
 		
diff --git a/erpnext/stock/doctype/delivery_note/test_delivery_note.py b/erpnext/stock/doctype/delivery_note/test_delivery_note.py
index 4c6af1b..1c2becec 100644
--- a/erpnext/stock/doctype/delivery_note/test_delivery_note.py
+++ b/erpnext/stock/doctype/delivery_note/test_delivery_note.py
@@ -13,7 +13,7 @@
 	if not item_code:
 		item_code = pr_test_records[0][1]["item_code"]
 	
-	pr = frappe.bean(copy=pr_test_records[0])
+	pr = frappe.get_doc(copy=pr_test_records[0])
 	pr.doclist[1].item_code = item_code
 	pr.insert()
 	pr.submit()
@@ -25,12 +25,12 @@
 		
 		from erpnext.stock.doctype.delivery_note.delivery_note import make_sales_invoice
 		_insert_purchase_receipt()
-		dn = frappe.bean(copy=test_records[0]).insert()
+		dn = frappe.get_doc(copy=test_records[0]).insert()
 		
 		self.assertRaises(frappe.ValidationError, make_sales_invoice, 
 			dn.name)
 
-		dn = frappe.bean("Delivery Note", dn.name)
+		dn = frappe.get_doc("Delivery Note", dn.name)
 		dn.submit()
 		si = make_sales_invoice(dn.name)
 		
@@ -38,7 +38,7 @@
 		
 		# modify amount
 		si[1]["rate"] = 200
-		self.assertRaises(frappe.ValidationError, frappe.bean(si).insert)
+		self.assertRaises(frappe.ValidationError, frappe.get_doc(si).insert)
 		
 	
 	def test_delivery_note_no_gl_entry(self):
@@ -48,7 +48,7 @@
 		
 		_insert_purchase_receipt()
 		
-		dn = frappe.bean(copy=test_records[0])
+		dn = frappe.get_doc(copy=test_records[0])
 		dn.insert()
 		dn.submit()
 		
@@ -68,7 +68,7 @@
 		
 		_insert_purchase_receipt()
 		
-		dn = frappe.bean(copy=test_records[0])
+		dn = frappe.get_doc(copy=test_records[0])
 		dn.doclist[1].expense_account = "Cost of Goods Sold - _TC"
 		dn.doclist[1].cost_center = "Main - _TC"
 
@@ -95,7 +95,7 @@
 		self.assertEquals(bal, prev_bal - 375.0)
 				
 		# back dated purchase receipt
-		pr = frappe.bean(copy=pr_test_records[0])
+		pr = frappe.get_doc(copy=pr_test_records[0])
 		pr.posting_date = "2013-01-01"
 		pr.doclist[1].rate = 100
 		pr.doclist[1].base_amount = 100
@@ -123,7 +123,7 @@
 		_insert_purchase_receipt()
 		_insert_purchase_receipt("_Test Item Home Desktop 100")
 		
-		dn = frappe.bean(copy=test_records[0])
+		dn = frappe.get_doc(copy=test_records[0])
 		dn.doclist[1].item_code = "_Test Sales BOM Item"
 		dn.doclist[1].qty = 1
 	
@@ -162,7 +162,7 @@
 		se = make_serialized_item()
 		serial_nos = get_serial_nos(se.doclist[1].serial_no)
 		
-		dn = frappe.bean(copy=test_records[0])
+		dn = frappe.get_doc(copy=test_records[0])
 		dn.doclist[1].item_code = "_Test Serialized Item With Series"
 		dn.doclist[1].qty = 1
 		dn.doclist[1].serial_no = serial_nos[0]
@@ -195,11 +195,11 @@
 		se = make_serialized_item()
 		serial_nos = get_serial_nos(se.doclist[1].serial_no)
 		
-		sr = frappe.bean("Serial No", serial_nos[0])
+		sr = frappe.get_doc("Serial No", serial_nos[0])
 		sr.status = "Not Available"
 		sr.save()
 		
-		dn = frappe.bean(copy=test_records[0])
+		dn = frappe.get_doc(copy=test_records[0])
 		dn.doclist[1].item_code = "_Test Serialized Item With Series"
 		dn.doclist[1].qty = 1
 		dn.doclist[1].serial_no = serial_nos[0]
diff --git a/erpnext/stock/doctype/item/test_item.py b/erpnext/stock/doctype/item/test_item.py
index 8d99b2f..0ad6be2 100644
--- a/erpnext/stock/doctype/item/test_item.py
+++ b/erpnext/stock/doctype/item/test_item.py
@@ -13,7 +13,7 @@
 class TestItem(unittest.TestCase):
 	def test_default_warehouse(self):
 		from erpnext.stock.doctype.item.item import WarehouseNotSet
-		item = frappe.bean(copy=test_records[0])
+		item = frappe.get_doc(copy=test_records[0])
 		item.is_stock_item = "Yes"
 		item.default_warehouse = None
 		self.assertRaises(WarehouseNotSet, item.insert)
diff --git a/erpnext/stock/doctype/item_price/test_item_price.py b/erpnext/stock/doctype/item_price/test_item_price.py
index 4585e38..310c7d9 100644
--- a/erpnext/stock/doctype/item_price/test_item_price.py
+++ b/erpnext/stock/doctype/item_price/test_item_price.py
@@ -8,7 +8,7 @@
 class TestItem(unittest.TestCase):
 	def test_duplicate_item(self):
 		from erpnext.stock.doctype.item_price.item_price import ItemPriceDuplicateItem
-		bean = frappe.bean(copy=test_records[0])
+		bean = frappe.get_doc(copy=test_records[0])
 		self.assertRaises(ItemPriceDuplicateItem, bean.insert)
 
 test_records = [
diff --git a/erpnext/stock/doctype/landed_cost_wizard/landed_cost_wizard.py b/erpnext/stock/doctype/landed_cost_wizard/landed_cost_wizard.py
index 2a80a4d..3850cec 100644
--- a/erpnext/stock/doctype/landed_cost_wizard/landed_cost_wizard.py
+++ b/erpnext/stock/doctype/landed_cost_wizard/landed_cost_wizard.py
@@ -34,7 +34,7 @@
 		total_amt = self.get_total_pr_amt(purchase_receipts)
 		
 		for pr in purchase_receipts:
-			pr_bean = frappe.bean('Purchase Receipt', pr)
+			pr_bean = frappe.get_doc('Purchase Receipt', pr)
 			pr_items = pr_bean.get("purchase_tax_details")
 			
 			for lc in self.get("landed_cost_details"):
@@ -76,7 +76,7 @@
 			
 	def cancel_pr(self, purchase_receipts):
 		for pr in purchase_receipts:
-			pr_bean = frappe.bean("Purchase Receipt", pr)
+			pr_bean = frappe.get_doc("Purchase Receipt", pr)
 			
 			pr_bean.run_method("update_ordered_qty")
 			
@@ -87,7 +87,7 @@
 			
 	def submit_pr(self, purchase_receipts):
 		for pr in purchase_receipts:
-			pr_bean = frappe.bean("Purchase Receipt", pr)
+			pr_bean = frappe.get_doc("Purchase Receipt", pr)
 			pr_bean.run_method("update_ordered_qty")
 			pr_bean.run_method("update_stock")
 			pr_bean.run_method("make_gl_entries")
\ No newline at end of file
diff --git a/erpnext/stock/doctype/material_request/material_request.py b/erpnext/stock/doctype/material_request/material_request.py
index 30ebb1b..c8f38ed 100644
--- a/erpnext/stock/doctype/material_request/material_request.py
+++ b/erpnext/stock/doctype/material_request/material_request.py
@@ -218,7 +218,7 @@
 		})
 
 def set_missing_values(source, target_doc):
-	po = frappe.bean(target_doc)
+	po = frappe.get_doc(target_doc)
 	po.run_method("set_missing_values")
 	
 def update_item(obj, target, source_parent):
@@ -343,7 +343,7 @@
 	
 	def set_missing_values(source, target):
 		target[0].purpose = "Material Transfer"
-		se = frappe.bean(target)
+		se = frappe.get_doc(target)
 		se.run_method("get_stock_and_rate")
 
 	doclist = get_mapped_doc("Material Request", source_name, {
diff --git a/erpnext/stock/doctype/material_request/test_material_request.py b/erpnext/stock/doctype/material_request/test_material_request.py
index f70f14c..66c4dd2 100644
--- a/erpnext/stock/doctype/material_request/test_material_request.py
+++ b/erpnext/stock/doctype/material_request/test_material_request.py
@@ -15,12 +15,12 @@
 	def test_make_purchase_order(self):
 		from erpnext.stock.doctype.material_request.material_request import make_purchase_order
 
-		mr = frappe.bean(copy=test_records[0]).insert()
+		mr = frappe.get_doc(copy=test_records[0]).insert()
 
 		self.assertRaises(frappe.ValidationError, make_purchase_order, 
 			mr.name)
 
-		mr = frappe.bean("Material Request", mr.name)
+		mr = frappe.get_doc("Material Request", mr.name)
 		mr.submit()
 		po = make_purchase_order(mr.name)
 		
@@ -30,12 +30,12 @@
 	def test_make_supplier_quotation(self):
 		from erpnext.stock.doctype.material_request.material_request import make_supplier_quotation
 
-		mr = frappe.bean(copy=test_records[0]).insert()
+		mr = frappe.get_doc(copy=test_records[0]).insert()
 
 		self.assertRaises(frappe.ValidationError, make_supplier_quotation, 
 			mr.name)
 
-		mr = frappe.bean("Material Request", mr.name)
+		mr = frappe.get_doc("Material Request", mr.name)
 		mr.submit()
 		sq = make_supplier_quotation(mr.name)
 		
@@ -46,12 +46,12 @@
 	def test_make_stock_entry(self):
 		from erpnext.stock.doctype.material_request.material_request import make_stock_entry
 
-		mr = frappe.bean(copy=test_records[0]).insert()
+		mr = frappe.get_doc(copy=test_records[0]).insert()
 
 		self.assertRaises(frappe.ValidationError, make_stock_entry, 
 			mr.name)
 
-		mr = frappe.bean("Material Request", mr.name)
+		mr = frappe.get_doc("Material Request", mr.name)
 		mr.material_request_type = "Transfer"
 		mr.submit()
 		se = make_stock_entry(mr.name)
@@ -71,7 +71,7 @@
 			"warehouse": "_Test Warehouse - _TC"}, "indented_qty")), qty2)
 			
 	def _insert_stock_entry(self, qty1, qty2):
-		se = frappe.bean([
+		se = frappe.get_doc([
 			{
 				"company": "_Test Company", 
 				"doctype": "Stock Entry", 
@@ -112,7 +112,7 @@
 		frappe.db.sql("""delete from `tabBin`""")
 		
 		# submit material request of type Purchase
-		mr = frappe.bean(copy=test_records[0])
+		mr = frappe.get_doc(copy=test_records[0])
 		mr.insert()
 		mr.submit()
 		
@@ -133,14 +133,14 @@
 
 		
 		# check for stopped status of Material Request
-		po = frappe.bean(copy=po_doclist)
+		po = frappe.get_doc(copy=po_doclist)
 		po.insert()
 		mr.obj.update_status('Stopped')
 		self.assertRaises(frappe.ValidationError, po.submit)
 		self.assertRaises(frappe.ValidationError, po.cancel)
 
 		mr.obj.update_status('Submitted')
-		po = frappe.bean(copy=po_doclist)
+		po = frappe.get_doc(copy=po_doclist)
 		po.insert()
 		po.submit()
 		
@@ -160,7 +160,7 @@
 		frappe.db.sql("""delete from `tabStock Ledger Entry`""")
 		
 		# submit material request of type Purchase
-		mr = frappe.bean(copy=test_records[0])
+		mr = frappe.get_doc(copy=test_records[0])
 		mr.material_request_type = "Transfer"
 		mr.insert()
 		mr.submit()
@@ -196,14 +196,14 @@
 		self._insert_stock_entry(27.0, 1.5)
 		
 		# check for stopped status of Material Request
-		se = frappe.bean(copy=se_doclist)
+		se = frappe.get_doc(copy=se_doclist)
 		se.insert()
 		mr.obj.update_status('Stopped')
 		self.assertRaises(frappe.ValidationError, se.submit)
 		self.assertRaises(frappe.ValidationError, se.cancel)
 		
 		mr.obj.update_status('Submitted')
-		se = frappe.bean(copy=se_doclist)
+		se = frappe.get_doc(copy=se_doclist)
 		se.insert()
 		se.submit()
 		
@@ -223,7 +223,7 @@
 		frappe.db.sql("""delete from `tabStock Ledger Entry`""")
 		
 		# submit material request of type Purchase
-		mr = frappe.bean(copy=test_records[0])
+		mr = frappe.get_doc(copy=test_records[0])
 		mr.material_request_type = "Transfer"
 		mr.insert()
 		mr.submit()
@@ -259,14 +259,14 @@
 		self._insert_stock_entry(60.0, 3.0)
 		
 		# check for stopped status of Material Request
-		se = frappe.bean(copy=se_doclist)
+		se = frappe.get_doc(copy=se_doclist)
 		se.insert()
 		mr.obj.update_status('Stopped')
 		self.assertRaises(frappe.ValidationError, se.submit)
 		self.assertRaises(frappe.ValidationError, se.cancel)
 		
 		mr.obj.update_status('Submitted')
-		se = frappe.bean(copy=se_doclist)
+		se = frappe.get_doc(copy=se_doclist)
 		se.insert()
 		se.submit()
 		
@@ -283,7 +283,7 @@
 		
 	def test_incorrect_mapping_of_stock_entry(self):
 		# submit material request of type Purchase
-		mr = frappe.bean(copy=test_records[0])
+		mr = frappe.get_doc(copy=test_records[0])
 		mr.material_request_type = "Transfer"
 		mr.insert()
 		mr.submit()
@@ -312,12 +312,12 @@
 		})
 		
 		# check for stopped status of Material Request
-		se = frappe.bean(copy=se_doclist)
+		se = frappe.get_doc(copy=se_doclist)
 		self.assertRaises(frappe.MappingMismatchError, se.insert)
 		
 	def test_warehouse_company_validation(self):
 		from erpnext.stock.utils import InvalidWarehouseCompany
-		mr = frappe.bean(copy=test_records[0])
+		mr = frappe.get_doc(copy=test_records[0])
 		mr.company = "_Test Company 1"
 		self.assertRaises(InvalidWarehouseCompany, mr.insert)
 
diff --git a/erpnext/stock/doctype/price_list/price_list.py b/erpnext/stock/doctype/price_list/price_list.py
index bfb3ea7..7f5d7e7 100644
--- a/erpnext/stock/doctype/price_list/price_list.py
+++ b/erpnext/stock/doctype/price_list/price_list.py
@@ -44,7 +44,7 @@
 
 	def on_trash(self):
 		def _update_default_price_list(module):
-			b = frappe.bean(module + " Settings")
+			b = frappe.get_doc(module + " Settings")
 			price_list_fieldname = module.lower() + "_price_list"
 
 			if self.name == b.fields[price_list_fieldname]:
diff --git a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py
index 74c8cff..f970d94 100644
--- a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py
+++ b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py
@@ -299,7 +299,7 @@
 	from frappe.model.mapper import get_mapped_doc
 	
 	def set_missing_values(source, target):
-		bean = frappe.bean(target)
+		bean = frappe.get_doc(target)
 		bean.run_method("set_missing_values")
 
 	doclist = get_mapped_doc("Purchase Receipt", source_name,	{
diff --git a/erpnext/stock/doctype/purchase_receipt/test_purchase_receipt.py b/erpnext/stock/doctype/purchase_receipt/test_purchase_receipt.py
index 58b8d7d..0b22425 100644
--- a/erpnext/stock/doctype/purchase_receipt/test_purchase_receipt.py
+++ b/erpnext/stock/doctype/purchase_receipt/test_purchase_receipt.py
@@ -14,12 +14,12 @@
 		set_perpetual_inventory(0)
 		from erpnext.stock.doctype.purchase_receipt.purchase_receipt import make_purchase_invoice
 
-		pr = frappe.bean(copy=test_records[0]).insert()
+		pr = frappe.get_doc(copy=test_records[0]).insert()
 		
 		self.assertRaises(frappe.ValidationError, make_purchase_invoice, 
 			pr.name)
 
-		pr = frappe.bean("Purchase Receipt", pr.name)
+		pr = frappe.get_doc("Purchase Receipt", pr.name)
 		pr.submit()
 		pi = make_purchase_invoice(pr.name)
 		
@@ -28,12 +28,12 @@
 		
 		# modify rate
 		pi[1]["rate"] = 200
-		self.assertRaises(frappe.ValidationError, frappe.bean(pi).submit)
+		self.assertRaises(frappe.ValidationError, frappe.get_doc(pi).submit)
 		
 	def test_purchase_receipt_no_gl_entry(self):
 		self._clear_stock_account_balance()
 		set_perpetual_inventory(0)
-		pr = frappe.bean(copy=test_records[0])
+		pr = frappe.get_doc(copy=test_records[0])
 		pr.insert()
 		pr.submit()
 		
@@ -56,7 +56,7 @@
 		set_perpetual_inventory()
 		self.assertEqual(cint(frappe.defaults.get_global_default("auto_accounting_for_stock")), 1)
 		
-		pr = frappe.bean(copy=test_records[0])
+		pr = frappe.get_doc(copy=test_records[0])
 		pr.insert()
 		pr.submit()
 		
@@ -90,7 +90,7 @@
 		frappe.db.sql("""delete from `tabGL Entry`""")
 		
 	def test_subcontracting(self):
-		pr = frappe.bean(copy=test_records[1])
+		pr = frappe.get_doc(copy=test_records[1])
 		pr.run_method("calculate_taxes_and_totals")
 		pr.insert()
 		
@@ -98,7 +98,7 @@
 		self.assertEquals(len(pr.get("pr_raw_material_details")), 2)
 		
 	def test_serial_no_supplier(self):
-		pr = frappe.bean(copy=test_records[0])
+		pr = frappe.get_doc(copy=test_records[0])
 		pr.doclist[1].item_code = "_Test Serialized Item With Series"
 		pr.doclist[1].qty = 1
 		pr.doclist[1].received_qty = 1
@@ -123,7 +123,7 @@
 		order by account desc""", (voucher_type, voucher_no), as_dict=1)
 		
 def set_perpetual_inventory(enable=1):
-	accounts_settings = frappe.bean("Accounts Settings")
+	accounts_settings = frappe.get_doc("Accounts Settings")
 	accounts_settings.auto_accounting_for_stock = enable
 	accounts_settings.save()
 	
diff --git a/erpnext/stock/doctype/serial_no/serial_no.py b/erpnext/stock/doctype/serial_no/serial_no.py
index 333f3f7..7f4c438 100644
--- a/erpnext/stock/doctype/serial_no/serial_no.py
+++ b/erpnext/stock/doctype/serial_no/serial_no.py
@@ -66,7 +66,7 @@
 		"""
 			Validate whether serial no is required for this item
 		"""
-		item = frappe.doc("Item", self.item_code)
+		item = frappe.get_doc("Item", self.item_code)
 		if item.has_serial_no!="Yes":
 			frappe.throw(_("Item must have 'Has Serial No' as 'Yes'") + ": " + self.item_code)
 			
@@ -223,7 +223,7 @@
 			
 			for serial_no in serial_nos:
 				if frappe.db.exists("Serial No", serial_no):
-					sr = frappe.bean("Serial No", serial_no)
+					sr = frappe.get_doc("Serial No", serial_no)
 					
 					if sr.item_code!=sle.item_code:
 						frappe.throw(_("Serial No does not belong to Item") + 
@@ -263,7 +263,7 @@
 		serial_nos = get_serial_nos(sle.serial_no)
 		for serial_no in serial_nos:
 			if frappe.db.exists("Serial No", serial_no):
-				sr = frappe.bean("Serial No", serial_no)
+				sr = frappe.get_doc("Serial No", serial_no)
 				sr.make_controller().via_stock_ledger = True
 				sr.warehouse = sle.warehouse if sle.actual_qty > 0 else None
 				sr.save()
diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.py b/erpnext/stock/doctype/stock_entry/stock_entry.py
index eeb8d82..92f7746 100644
--- a/erpnext/stock/doctype/stock_entry/stock_entry.py
+++ b/erpnext/stock/doctype/stock_entry/stock_entry.py
@@ -337,7 +337,7 @@
 					self.production_order)
 		
 		if self.production_order:
-			pro_bean = frappe.bean("Production Order", self.production_order)
+			pro_bean = frappe.get_doc("Production Order", self.production_order)
 			_validate_production_order(pro_bean)
 			self.update_produced_qty(pro_bean)
 			if self.purpose == "Manufacture/Repack":
@@ -749,7 +749,7 @@
 
 @frappe.whitelist()
 def make_return_jv(stock_entry):
-	se = frappe.bean("Stock Entry", stock_entry)
+	se = frappe.get_doc("Stock Entry", stock_entry)
 	if not se.purpose in ["Sales Return", "Purchase Return"]:
 		return
 	
@@ -840,7 +840,7 @@
 	
 	for se_item in se.get("mtn_details"):
 		for sales_invoice in invoices_against_delivery:
-			si = frappe.bean("Sales Invoice", sales_invoice)
+			si = frappe.get_doc("Sales Invoice", sales_invoice)
 			
 			if se_item.item_code in packing_item_parent_map:
 				ref_item = si.doclist.get({"item_code": packing_item_parent_map[se_item.item_code]})
@@ -897,7 +897,7 @@
 	
 	for se_item in se.get("mtn_details"):
 		for purchase_invoice in invoice_against_receipt:
-			pi = frappe.bean("Purchase Invoice", purchase_invoice)
+			pi = frappe.get_doc("Purchase Invoice", purchase_invoice)
 			ref_item = pi.doclist.get({"item_code": se_item.item_code})
 			
 			if not ref_item:
diff --git a/erpnext/stock/doctype/stock_entry/test_stock_entry.py b/erpnext/stock/doctype/stock_entry/test_stock_entry.py
index bcdc0fe..db816fd 100644
--- a/erpnext/stock/doctype/stock_entry/test_stock_entry.py
+++ b/erpnext/stock/doctype/stock_entry/test_stock_entry.py
@@ -22,11 +22,11 @@
 
 		frappe.db.set_value("Stock Settings", None, "auto_indent", True)
 
-		st1 = frappe.bean(copy=test_records[0])
+		st1 = frappe.get_doc(copy=test_records[0])
 		st1.insert()
 		st1.submit()
 
-		st2 = frappe.bean(copy=test_records[1])
+		st2 = frappe.get_doc(copy=test_records[1])
 		st2.insert()
 		st2.submit()
 				
@@ -45,7 +45,7 @@
 		self._clear_stock_account_balance()
 		set_perpetual_inventory()
 
-		mr = frappe.bean(copy=test_records[0])
+		mr = frappe.get_doc(copy=test_records[0])
 		mr.insert()
 		mr.submit()
 
@@ -77,7 +77,7 @@
 
 		self._insert_material_receipt()
 
-		mi = frappe.bean(copy=test_records[1])
+		mi = frappe.get_doc(copy=test_records[1])
 		mi.insert()
 		mi.submit()
 
@@ -113,7 +113,7 @@
 
 		self._insert_material_receipt()
 
-		mtn = frappe.bean(copy=test_records[2])
+		mtn = frappe.get_doc(copy=test_records[2])
 		mtn.insert()
 		mtn.submit()
 
@@ -149,7 +149,7 @@
 
 		self._insert_material_receipt()
 
-		repack = frappe.bean(copy=test_records[3])
+		repack = frappe.get_doc(copy=test_records[3])
 		repack.insert()
 		repack.submit()
 
@@ -170,7 +170,7 @@
 
 		self._insert_material_receipt()
 
-		repack = frappe.bean(copy=test_records[3])
+		repack = frappe.get_doc(copy=test_records[3])
 		repack.doclist[2].incoming_rate = 6000
 		repack.insert()
 		repack.submit()
@@ -218,11 +218,11 @@
 
 	def _insert_material_receipt(self):
 		self._clear_stock_account_balance()
-		se1 = frappe.bean(copy=test_records[0])
+		se1 = frappe.get_doc(copy=test_records[0])
 		se1.insert()
 		se1.submit()
 
-		se2 = frappe.bean(copy=test_records[0])
+		se2 = frappe.get_doc(copy=test_records[0])
 		se2.doclist[1].item_code = "_Test Item Home Desktop 100"
 		se2.insert()
 		se2.submit()
@@ -240,11 +240,11 @@
 			import test_records as sales_invoice_test_records
 
 		# invalid sales invoice as update stock not checked
-		si = frappe.bean(copy=sales_invoice_test_records[1])
+		si = frappe.get_doc(copy=sales_invoice_test_records[1])
 		si.insert()
 		si.submit()
 
-		se = frappe.bean(copy=test_records[0])
+		se = frappe.get_doc(copy=test_records[0])
 		se.purpose = "Sales Return"
 		se.sales_invoice_no = si.name
 		se.doclist[1].qty = returned_qty
@@ -257,7 +257,7 @@
 		actual_qty_0 = self._get_actual_qty()
 
 		# insert a pos invoice with update stock
-		si = frappe.bean(copy=sales_invoice_test_records[1])
+		si = frappe.get_doc(copy=sales_invoice_test_records[1])
 		si.is_pos = si.update_stock = 1
 		si.doclist[1].warehouse = "_Test Warehouse - _TC"
 		si.doclist[1].item_code = item_code
@@ -271,7 +271,7 @@
 		self.assertEquals(actual_qty_0 - delivered_qty, actual_qty_1)
 
 		# check if item is validated
-		se = frappe.bean(copy=test_records[0])
+		se = frappe.get_doc(copy=test_records[0])
 		se.purpose = "Sales Return"
 		se.sales_invoice_no = si.name
 		se.posting_date = "2013-03-10"
@@ -284,7 +284,7 @@
 		self.assertRaises(frappe.DoesNotExistError, se.insert)
 
 		# try again
-		se = frappe.bean(copy=test_records[0])
+		se = frappe.get_doc(copy=test_records[0])
 		se.purpose = "Sales Return"
 		se.posting_date = "2013-03-10"
 		se.fiscal_year = "_Test Fiscal Year 2013"
@@ -321,7 +321,7 @@
 
 		actual_qty_0 = self._get_actual_qty()
 		# make a delivery note based on this invoice
-		dn = frappe.bean(copy=delivery_note_test_records[0])
+		dn = frappe.get_doc(copy=delivery_note_test_records[0])
 		dn.doclist[1].item_code = item_code
 		dn.insert()
 		dn.submit()
@@ -332,7 +332,7 @@
 
 		si_doclist = make_sales_invoice(dn.name)
 
-		si = frappe.bean(si_doclist)
+		si = frappe.get_doc(si_doclist)
 		si.posting_date = dn.posting_date
 		si.debit_to = "_Test Customer - _TC"
 		for d in si.get("entries"):
@@ -342,7 +342,7 @@
 		si.submit()
 
 		# insert and submit stock entry for sales return
-		se = frappe.bean(copy=test_records[0])
+		se = frappe.get_doc(copy=test_records[0])
 		se.purpose = "Sales Return"
 		se.delivery_note_no = dn.name
 		se.posting_date = "2013-03-10"
@@ -410,7 +410,7 @@
 
 		actual_qty_0 = self._get_actual_qty()
 
-		so = frappe.bean(copy=sales_order_test_records[0])
+		so = frappe.get_doc(copy=sales_order_test_records[0])
 		so.doclist[1].item_code = item_code
 		so.doclist[1].qty = 5.0
 		so.insert()
@@ -418,7 +418,7 @@
 
 		dn_doclist = make_delivery_note(so.name)
 
-		dn = frappe.bean(dn_doclist)
+		dn = frappe.get_doc(dn_doclist)
 		dn.status = "Draft"
 		dn.posting_date = so.delivery_date
 		dn.insert()
@@ -430,7 +430,7 @@
 
 		si_doclist = make_sales_invoice(so.name)
 
-		si = frappe.bean(si_doclist)
+		si = frappe.get_doc(si_doclist)
 		si.posting_date = dn.posting_date
 		si.debit_to = "_Test Customer - _TC"
 		for d in si.get("entries"):
@@ -440,7 +440,7 @@
 		si.submit()
 
 		# insert and submit stock entry for sales return
-		se = frappe.bean(copy=test_records[0])
+		se = frappe.get_doc(copy=test_records[0])
 		se.purpose = "Sales Return"
 		se.delivery_note_no = dn.name
 		se.posting_date = "2013-03-10"
@@ -466,7 +466,7 @@
 		from erpnext.stock.doctype.purchase_receipt.purchase_receipt import make_purchase_invoice
 		
 		# submit purchase receipt
-		pr = frappe.bean(copy=purchase_receipt_test_records[0])
+		pr = frappe.get_doc(copy=purchase_receipt_test_records[0])
 		pr.insert()
 		pr.submit()
 
@@ -476,7 +476,7 @@
 
 		pi_doclist = make_purchase_invoice(pr.name)
 
-		pi = frappe.bean(pi_doclist)
+		pi = frappe.get_doc(pi_doclist)
 		pi.posting_date = pr.posting_date
 		pi.credit_to = "_Test Supplier - _TC"
 		for d in pi.get("entries"):
@@ -492,7 +492,7 @@
 		pi.submit()
 
 		# submit purchase return
-		se = frappe.bean(copy=test_records[0])
+		se = frappe.get_doc(copy=test_records[0])
 		se.purpose = "Purchase Return"
 		se.purchase_receipt_no = pr.name
 		se.posting_date = "2013-03-01"
@@ -518,7 +518,7 @@
 		prev_se, pr_docname = self.test_purchase_receipt_return()
 
 		# submit purchase return - return another 6 qtys so that exception is raised
-		se = frappe.bean(copy=test_records[0])
+		se = frappe.get_doc(copy=test_records[0])
 		se.purpose = "Purchase Return"
 		se.purchase_receipt_no = pr_docname
 		se.posting_date = "2013-03-01"
@@ -559,7 +559,7 @@
 			make_purchase_receipt, make_purchase_invoice
 
 		# submit purchase receipt
-		po = frappe.bean(copy=purchase_order_test_records[0])
+		po = frappe.get_doc(copy=purchase_order_test_records[0])
 		po.is_subcontracted = None
 		po.doclist[1].item_code = "_Test Item"
 		po.doclist[1].rate = 50
@@ -568,7 +568,7 @@
 
 		pr_doclist = make_purchase_receipt(po.name)
 
-		pr = frappe.bean(pr_doclist)
+		pr = frappe.get_doc(pr_doclist)
 		pr.posting_date = po.transaction_date
 		pr.insert()
 		pr.submit()
@@ -579,7 +579,7 @@
 
 		pi_doclist = make_purchase_invoice(po.name)
 
-		pi = frappe.bean(pi_doclist)
+		pi = frappe.get_doc(pi_doclist)
 		pi.posting_date = pr.posting_date
 		pi.credit_to = "_Test Supplier - _TC"
 		for d in pi.get("entries"):
@@ -594,7 +594,7 @@
 		pi.submit()
 
 		# submit purchase return
-		se = frappe.bean(copy=test_records[0])
+		se = frappe.get_doc(copy=test_records[0])
 		se.purpose = "Purchase Return"
 		se.purchase_receipt_no = pr.name
 		se.posting_date = "2013-03-01"
@@ -621,13 +621,13 @@
 		frappe.db.set_default("company", "_Test Company")
 
 	def test_serial_no_not_reqd(self):
-		se = frappe.bean(copy=test_records[0])
+		se = frappe.get_doc(copy=test_records[0])
 		se.doclist[1].serial_no = "ABCD"
 		se.insert()
 		self.assertRaises(SerialNoNotRequiredError, se.submit)
 
 	def test_serial_no_reqd(self):
-		se = frappe.bean(copy=test_records[0])
+		se = frappe.get_doc(copy=test_records[0])
 		se.doclist[1].item_code = "_Test Serialized Item"
 		se.doclist[1].qty = 2
 		se.doclist[1].transfer_qty = 2
@@ -635,7 +635,7 @@
 		self.assertRaises(SerialNoRequiredError, se.submit)
 
 	def test_serial_no_qty_more(self):
-		se = frappe.bean(copy=test_records[0])
+		se = frappe.get_doc(copy=test_records[0])
 		se.doclist[1].item_code = "_Test Serialized Item"
 		se.doclist[1].qty = 2
 		se.doclist[1].serial_no = "ABCD\nEFGH\nXYZ"
@@ -644,7 +644,7 @@
 		self.assertRaises(SerialNoQtyError, se.submit)
 
 	def test_serial_no_qty_less(self):
-		se = frappe.bean(copy=test_records[0])
+		se = frappe.get_doc(copy=test_records[0])
 		se.doclist[1].item_code = "_Test Serialized Item"
 		se.doclist[1].qty = 2
 		se.doclist[1].serial_no = "ABCD"
@@ -654,7 +654,7 @@
 
 	def test_serial_no_transfer_in(self):
 		self._clear_stock_account_balance()
-		se = frappe.bean(copy=test_records[0])
+		se = frappe.get_doc(copy=test_records[0])
 		se.doclist[1].item_code = "_Test Serialized Item"
 		se.doclist[1].qty = 2
 		se.doclist[1].serial_no = "ABCD\nEFGH"
@@ -670,7 +670,7 @@
 
 	def test_serial_no_not_exists(self):
 		self._clear_stock_account_balance()
-		se = frappe.bean(copy=test_records[0])
+		se = frappe.get_doc(copy=test_records[0])
 		se.purpose = "Material Issue"
 		se.doclist[1].item_code = "_Test Serialized Item"
 		se.doclist[1].qty = 2
@@ -685,7 +685,7 @@
 		self._clear_stock_account_balance()
 		self.test_serial_by_series()
 
-		se = frappe.bean(copy=test_records[0])
+		se = frappe.get_doc(copy=test_records[0])
 		se.doclist[1].item_code = "_Test Serialized Item With Series"
 		se.doclist[1].qty = 1
 		se.doclist[1].serial_no = "ABCD00001"
@@ -708,7 +708,7 @@
 		self._clear_stock_account_balance()
 		self.test_serial_by_series()
 
-		se = frappe.bean(copy=test_records[0])
+		se = frappe.get_doc(copy=test_records[0])
 		se.purpose = "Material Transfer"
 		se.doclist[1].item_code = "_Test Serialized Item"
 		se.doclist[1].qty = 1
@@ -724,7 +724,7 @@
 		se = make_serialized_item()
 		serial_no = get_serial_nos(se.doclist[1].serial_no)[0]
 
-		se = frappe.bean(copy=test_records[0])
+		se = frappe.get_doc(copy=test_records[0])
 		se.purpose = "Material Transfer"
 		se.doclist[1].item_code = "_Test Serialized Item With Series"
 		se.doclist[1].qty = 1
@@ -743,7 +743,7 @@
 		self._clear_stock_account_balance()
 		make_serialized_item()
 
-		se = frappe.bean(copy=test_records[0])
+		se = frappe.get_doc(copy=test_records[0])
 		se.purpose = "Material Transfer"
 		se.doclist[1].item_code = "_Test Serialized Item With Series"
 		se.doclist[1].qty = 1
@@ -765,12 +765,12 @@
 	def test_warehouse_company_validation(self):
 		set_perpetual_inventory(0)
 		self._clear_stock_account_balance()
-		frappe.bean("User", "test2@example.com").get_controller()\
+		frappe.get_doc("User", "test2@example.com").get_controller()\
 			.add_roles("Sales User", "Sales Manager", "Material User", "Material Manager")
 		frappe.set_user("test2@example.com")
 
 		from erpnext.stock.utils import InvalidWarehouseCompany
-		st1 = frappe.bean(copy=test_records[0])
+		st1 = frappe.get_doc(copy=test_records[0])
 		st1.doclist[1].t_warehouse="_Test Warehouse 2 - _TC1"
 		st1.insert()
 		self.assertRaises(InvalidWarehouseCompany, st1.submit)
@@ -783,19 +783,19 @@
 		
 		frappe.defaults.add_default("Warehouse", "_Test Warehouse 1 - _TC1", "test@example.com", "Restriction")
 		frappe.defaults.add_default("Warehouse", "_Test Warehouse 2 - _TC1", "test2@example.com", "Restriction")
-		frappe.bean("User", "test@example.com").get_controller()\
+		frappe.get_doc("User", "test@example.com").get_controller()\
 			.add_roles("Sales User", "Sales Manager", "Material User", "Material Manager")
-		frappe.bean("User", "test2@example.com").get_controller()\
+		frappe.get_doc("User", "test2@example.com").get_controller()\
 			.add_roles("Sales User", "Sales Manager", "Material User", "Material Manager")
 
 		frappe.set_user("test@example.com")
-		st1 = frappe.bean(copy=test_records[0])
+		st1 = frappe.get_doc(copy=test_records[0])
 		st1.company = "_Test Company 1"
 		st1.doclist[1].t_warehouse="_Test Warehouse 2 - _TC1"
 		self.assertRaises(BeanPermissionError, st1.insert)
 
 		frappe.set_user("test2@example.com")
-		st1 = frappe.bean(copy=test_records[0])
+		st1 = frappe.get_doc(copy=test_records[0])
 		st1.company = "_Test Company 1"
 		st1.doclist[1].t_warehouse="_Test Warehouse 2 - _TC1"
 		st1.insert()
@@ -811,18 +811,18 @@
 		# test freeze_stocks_upto
 		date_newer_than_test_records = add_days(getdate(test_records[0][0]['posting_date']), 5)
 		frappe.db.set_value("Stock Settings", None, "stock_frozen_upto", date_newer_than_test_records)
-		se = frappe.bean(copy=test_records[0]).insert()
+		se = frappe.get_doc(copy=test_records[0]).insert()
 		self.assertRaises (StockFreezeError, se.submit)
 		frappe.db.set_value("Stock Settings", None, "stock_frozen_upto", '')
 
 		# test freeze_stocks_upto_days
 		frappe.db.set_value("Stock Settings", None, "stock_frozen_upto_days", 7)
-		se = frappe.bean(copy=test_records[0]).insert()
+		se = frappe.get_doc(copy=test_records[0]).insert()
 		self.assertRaises (StockFreezeError, se.submit)
 		frappe.db.set_value("Stock Settings", None, "stock_frozen_upto_days", 0)
 
 def make_serialized_item():
-	se = frappe.bean(copy=test_records[0])
+	se = frappe.get_doc(copy=test_records[0])
 	se.doclist[1].item_code = "_Test Serialized Item With Series"
 	se.doclist[1].qty = 2
 	se.doclist[1].transfer_qty = 2
diff --git a/erpnext/stock/doctype/stock_ledger/stock_ledger.py b/erpnext/stock/doctype/stock_ledger/stock_ledger.py
index d0fe60a..4f287ac 100644
--- a/erpnext/stock/doctype/stock_ledger/stock_ledger.py
+++ b/erpnext/stock/doctype/stock_ledger/stock_ledger.py
@@ -42,7 +42,7 @@
 
 	def make_entry(self, args):
 		args.update({"doctype": "Stock Ledger Entry"})
-		sle = frappe.bean([args])
+		sle = frappe.get_doc([args])
 		sle.ignore_permissions = 1
 		sle.insert()
 		return sle.name
diff --git a/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py b/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py
index 60f37e1..2ddf831 100644
--- a/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py
+++ b/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py
@@ -97,7 +97,7 @@
 		# using try except to catch all validation msgs and display together
 		
 		try:
-			item = frappe.doc("Item", item_code)
+			item = frappe.get_doc("Item", item_code)
 			
 			# end of life and stock item
 			validate_end_of_life(item_code, item.end_of_life, verbose=0)
diff --git a/erpnext/stock/doctype/stock_reconciliation/test_stock_reconciliation.py b/erpnext/stock/doctype/stock_reconciliation/test_stock_reconciliation.py
index ca1519c..0438d6e 100644
--- a/erpnext/stock/doctype/stock_reconciliation/test_stock_reconciliation.py
+++ b/erpnext/stock/doctype/stock_reconciliation/test_stock_reconciliation.py
@@ -175,7 +175,7 @@
 		frappe.db.sql("delete from `tabGL Entry`")
 						
 	def submit_stock_reconciliation(self, qty, rate, posting_date, posting_time):
-		stock_reco = frappe.bean([{
+		stock_reco = frappe.get_doc([{
 			"doctype": "Stock Reconciliation",
 			"posting_date": posting_date,
 			"posting_time": posting_time,
@@ -221,11 +221,11 @@
 			}, 
 		]
 			
-		pr = frappe.bean(copy=stock_entry)
+		pr = frappe.get_doc(copy=stock_entry)
 		pr.insert()
 		pr.submit()
 		
-		pr1 = frappe.bean(copy=stock_entry)
+		pr1 = frappe.get_doc(copy=stock_entry)
 		pr1.posting_date = "2012-12-15"
 		pr1.posting_time = "02:00"
 		pr1.doclist[1].qty = 10
@@ -234,7 +234,7 @@
 		pr1.insert()
 		pr1.submit()
 		
-		pr2 = frappe.bean(copy=stock_entry)
+		pr2 = frappe.get_doc(copy=stock_entry)
 		pr2.posting_date = "2012-12-25"
 		pr2.posting_time = "03:00"
 		pr2.purpose = "Material Issue"
@@ -246,7 +246,7 @@
 		pr2.insert()
 		pr2.submit()
 		
-		pr3 = frappe.bean(copy=stock_entry)
+		pr3 = frappe.get_doc(copy=stock_entry)
 		pr3.posting_date = "2012-12-31"
 		pr3.posting_time = "08:00"
 		pr3.purpose = "Material Issue"
@@ -259,7 +259,7 @@
 		pr3.submit()
 		
 		
-		pr4 = frappe.bean(copy=stock_entry)
+		pr4 = frappe.get_doc(copy=stock_entry)
 		pr4.posting_date = "2013-01-05"
 		pr4.fiscal_year = "_Test Fiscal Year 2013"
 		pr4.posting_time = "07:00"
diff --git a/erpnext/stock/doctype/stock_uom_replace_utility/stock_uom_replace_utility.py b/erpnext/stock/doctype/stock_uom_replace_utility/stock_uom_replace_utility.py
index 28972d3..48f5a3d 100644
--- a/erpnext/stock/doctype/stock_uom_replace_utility/stock_uom_replace_utility.py
+++ b/erpnext/stock/doctype/stock_uom_replace_utility/stock_uom_replace_utility.py
@@ -34,7 +34,7 @@
 			raise Exception
 			
 	def update_item_master(self):
-		item_bean = frappe.bean("Item", self.item_code)
+		item_bean = frappe.get_doc("Item", self.item_code)
 		item_bean.stock_uom = self.new_stock_uom
 		item_bean.save()
 		
diff --git a/erpnext/stock/doctype/warehouse/warehouse.py b/erpnext/stock/doctype/warehouse/warehouse.py
index d621985..0bb70a5 100644
--- a/erpnext/stock/doctype/warehouse/warehouse.py
+++ b/erpnext/stock/doctype/warehouse/warehouse.py
@@ -28,7 +28,7 @@
 					{"account_type": "Warehouse", "company": self.company, 
 					"master_name": self.name}, ["name", "parent_account"])
 				if warehouse_account and warehouse_account[1] != self.create_account_under:
-					acc_bean = frappe.bean("Account", warehouse_account[0])
+					acc_bean = frappe.get_doc("Account", warehouse_account[0])
 					acc_bean.parent_account = self.create_account_under
 					acc_bean.save()
 				
@@ -43,7 +43,7 @@
 				if self.get("__islocal") or not frappe.db.get_value(
 						"Stock Ledger Entry", {"warehouse": self.name}):
 					self.validate_parent_account()
-					ac_bean = frappe.bean({
+					ac_bean = frappe.get_doc({
 						"doctype": "Account",
 						'account_name': self.warehouse_name, 
 						'parent_account': self.create_account_under, 
diff --git a/erpnext/stock/get_item_details.py b/erpnext/stock/get_item_details.py
index 1bf431a..f4588f5 100644
--- a/erpnext/stock/get_item_details.py
+++ b/erpnext/stock/get_item_details.py
@@ -47,7 +47,7 @@
 	elif not args.item_code and args.serial_no:
 		args.item_code = get_item_code(serial_no=args.serial_no)
 	
-	item_bean = frappe.bean("Item", args.item_code)
+	item_bean = frappe.get_doc("Item", args.item_code)
 	item = item_bean.doc
 
 	validate_item_details(args, item)
diff --git a/erpnext/stock/stock_ledger.py b/erpnext/stock/stock_ledger.py
index e812285..c8921d6 100644
--- a/erpnext/stock/stock_ledger.py
+++ b/erpnext/stock/stock_ledger.py
@@ -49,7 +49,7 @@
 		
 def make_entry(args):
 	args.update({"doctype": "Stock Ledger Entry"})
-	sle = frappe.bean([args])
+	sle = frappe.get_doc([args])
 	sle.ignore_permissions = 1
 	sle.insert()
 	sle.submit()
@@ -137,7 +137,7 @@
 	# update bin
 	if not frappe.db.exists({"doctype": "Bin", "item_code": args["item_code"], 
 			"warehouse": args["warehouse"]}):
-		bin_wrapper = frappe.bean([{
+		bin_wrapper = frappe.get_doc([{
 			"doctype": "Bin",
 			"item_code": args["item_code"],
 			"warehouse": args["warehouse"],
diff --git a/erpnext/stock/utils.py b/erpnext/stock/utils.py
index 981f674..2f28e1a 100644
--- a/erpnext/stock/utils.py
+++ b/erpnext/stock/utils.py
@@ -40,7 +40,7 @@
 def get_bin(item_code, warehouse):
 	bin = frappe.db.get_value("Bin", {"item_code": item_code, "warehouse": warehouse})
 	if not bin:
-		bin_wrapper = frappe.bean([{
+		bin_wrapper = frappe.get_doc([{
 			"doctype": "Bin",
 			"item_code": item_code,
 			"warehouse": warehouse,
@@ -246,7 +246,7 @@
 				}]
 			
 				for d in items:
-					item = frappe.doc("Item", d.item_code)
+					item = frappe.get_doc("Item", d.item_code)
 					mr.append({
 						"doctype": "Material Request Item",
 						"parenttype": "Material Request",
@@ -262,7 +262,7 @@
 						"brand": item.brand,
 					})
 			
-				mr_bean = frappe.bean(mr)
+				mr_bean = frappe.get_doc(mr)
 				mr_bean.insert()
 				mr_bean.submit()
 				mr_list.append(mr_bean)