diff --git a/accounts/doctype/account/account.py b/accounts/doctype/account/account.py
index 763c64b..a717fd3 100644
--- a/accounts/doctype/account/account.py
+++ b/accounts/doctype/account/account.py
@@ -149,7 +149,7 @@
 	# Check user role for approval process
 	def get_authorized_user(self):
 		# Check logged-in user is authorized
-		if get_value('Global Defaults', None, 'credit_controller') in webnotes.user.get_roles():
+		if webnotes.conn.get_value('Global Defaults', None, 'credit_controller') in webnotes.user.get_roles():
 			return 1
 			
 	# Check Credit limit for customer
@@ -160,7 +160,7 @@
 		cr_limit = sql("select t1.credit_limit from tabCustomer t1, `tabAccount` t2 where t2.name='%s' and t1.name = t2.master_name" % account)
 		credit_limit = cr_limit and flt(cr_limit[0][0]) or 0
 		if not credit_limit:
-			credit_limit = get_value('Company', company, 'credit_limit')
+			credit_limit = webnotes.conn.get_value('Company', company, 'credit_limit')
 			credit_limit_from = 'global settings in the Company'
 		
 		# If outstanding greater than credit limit and not authorized person raise exception
diff --git a/accounts/doctype/budget_control/budget_control.py b/accounts/doctype/budget_control/budget_control.py
index 75c938c..2fd321d 100644
--- a/accounts/doctype/budget_control/budget_control.py
+++ b/accounts/doctype/budget_control/budget_control.py
@@ -24,7 +24,6 @@
 from webnotes import msgprint
 
 sql = webnotes.conn.sql
-	
 
 
 class DocType:
@@ -72,7 +71,7 @@
       
       if bgt_flag and bgt_flag[0]['monthly_bgt_flag'] in ['Stop', 'Warn']:
         # get start date and last date
-        st_date = get_value('Fiscal Year', cfy, 'year_start_date').strftime('%Y-%m-%d')
+        st_date = webnotes.conn.get_value('Fiscal Year', cfy, 'year_start_date').strftime('%Y-%m-%d')
         lt_date = sql("select LAST_DAY('%s')" % post_dt)
         
         # get Actual
diff --git a/accounts/doctype/gl_entry/gl_entry.py b/accounts/doctype/gl_entry/gl_entry.py
index 4e20f1b..293a2ee 100644
--- a/accounts/doctype/gl_entry/gl_entry.py
+++ b/accounts/doctype/gl_entry/gl_entry.py
@@ -108,9 +108,9 @@
 	#----------------------------------------------------------------------------------------------
 	def check_freezing_date(self, adv_adj):
 		if not adv_adj:
-			acc_frozen_upto = get_value('Global Defaults', None, 'acc_frozen_upto')
+			acc_frozen_upto = webnotes.conn.get_value('Global Defaults', None, 'acc_frozen_upto')
 			if acc_frozen_upto:
-				bde_auth_role = get_value( 'Global Defaults', None,'bde_auth_role')
+				bde_auth_role = webnotes.conn.get_value( 'Global Defaults', None,'bde_auth_role')
 				if getdate(self.doc.posting_date) <= getdate(acc_frozen_upto) and not bde_auth_role in webnotes.user.get_roles():
 					msgprint("You are not authorized to do/modify back dated accounting entries before %s." % getdate(acc_frozen_upto).strftime('%d-%m-%Y'), raise_exception=1)
 
diff --git a/accounts/doctype/journal_voucher/journal_voucher.py b/accounts/doctype/journal_voucher/journal_voucher.py
index 450b8b8..01b6880 100644
--- a/accounts/doctype/journal_voucher/journal_voucher.py
+++ b/accounts/doctype/journal_voucher/journal_voucher.py
@@ -294,7 +294,7 @@
 			master_type, acc_type = chk_type and cstr(chk_type[0][0]) or '', chk_type and cstr(chk_type[0][1]) or ''
 			if master_type in ['Supplier', 'Customer']:
 				if not self.doc.pay_to_recd_from:
-					self.doc.pay_to_recd_from = get_value(master_type, ' - '.join(d.account.split(' - ')[:-1]), master_type == 'Customer' and 'customer_name' or 'supplier_name')
+					self.doc.pay_to_recd_from = webnotes.conn.get_value(master_type, ' - '.join(d.account.split(' - ')[:-1]), master_type == 'Customer' and 'customer_name' or 'supplier_name')
 			
 			if acc_type == 'Bank or Cash':
 				dcc = TransactionBase().get_company_currency(self.doc.company)
diff --git a/accounts/doctype/purchase_invoice/purchase_invoice.py b/accounts/doctype/purchase_invoice/purchase_invoice.py
index cf34cf6..28cf516 100644
--- a/accounts/doctype/purchase_invoice/purchase_invoice.py
+++ b/accounts/doctype/purchase_invoice/purchase_invoice.py
@@ -60,7 +60,7 @@
 	def get_cust(self):
 		ret = {}
 		if self.doc.credit_to:
