diff --git a/erpnext/accounts/doctype/journal_entry/journal_entry.py b/erpnext/accounts/doctype/journal_entry/journal_entry.py
index a64548b..9c39f0d 100644
--- a/erpnext/accounts/doctype/journal_entry/journal_entry.py
+++ b/erpnext/accounts/doctype/journal_entry/journal_entry.py
@@ -351,6 +351,7 @@
 	def set_print_format_fields(self):
 		total_amount = 0.0
 		bank_account_currency = None
+		self.pay_to_recd_from = None
 		for d in self.get('accounts'):
 			if d.party_type and d.party:
 				if not self.pay_to_recd_from:
@@ -360,7 +361,10 @@
 			elif frappe.db.get_value("Account", d.account, "account_type") in ["Bank", "Cash"]:
 				total_amount += (d.debit_in_account_currency or d.credit_in_account_currency)
 				bank_account_currency = d.account_currency
-
+		
+		if not self.pay_to_recd_from:
+			total_amount = 0
+		
 		self.set_total_amount(total_amount, bank_account_currency)
 
 	def set_total_amount(self, amt, currency):
diff --git a/erpnext/accounts/doctype/pricing_rule/pricing_rule.py b/erpnext/accounts/doctype/pricing_rule/pricing_rule.py
index 494e70c..fcc1f92 100644
--- a/erpnext/accounts/doctype/pricing_rule/pricing_rule.py
+++ b/erpnext/accounts/doctype/pricing_rule/pricing_rule.py
@@ -97,7 +97,10 @@
 		args = json.loads(args)
 
 	args = frappe._dict(args)
-
+	
+	if not args.transaction_type:
+		set_transaction_type(args)
+				
 	# list of dictionaries
 	out = []
 
@@ -134,13 +137,17 @@
 		if not args.item_group:
 			frappe.throw(_("Item Group not mentioned in item master for item {0}").format(args.item_code))
 
-	if args.customer and not (args.customer_group and args.territory):
-		customer = frappe.db.get_value("Customer", args.customer, ["customer_group", "territory"])
-		if customer:
-			args.customer_group, args.territory = customer
+	if args.transaction_type=="selling":
+		if args.customer and not (args.customer_group and args.territory):
+			customer = frappe.db.get_value("Customer", args.customer, ["customer_group", "territory"])
+			if customer:
+				args.customer_group, args.territory = customer
+				
+		args.supplier = args.supplier_type = None
 
 	elif args.supplier and not args.supplier_type:
 		args.supplier_type = frappe.db.get_value("Supplier", args.supplier, "supplier_type")
+		args.customer = args.customer_group = args.territory = None
 
 	pricing_rules = get_pricing_rules(args)
 	pricing_rule = filter_pricing_rules(args, pricing_rules)
@@ -212,7 +219,7 @@
 			and {transaction_type} = 1 {conditions}
 		order by priority desc, name desc""".format(
 			item_group_condition=item_group_condition,
-			transaction_type= "selling" if (args.customer or args.lead) else "buying",
+			transaction_type= args.transaction_type,
 			conditions=conditions), values, as_dict=1)
 
 def filter_pricing_rules(args, pricing_rules):
@@ -270,3 +277,14 @@
 			if filtered_rules: break
 
 	return filtered_rules or pricing_rules
+
+def set_transaction_type(args):
+	if args.doctype in ("Opportunity", "Quotation", "Sales Order", "Delivery Note", "Sales Invoice"):
+		args.transaction_type = "selling"
+	elif args.doctype in ("Material Request", "Supplier Quotation", "Purchase Order", 
+		"Purchase Receipt", "Purchase Invoice"):
+			args.transaction_type = "buying"
+	elif args.customer:
+		args.transaction_type = "selling"
+	else:
+		args.transaction_type = "buying"
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/pricing_rule/test_pricing_rule.py b/erpnext/accounts/doctype/pricing_rule/test_pricing_rule.py
index 6edfaff..bdd7431 100644
--- a/erpnext/accounts/doctype/pricing_rule/test_pricing_rule.py
+++ b/erpnext/accounts/doctype/pricing_rule/test_pricing_rule.py
@@ -31,21 +31,22 @@
 			"company": "_Test Company",
 			"price_list": "_Test Price List",
 			"currency": "_Test Currency",
-			"parenttype": "Sales Order",
+			"doctype": "Sales Order",
 			"conversion_rate": 1,
 			"price_list_currency": "_Test Currency",
 			"plc_conversion_rate": 1,
 			"order_type": "Sales",
 			"customer": "_Test Customer",
-			"doctype": "Sales Order Item",
 			"name": None
 		})
 		details = get_item_details(args)
 		self.assertEquals(details.get("discount_percentage"), 10)
-
+		
 		prule = frappe.get_doc(test_record.copy())
 		prule.applicable_for = "Customer"
+		prule.title = "_Test Pricing Rule for Customer"
 		self.assertRaises(MandatoryError, prule.insert)
+		
 		prule.customer = "_Test Customer"
 		prule.discount_percentage = 20
 		prule.insert()
@@ -55,16 +56,18 @@
 		prule = frappe.get_doc(test_record.copy())
 		prule.apply_on = "Item Group"
 		prule.item_group = "All Item Groups"
+		prule.title = "_Test Pricing Rule for Item Group"
 		prule.discount_percentage = 15
 		prule.insert()
-
-		args.customer = None
+		
+		args.customer = "_Test Customer 1"
 		details = get_item_details(args)
 		self.assertEquals(details.get("discount_percentage"), 10)
 
 		prule = frappe.get_doc(test_record.copy())
 		prule.applicable_for = "Campaign"
 		prule.campaign = "_Test Campaign"
+		prule.title = "_Test Pricing Rule for Campaign"
 		prule.discount_percentage = 5
 		prule.priority = 8
 		prule.insert()
diff --git a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py
index b4c81df..5d91426 100644
--- a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py
+++ b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py
@@ -261,15 +261,19 @@
 		gl_entries = []
 
 		# parent's gl entry
-		if self.base_grand_total:
+		if self.grand_total:
+			# Didnot use base_grand_total to book rounding loss gle
+			grand_total_in_company_currency = flt(self.grand_total * self.conversion_rate, 
+				self.precision("grand_total"))
+			
 			gl_entries.append(
 				self.get_gl_dict({
 					"account": self.credit_to,
 					"party_type": "Supplier",
 					"party": self.supplier,
 					"against": self.against_expense_account,
-					"credit": self.base_grand_total,
-					"credit_in_account_currency": self.base_grand_total \
+					"credit": grand_total_in_company_currency,
+					"credit_in_account_currency": grand_total_in_company_currency \
 						if self.party_account_currency==self.company_currency else self.grand_total,
 					"against_voucher": self.return_against if cint(self.is_return) else self.name,
 					"against_voucher_type": self.doctype,
diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
index a0ce980..e87794a 100644
--- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
+++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
@@ -531,14 +531,18 @@
 
 	def make_customer_gl_entry(self, gl_entries):
 		if self.grand_total:
+			# Didnot use base_grand_total to book rounding loss gle
+			grand_total_in_company_currency = flt(self.grand_total * self.conversion_rate, 
+				self.precision("grand_total"))
+				
 			gl_entries.append(
 				self.get_gl_dict({
 					"account": self.debit_to,
 					"party_type": "Customer",
 					"party": self.customer,
 					"against": self.against_income_account,
-					"debit": self.base_grand_total,
-					"debit_in_account_currency": self.base_grand_total \
+					"debit": grand_total_in_company_currency,
+					"debit_in_account_currency": grand_total_in_company_currency \
 						if self.party_account_currency==self.company_currency else self.grand_total,
 					"against_voucher": self.return_against if cint(self.is_return) else self.name,
 					"against_voucher_type": self.doctype
diff --git a/erpnext/accounts/general_ledger.py b/erpnext/accounts/general_ledger.py
index 49a7bd0..6488288 100644
--- a/erpnext/accounts/general_ledger.py
+++ b/erpnext/accounts/general_ledger.py
@@ -141,6 +141,8 @@
 
 	round_off_gle.update({
 		"account": round_off_account,
+		"debit_in_account_currency": abs(debit_credit_diff) if debit_credit_diff < 0 else 0,
+		"credit_in_account_currency": debit_credit_diff if debit_credit_diff > 0 else 0,
 		"debit": abs(debit_credit_diff) if debit_credit_diff < 0 else 0,
 		"credit": debit_credit_diff if debit_credit_diff > 0 else 0,
 		"cost_center": round_off_cost_center,
diff --git a/erpnext/accounts/report/gross_profit/gross_profit.py b/erpnext/accounts/report/gross_profit/gross_profit.py
index 8d9684c..3c90fe2 100644
--- a/erpnext/accounts/report/gross_profit/gross_profit.py
+++ b/erpnext/accounts/report/gross_profit/gross_profit.py
@@ -7,7 +7,9 @@
 from frappe.utils import flt
 
 def execute(filters=None):
-	if not filters: filters = {}
+	if not filters: filters = frappe._dict()
+	company_currency = frappe.db.get_value("Company", filters.company, "default_currency")
+	
 	gross_profit_data = GrossProfitGenerator(filters)
 
 	data = []
@@ -43,6 +45,8 @@
 		row = []
 		for col in group_wise_columns.get(scrub(filters.group_by)):
 			row.append(src.get(col))
+			
+		row.append(company_currency)
 		data.append(row)
 
 	return columns, data
@@ -60,15 +64,15 @@
 		"description": _("Description"),
 		"warehouse": _("Warehouse") + ":Link/Warehouse",
 		"qty": _("Qty") + ":Float",
-		"base_rate": _("Avg. Selling Rate") + ":Currency",
-		"buying_rate": _("Avg. Buying Rate") + ":Currency",
-		"base_amount": _("Selling Amount") + ":Currency",
-		"buying_amount": _("Buying Amount") + ":Currency",
-		"gross_profit": _("Gross Profit") + ":Currency",
+		"base_rate": _("Avg. Selling Rate") + ":Currency/currency",
+		"buying_rate": _("Avg. Buying Rate") + ":Currency/currency",
+		"base_amount": _("Selling Amount") + ":Currency/currency",
+		"buying_amount": _("Buying Amount") + ":Currency/currency",
+		"gross_profit": _("Gross Profit") + ":Currency/currency",
 		"gross_profit_percent": _("Gross Profit %") + ":Percent",
 		"project": _("Project") + ":Link/Project",
 		"sales_person": _("Sales person"),
-		"allocated_amount": _("Allocated Amount") + ":Currency",
+		"allocated_amount": _("Allocated Amount") + ":Currency/currency",
 		"customer": _("Customer") + ":Link/Customer",
 		"customer_group": _("Customer Group") + ":Link/Customer Group",
 		"territory": _("Territory") + ":Link/Territory"
@@ -76,6 +80,13 @@
 
 	for col in group_wise_columns.get(scrub(filters.group_by)):
 		columns.append(column_map.get(col))
+				
+	columns.append({
+		"fieldname": "currency",
+		"label" : _("Currency"),
+		"fieldtype": "Link",
+		"options": "Currency"
+	})
 
 	return columns
 
diff --git a/erpnext/controllers/accounts_controller.py b/erpnext/controllers/accounts_controller.py
index c3da6b2..5c84112 100644
--- a/erpnext/controllers/accounts_controller.py
+++ b/erpnext/controllers/accounts_controller.py
@@ -152,8 +152,8 @@
 					args = parent_dict.copy()
 					args.update(item.as_dict())
 
-					args["doctype"] = parent_dict.get("doctype")
-					args["name"] = parent_dict.get("name")
+					args["doctype"] = self.doctype
+					args["name"] = self.name
 
 					if not args.get("transaction_date"):
 						args["transaction_date"] = args.get("posting_date")
diff --git a/erpnext/controllers/queries.py b/erpnext/controllers/queries.py
index 3c262f1..ca431ce 100644
--- a/erpnext/controllers/queries.py
+++ b/erpnext/controllers/queries.py
@@ -158,7 +158,7 @@
 def item_query(doctype, txt, searchfield, start, page_len, filters):
 	conditions = []
 
-	return frappe.db.sql("""select tabItem.name,
+	return frappe.db.sql("""select tabItem.name,tabItem.item_group,
 		if(length(tabItem.item_name) > 40,
 			concat(substr(tabItem.item_name, 1, 40), "..."), item_name) as item_name,
 		if(length(tabItem.description) > 40, \
diff --git a/erpnext/controllers/sales_and_purchase_return.py b/erpnext/controllers/sales_and_purchase_return.py
index c6c7111..868720a 100644
--- a/erpnext/controllers/sales_and_purchase_return.py
+++ b/erpnext/controllers/sales_and_purchase_return.py
@@ -96,6 +96,9 @@
 							if s not in ref_serial_nos:
 								frappe.throw(_("Row # {0}: Serial No {1} does not match with {2} {3}")
 									.format(d.idx, s, doc.doctype, doc.return_against))
+									
+				if not d.warehouse:
+					frappe.throw(_("Warehouse is mandatory"))
 
 			items_returned = True
 
diff --git a/erpnext/controllers/stock_controller.py b/erpnext/controllers/stock_controller.py
index 842faec..4c6a320 100644
--- a/erpnext/controllers/stock_controller.py
+++ b/erpnext/controllers/stock_controller.py
@@ -218,14 +218,14 @@
 
 		return serialized_items
 
-	def get_incoming_rate_for_sales_return(self, item_code, warehouse, against_document):
+	def get_incoming_rate_for_sales_return(self, item_code, against_document):
 		incoming_rate = 0.0
 		if against_document and item_code:
 			incoming_rate = frappe.db.sql("""select abs(stock_value_difference / actual_qty)
 				from `tabStock Ledger Entry`
 				where voucher_type = %s and voucher_no = %s
-					and item_code = %s and warehouse=%s limit 1""",
-				(self.doctype, against_document, item_code, warehouse))
+					and item_code = %s limit 1""",
+				(self.doctype, against_document, item_code))
 			incoming_rate = incoming_rate[0][0] if incoming_rate else 0.0
 
 		return incoming_rate
@@ -257,8 +257,7 @@
 			if frappe.db.get_value("Item", d.item_code, "is_stock_item") == 1 and flt(d.qty):
 				return_rate = 0
 				if cint(self.is_return) and self.return_against and self.docstatus==1:
-					return_rate = self.get_incoming_rate_for_sales_return(d.item_code,
-						d.warehouse, self.return_against)
+					return_rate = self.get_incoming_rate_for_sales_return(d.item_code, self.return_against)
 
 				# On cancellation or if return entry submission, make stock ledger entry for
 				# target warehouse first, to update serial no values properly
diff --git a/erpnext/controllers/taxes_and_totals.py b/erpnext/controllers/taxes_and_totals.py
index b5b3e53..6a0b3c0 100644
--- a/erpnext/controllers/taxes_and_totals.py
+++ b/erpnext/controllers/taxes_and_totals.py
@@ -408,8 +408,9 @@
 			total_amount_to_pay = flt(self.doc.grand_total  - self.doc.total_advance 
 				- flt(self.doc.write_off_amount), self.doc.precision("grand_total"))
 		else:
-			total_amount_to_pay = flt(self.doc.base_grand_total  - self.doc.total_advance 
-				- flt(self.doc.base_write_off_amount), self.doc.precision("grand_total"))
+			total_amount_to_pay = flt(flt(self.doc.grand_total *
+				self.doc.conversion_rate, self.doc.precision("grand_total")) - self.doc.total_advance 
+					- flt(self.doc.base_write_off_amount), self.doc.precision("grand_total"))
 			
 		if self.doc.doctype == "Sales Invoice":
 			self.doc.round_floats_in(self.doc, ["paid_amount"])
diff --git a/erpnext/crm/doctype/opportunity/opportunity.py b/erpnext/crm/doctype/opportunity/opportunity.py
index a21ebde..866b982 100644
--- a/erpnext/crm/doctype/opportunity/opportunity.py
+++ b/erpnext/crm/doctype/opportunity/opportunity.py
@@ -9,7 +9,6 @@
 from erpnext.setup.utils import get_exchange_rate
 from erpnext.utilities.transaction_base import TransactionBase
 from erpnext.accounts.party import get_party_account_currency
-from erpnext.stock.get_item_details import apply_price_list
 
 subject_field = "title"
 sender_field = "contact_email"
@@ -193,8 +192,6 @@
 		quotation.currency = party_account_currency or company_currency
 		quotation.conversion_rate = exchange_rate
 
-		quotation.update(apply_price_list(quotation.as_dict(), as_doc = True))
-
 		quotation.run_method("set_missing_values")
 		quotation.run_method("calculate_taxes_and_totals")
 