-			acc = get_value('Account',self.doc.credit_to,['master_name', 'credit_days'])
+			acc = webnotes.conn.get_value('Account',self.doc.credit_to,['master_name', 'credit_days'])
 			ret['supplier'] = acc[0]
 			ret['due_date'] = add_days(cstr(self.doc.posting_date), acc and cint(acc[1]) or 0)
 			
@@ -384,7 +384,7 @@
 	# get tds rate
 	# -------------
 	def get_tds_rate(self):
-		return {'rate' : flt(get_value('Account', self.doc.tax_code, 'tax_rate'))}
+		return {'rate' : flt(webnotes.conn.get_value('Account', self.doc.tax_code, 'tax_rate'))}
 
 	# set aging date
 	#-------------------
diff --git a/accounts/search_criteria/budget_variance_report/budget_variance_report.py b/accounts/search_criteria/budget_variance_report/budget_variance_report.py
index dbb6b2d..301c19a 100644
--- a/accounts/search_criteria/budget_variance_report/budget_variance_report.py
+++ b/accounts/search_criteria/budget_variance_report/budget_variance_report.py
@@ -149,7 +149,7 @@
 
 
 # get start date
-start_date = get_value('Fiscal Year', fiscal_year, 'year_start_date')
+start_date = webnotes.conn.get_value('Fiscal Year', fiscal_year, 'year_start_date')
 if not start_date:
   msgprint("Please Define Year Start Date for Fiscal Year " + str(fiscal_year))
   raise Exception
diff --git a/buying/doctype/purchase_common/purchase_common.py b/buying/doctype/purchase_common/purchase_common.py
index b2634b0..566c01c 100644
--- a/buying/doctype/purchase_common/purchase_common.py
+++ b/buying/doctype/purchase_common/purchase_common.py
@@ -544,10 +544,10 @@
 			raise Exception
 		
 		#check if tolerance added in item master
-		tolerance = flt(get_value('Item',item_code,'tolerance') or 0)
+		tolerance = flt(webnotes.conn.get_value('Item',item_code,'tolerance') or 0)
 		
 		if not(tolerance):
-			tolerance = flt(get_value('Global Defaults',None,'tolerance') or 0)
+			tolerance = flt(webnotes.conn.get_value('Global Defaults',None,'tolerance') or 0)
 
 		if is_submit:
 			qty = qty + flt(curr_qty)
diff --git a/hr/doctype/leave_control_panel/leave_control_panel.py b/hr/doctype/leave_control_panel/leave_control_panel.py
index cb10e71..a2d4fee 100644
--- a/hr/doctype/leave_control_panel/leave_control_panel.py
+++ b/hr/doctype/leave_control_panel/leave_control_panel.py
@@ -70,7 +70,7 @@
     for d in self.get_employees():
       la = Document('Leave Allocation')
       la.employee = cstr(d[0])
-      la.employee_name = get_value('Employee',cstr(d[0]),'employee_name')
+      la.employee_name = webnotes.conn.get_value('Employee',cstr(d[0]),'employee_name')
       la.leave_type = self.doc.leave_type
       la.fiscal_year = self.doc.fiscal_year
       la.posting_date = nowdate()
diff --git a/selling/doctype/customer/customer.py b/selling/doctype/customer/customer.py
index ee5ef54..fa16f45 100644
--- a/selling/doctype/customer/customer.py
+++ b/selling/doctype/customer/customer.py
@@ -52,7 +52,7 @@
 			self.doc.name = make_autoname(self.doc.naming_series+'.#####')
 
 	def get_company_abbr(self):
-		return get_value('Company', self.doc.company, 'abbr')
+		return webnotes.conn.get_value('Company', self.doc.company, 'abbr')
 
 	def get_receivables_group(self):
 		g = sql("select receivables_group from tabCompany where name=%s", self.doc.company)
diff --git a/selling/doctype/sales_common/sales_common.py b/selling/doctype/sales_common/sales_common.py
index 96314c6..8a1bce8 100644
--- a/selling/doctype/sales_common/sales_common.py
+++ b/selling/doctype/sales_common/sales_common.py
@@ -115,7 +115,7 @@
 	# ====================
 	def get_invoice_details(self, obj = ''):
 		if obj.doc.company:
-			acc_head = webnotes.conn.sql("select name from `tabAccount` where name = '%s' and docstatus != 2" % (cstr(obj.doc.customer) + " - " + get_value('Company', obj.doc.company, 'abbr')))
+			acc_head = webnotes.conn.sql("select name from `tabAccount` where name = '%s' and docstatus != 2" % (cstr(obj.doc.customer) + " - " + webnotes.conn.get_value('Company', obj.doc.company, 'abbr')))
 			obj.doc.debit_to = acc_head and acc_head[0][0] or ''
 
 	