diff --git a/erpnext/docs/assets/img/articles/$SGrab_383.png b/erpnext/docs/assets/img/articles/$SGrab_383.png
deleted file mode 100644
index 720ecdf..0000000
--- a/erpnext/docs/assets/img/articles/$SGrab_383.png
+++ /dev/null
Binary files differ
diff --git a/erpnext/docs/assets/img/articles/$SGrab_389.png b/erpnext/docs/assets/img/articles/$SGrab_389.png
deleted file mode 100644
index ee1b8cb..0000000
--- a/erpnext/docs/assets/img/articles/$SGrab_389.png
+++ /dev/null
Binary files differ
diff --git a/erpnext/docs/assets/img/articles/$SGrab_390.png b/erpnext/docs/assets/img/articles/$SGrab_390.png
deleted file mode 100644
index b936c07..0000000
--- a/erpnext/docs/assets/img/articles/$SGrab_390.png
+++ /dev/null
Binary files differ
diff --git a/erpnext/docs/assets/img/articles/$SGrab_391.png b/erpnext/docs/assets/img/articles/$SGrab_391.png
deleted file mode 100644
index 79595ae..0000000
--- a/erpnext/docs/assets/img/articles/$SGrab_391.png
+++ /dev/null
Binary files differ
diff --git a/erpnext/docs/assets/img/articles/$SGrab_392.png b/erpnext/docs/assets/img/articles/$SGrab_392.png
deleted file mode 100644
index 677e7c9..0000000
--- a/erpnext/docs/assets/img/articles/$SGrab_392.png
+++ /dev/null
Binary files differ
diff --git a/erpnext/docs/assets/img/articles/Screen Shot 2015-02-16 at 2.52.56 pm.png b/erpnext/docs/assets/img/articles/Screen Shot 2015-02-16 at 2.52.56 pm.png
deleted file mode 100644
index e20b65f..0000000
--- a/erpnext/docs/assets/img/articles/Screen Shot 2015-02-16 at 2.52.56 pm.png
+++ /dev/null
Binary files differ
diff --git a/erpnext/docs/assets/img/articles/Screen Shot 2015-02-19 at 5.13.50 pm.png b/erpnext/docs/assets/img/articles/Screen Shot 2015-02-19 at 5.13.50 pm.png
deleted file mode 100644
index f446efc..0000000
--- a/erpnext/docs/assets/img/articles/Screen Shot 2015-02-19 at 5.13.50 pm.png
+++ /dev/null
Binary files differ
diff --git a/erpnext/docs/assets/img/articles/Screen Shot 2015-02-19 at 5.20.52 pm.png b/erpnext/docs/assets/img/articles/Screen Shot 2015-02-19 at 5.20.52 pm.png
deleted file mode 100644
index 404a1cd..0000000
--- a/erpnext/docs/assets/img/articles/Screen Shot 2015-02-19 at 5.20.52 pm.png
+++ /dev/null
Binary files differ
diff --git a/erpnext/docs/assets/img/articles/Selection_049.png b/erpnext/docs/assets/img/articles/Selection_049.png
deleted file mode 100644
index 2cf490e..0000000
--- a/erpnext/docs/assets/img/articles/Selection_049.png
+++ /dev/null
Binary files differ
diff --git a/erpnext/docs/assets/img/articles/Selection_054.png b/erpnext/docs/assets/img/articles/Selection_054.png
deleted file mode 100644
index a17b1ea..0000000
--- a/erpnext/docs/assets/img/articles/Selection_054.png
+++ /dev/null
Binary files differ
diff --git a/erpnext/docs/assets/img/articles/Selection_061.png b/erpnext/docs/assets/img/articles/Selection_061.png
deleted file mode 100644
index 176d8c5..0000000
--- a/erpnext/docs/assets/img/articles/Selection_061.png
+++ /dev/null
Binary files differ
diff --git a/erpnext/docs/assets/img/articles/Selection_062.png b/erpnext/docs/assets/img/articles/Selection_062.png
deleted file mode 100644
index a230c93..0000000
--- a/erpnext/docs/assets/img/articles/Selection_062.png
+++ /dev/null
Binary files differ
diff --git a/erpnext/docs/assets/img/articles/Selection_071.png b/erpnext/docs/assets/img/articles/Selection_071.png
deleted file mode 100644
index 86b7cff..0000000
--- a/erpnext/docs/assets/img/articles/Selection_071.png
+++ /dev/null
Binary files differ
diff --git a/erpnext/docs/assets/img/articles/Selection_072.png b/erpnext/docs/assets/img/articles/Selection_072.png
deleted file mode 100644
index e8dd519..0000000
--- a/erpnext/docs/assets/img/articles/Selection_072.png
+++ /dev/null
Binary files differ
diff --git a/erpnext/docs/assets/img/articles/Selection_440.png b/erpnext/docs/assets/img/articles/Selection_440.png
deleted file mode 100644
index 63fb04c..0000000
--- a/erpnext/docs/assets/img/articles/Selection_440.png
+++ /dev/null
Binary files differ
diff --git a/erpnext/docs/assets/img/articles/Selection_442.png b/erpnext/docs/assets/img/articles/Selection_442.png
deleted file mode 100644
index 55d0735..0000000
--- a/erpnext/docs/assets/img/articles/Selection_442.png
+++ /dev/null
Binary files differ
diff --git a/erpnext/docs/assets/img/articles/Selection_443.png b/erpnext/docs/assets/img/articles/Selection_443.png
deleted file mode 100644
index 6d045f2..0000000
--- a/erpnext/docs/assets/img/articles/Selection_443.png
+++ /dev/null
Binary files differ
diff --git a/erpnext/docs/assets/img/articles/Selection_445.png b/erpnext/docs/assets/img/articles/Selection_445.png
deleted file mode 100644
index bab8185..0000000
--- a/erpnext/docs/assets/img/articles/Selection_445.png
+++ /dev/null
Binary files differ
diff --git a/erpnext/docs/assets/img/articles/Selection_446.png b/erpnext/docs/assets/img/articles/Selection_446.png
deleted file mode 100644
index ecd0edd..0000000
--- a/erpnext/docs/assets/img/articles/Selection_446.png
+++ /dev/null
Binary files differ
diff --git a/erpnext/docs/assets/img/articles/Selection_447.png b/erpnext/docs/assets/img/articles/Selection_447.png
deleted file mode 100644
index 683c289..0000000
--- a/erpnext/docs/assets/img/articles/Selection_447.png
+++ /dev/null
Binary files differ
diff --git a/erpnext/docs/assets/img/articles/allowance-percentage-1.png b/erpnext/docs/assets/img/articles/allowance-percentage-1.png
new file mode 100644
index 0000000..4fbed90
--- /dev/null
+++ b/erpnext/docs/assets/img/articles/allowance-percentage-1.png
Binary files differ
diff --git a/erpnext/docs/assets/img/articles/allowance-percentage-2.png b/erpnext/docs/assets/img/articles/allowance-percentage-2.png
new file mode 100644
index 0000000..a7b9688
--- /dev/null
+++ b/erpnext/docs/assets/img/articles/allowance-percentage-2.png
Binary files differ
diff --git a/erpnext/docs/assets/img/articles/allowance_percentage.png b/erpnext/docs/assets/img/articles/allowance_percentage.png
deleted file mode 100644
index 519a837..0000000
--- a/erpnext/docs/assets/img/articles/allowance_percentage.png
+++ /dev/null
Binary files differ
diff --git a/erpnext/docs/assets/img/articles/allowance_percentage_item.png b/erpnext/docs/assets/img/articles/allowance_percentage_item.png
deleted file mode 100644
index 3d30fdc..0000000
--- a/erpnext/docs/assets/img/articles/allowance_percentage_item.png
+++ /dev/null
Binary files differ
diff --git a/erpnext/docs/assets/img/articles/barcode-feature-setup.png b/erpnext/docs/assets/img/articles/barcode-feature-setup.png
new file mode 100644
index 0000000..0a097ef
--- /dev/null
+++ b/erpnext/docs/assets/img/articles/barcode-feature-setup.png
Binary files differ
diff --git a/erpnext/docs/assets/img/articles/barcode-item-master.png b/erpnext/docs/assets/img/articles/barcode-item-master.png
new file mode 100644
index 0000000..57b5fcc
--- /dev/null
+++ b/erpnext/docs/assets/img/articles/barcode-item-master.png
Binary files differ
diff --git a/erpnext/docs/assets/img/articles/barcode-item-selection.gif b/erpnext/docs/assets/img/articles/barcode-item-selection.gif
new file mode 100644
index 0000000..55f3465
--- /dev/null
+++ b/erpnext/docs/assets/img/articles/barcode-item-selection.gif
Binary files differ
diff --git a/erpnext/docs/assets/img/articles/batchwise-stock-1.png b/erpnext/docs/assets/img/articles/batchwise-stock-1.png
new file mode 100644
index 0000000..4477425
--- /dev/null
+++ b/erpnext/docs/assets/img/articles/batchwise-stock-1.png
Binary files differ
diff --git a/erpnext/docs/assets/img/articles/batchwise-stock-2.png b/erpnext/docs/assets/img/articles/batchwise-stock-2.png
new file mode 100644
index 0000000..5d9b9b4
--- /dev/null
+++ b/erpnext/docs/assets/img/articles/batchwise-stock-2.png
Binary files differ
diff --git a/erpnext/docs/assets/img/articles/batchwise-stock-3.png b/erpnext/docs/assets/img/articles/batchwise-stock-3.png
new file mode 100644
index 0000000..2fa7712
--- /dev/null
+++ b/erpnext/docs/assets/img/articles/batchwise-stock-3.png
Binary files differ
diff --git a/erpnext/docs/assets/img/articles/batchwise-stock-4.png b/erpnext/docs/assets/img/articles/batchwise-stock-4.png
new file mode 100644
index 0000000..e6a22f3
--- /dev/null
+++ b/erpnext/docs/assets/img/articles/batchwise-stock-4.png
Binary files differ
diff --git a/erpnext/docs/assets/img/articles/delivery-note-barcode.png b/erpnext/docs/assets/img/articles/delivery-note-barcode.png
deleted file mode 100644
index 25814c6..0000000
--- a/erpnext/docs/assets/img/articles/delivery-note-barcode.png
+++ /dev/null
Binary files differ
diff --git a/erpnext/docs/assets/img/articles/difference-account-1.png b/erpnext/docs/assets/img/articles/difference-account-1.png
new file mode 100644
index 0000000..d812b70
--- /dev/null
+++ b/erpnext/docs/assets/img/articles/difference-account-1.png
Binary files differ
diff --git a/erpnext/docs/assets/img/articles/feature-setup-barcode.png b/erpnext/docs/assets/img/articles/feature-setup-barcode.png
deleted file mode 100644
index 667e3a1..0000000
--- a/erpnext/docs/assets/img/articles/feature-setup-barcode.png
+++ /dev/null
Binary files differ
diff --git a/erpnext/docs/assets/img/articles/fixed-asset-dep-1.gif b/erpnext/docs/assets/img/articles/fixed-asset-dep-1.gif
new file mode 100644
index 0000000..e6330ad
--- /dev/null
+++ b/erpnext/docs/assets/img/articles/fixed-asset-dep-1.gif
Binary files differ
diff --git a/erpnext/docs/assets/img/articles/fixed-asset-dep-2.png b/erpnext/docs/assets/img/articles/fixed-asset-dep-2.png
new file mode 100644
index 0000000..0679403
--- /dev/null
+++ b/erpnext/docs/assets/img/articles/fixed-asset-dep-2.png
Binary files differ
diff --git a/erpnext/docs/assets/img/articles/fixed-asset-dep-2.textClipping b/erpnext/docs/assets/img/articles/fixed-asset-dep-2.textClipping
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/docs/assets/img/articles/fixed-asset-dep-2.textClipping
diff --git a/erpnext/docs/assets/img/articles/item-barcode.png b/erpnext/docs/assets/img/articles/item-barcode.png
deleted file mode 100644
index 6fd0f72..0000000
--- a/erpnext/docs/assets/img/articles/item-barcode.png
+++ /dev/null
Binary files differ
diff --git a/erpnext/docs/assets/img/articles/maintain-stock-1.png b/erpnext/docs/assets/img/articles/maintain-stock-1.png
new file mode 100644
index 0000000..c38b88f
--- /dev/null
+++ b/erpnext/docs/assets/img/articles/maintain-stock-1.png
Binary files differ
diff --git a/erpnext/docs/assets/img/articles/managing-assets-1.png b/erpnext/docs/assets/img/articles/managing-assets-1.png
new file mode 100644
index 0000000..772037e
--- /dev/null
+++ b/erpnext/docs/assets/img/articles/managing-assets-1.png
Binary files differ
diff --git a/erpnext/docs/assets/img/articles/reorder-request-1.png b/erpnext/docs/assets/img/articles/reorder-request-1.png
new file mode 100644
index 0000000..ca9b2b0
--- /dev/null
+++ b/erpnext/docs/assets/img/articles/reorder-request-1.png
Binary files differ
diff --git a/erpnext/docs/assets/img/articles/reorder-request-2.png b/erpnext/docs/assets/img/articles/reorder-request-2.png
new file mode 100644
index 0000000..7ed3b03
--- /dev/null
+++ b/erpnext/docs/assets/img/articles/reorder-request-2.png
Binary files differ
diff --git a/erpnext/docs/assets/img/articles/reorder-request-3.png b/erpnext/docs/assets/img/articles/reorder-request-3.png
new file mode 100644
index 0000000..a4e4f07
--- /dev/null
+++ b/erpnext/docs/assets/img/articles/reorder-request-3.png
Binary files differ
diff --git a/erpnext/docs/assets/img/articles/repack-1.png b/erpnext/docs/assets/img/articles/repack-1.png
new file mode 100644
index 0000000..d084299
--- /dev/null
+++ b/erpnext/docs/assets/img/articles/repack-1.png
Binary files differ
diff --git a/erpnext/docs/assets/img/articles/repack-2.png b/erpnext/docs/assets/img/articles/repack-2.png
new file mode 100644
index 0000000..5b0f4df
--- /dev/null
+++ b/erpnext/docs/assets/img/articles/repack-2.png
Binary files differ
diff --git a/erpnext/docs/assets/img/articles/serial-naming-1.png b/erpnext/docs/assets/img/articles/serial-naming-1.png
new file mode 100644
index 0000000..964363a
--- /dev/null
+++ b/erpnext/docs/assets/img/articles/serial-naming-1.png
Binary files differ
diff --git a/erpnext/docs/assets/img/articles/serial-naming-2.png b/erpnext/docs/assets/img/articles/serial-naming-2.png
new file mode 100644
index 0000000..12336df
--- /dev/null
+++ b/erpnext/docs/assets/img/articles/serial-naming-2.png
Binary files differ
diff --git a/erpnext/docs/assets/img/articles/serial-naming-3.png b/erpnext/docs/assets/img/articles/serial-naming-3.png
new file mode 100644
index 0000000..17ecdcf
--- /dev/null
+++ b/erpnext/docs/assets/img/articles/serial-naming-3.png
Binary files differ
diff --git a/erpnext/docs/assets/img/articles/serial-naming-4.png b/erpnext/docs/assets/img/articles/serial-naming-4.png
new file mode 100644
index 0000000..6b3d52c
--- /dev/null
+++ b/erpnext/docs/assets/img/articles/serial-naming-4.png
Binary files differ
diff --git a/erpnext/docs/assets/img/articles/stock-entry-issue.png b/erpnext/docs/assets/img/articles/stock-entry-issue.png
new file mode 100644
index 0000000..eb47037
--- /dev/null
+++ b/erpnext/docs/assets/img/articles/stock-entry-issue.png
Binary files differ
diff --git a/erpnext/docs/assets/img/articles/stock-entry-manufacture-transfer.gif b/erpnext/docs/assets/img/articles/stock-entry-manufacture-transfer.gif
new file mode 100644
index 0000000..20379ff
--- /dev/null
+++ b/erpnext/docs/assets/img/articles/stock-entry-manufacture-transfer.gif
Binary files differ
diff --git a/erpnext/docs/assets/img/articles/stock-entry-manufacture.gif b/erpnext/docs/assets/img/articles/stock-entry-manufacture.gif
new file mode 100644
index 0000000..a36c18d
--- /dev/null
+++ b/erpnext/docs/assets/img/articles/stock-entry-manufacture.gif
Binary files differ
diff --git a/erpnext/docs/assets/img/articles/stock-entry-receipt.png b/erpnext/docs/assets/img/articles/stock-entry-receipt.png
new file mode 100644
index 0000000..44f62aa
--- /dev/null
+++ b/erpnext/docs/assets/img/articles/stock-entry-receipt.png
Binary files differ
diff --git a/erpnext/docs/assets/img/articles/stock-entry-subcontract.gif b/erpnext/docs/assets/img/articles/stock-entry-subcontract.gif
new file mode 100644
index 0000000..f952654
--- /dev/null
+++ b/erpnext/docs/assets/img/articles/stock-entry-subcontract.gif
Binary files differ
diff --git a/erpnext/docs/assets/img/articles/stock-entry-transfer.png b/erpnext/docs/assets/img/articles/stock-entry-transfer.png
new file mode 100644
index 0000000..04bd881
--- /dev/null
+++ b/erpnext/docs/assets/img/articles/stock-entry-transfer.png
Binary files differ
diff --git a/erpnext/docs/assets/img/articles/uom-fraction-1.png b/erpnext/docs/assets/img/articles/uom-fraction-1.png
new file mode 100644
index 0000000..081627b
--- /dev/null
+++ b/erpnext/docs/assets/img/articles/uom-fraction-1.png
Binary files differ
diff --git a/erpnext/docs/assets/img/articles/uom-fraction-2.png b/erpnext/docs/assets/img/articles/uom-fraction-2.png
new file mode 100644
index 0000000..831106b
--- /dev/null
+++ b/erpnext/docs/assets/img/articles/uom-fraction-2.png
Binary files differ
diff --git a/erpnext/docs/assets/img/videos/conf-2015.jpg b/erpnext/docs/assets/img/videos/conf-2015.jpg
new file mode 100644
index 0000000..c8f0591
--- /dev/null
+++ b/erpnext/docs/assets/img/videos/conf-2015.jpg
Binary files differ
diff --git a/erpnext/docs/user/manual/en/manufacturing/subcontracting.md b/erpnext/docs/user/manual/en/manufacturing/subcontracting.md
index 6f2b86b..9252171 100644
--- a/erpnext/docs/user/manual/en/manufacturing/subcontracting.md
+++ b/erpnext/docs/user/manual/en/manufacturing/subcontracting.md
@@ -37,4 +37,8 @@
 > Note 2: ERPNext will automatically add the raw material rate for your
 valuation purpose when you receive the finished Item in your stock.
 
+### Video Help
+
+<iframe width="660" height="371" src="https://www.youtube.com/embed/ThiMCC2DtKo" frameborder="0" allowfullscreen></iframe>
+
 {next}
diff --git a/erpnext/docs/user/manual/en/setting-up/users-and-permissions/adding-users.md b/erpnext/docs/user/manual/en/setting-up/users-and-permissions/adding-users.md
index dfd9ea0..517c674 100644
--- a/erpnext/docs/user/manual/en/setting-up/users-and-permissions/adding-users.md
+++ b/erpnext/docs/user/manual/en/setting-up/users-and-permissions/adding-users.md
@@ -2,13 +2,13 @@
 
 Users can be added by the System Manager. If you are a System Manager, you can add Users via
 
+> Setup > User
+
 There are two main classes of users: Web Users and System Users. System Users are people using ERPNext in the company. Web users are customers or suppliers (or portal users).
   
 Under User a lot of info can be entered. For the sake of usability the information entered for webs users is minimal: First Name and email.
 Important is to realize that the email address is the unique key (ID) identifying the Users.
 
-> Setup > User
-
 ### 1. List of Users
 
 <img class="screenshot" src="{{docs_base_url}}/assets/img/setup/users/user-1.png" alt="User List">
@@ -26,8 +26,7 @@
 
 ### 3. Setting Roles
 
-After saving, you will see a list of roles and a checkbox next to it. Just check the roles you want the
-the user to have and save the document. To click on what permissions translate into roles, click on the role
+After saving, you will see a list of roles and a checkbox next to it. Just check the roles you want the user to have and save the document. To click on what permissions translate into roles, click on the role
 name.
 
 <img class="screenshot" src="{{docs_base_url}}/assets/img/setup/users/user-2.png" alt="User Roles">
diff --git a/erpnext/docs/user/manual/en/stock/articles/allow-over-delivery-billing-against-sales-order-upto-certain-limit.md b/erpnext/docs/user/manual/en/stock/articles/allow-over-delivery-billing-against-sales-order-upto-certain-limit.md
index bfee143..f0963d1 100644
--- a/erpnext/docs/user/manual/en/stock/articles/allow-over-delivery-billing-against-sales-order-upto-certain-limit.md
+++ b/erpnext/docs/user/manual/en/stock/articles/allow-over-delivery-billing-against-sales-order-upto-certain-limit.md
@@ -1,15 +1,22 @@
-<h1>Allow over delivery / billing against Sales Order upto certain limit</h1>
+#Allow Over Delivery/Billing
 
-<h1>Allow over delivery / billing against Sales Order upto certain limit</h1>
+While creating Delivery Note, system validates if item's Qty mentined is same as in the Sales Order. It Item Qty has been increased, you will get over-delivery validation. If you want to be able to deliver more items than mentioned in the Sales Order, you should update "Allow over delivery or receipt upto this percent" in the Item master.
 