@@ -710,11 +710,11 @@
 		if self.tolerance.get(item_code):
 			return self.tolerance[item_code]
 		
-		tolerance = flt(get_value('Item',item_code,'tolerance') or 0)
+		tolerance = flt(webnotes.conn.get_value('Item',item_code,'tolerance') or 0)
 
 		if not tolerance:
 			if self.global_tolerance == None:
-				self.global_tolerance = flt(get_value('Global Defaults',None,'tolerance') or 0)
+				self.global_tolerance = flt(webnotes.conn.get_value('Global Defaults',None,'tolerance') or 0)
 			tolerance = self.global_tolerance
 		
 		self.tolerance[item_code] = tolerance
diff --git a/selling/search_criteria/sales_persons_target_variance_item_group_wise/sales_persons_target_variance_item_group_wise.py b/selling/search_criteria/sales_persons_target_variance_item_group_wise/sales_persons_target_variance_item_group_wise.py
index 9656a75..3c822a6 100644
--- a/selling/search_criteria/sales_persons_target_variance_item_group_wise/sales_persons_target_variance_item_group_wise.py
+++ b/selling/search_criteria/sales_persons_target_variance_item_group_wise/sales_persons_target_variance_item_group_wise.py
@@ -100,7 +100,7 @@
 
 
 # get start date
-start_date = get_value('Fiscal Year', fiscal_year, 'year_start_date')
+start_date = webnotes.conn.get_value('Fiscal Year', fiscal_year, 'year_start_date')
 if not start_date:
   msgprint("Please Define Year Start Date for Fiscal Year " + str(fiscal_year))
   raise Exception
diff --git a/selling/search_criteria/target_variance_report/target_variance_report.py b/selling/search_criteria/target_variance_report/target_variance_report.py
index ea11f1b..0c14112 100644
--- a/selling/search_criteria/target_variance_report/target_variance_report.py
+++ b/selling/search_criteria/target_variance_report/target_variance_report.py
@@ -88,7 +88,7 @@
 coloptions[col_idx[based_on]]= based_on 
 
 # get start date
-start_date = get_value('Fiscal Year', fiscal_year, 'year_start_date')
+start_date = webnotes.conn.get_value('Fiscal Year', fiscal_year, 'year_start_date')
 if not start_date:
   msgprint("Please Define Year Start Date for Fiscal Year " + str(fiscal_year))
   raise Exception
diff --git a/selling/search_criteria/territories_target_variance_item_group_wise/territories_target_variance_item_group_wise.py b/selling/search_criteria/territories_target_variance_item_group_wise/territories_target_variance_item_group_wise.py
index 0ba3fc3..17acb47 100644
--- a/selling/search_criteria/territories_target_variance_item_group_wise/territories_target_variance_item_group_wise.py
+++ b/selling/search_criteria/territories_target_variance_item_group_wise/territories_target_variance_item_group_wise.py
@@ -95,7 +95,7 @@
 #coloptions[col_idx['Item Group']]= 'Sales '
 
 # get start date
-start_date = get_value('Fiscal Year', fiscal_year, 'year_start_date')
+start_date = webnotes.conn.get_value('Fiscal Year', fiscal_year, 'year_start_date')
 if not start_date:
   msgprint("Please Define Year Start Date for Fiscal Year " + str(fiscal_year))
   raise Exception
diff --git a/selling/search_criteria/total_target_variance_report/total_target_variance_report.py b/selling/search_criteria/total_target_variance_report/total_target_variance_report.py
index a0663fd..954f9f2 100644
--- a/selling/search_criteria/total_target_variance_report/total_target_variance_report.py
+++ b/selling/search_criteria/total_target_variance_report/total_target_variance_report.py
@@ -174,7 +174,7 @@
 #coloptions[col_idx[based_on]]= based_on
 
 # get start date
-start_date = get_value('Fiscal Year', fiscal_year, 'year_start_date')
+start_date = webnotes.conn.get_value('Fiscal Year', fiscal_year, 'year_start_date')
 if not start_date:
   msgprint("Please Define Year Start Date for Fiscal Year " + str(fiscal_year))
   raise Exception
diff --git a/stock/doctype/stock_ledger/stock_ledger.py b/stock/doctype/stock_ledger/stock_ledger.py
index 3235c32..b64abaf 100644
--- a/stock/doctype/stock_ledger/stock_ledger.py
+++ b/stock/doctype/stock_ledger/stock_ledger.py
@@ -75,8 +75,8 @@
 	def validate_serial_no(self, obj, fname):
 		"""check whether serial no is required"""
 		for d in getlist(obj.doclist, fname):
-			is_stock_item = get_value('Item', d.item_code, 'is_stock_item')
-			ar_required = get_value('Item', d.item_code, 'has_serial_no')
+			is_stock_item = webnotes.conn.get_value('Item', d.item_code, 'is_stock_item')
+			ar_required = webnotes.conn.get_value('Item', d.item_code, 'has_serial_no')
 			
 			# [bug fix] need to strip serial nos of all spaces and new lines for validation
 			serial_no = cstr(d.serial_no).strip()
@@ -237,7 +237,7 @@
 		for k in args.keys():
 			# adds warehouse_type
 			if k == 'warehouse':
-				sle.fields['warehouse_type'] = get_value('Warehouse' , args[k], 'warehouse_type')
+				sle.fields['warehouse_type'] = webnotes.conn.get_value('Warehouse' , args[k], 'warehouse_type')
 			sle.fields[k] = args[k]
 		sle_obj = get_obj(doc=sle)
 		
diff --git a/stock/doctype/stock_ledger_entry/stock_ledger_entry.py b/stock/doctype/stock_ledger_entry/stock_ledger_entry.py
index 3214435..facd052 100644
--- a/stock/doctype/stock_ledger_entry/stock_ledger_entry.py
+++ b/stock/doctype/stock_ledger_entry/stock_ledger_entry.py
@@ -84,9 +84,9 @@
 	# Nobody can do SL Entries where posting date is before freezing date except authorized person
 	#----------------------------------------------------------------------------------------------
 	def check_stock_frozen_date(self):
-		stock_frozen_upto = get_value('Global Defaults', None, 'stock_frozen_upto') or ''
+		stock_frozen_upto = webnotes.conn.get_value('Global Defaults', None, 'stock_frozen_upto') or ''
 		if stock_frozen_upto:
-			stock_auth_role = get_value('Global Defaults', None,'stock_auth_role')
+			stock_auth_role = webnotes.conn.get_value('Global Defaults', None,'stock_auth_role')
 			if getdate(self.doc.posting_date) <= getdate(stock_frozen_upto) and not stock_auth_role in webnotes.user.get_roles():
 				msgprint("You are not authorized to do / modify back dated stock entries before %s" % getdate(stock_frozen_upto).strftime('%d-%m-%Y'), raise_exception=1)
 
diff --git a/stock/doctype/stock_uom_replace_utility/stock_uom_replace_utility.py b/stock/doctype/stock_uom_replace_utility/stock_uom_replace_utility.py
index a02afe9..0af37d6 100644
--- a/stock/doctype/stock_uom_replace_utility/stock_uom_replace_utility.py
+++ b/stock/doctype/stock_uom_replace_utility/stock_uom_replace_utility.py
@@ -32,7 +32,7 @@
 		self.doc, self.doclist = d,dl
 
 	def get_stock_uom(self, item_code):
-		return {'current_stock_uom': cstr(get_value('Item', item_code, 'stock_uom'))}
+		return {'current_stock_uom': cstr(webnotes.conn.get_value('Item', item_code, 'stock_uom'))}
 	
 	def validate_mandatory(self):
 		if not cstr(self.doc.item_code):
diff --git a/stock/doctype/valuation_control/valuation_control.py~ b/stock/doctype/valuation_control/valuation_control.py~
index 82e7fb9..88ce63e 100644
--- a/stock/doctype/valuation_control/valuation_control.py~
+++ b/stock/doctype/valuation_control/valuation_control.py~
@@ -49,7 +49,7 @@
 		tot = 0
 		for s in sr_nos:
 			serial_no = s.strip()
-			tot += flt(get_value('Serial No', serial_no, 'purchase_rate'))
+			tot += flt(webnotes.conn.get_value('Serial No', serial_no, 'purchase_rate'))
 		return tot / len(sr_nos)
 
 
diff --git a/utilities/doctype/sms_control/sms_control.py b/utilities/doctype/sms_control/sms_control.py
index 9b80d1e..61b45b1 100644
--- a/utilities/doctype/sms_control/sms_control.py
+++ b/utilities/doctype/sms_control/sms_control.py
@@ -41,7 +41,7 @@
 				d = d.replace(x, '')
 
 			# mobile no validation for erpnext gateway
-			if get_value('SMS Settings', None, 'sms_gateway_url'):
+			if webnotes.conn.get_value('SMS Settings', None, 'sms_gateway_url'):
 				mob_no = d
 			else:
 				if not d.startswith("0") and len(d) == 10:
@@ -104,7 +104,7 @@
 			}
 
 		# personalized or erpnext gateway
-		if get_value('SMS Settings', None, 'sms_gateway_url'):
+		if webnotes.conn.get_value('SMS Settings', None, 'sms_gateway_url'):
 			ret = self.send_via_personalized_gateway(arg)
 			msgprint(ret)
 