-To setup over delivery / receipt / billing against a Sales / Purchase Order upto certain limit:
+<img alt="Item wise Allowance percentage" class="screenshot" src="{{docs_base_url}}/assets/img/articles/allowance-percentage-1.png">
 
-1. Go to `Stock > Setup > Stock Settings`.
-2. Set `Allowance Percentage` and save the Stock Settings.
-![Allowance Percentage]({{docs_base_url}}/assets/img/articles/allowance_percentage.png)
-For example: If you have ordered 100 units. and your Allowance is 50% then you are allowed to receive 150 units.
-3. To set item-specific limit, set `Allowance Percentage` in `Item` master.
-![Allowance Percentage in Item]({{docs_base_url}}/assets/img/articles/allowance_percentage_item.png)
+Item's and Rate is also validated when creating Sales Invoice from Sales Order. Also when creating Purchase Receipt and Purchaes Invoice from Purchase Order. Updating "Allow over delivery or receipt upto this percent" will be affective in all sales and purchase transactions.
+
+For example, if you have ordered 100 units of an item, and if item's over receipt percent is 50%, then you are allowed to make Purchase Receipt for upto 150 units.
+
+Update global value for "Allow over delivery or receipt upto this percent" from Stock Settings. Value updated here will be applicable for all the items.
+
+1. Go to `Stock > Setup > Stock Settings`
+
+2. Set `Allowance Percentage`.
+
+3. Save Stock Settings.
+
+<img alt="Item wise Allowance percentage" class="screenshot" src="{{docs_base_url}}/assets/img/articles/allowance-percentage-2.png">
 
 
 <!-- markdown -->
\ No newline at end of file
diff --git a/erpnext/docs/user/manual/en/stock/articles/auto-creation-of-material-request.md b/erpnext/docs/user/manual/en/stock/articles/auto-creation-of-material-request.md
index e95b113..02d88d8 100644
--- a/erpnext/docs/user/manual/en/stock/articles/auto-creation-of-material-request.md
+++ b/erpnext/docs/user/manual/en/stock/articles/auto-creation-of-material-request.md
@@ -1,25 +1,27 @@
-<h1>Auto Creation of Material Request</h1>
+#Auto Creation of Material Request
 
-<h1>Auto Creation of Material Request</h1>
+To prevent stockouts, you can track item's reorder level. When stock level goes below reorder level, purchase manager is notified and instructed to initiate purchase process for the item.
 
-ERPNext allows you to define item-wise and warehouse-wise reorder level in the item master. Reorder level is the item's stock level at which item should be re-ordered.
+In ERPNext, you can update item's Reorder Level and Reorder Qty in the Item master. If same item has different reorder level, you can also update warehouse-wise reorder level and reorder qty.
+
+<img alt="reorder level" class="screenshot" src="{{docs_base_url}}/assets/img/articles/reorder-request-1.png">
 
 With reorder level, you can also define what should be the next action. Either new purchase or transfer from another warehouse. Based on setting in Item master, purpose will be updated in the Material Request as well.
 
-![Item Reorder Level]({{docs_base_url}}/assets/img/articles/$SGrab_391.png)
+<img alt="reorder level next action" class="screenshot" src="{{docs_base_url}}/assets/img/articles/reorder-request-2.png">
 
-You can have Material Request automatically created for items whose stock level reaches re-order level. You can enable this feature from:
+When item's stock reaches reorder level, Material Request is auto-created automatically. You can enable this feature from:
 
 `Stock > Setup > Stock Settings`
 
-![Item Reorder Stock Setting]({{docs_base_url}}/assets/img/articles/$SGrab_392.png)
+<img alt="active auto-material request" class="screenshot" src="{{docs_base_url}}/assets/img/articles/reorder-request-3.png">
 
-A separate Material Request will be created for each item. User with Purchase Manager's role will be informed about these Material Request. He can further process this Material Request, and create Supplier Quotation and Purchase Order against it.
+A separate Material Request will be created for each item. User with Purchase Manager's role will receive email alert about these Material Requests.
 
-If auto creation of Material Request is failed, Purchase Manager will be informed about error message via email. One of the most encountered error message is:
+If auto creation of Material Request is failed, User with Purchase Manager role will be informed about error message. One of the most encountered error message is:
 
-**An error occurred for certain Items while creating Material Requests based on Re-order level.
-Date 01-04-2015 not in any Fiscal Year.**
+**An error occurred for certain Items while creating Material Requests based on Re-order level.**
+**Date 01-04-2016 not in any Fiscal Year.**
 
-One of the reason of error could be Fiscal Year as well. Click [here](https://erpnext.com/kb/accounts/fiscal-year-error) to learn more about it.
+One of the reason of error could be Fiscal Year as well. Click [here]({{docs_base_url}}/user/manual/en/accounts/articles/fiscal-year-error.html) to learn more about it.
 <!-- markdown -->
\ No newline at end of file
diff --git a/erpnext/docs/user/manual/en/stock/articles/creating-depreciation-for-item.html b/erpnext/docs/user/manual/en/stock/articles/creating-depreciation-for-item.html
deleted file mode 100644
index 6115ed5..0000000
--- a/erpnext/docs/user/manual/en/stock/articles/creating-depreciation-for-item.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<h1>Creating Depreciation For Item</h1>
-
-<h1>Creating Depreciation For Item</h1>
-
-<b>Question:</b> A Fixed Asset Item has been purchased and stored in a warehouse. How can the user create a depreciation for a Fixed Asset Item?<u><b><br><br></b></u><b>Answer:</b><u><b><br><br></b></u>Though there is no direct, automated method to book
-Asset Depreciation. A suitable work around to achieve this is by creating a Stock Reconciliation Entry.
-<br><u><b><br>Step 1:</b></u> In the Attachment file, fill in the appropriate columns;
-<br>
-<ul>
-    <li><i>Item Code</i> whose value is to be depreciated</li>
-    <li><i>Warehouse </i>in which it is stored</li>
-    <li><i>Qty (Quantity) </i>Leave this column blank</li>
-    <li>&nbsp;<i>Valuation Rate </i>Enter the Value after Depreciation</li>
-</ul>
-<p>
-    <br>
-</p>
-<img src="{{docs_base_path}}/assets/img/articles/kb_deprec_csv.png"><br>
-<p><u><b><br></b></u>
-</p>
-<p><u><b>Step 2:</b></u> In the Stock Reconciliation Form, enter the Expense account for depreciation in <i>Difference Account</i>.</p>
-<br><img src="{{docs_base_path}}/assets/img/articles/kb_deprec_form.png" height="302" width="652"><br>
-<p>
-    <br>
-</p>
-<div class="well">Note: For more information on Stock Reconciliation, see the <a href="https://erpnext.com/user-guide/setting-up/stock-reconciliation-for-non-serialized-item" target="_blank">User Guide</a>.</div>
-<div class="well"> Note: An Automated Asset Depreciation feature in on our To-Do List. See this <a href="https://github.com/frappe/erpnext/issues/191" target="_blank">Github Issue</a>.</div>
\ No newline at end of file
diff --git a/erpnext/docs/user/manual/en/stock/articles/creating-depreciation-for-item.md b/erpnext/docs/user/manual/en/stock/articles/creating-depreciation-for-item.md
index af9223f..491427c 100644
--- a/erpnext/docs/user/manual/en/stock/articles/creating-depreciation-for-item.md
+++ b/erpnext/docs/user/manual/en/stock/articles/creating-depreciation-for-item.md
@@ -1,24 +1,28 @@
-#Creating Depreciation For Item
+#Depreciation Entry
 
-**Question:** A Fixed Asset Item has been purchased and stored in a warehouse. How can the user create a depreciation for a Fixed Asset Item?<
+**Question:** A Fixed Asset Item has been purchased and stored in a warehouse. How to create a depreciation for a Fixed Asset Item?
 
-**Answer:**Though there is no direct, automated method to book Asset Depreciation. A suitable work around to achieve this is by creating a Stock Reconciliation Entry.
+**Answer:**You can post asset depreciation entry for the fixed asset item via [Stock Reconciliation]({{docs_base_url}}/user/manual/en/stock/opening-stock.html) Entry.
 
-####Step 1: In the Attachment file, fill in the appropriate columns;
+####Step 1:
 
-- _Item Code_ whose value is to be depreciated.
-- _Warehouse_ in which it is stored
-- _Qty_ Leave this column blank
-- _Valuation rate_ Enter the Value after Depreciation
+In the Attachment file, fill in the appropriate columns;
 
-<img src="{{docs_base_path}}/assets/img/articles/kb_deprec_csv.png"><br>
+- **Item Code** whose value is to be depreciated.
+- **Warehouse** in which item is stored.
+- **Qty (Quantity)** Leave this column blank.
+- **Valuation Rate** will be item's value after depreciation.
 
+<img alt="reorder level" class="screenshot" src="{{docs_base_url}}/assets/img/articles/fixed-asset-dep-1.gif">
 
-####Step 2: 
+After updating Valuation Rate for an item, come back to Stock Reconciliation and upload save .csv file.
 
-In the Stock Reconciliation Form, enter the Expense account for depreciation in <i>Difference Account</i>.</p>
-<img src="{{docs_base_path}}/assets/img/articles/kb_deprec_form.png" height="302" width="652">
+####Step 2:
 
-<div class="well">Note: For more information on Stock Reconciliation, see the <a href="https://erpnext.com/user-guide/setting-up/stock-reconciliation-for-non-serialized-item" target="_blank">User Guide</a>.</div>
+Select Expense account for depreciation in **Difference Account**. Value booked in the depreciation account will be the difference of old and next valuation rate of the fixed asset item, which will be actually the depreciation amount.
 
-<div class="well"> Note: An Automated Asset Depreciation feature in on our To-Do List. See this <a href="https://github.com/frappe/erpnext/issues/191" target="_blank">Github Issue</a>.</div>
\ No newline at end of file
+<img alt="reorder level" class="screenshot" src="{{docs_base_url}}/assets/img/articles/fixed-asset-dep-2.png">
+
+####Stock Reconciliation Help Video
+
+<iframe width="660" height="371" src="https://www.youtube.com/embed/0yPgrtfeCTs" frameborder="0" allowfullscreen></iframe>
diff --git a/erpnext/docs/user/manual/en/stock/articles/index.txt b/erpnext/docs/user/manual/en/stock/articles/index.txt
index fc039b1..6d20384 100644
--- a/erpnext/docs/user/manual/en/stock/articles/index.txt
+++ b/erpnext/docs/user/manual/en/stock/articles/index.txt
@@ -1,7 +1,7 @@
 allow-over-delivery-billing-against-sales-order-upto-certain-limit
 auto-creation-of-material-request
-creating-depreciation-for-item
-is-stock-item-field-frozen-in-item-master
+depreciation-entry
+maintain-stock-field-frozen-in-item-master
 manage-rejected-finished-goods-items
 managing-assets
 managing-batch-wise-inventory
@@ -11,5 +11,4 @@
 serial-no-naming
 stock-entry-purpose
 stock-level-report
-track-items-using-barcode
-using-batch-feature-in-stock-entry
\ No newline at end of file
+track-items-using-barcode
\ No newline at end of file
diff --git a/erpnext/docs/user/manual/en/stock/articles/is-stock-item-field-frozen-in-item-master.md b/erpnext/docs/user/manual/en/stock/articles/maintain-stock-field-frozen-in-item-master.md
similarity index 77%
rename from erpnext/docs/user/manual/en/stock/articles/is-stock-item-field-frozen-in-item-master.md
rename to erpnext/docs/user/manual/en/stock/articles/maintain-stock-field-frozen-in-item-master.md
index a012827..f93e668 100644
--- a/erpnext/docs/user/manual/en/stock/articles/is-stock-item-field-frozen-in-item-master.md
+++ b/erpnext/docs/user/manual/en/stock/articles/maintain-stock-field-frozen-in-item-master.md
@@ -1,14 +1,12 @@
-<h1>Is Stock Item field Frozen in the Item master</h1>
+#Maintain Stock field Frozen in the Item master
 
-<h1>Is Stock Item field Frozen in the Item master</h1>
+In the item master, you might witness values in the following fields to be frozen.
 
-In the item master, you might witness values in the following fields be frozen.
-
-1. Is Stock Item
+1. Maintain Stock
 1. Has Batch No.
 1. Has Serial No.
 
-![Item Field Frozen]({{docs_base_url}}/assets/img/articles/Screen Shot 2015-02-16 at 2.52.56 pm.png)
+<img alt="Item Field Frozen" class="screenshot" src="{{docs_base_url}}/assets/img/articles/maintain-stock-1.png">
 
 For an item, once stock ledger entry is created, values in these fields will be froze. This is to prevent user from changing value which can lead to mis-match of actual stock, and stock level in the system of an item.
 
diff --git a/erpnext/docs/user/manual/en/stock/articles/manage-rejected-finished-goods-items.md b/erpnext/docs/user/manual/en/stock/articles/manage-rejected-finished-goods-items.md
index 9bb0103..2d57d64 100644
--- a/erpnext/docs/user/manual/en/stock/articles/manage-rejected-finished-goods-items.md
+++ b/erpnext/docs/user/manual/en/stock/articles/manage-rejected-finished-goods-items.md
@@ -1,32 +1,31 @@
-<h1>Manage Rejected Finished Goods Items</h1>
+#Manage Rejected Finished Goods Items
 
-<h1>Manage Rejected Finished Goods Items</h1>
+There could be manufactured Items which would not pass quality test, hence rejected.
 
-There could be manufactured Items which would not pass quality test, and would be rejected.
-
-Standard manufacturing process in ERPNext doesn't cover managing rejected items separately. Hence you should create finished goods entry for both accepted as well as rejected items. With this, you will have rejected items also received in the finished goods warehouse.
+Standard manufacturing process in ERPNext doesn't cover managing rejected items. Hence you should create finished goods entry for both accepted as well as rejected items. With this, you will have rejected items also received in the finished goods warehouse.
 
 To move rejected items from the finished goods warehouse, you should create Material Transfer entry. Steps below to create Material Transfer entry.
 
-####New Stock Entry
+####Step 1: New Stock Entry
 
-`Stock > Stock Entry > New`
+`Stock > Documents > Stock Entry > New`
 
-####Entry Purpose
+####Step 2: Purpose
 
 Purpose = Material Transfer
 
-####Warehouse
+####Step 3: Warehouse
 
 Source Warehouse = Finished Goods warehouse
 Target Warehouse = Rejected items warehouse
 
-####Items
+####Step 4: Items
 
 Select item which failed quality test, and enter total rejected items as Qty.
 
-####Submit Stock Entry
+####Step 5: Submit Stock Entry
 
 On Saving and Submitting Stock Entry, stock of rejected items will be moved from Finished Goods Warehouse to Rejected Warehouse.
 
+
 <!-- markdown -->
\ No newline at end of file
diff --git a/erpnext/docs/user/manual/en/stock/articles/managing-assets.md b/erpnext/docs/user/manual/en/stock/articles/managing-assets.md
index 5032dcd..0be7860 100644
--- a/erpnext/docs/user/manual/en/stock/articles/managing-assets.md
+++ b/erpnext/docs/user/manual/en/stock/articles/managing-assets.md
@@ -1,24 +1,23 @@
-<h1>Managing Assets</h1>
+#Managing Assets
 
-<h1>Managing Assets</h1>
+Items like machinery, furniture, land and property, patents etc. can be categorized as fixed asset of a company. In ERPNext, you can maintain fixed asset items, mainly stock items in a separate Warehouse.
 
-Items like machinery, furniture, land and property, patents etc. can be categorized as fixed asset of a company. In ERPNext, you can maintain fixed asset items in a separate Warehouse.
-
-Item can be created for each type of an asset. Whereas unique Serial No. will be created for each unit of that asset item. Maintaining serialized inventory of asset item will have in tracking item's warranty and expiry details.
+For the high value asset items, serialized inventory can be maintained. It will allow assigning unique Serial No. to each unit of an asset item.
 
 ####Fixed Asset Master
 
-While creating Item Code for the fixed asset item, you should updated field "Is Fixed Asset" as "Yes".
+While creating Item Code for the fixed asset item, you should check "Is Fixed Asset" field.
 
-![Fixed Asset Item]({{docs_base_url}}/assets/img/articles/$SGrab_383.png)
+<img alt ="Fixed Asset Item" class="screenshot" src="{{docs_base_url}}/assets/img/articles/managing-assets-1.png">
 
 Other item properties like Stock/Non-stock item can be updated on the nature of asset. Like patent and trademarks will be non-stock assets.
 
-If your asset item is serialized, click [here](https://erpnext.com/user-guide/stock/serialized-inventory) to learn how serialized inventory is managed in ERPNext.
+If your asset item is serialized, click [here]({{docs_base_url}}/user/videos/learn/serialized-inventory.html) to learn how serialized inventory is managed in ERPNext.
 
 ####Warehouse for Fixed Asset
 
-Separate Warehouse should be created for the fixed asset items. All the sales, purchase and stock transactions for asset items will be done in that fixed asset warehouse only.
+Separate Warehouse should be created for the fixed asset items. All the sales, purchase and stock transactions for asset items should be done for fixed asset warehouse only.
 
-Also, as per the perpetual inventory valuation system, you will have accounting ledger auto-created for the warehouse. You can move the accounting ledger of warehouse created for fixed asset from Stock Asset group to fixed asset group. This will be helpful while preparing financial statement for a company.
+As per the perpetual inventory valuation system, accounting ledger is auto-created for a warehouse. You can move the accounting ledger of fixed asset asset from Stock Asset (default group) to Fixed Asset's group account.
+
 <!-- markdown -->
\ No newline at end of file
diff --git a/erpnext/docs/user/manual/en/stock/articles/managing-batch-wise-inventory.html b/erpnext/docs/user/manual/en/stock/articles/managing-batch-wise-inventory.html
deleted file mode 100644
index 23cd46d..0000000
--- a/erpnext/docs/user/manual/en/stock/articles/managing-batch-wise-inventory.html
+++ /dev/null
@@ -1,5 +0,0 @@
-<h1>Managing Batch wise Inventory</h1>
-
-<h1>Managing Batch wise Inventory</h1>
-
-To maintain batches against an Item you need to mention 'has batch no' as yes in the Item Master. You can create a new Batch from&nbsp;<div><br></div><div><p >Stock &gt; Documents &gt; Batch &gt; New</p></div><div><br></div><div>To learn more about batch check out the manual page at&nbsp;https://manual.erpnext.com/contents/stock/batch</div><div><br></div><div>While making a purchase receipt or delivery note, mention the batch number against the item.</div><div><br></div><div><p ><strong>Batch No. in Purchase Receipt</strong></p><p ><img src="{{docs_base_path}}/assets/img/articles/Screen Shot 2015-06-23 at 5.33.37 pm.png"><br></p><p ><strong>Batch No. in Delivery Note</strong></p><p ><img src="{{docs_base_path}}/assets/img/articles/Screen Shot 2015-06-23 at 5.35.28 pm.png"><br></p><p ><b>Batch-wise Stock Balance Report</b></p><p >To check batch-wise stock balance report, go to:</p><p >Stock &gt; Standard Reports &gt; Batch-wise Balance History</p><p ><br></p></div>
diff --git a/erpnext/docs/user/manual/en/stock/articles/managing-batch-wise-inventory.md b/erpnext/docs/user/manual/en/stock/articles/managing-batch-wise-inventory.md
index 5b16954..7ae102b 100644
--- a/erpnext/docs/user/manual/en/stock/articles/managing-batch-wise-inventory.md
+++ b/erpnext/docs/user/manual/en/stock/articles/managing-batch-wise-inventory.md
@@ -1,23 +1,35 @@
 #Managing Batch wise Inventory
 
-To maintain batches against an Item you need to mention 'has batch no' as yes in the Item Master. You can create a new Batch from:
+Set of items which has same properties and attributes can be group in a single Batch. For example, pharceuticals items are batch, so that it's manufacturing and expiry date can be tracked together. 
+
+To maintain batches against an Item you need to mention 'Has Batch No' as yes in the Item Master. 
+
+<img alt="Batch Item" class="screenshot" src="{{docs_base_url}}/assets/img/articles/batchwise-stock-1.png">
+
+You can create a new Batch from:
 
 `Stock > Documents > Batch > New`
 
-To learn more about batch check out the manual page at: https://manual.erpnext.com/contents/stock/batch
+To learn more about batch, click [here.]({{docs_base_url}}/user/manual/en/stock/batch.html)
 
-While making a purchase receipt or delivery note, mention the batch number against the item. 
+For the Batch item, updating Batch No. in the stock transactions (Purchase Receipt & Delivery Note) is mandatory.
 
-**Batch No. in Purchase Receipt**
+#### Purchase Receipt
 
-<img src="{{docs_base_path}}/assets/img/articles/Screen Shot 2015-06-23 at 5.33.37 pm.png">
+When creating Purchase Receipt, you should create new Batch, or select one of the existing Batch master. One Batch can be associated with one Batch Item.
 
-**Batch No. in Delivery Note**
+<img alt="Batch in Purchase Receipt" class="screenshot" src="{{docs_base_url}}/assets/img/articles/batchwise-stock-2.png">
 
-<img src="{{docs_base_path}}/assets/img/articles/Screen Shot 2015-06-23 at 5.35.28 pm.png"><br>
+#### Delivery Note
 
-Batch-wise Stock Balance Report 
+Define Batch in Delivery Note Item table. If Batch item is added under Product Bundle, you can update it's Batch No. in the Packing List table sa well.
+
+<img alt="Batch in Delivery Note" class="screenshot" src="{{docs_base_url}}/assets/img/articles/batchwise-stock-3.png">
+
+#### Batch-wise Stock Balance Report
 
 To check batch-wise stock balance report, go to:
 
-`Stock > Standard Reports > Batch-wise Balance History`
+Stock > Standard Reports > Batch-wise Balance History
+
+<img alt="Batchwise Stock Balance" class="screenshot" src="{{docs_base_url}}/assets/img/articles/batchwise-stock-4.png">
diff --git a/erpnext/docs/user/manual/en/stock/articles/managing-fractions-in-uom.md b/erpnext/docs/user/manual/en/stock/articles/managing-fractions-in-uom.md
index 75acd38..12447e0 100644
--- a/erpnext/docs/user/manual/en/stock/articles/managing-fractions-in-uom.md
+++ b/erpnext/docs/user/manual/en/stock/articles/managing-fractions-in-uom.md
@@ -1,12 +1,10 @@
-<h1>Managing Fractions in UoM</h1>
-
-<h1>Managing Fractions in UoM</h1>
+#Managing Fractions in UoM
 
 UoM stands for Unit of Measurement. Few examples of UoM are Numbers (Nos), Kgs, Litre, Meter, Box, Carton etc.
 
-There are few UoMs which cannot have value decimal places. For example, if we have television for an item, with Nos as its UoM, we cannot have 1.5 Nos. of television, or 3.7 Nos. of computer sets. The value of quantity for these items must be whole number.
+There are few UoMs which cannot have value in decimal places. For example, if we have television for an item, with Nos as its UoM, we cannot have 1.5 Nos. of television, or 3.7 Nos. of computer sets. The value of quantity for these items must be whole number.
 
-You can configure if particular UoM can have value in decimal place or no. Bydefault, decimal places will be allowed in all the UoMs. To restrict decimal places or value in fraction for any UoM, you should follow these steps.
+You can configure if particular UoM can have value in decimal place or no. By default, value in decimal places will be allowed for all the UoMs. To restrict decimal places or value in fraction for any UoM, you should follow these steps.
 
 ####UoM List
 
@@ -14,21 +12,21 @@
 
 `Stock > Setup > UoM`
 
-For the list of UoM, select one which you want to restrict value in fraction. Let's assume that UoM is Nos.
+From the list of UoM, select UoM for which value in decimal place is to be restricted. Let's assume that UoM is Nos.
 
 ####Configure
 
-In the UoM form, you will find a field called "Must be whole number". Check this field to restrict user from enter decimal places in quantity field for item with this UoM.
+In the UoM master, you will find a field called "Must be whole number". Check this field to restrict user from enter value in decimal places in quantity field, for item having this UoM.
 
-![UoM Whole No]({{docs_base_url}}/assets/img/articles/$SGrab_390.png)
+<img alt="UoM Must be Whole No" class="screenshot" src="{{docs_base_url}}/assets/img/articles/uom-fraction-1.png">
 
-####While Creating Entry
+####Validation
 
-While creating transaction, if you enter value in fraction for item who's UoM has "Must be whole number" checked, you will get error message stating:
+While creating transaction, if you enter value in fraction for item whos UoM has "Must be whole number" checked, you will get error message stating:
 
 `Quantity cannot be a fraction at row #`
 
-![UoM Fraction Error]({{docs_base_url}}/assets/img/articles/$SGrab_389.png)
+<img alt="UoM Validation Message" class="screenshot" src="{{docs_base_url}}/assets/img/articles/uom-fraction-2.png">
 
 
 <!-- markdown -->
\ No newline at end of file
diff --git a/erpnext/docs/user/manual/en/stock/articles/opening-stock-balance-entry-for-the-serialized-and-batch-item.md b/erpnext/docs/user/manual/en/stock/articles/opening-stock-balance-entry-for-the-serialized-and-batch-item.md
index 5251a8e..9b8684a 100644
--- a/erpnext/docs/user/manual/en/stock/articles/opening-stock-balance-entry-for-the-serialized-and-batch-item.md
+++ b/erpnext/docs/user/manual/en/stock/articles/opening-stock-balance-entry-for-the-serialized-and-batch-item.md
@@ -1,14 +1,14 @@
-<h1>Opening Stock Balance Entry for the Serialized and Batch Item</h1>
+#Opening Stock Balance Entry for the Serialized and Batch Item
 
-<h1>Opening Stock Balance Entry for the Serialized and Batch Item</h1>
+Items for which Serial No. and Batch No. is maintained, opening stock balance entry for them is update via Stock Entry. [Click here to learn how serialized inventory is managed in ERPNext]({{docs_base_url}}/user/manual/en/stock/serial-no.html).
 
-Items for which Serial No. and Batch No. is maintained, opening stock balance entry for them will be update via Stock Entry. [Click here to learn how serialized inventory is managed in ERPNext](https://erpnext.com/user-guide/stock/serialized-inventory).
+**Question:** Why Opening Balance entry for the Serialized and Batch Item cannot be updated via Stock Reconciliation?
 
-Why Opening Balance entry for the Serialized and Batch Item cannot be updated via Stock Reconciliation?
+In the ERPNext, stock level of a serialized items is derived based on the count of Serial Nos for that item. Hence, unless Serial Nos. are created for the serialized item, its stock level is not be updated. In the Stock Reconciliation Tool, you can only update opening quantity of an item, but not their Serial No. and Batch No.
 
-In the ERPNext, stock level of a serialized items is derived based on the count of Serial Nos for that item. Hence, unless Serial Nos. are created for the serialized item, its stock level will not be updated. In the Stock Reconciliation Tool, you can only update opening quantity of an item, and not their Serial No. and Batch No.
+### Opening Balance for the Serialized Item
 
-Let's check steps for create opening stock balance entry for the Serialized and Batch item.
+Following are the steps to create opening stock balance entry for the Serialized and Batch item.
 
 #### Step 1: New Stock Entry
 
@@ -28,36 +28,33 @@
 
 #### Step 5: Select Items
 
-Select Items in the Stock Entry table.
+Select Items for which opening balance is to be updated.
 
 #### Step 6: Update Opening Qty
 
-For the serialized item, you should update as many Serial Nos as their Qty. If you have updated Prefix in the Item master, on the submission of Stock Entry Serial Nos. will be auto-created following that prefix.
+For the serialized item, update quantity as many Serial Nos are their.
 
-![Item Serial No. Prefix]({{docs_base_url}}/assets/img/articles/Screen Shot 2015-02-19 at 5.13.50 pm.png)
+For the serialized item, mention Serial Nos. equivalent to it's Qty. Or if Serial Nos. are configured to be created based on Prefix, then no need to mention Serial Nos. manually. Click [here]({{docs_base_url}}/user/manual/en/stock/articles/serial-no-naming.html) to learn more about Serial No. naming.
 
-For a batch item, you should provide Batch ID in which opening balance will be updated. You should keep batch master ready, and updated it for the Batch Item. To create new Batch, go to:
+For a batch item, provide Batch ID in which opening balance will be updated. Keep batch master ready, and updated it for the Batch Item. To create new Batch, go to:
 
 `Stock > Setup > Batch > New`
 
-[Click here to learn how Batchwise inventory is managed in ERPNext](https://erpnext.com/user-guide/stock/batchwise-inventory).
+[Click here to learn how Batchwise inventory is managed in ERPNext.]({{docs_base_url}}/user/manual/en/stock/articles/managing-batch-wise-inventory.html)
 
 #### Step 7: Update Valuation Rate an Item
 
-Valuation Rate is the mandatory field, where you should update `per unit value of item`. If you have unit of items having different valuation rates, they should be updated in a separate row, with different Valuation Rate.
+Update valuation rate, which will be per unit value of item. If different units of the same items having different valuation rate, they should be updated in a separate row, with different Valuation Rates.
 
 #### Step 8: Difference Account
 
-As per perpetual inventory valuation system, accounting entry is created for every stock entry. Accounting system followed in the ERPNext requires Total Debit in an entry matching with Total Credit. On the submission of Stock Entry, system Debits accounting ledger of a Warehouse by total value of items. To balance the same, we use Temporary Liability account in the Difference Account field. [Click here to learn more about use of Temporary Accounts in updating opening balance](https://erpnext.com/kb/accounts/updating-opening-balance-in-accounts-using-temporary-account).
+As per perpetual inventory valuation system, accounting entry is created for every stock transaction. Double entry accounting system requires Total Debit matching with Total Credit in an entry. On the submission of Stock Entry, system debits Warehouse account by total value of items. To balance the same, we use Temporary Opening account as a Difference Account.
 
-![Difference Account]({{docs_base_url}}/assets/img/articles/Screen Shot 2015-02-19 at 5.20.52 pm.png)
+<img alt="Difference Account" class="screenshot" src="{{docs_base_url}}/assets/img/articles/difference-account-1.png">
 
 #### Step 9: Save and Submit Stock Entry
 
-On submission of Stock Entry, stock ledger entry will be posted, and opening balance will be updated for the items on a given posting date.
+On submission of Stock Entry, stock ledger posting will be posted, and opening balance will be updated for the items on a given Posting Date.
 
-If Serial Nos. for your items are set to be created based on prefix, then on submission of Stock Entry, Serial Nos. will be created as well.
-
-![Serial No Creation]({{docs_base_url}}/assets/img/articles/Screen Shot 2015-02-19 at 5.28.57 pm.png)
 
 <!-- markdown -->
\ No newline at end of file
diff --git a/erpnext/docs/user/manual/en/stock/articles/repack-entry.md b/erpnext/docs/user/manual/en/stock/articles/repack-entry.md
index 59bf983..1d758c8 100644
--- a/erpnext/docs/user/manual/en/stock/articles/repack-entry.md
+++ b/erpnext/docs/user/manual/en/stock/articles/repack-entry.md
@@ -1,16 +1,14 @@
-<h1>Repack Entry</h1>
+#Repack Entry
 
-<h1>Repack Entry</h1>
-
-If you buy items in bulk to be repacked into smaller packs, you can create a **Stock Entry** of type "Repack". For example, item bought in tons can be repacked into Kgs. 
+Repack Entry is created for item bought in bulk, which is being packed into smaller packages. For example, item bought in tons can be repacked into Kgs. 
 
 Notes:
-1. Separate purchase and repacked Items must be made.
+1. Purchase Item and repack will be have different Item Codes.
 2. Repack entry can be made with or without BOM (Bill of Material).
 
-Let's check below scenario to understand this better.
+In a Repack Entry, there can be one or more than one repack items. Let's check below scenario to understand this better.
 
-Assume you buy crude oil in barrel, and get diesel and gasoline as its output. To create production entry, go to:
+Assume we are buying boxes of spray paint of specific colour (Green, Blue etc). And later re-bundling to create packs having multiple colours of spray paint (Blue-Green, Green-Yellow etc.) in them.
 
 #### 1. New Stock Entry
 
@@ -22,14 +20,16 @@
 
 For raw-material/input item, only Source Warehouse will be provided.
 
-For repacked/production item, only Target Warehouse will be entered. You will have to provide valuation for the repacked/production item.
+For repacked/output items, only Target Warehouse will be provided. You will have to provide valuation for the repack items.
 
-![New STE]({{docs_base_url}}/assets/img/articles/Selection_071.png)
+<img alt="Repack Entry" class="screenshot" src="{{docs_base_url}}/assets/img/articles/repack-1.png">
+
+Update Qty for all the items selected.
 
 #### 3. Submit Stock Entry
 
-On submitting Stock Entry, stock of input item will be reduced from Source Warehouse, and stock of repacked/production item will be added in the Target Warehouse.
+On submitting Stock Entry, stock of input item will be reduced from Source Warehouse, and stock of repack/output item will be added in the Target Warehouse.
 
-![New STE]({{docs_base_url}}/assets/img/articles/Selection_072.png)
+<img alt="Repack Stock Entry" class="screenshot" src="{{docs_base_url}}/assets/img/articles/repack-2.png">
 
 <!-- markdown --> 
\ No newline at end of file
diff --git a/erpnext/docs/user/manual/en/stock/articles/serial-no-naming.md b/erpnext/docs/user/manual/en/stock/articles/serial-no-naming.md
index c4e8774..4f2425f 100644
--- a/erpnext/docs/user/manual/en/stock/articles/serial-no-naming.md
+++ b/erpnext/docs/user/manual/en/stock/articles/serial-no-naming.md
@@ -1,26 +1,24 @@
-<h1>Serial No. Naming</h1>
+#Serial No. Naming
 
-<h1>Serial No. Naming</h1>
+Serial Nos. is unique value assigned on each unit of an item. Serial no. helps in tracking item's warranty and expiry details. Generally high value items like machines, computers, costly equipments are serialized.
 
-Serial Nos. are unique value assigned on each unit of an item. Serial no. helps in locating and tracking item's warranty and expiry details.
-
-To make item Serialized, in the Item master, on selecting **Has Serial No** field should be updated as "Yes".
+To make item Serialized, in the Item master, check **Has Serial No**.
 
 There are two ways Serial no. can be generated in ERPNext.
 
 ###1. Serializing Purchase Items
 
-If purchased items are received with Serial Nos. applied by OEM (original equipment manufacturer), you should follow this approach. While creating Purchase Receipt, you shall scan or manually enter Serial nos. for an item. On submitting Purchase Receipt, Serial Nos. will be created in the backend as per Serial No. entered for an item.
+If purchased items are received with Serial Nos. applied by OEM (original equipment manufacturer), you can follow same Serial No in ERPNext as well. While creating Purchase Receipt, you shall scan or manually enter Serial nos. for an item. On submitting Purchase Receipt, Serial Nos. will be created in the backend as per Serial Nos. provided for an item. If using OEM' Serial No., then in the Item master, Prefix should not be mentioned for serializalization. As per this scenaio, Prefix field should be left blank.
 
 If received items already has its Serial No. barcoded, you can simply scan that barcode for entering Serial No. in the Purchase Receipt. Click [here](https://frappe.io/blog/management/using-barcodes-to-ease-data-entry) to learn more about it.
 
 On submission of Purchase Receipt or Stock entry for the serialized item, Serial Nos. will be auto-generated.
 
-![Serial Nos]({{docs_base_url}}/assets/img/articles/Selection_061.png)
+<img alt="Serial Nos Entry" class="screenshot" src="{{docs_base_url}}/assets/img/articles/serial-naming-1.png">
 
 Generated Serial numbers will be updated for each item.
 
-![Serial Nos]({{docs_base_url}}/assets/img/articles/Selection_062.png)
+<img alt="Serial Nos Created" class="screenshot" src="{{docs_base_url}}/assets/img/articles/serial-naming-2.png">
 
 ###2. Serializing Manufacturing Item
 
@@ -30,12 +28,12 @@
 
 When Item is set as serialized, it will allow you to mentioned Series for it.
 
-![Item Serial No. Series]({{docs_base_url}}/assets/img/articles/Selection_049.png)
+<img alt="Serial Nos Created" class="screenshot" src="{{docs_base_url}}/assets/img/articles/serial-naming-3.png">
 
 ####2.2 Production Entry for Serialized Item
 
 On submission of production entry for manufacturing item, system will automatically generate Serial Nos. following Series as specified in the Item master.
 
-![Serial No]({{docs_base_url}}/assets/img/articles/Selection_054.png)
+<img alt="Serial Nos Created" class="screenshot" src="{{docs_base_url}}/assets/img/articles/serial-naming-4.png">
 
 <!-- markdown -->
\ No newline at end of file
diff --git a/erpnext/docs/user/manual/en/stock/articles/stock-entry-purpose.md b/erpnext/docs/user/manual/en/stock/articles/stock-entry-purpose.md
index 26b6346..426328e 100644
--- a/erpnext/docs/user/manual/en/stock/articles/stock-entry-purpose.md
+++ b/erpnext/docs/user/manual/en/stock/articles/stock-entry-purpose.md
@@ -1,53 +1,49 @@
-<h1>Stock Entry Purpose</h1>
+#Stock Entry Purpose
 
-<h1>Stock Entry Purpose</h1>
+Stock Entry is a stock transaction, which can be used for multiple purposes. Let's learn about each Stock Entry Purpose below.
 
-Stock Entry document records Item movement from a Warehouse, to a Warehouse and between Warehouses. And in stock entry form selection of 'Purpose' belongs to type of item movement. Following are the uses of Stock Entry Purposes in stock entry form.
+#### 1.Purpose: Material Issue
 
-#### 1.Purpose = Material Issue
+Material Issue entry create to issue item(s) from a warehouse. On submission of Material Issue, stock of item is deducated from the Source Warehouse. 
 
-This purpose is selected to issue item from a warehouse. In this stock entry, you should define Source Warehouse only. This type of stock entry can be perform for adjustment of serialized inventory.
+Material Issue is generally made for the low value consumable items like office stationary, product consumables etc. Also you can create Material Issue to reconcile serialized and batched item's stock.
 
-![Material Issue]({{docs_base_url}}/assets/img/articles/Selection_440.png)
+<img alt="Material Issue" class="screenshot" src="{{docs_base_url}}/assets/img/articles/stock-entry-issue.png">
 
-#### 2.Purpose = Material Receipt
+#### 2.Purpose: Material Receipt
 
-This purpose is selected to receive item in a warehouse. In this stock entry, you should define Target Warehouse only. This type of stock entry can be perform for adjustment of serialized inventory.
+Material Receipt entry is created to inward stock of item(s) in a warehouse. This type of stock entry can be created for updating opening balance of serialized and batched item. Also items purchased without Purchase Order can be inwarded from Material Receipt entry.
 
-![Material Receipt]({{docs_base_url}}/assets/img/articles/Selection_442.png)
+For the stock valuation purpose, provided Item Valuation becomes a mandatory field in the Material Receipt entry.
 
-#### 3.Purpose = Material Transfer
+<img alt="Material Receipt" class="screenshot" src="{{docs_base_url}}/assets/img/articles/stock-entry-receipt.png">
 
-This purpose is selected to transfer item from warehouse to warehouse or to transfer raw material for production. In this stock entry, you should define Source Warehouse and Target Warehouse also.
+#### 3.Purpose: Material Transfer
 
-![Material Transfer]({{docs_base_url}}/assets/img/articles/Selection_443.png)
+Material Transfer entry is created for the inter-warehouse Material Transfer.
+
+<img alt="Material Transfer" class="screenshot" src="{{docs_base_url}}/assets/img/articles/stock-entry-transfer.png">
  
-#### 4.Purpose = Manufacture
+#### 4.Purpose: Material Transfer for Manufacture 
 
-This purpose is selected to perform finished goods entry. This purpose is auto selected in stock entry form, when you Update Finished Goods entry from Submitted Production Order. ![Check this page to know more about Manufacturing](https://erpnext.com/user-guide/guide-books/engineer-to-order/stock-entry)
+In the manufacturing process, raw-materials are issued from the stores to the production department (generally WIP warehouse). This Material Transfer entry is created from Production Order. Items in this entry are fetched from the BOM of production Item, as selected in Production Order.
 
-![Manufacture]({{docs_base_url}}/assets/img/articles/Selection_444.png) 
+<img alt="Transfer for Manufacture" class="screenshot" src="{{docs_base_url}}/assets/img/articles/stock-entry-manufacture-transfer.gif">
 
-#### 5.Purpose = Repack
+#### 4.Purpose: Manufacture
 
-This purpose is selected to perform repack of item. ![Check this page to know more about Repack entry](https://erpnext.com/kb/stock/repack-entry)
+Manufacture is created from Production Order. In this entry, both raw-material item as well as production item are fetched from the BOM, selected in the Production Order. For the raw-material items, only Source Warehouse (generally WIP warehouse) is mentioned. For the production item, only target warehouse as mentioned in the Production Order is updated. On submission, stock of raw-material items are deducted from Source Warehouse, which indicates that raw-material items were consumed in the manufacturing process. Production Item is added to the Target Warehouse marking the completion of production cycle.
 
-#### 6.Purpose = Subcontract
+<img alt="Manufacture" class="screenshot" src="{{docs_base_url}}/assets/img/articles/stock-entry-manufacture.gif">
 
-This purpose is selected to transfer row material to supplier for manufacturing subcontracting item.![Check this page to know more about Subcontracting](https://erpnext.com/user-guide/manufacturing/subcontracting)
+#### 5.Purpose: Repack
 
-![Subcontract]({{docs_base_url}}/assets/img/articles/Selection_445.png)
+Repack Entry is created when items purchases in bulk is repacked under smaller packs. ![Check this page to know more about Repack entry.]({{docs_base_url}}/user/manual/en/stock/articles/repack-entry.html)
 
-#### 6.Purpose = Sales Return
+#### 6.Purpose: Subcontract
 
-This purpose is selected to receive returned item by customer. ![Check this page to know more about Sales Return](https://erpnext.com/user-guide/stock/sales-return)
+Subcontracting transaction involves company transfer raw-material items to the sub-contractors warehouse. This requires adding a warehouse for the sub-contractor as well. Sub-contract entry transfers stock from the companies warehouse to the sub-contractors warehouse.![Check this page to know more about Subcontracting]({{docs_base_url}}/user/manual/en/manufacturing/subcontracting.html).
 
-![Sales Return]({{docs_base_url}}/assets/img/articles/Selection_446.png)
+<img alt="Subcontract" class="screenshot" src="{{docs_base_url}}/assets/img/articles/stock-entry-subcontract.gif">
 
-#### 6.Purpose = Purchase Return
-
-This purpose is selected to issue purchased item to supplier. ![Check this page to know more about Purchase Return](https://erpnext.com/user-guide/stock/purchase-return)
-
-![Purchase Return]({{docs_base_url}}/assets/img/articles/Selection_447.png)
-        
 <!-- markdown -->
\ No newline at end of file
diff --git a/erpnext/docs/user/manual/en/stock/articles/stock-level-report.md b/erpnext/docs/user/manual/en/stock/articles/stock-level-report.md
index fa92612..b674470 100644
--- a/erpnext/docs/user/manual/en/stock/articles/stock-level-report.md
+++ b/erpnext/docs/user/manual/en/stock/articles/stock-level-report.md
@@ -1,6 +1,4 @@
-<h1>Stock Level Report</h1>
-
-<h1>Stock Level Report</h1>
+#Stock Level Report
 
 Stock Level report list stock item's quantity available in a particular warehouse.
 
diff --git a/erpnext/docs/user/manual/en/stock/articles/track-items-using-barcode.md b/erpnext/docs/user/manual/en/stock/articles/track-items-using-barcode.md
index 5b0d99a..c880dfb 100644
--- a/erpnext/docs/user/manual/en/stock/articles/track-items-using-barcode.md
+++ b/erpnext/docs/user/manual/en/stock/articles/track-items-using-barcode.md
@@ -1,20 +1,21 @@
-<h1>Track items using Barcode</h1>
+#Track Items Using Barcode
 
-A barcode, is a code using multiple lines and spaces of varying widths, designed to represent some alpha-numeric characters. For example, in retail, it generally represents item code / serial number. Most barcode scanners behave like an external keyboard. When it scans a barcode, the data appears in the computer screens at the point of cursor.
+A barcode is a value decoded into vertical spaced lines. Barcode scanners are the input medium, like Keyboard. When it scans a barcode, the data appears in the computer screens at the point of a cursor.
 
-To enable barcode feature in ERPNext go to `Setup –> Customize –> Features Setup` and check "Item Barcode" option.
-![Features Setup]({{docs_base_url}}/assets/img/articles/feature-setup-barcode.png)
+To enable barcode feature in ERPNext go to:
 
-Now, a new field "Barcode" will be appear in Item master, enter barcode while creating a new item. You can update barcode field for existing items using "Data Import Tool".
+`Setup > Customize > Features Setup`
 
-If you are creating your own barcode, then you should print those same barcodes and attach to your products.
-![Item Barcode]({{docs_base_url}}/assets/img/articles/item-barcode.png)
+Check "Item Barcode".
 
+<img alt="Material Transfer" class="screenshot" src="{{docs_base_url}}/assets/img/articles/barcode-feature-setup.png">
 
-Once you have updated barcode field in item master, you can fetch items using barcode in Delivery Note, Sales Invoice and Purchase Receipt document.
+Now a new field "Barcode" will be appear in Item master. Enter barcode while creating a new item.
 
-For example, in Delivery Note Item table, a new field "Barcode" will be appear and if you point your mouse cursor to that field and scan the barcode using Barcode Scanner, the code will appear in that field. At the same time, system will pull item details, based on the barcode.
-![Delivery Note Barcode]({{docs_base_url}}/assets/img/articles/delivery-note-barcode.png)
+<img alt="Material Transfer" class="screenshot" src="{{docs_base_url}}/assets/img/articles/barcode-item-master.png">
 
+Once barcode field is updated in item master, items can be fetched using barcode. This feature will be availble in Delivery Note, Sales Invoice and Purchase Receipt transactions only.
+
+<img alt="Material Transfer" class="screenshot" src="{{docs_base_url}}/assets/img/articles/barcode-item-selection.gif">
 
 <!-- markdown -->
\ No newline at end of file
diff --git a/erpnext/docs/user/manual/en/stock/articles/using-batch-feature-in-stock-entry.md b/erpnext/docs/user/manual/en/stock/articles/using-batch-feature-in-stock-entry.md
deleted file mode 100644
index eeb5cdf..0000000
--- a/erpnext/docs/user/manual/en/stock/articles/using-batch-feature-in-stock-entry.md
+++ /dev/null
@@ -1,13 +0,0 @@
-<h1>Using Batch feature in Stock Entry.</h1>
-
-1. You need to first create an Item Master Record. You can do so by typing 'new Item' in the Awesome bar.
-    <img class="screenshot" src="{{docs_base_url}}/assets/img/articles/Screenshot from 2014-11-18 17:56:19.png">
-2. In the Item Master fill in all item related details. In the 'Inventory' section select 'Has Batch No.' as 'YES'
-    <img  class="screenshot" src="{{docs_base_url}}/assets/img/articles/Screenshot from 2014-11-18 18:00:57.png">
-    NOTE: This option can be changed after submit but only as long as there are no Stock Entries created against that Item. Once an Stock Entry is created against that item this field freezes. To modify it again you need to cancel all outstanding 'Stock Entries'
-3. You can then create a batch. To do so you can type 'new Batch' in the Awesome bar.
-4. Fill in the batch related details and save the Doc.
-    <img  class="screenshot"
-     src="{{docs_base_url}}/assets/img/articles/Screenshot from 2014-11-18 18:09:42.png">
-5. Now in Stock Transaction You can associate a batch against that item under the 'Serial No / Batch' Section.<br>
-    <img  class="screenshot" src="{{docs_base_url}}/assets/img/articles/Screenshot from 2014-11-18 18:13:22.png"><br></div>
diff --git a/erpnext/docs/user/videos/index.md b/erpnext/docs/user/videos/index.md
index dcefe84..1399258 100644
--- a/erpnext/docs/user/videos/index.md
+++ b/erpnext/docs/user/videos/index.md
@@ -32,4 +32,4 @@
         <br><br>
 		<a href="https://conf.erpnext.com">Join us at the ERPNext Conference on October 9th 2015 in Mumbai</a>
     </div>
-</div>
+</div>
\ No newline at end of file
diff --git a/erpnext/manufacturing/doctype/bom/bom.py b/erpnext/manufacturing/doctype/bom/bom.py
index 7c47cb8..6cfbc99 100644
--- a/erpnext/manufacturing/doctype/bom/bom.py
+++ b/erpnext/manufacturing/doctype/bom/bom.py
@@ -4,17 +4,15 @@
 from __future__ import unicode_literals
 import frappe
 from frappe.utils import cint, cstr, flt
-
 from frappe import _
 from frappe.model.document import Document
 
 from operator import itemgetter
 
 class BOM(Document):
-
 	def autoname(self):
 		last_name = frappe.db.sql("""select max(name) from `tabBOM`
-			where name like "BOM/%s/%%" """ % frappe.db.escape(self.item))
+			where name like "BOM/{0}/%%" and item=%s""".format(frappe.db.escape(self.item)), self.item)
 		if last_name:
 			idx = cint(cstr(last_name[0][0]).split('/')[-1].split('-')[0]) + 1
 		else:
diff --git a/erpnext/public/js/controllers/taxes_and_totals.js b/erpnext/public/js/controllers/taxes_and_totals.js
index a8cdf83..3ccc648 100644
--- a/erpnext/public/js/controllers/taxes_and_totals.js
+++ b/erpnext/public/js/controllers/taxes_and_totals.js
@@ -504,8 +504,11 @@
 			var total_amount_to_pay = flt((this.frm.doc.grand_total - this.frm.doc.total_advance 
 				- this.frm.doc.write_off_amount), precision("grand_total"));
 		} else {
-			var total_amount_to_pay = flt((this.frm.doc.base_grand_total - this.frm.doc.total_advance 
-				- this.frm.doc.base_write_off_amount), precision("base_grand_total"));
+			var total_amount_to_pay = flt(
+				(flt(this.frm.doc.grand_total*this.frm.doc.conversion_rate, precision("grand_total")) 
+					- this.frm.doc.total_advance - this.frm.doc.base_write_off_amount), 
+				precision("base_grand_total")
+			);
 		}
 		
 		if(this.frm.doc.doctype == "Sales Invoice") {
diff --git a/erpnext/selling/doctype/quotation/quotation.js b/erpnext/selling/doctype/quotation/quotation.js
index aad4628..83cec04 100644
--- a/erpnext/selling/doctype/quotation/quotation.js
+++ b/erpnext/selling/doctype/quotation/quotation.js
@@ -25,7 +25,8 @@
 				cur_frm.add_custom_button(__('Lost'),
 					cur_frm.cscript['Declare Order Lost'], __("Status"));
 			}
-
+			
+			cur_frm.page.set_inner_btn_group_as_primary(__("Make"));
 		}
 
 		if (this.frm.doc.docstatus===0) {
diff --git a/erpnext/selling/doctype/sales_order/test_sales_order.py b/erpnext/selling/doctype/sales_order/test_sales_order.py
index 3501f52..c6ea618 100644
--- a/erpnext/selling/doctype/sales_order/test_sales_order.py
+++ b/erpnext/selling/doctype/sales_order/test_sales_order.py
@@ -334,15 +334,15 @@
 		existing_ordered_qty = bin[0].ordered_qty if bin else 0.0
 		existing_reserved_qty = bin[0].reserved_qty if bin else 0.0
 
-		bin = frappe.get_all("Bin", filters={"item_code": dn_item.item_code, "warehouse": "_Test Warehouse - _TC"},
-			fields=["reserved_qty"])
+		bin = frappe.get_all("Bin", filters={"item_code": dn_item.item_code, 
+			"warehouse": "_Test Warehouse - _TC"}, fields=["reserved_qty"])
 
 		existing_reserved_qty_for_dn_item = bin[0].reserved_qty if bin else 0.0
 
 		#create so, po and partial dn
 		so = make_sales_order(item_list=so_items, do_not_submit=True)
 		so.submit()
-
+		
 		po = make_purchase_order_for_drop_shipment(so.name, '_Test Supplier')
 		po.submit()
 
diff --git a/erpnext/stock/doctype/delivery_note/delivery_note.js b/erpnext/stock/doctype/delivery_note/delivery_note.js
index d4e7932..0b6f47e 100644
--- a/erpnext/stock/doctype/delivery_note/delivery_note.js
+++ b/erpnext/stock/doctype/delivery_note/delivery_note.js
@@ -50,14 +50,12 @@
 			if (cint(frappe.defaults.get_default("auto_accounting_for_stock"))) {
 				this.show_general_ledger();
 			}
-			if (this.frm.has_perm("submit") && (doc.status !== "Closed")
-				&& this.frm.doc.__onload && this.frm.doc.__onload.has_return_entry) {
-					cur_frm.add_custom_button(__("Close"), this.close_delivery_note, __("Status"))
+			if (this.frm.has_perm("submit") && doc.status !== "Closed") {
+				cur_frm.add_custom_button(__("Close"), this.close_delivery_note, __("Status"))
 			}
 		}
 
-		if(doc.__onload && !doc.__onload.billing_complete && doc.docstatus==1
-				&& !doc.is_return && doc.status!="Closed") {
+		if(doc.docstatus==1 && !doc.is_return && doc.status!="Closed" && flt(doc.per_billed) < 100) {
 			// show Make Invoice button only if Delivery Note is not created from Sales Invoice
 			var from_sales_invoice = false;
 			from_sales_invoice = cur_frm.doc.items.some(function(item) {
diff --git a/erpnext/stock/doctype/delivery_note/delivery_note.py b/erpnext/stock/doctype/delivery_note/delivery_note.py
index b553054..7cb855f 100644
--- a/erpnext/stock/doctype/delivery_note/delivery_note.py
+++ b/erpnext/stock/doctype/delivery_note/delivery_note.py
@@ -61,10 +61,6 @@
 			'extra_cond': """ and exists (select name from `tabDelivery Note` where name=`tabDelivery Note Item`.parent and is_return=1)"""
 		}]
 
-	def onload(self):
-		self.set_onload("has_return_entry", len(frappe.db.exists({"doctype": "Delivery Note",
-			"is_return": 1, "return_against": self.name, "docstatus": 1})))
-
 	def before_print(self):
 		def toggle_print_hide(meta, fieldname):
 			df = meta.get_field(fieldname)
diff --git a/erpnext/stock/doctype/item/test_item.py b/erpnext/stock/doctype/item/test_item.py
index 7538260..e5392d4 100644
--- a/erpnext/stock/doctype/item/test_item.py
+++ b/erpnext/stock/doctype/item/test_item.py
@@ -93,13 +93,14 @@
 			"price_list_currency": "_Test Currency",
 			"plc_conversion_rate": 1,
 			"order_type": "Sales",
+			"customer": "_Test Customer"
 		})
 
 		for key, value in to_check.iteritems():
 			self.assertEquals(value, details.get(key))
 
 	def test_make_item_variant(self):
-		frappe.delete_doc_if_exists("Item", "_Test Variant Item-L")
+		frappe.delete_doc_if_exists("Item", "_Test Variant Item-L", force=1)
 
 		variant = create_variant("_Test Variant Item", {"Test Size": "Large"})
 		variant.save()
diff --git a/erpnext/stock/doctype/material_request/material_request.py b/erpnext/stock/doctype/material_request/material_request.py
index 19c7415..74a8fa1 100644
--- a/erpnext/stock/doctype/material_request/material_request.py
+++ b/erpnext/stock/doctype/material_request/material_request.py
@@ -11,7 +11,6 @@
 from frappe import _
 from frappe.model.mapper import get_mapped_doc
 from erpnext.stock.stock_balance import update_bin_qty, get_indented_qty
-from erpnext.stock.get_item_details import apply_price_list
 from erpnext.controllers.buying_controller import BuyingController
 
 
@@ -24,7 +23,7 @@
 		return _("{0}: {1}").format(self.status, self.material_request_type)
 
 	def check_if_already_pulled(self):
-		pass#if self.[d.sales_order_no for d in self.get('items')]
+		pass
 
 	def validate_qty_against_so(self):
 		so_items = {} # Format --> {'SO/00001': {'Item/001': 120, 'Item/002': 24}}
@@ -183,7 +182,6 @@
 @frappe.whitelist()
 def make_purchase_order(source_name, target_doc=None):
 	def postprocess(source, target_doc):
-		target_doc.update(apply_price_list(target_doc.as_dict(), as_doc = True))
 		set_missing_values(source, target_doc)
 
 	doclist = get_mapped_doc("Material Request", source_name, 	{
@@ -225,9 +223,7 @@
 
 		target_doc.set("items", [d for d in target_doc.get("items")
 			if d.get("item_code") in supplier_items and d.get("qty") > 0])
-
-		target_doc.update(apply_price_list(target_doc.as_dict(), as_doc = True))
-
+		
 		set_missing_values(source, target_doc)
 
 	for mr in material_requests:
@@ -271,7 +267,6 @@
 @frappe.whitelist()
 def make_supplier_quotation(source_name, target_doc=None):
 	def postprocess(source, target_doc):
-		target_doc.update(apply_price_list(target_doc.as_dict(), as_doc = True))
 		set_missing_values(source, target_doc)
 
 	doclist = get_mapped_doc("Material Request", source_name, {
diff --git a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.js b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.js
index d66f1a1..7cf7ae9 100644
--- a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.js
+++ b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.js
@@ -55,14 +55,13 @@
 			}
 
 			if(this.frm.doc.docstatus == 1 && this.frm.doc.status!="Closed") {
-				if (this.frm.has_perm("submit") && 
-					this.frm.doc.__onload && this.frm.doc.__onload.has_return_entry) {
-						cur_frm.add_custom_button(__("Close"), this.close_purchase_receipt, __("Status"))
+				if (this.frm.has_perm("submit")) {
+					cur_frm.add_custom_button(__("Close"), this.close_purchase_receipt, __("Status"))
 				}
 				
 				cur_frm.add_custom_button(__('Return'), this.make_purchase_return, __("Make"));
 				
-				if(this.frm.doc.__onload && !this.frm.doc.__onload.billing_complete) {
+				if(flt(this.frm.doc.per_billed) < 100) {
 					cur_frm.add_custom_button(__('Invoice'), this.make_purchase_invoice, __("Make"));
 				}
 				cur_frm.page.set_inner_btn_group_as_primary(__("Make"));
diff --git a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py
index df62f7d..1d87238 100644
--- a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py
+++ b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py
@@ -46,16 +46,6 @@
 			'extra_cond': """ and exists (select name from `tabPurchase Receipt` where name=`tabPurchase Receipt Item`.parent and is_return=1)"""
 		}]
 
-	def onload(self):
-		billed_qty = frappe.db.sql("""select sum(qty) from `tabPurchase Invoice Item`
-			where purchase_receipt=%s and docstatus=1""", self.name)
-		if billed_qty:
-			total_qty = sum((item.qty for item in self.get("items")))
-			self.set_onload("billing_complete", (billed_qty[0][0] == total_qty))
-
-		self.set_onload("has_return_entry", len(frappe.db.exists({"doctype": "Purchase Receipt",
-			"is_return": 1, "return_against": self.name, "docstatus": 1})))
-
 	def validate(self):
 		super(PurchaseReceipt, self).validate()
 
diff --git a/erpnext/stock/get_item_details.py b/erpnext/stock/get_item_details.py
index 3819337..cc80d1e 100644
--- a/erpnext/stock/get_item_details.py
+++ b/erpnext/stock/get_item_details.py
@@ -6,7 +6,7 @@
 from frappe import _, throw
 from frappe.utils import flt, cint, add_days, cstr
 import json
-from erpnext.accounts.doctype.pricing_rule.pricing_rule import get_pricing_rule_for_item
+from erpnext.accounts.doctype.pricing_rule.pricing_rule import get_pricing_rule_for_item, set_transaction_type
 from erpnext.setup.utils import get_exchange_rate
 from frappe.model.meta import get_field_precision
 
@@ -84,6 +84,8 @@
 		args.item_code = get_item_code(barcode=args.barcode)
 	elif not args.item_code and args.serial_no:
 		args.item_code = get_item_code(serial_no=args.serial_no)
+	
+	set_transaction_type(args)
 
 	return args
 
@@ -107,7 +109,7 @@
 	from erpnext.stock.doctype.item.item import validate_end_of_life
 	validate_end_of_life(item.name, item.end_of_life, item.disabled)
 
-	if args.customer or args.doctype=="Opportunity":
+	if args.transaction_type=="selling":
 		# validate if sales item or service item
 		if args.get("order_type") == "Maintenance":
 			if item.is_service_item != 1:
@@ -119,7 +121,7 @@
 		if cint(item.has_variants):
 			throw(_("Item {0} is a template, please select one of its variants").format(item.name))
 
-	elif args.supplier and args.doctype != "Material Request":
+	elif args.transaction_type=="buying" and args.doctype != "Material Request":
 		# validate if purchase item or subcontracted item
 		if item.is_purchase_item != 1:
 			throw(_("Item {0} must be a Purchase Item").format(item.name))
@@ -219,7 +221,7 @@
 		out.price_list_rate = flt(price_list_rate) * flt(args.plc_conversion_rate) \
 			/ flt(args.conversion_rate)
 
-		if not out.price_list_rate and args.supplier:
+		if not out.price_list_rate and args.transaction_type=="buying":
 			from erpnext.stock.doctype.item.item import get_last_purchase_details
 			out.update(get_last_purchase_details(item_doc.name,
 				args.name, args.conversion_rate))
@@ -251,7 +253,7 @@
 def validate_price_list(args):
 	if args.get("price_list"):
 		if not frappe.db.get_value("Price List",
-			{"name": args.price_list, "selling" if (args.customer or args.lead) else "buying": 1, "enabled": 1}):
+			{"name": args.price_list, args.transaction_type: 1, "enabled": 1}):
 			throw(_("Price List {0} is disabled").format(args.price_list))
 	else:
 		throw(_("Price List not selected"))
@@ -283,10 +285,11 @@
 			frappe._dict({"fields": args})))
 
 def get_party_item_code(args, item_doc, out):
-	if args.customer:
+	if args.transaction_type=="selling" and args.customer:
 		customer_item_code = item_doc.get("customer_items", {"customer_name": args.customer})
 		out.customer_item_code = customer_item_code[0].ref_code if customer_item_code else None
-	else:
+		
+	if args.transaction_type=="buying" and args.supplier:
 		item_supplier = item_doc.get("supplier_items", {"supplier": args.supplier})
 		out.supplier_part_no = item_supplier[0].supplier_part_no if item_supplier else None
 
