Merge branch 'responsive' of github.com:webnotes/erpnext into responsive

Conflicts:
	selling/doctype/quotation/quotation.py
	utilities/transaction_base.py
diff --git a/accounts/doctype/account/account.js b/accounts/doctype/account/account.js
index c12c2d6..9a8115e 100644
--- a/accounts/doctype/account/account.js
+++ b/accounts/doctype/account/account.js
@@ -124,6 +124,7 @@
 cur_frm.fields_dict['master_name'].get_query = function(doc) {
 	if (doc.master_type) {
 		return {
+			doctype: doc.master_type,
 			query: "accounts.doctype.account.account.get_master_name",
 			filters: {	"master_type": doc.master_type }
 		}
@@ -132,7 +133,9 @@
 
 cur_frm.fields_dict['parent_account'].get_query = function(doc) {
 	return {
-		query: "accounts.doctype.account.account.get_parent_account",
-		filters: { "company": doc.company}
+		filters: {
+			"group_or_ledger": "Group", 
+			"company": doc.company
+		}
 	}
-}
+}
\ No newline at end of file
diff --git a/accounts/doctype/bank_reconciliation_detail/bank_reconciliation_detail.txt b/accounts/doctype/bank_reconciliation_detail/bank_reconciliation_detail.txt
index 11481d7..5e98cb0 100644
--- a/accounts/doctype/bank_reconciliation_detail/bank_reconciliation_detail.txt
+++ b/accounts/doctype/bank_reconciliation_detail/bank_reconciliation_detail.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-02-22 01:27:37", 
   "docstatus": 0, 
-  "modified": "2013-07-05 11:05:59", 
+  "modified": "2013-07-10 14:54:03", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -30,6 +30,7 @@
   "doctype": "DocField", 
   "fieldname": "voucher_id", 
   "fieldtype": "Link", 
+  "in_list_view": 1, 
   "label": "Voucher ID", 
   "oldfieldname": "voucher_id", 
   "oldfieldtype": "Link", 
@@ -39,6 +40,7 @@
   "doctype": "DocField", 
   "fieldname": "against_account", 
   "fieldtype": "Data", 
+  "in_list_view": 1, 
   "label": "Against Account", 
   "oldfieldname": "against_account", 
   "oldfieldtype": "Data", 
@@ -49,6 +51,7 @@
   "doctype": "DocField", 
   "fieldname": "posting_date", 
   "fieldtype": "Date", 
+  "in_list_view": 1, 
   "label": "Posting Date", 
   "oldfieldname": "posting_date", 
   "oldfieldtype": "Date", 
@@ -58,6 +61,7 @@
   "doctype": "DocField", 
   "fieldname": "clearance_date", 
   "fieldtype": "Date", 
+  "in_list_view": 1, 
   "label": "Clearance Date", 
   "oldfieldname": "clearance_date", 
   "oldfieldtype": "Date"
@@ -66,6 +70,7 @@
   "doctype": "DocField", 
   "fieldname": "cheque_number", 
   "fieldtype": "Data", 
+  "in_list_view": 1, 
   "label": "Cheque Number", 
   "oldfieldname": "cheque_number", 
   "oldfieldtype": "Data", 
@@ -75,6 +80,7 @@
   "doctype": "DocField", 
   "fieldname": "cheque_date", 
   "fieldtype": "Date", 
+  "in_list_view": 1, 
   "label": "Cheque Date", 
   "oldfieldname": "cheque_date", 
   "oldfieldtype": "Date", 
diff --git a/accounts/doctype/budget_control/budget_control.txt b/accounts/doctype/budget_control/budget_control.txt
index e86fef8..13adf4b 100644
--- a/accounts/doctype/budget_control/budget_control.txt
+++ b/accounts/doctype/budget_control/budget_control.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2012-03-27 14:35:41", 
   "docstatus": 0, 
-  "modified": "2012-03-27 14:35:41", 
+  "modified": "2013-07-10 14:54:06", 
   "modified_by": "Administrator", 
   "owner": "nabin@webnotestech.com"
  }, 
@@ -10,10 +10,7 @@
   "doctype": "DocType", 
   "issingle": 1, 
   "module": "Accounts", 
-  "name": "__common__", 
-  "section_style": "Simple", 
-  "show_in_menu": 0, 
-  "version": 23
+  "name": "__common__"
  }, 
  {
   "doctype": "DocType", 
diff --git a/accounts/doctype/budget_detail/budget_detail.txt b/accounts/doctype/budget_detail/budget_detail.txt
index 10d3a19..f16190d 100644
--- a/accounts/doctype/budget_detail/budget_detail.txt
+++ b/accounts/doctype/budget_detail/budget_detail.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-03-07 11:55:04", 
   "docstatus": 0, 
-  "modified": "2013-07-09 14:44:37", 
+  "modified": "2013-07-10 14:54:06", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -15,6 +15,7 @@
  }, 
  {
   "doctype": "DocField", 
+  "in_list_view": 1, 
   "name": "__common__", 
   "parent": "Budget Detail", 
   "parentfield": "fields", 
diff --git a/accounts/doctype/budget_distribution_detail/budget_distribution_detail.txt b/accounts/doctype/budget_distribution_detail/budget_distribution_detail.txt
index ff5d8fd..c8207bd 100644
--- a/accounts/doctype/budget_distribution_detail/budget_distribution_detail.txt
+++ b/accounts/doctype/budget_distribution_detail/budget_distribution_detail.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-02-22 01:27:38", 
   "docstatus": 0, 
-  "modified": "2013-03-07 07:03:19", 
+  "modified": "2013-07-10 14:54:06", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -15,6 +15,7 @@
  }, 
  {
   "doctype": "DocField", 
+  "in_list_view": 1, 
   "name": "__common__", 
   "parent": "Budget Distribution Detail", 
   "parentfield": "fields", 
diff --git a/accounts/doctype/c_form/c_form.js b/accounts/doctype/c_form/c_form.js
index d8c7d81..35656e9 100644
--- a/accounts/doctype/c_form/c_form.js
+++ b/accounts/doctype/c_form/c_form.js
@@ -18,10 +18,12 @@
 // -----------------------------
 cur_frm.fields_dict.invoice_details.grid.get_field("invoice_no").get_query = function(doc) {
 	return {
-		query: "accounts.doctype.c_form.c_form.get_invoice_nos",
 		filters: {
-			customer: doc.customer,
-			company: doc.company
+			"docstatus": 1, 
+			"customer": doc.customer,
+			"company": doc.company,
+			"c_form_applicable": 'Yes',
+			"c_form_no": ''
 		}
 	}
 }
diff --git a/accounts/doctype/c_form_invoice_detail/c_form_invoice_detail.txt b/accounts/doctype/c_form_invoice_detail/c_form_invoice_detail.txt
index ba247d3..487c982 100644
--- a/accounts/doctype/c_form_invoice_detail/c_form_invoice_detail.txt
+++ b/accounts/doctype/c_form_invoice_detail/c_form_invoice_detail.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-02-22 01:27:38", 
   "docstatus": 0, 
-  "modified": "2013-03-07 07:03:19", 
+  "modified": "2013-07-10 14:54:06", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -14,6 +14,7 @@
  }, 
  {
   "doctype": "DocField", 
+  "in_list_view": 1, 
   "name": "__common__", 
   "parent": "C-Form Invoice Detail", 
   "parentfield": "fields", 
diff --git a/accounts/doctype/cost_center/cost_center.js b/accounts/doctype/cost_center/cost_center.js
index 4e2b8de..d273e53 100644
--- a/accounts/doctype/cost_center/cost_center.js
+++ b/accounts/doctype/cost_center/cost_center.js
@@ -36,11 +36,25 @@
 //Account filtering for cost center
 cur_frm.fields_dict['budget_details'].grid.get_field('account').get_query = function(doc) {
 	var mydoc = locals[this.doctype][this.docname];
-	return 'SELECT DISTINCT `tabAccount`.`name`,`tabAccount`.debit_or_credit,`tabAccount`.group_or_ledger FROM `tabAccount` WHERE `tabAccount`.`company` = "' + doc.company + '" AND `tabAccount`.docstatus != 2 AND `tabAccount`.`is_pl_account` = "Yes" AND `tabAccount`.debit_or_credit = "Debit" AND `tabAccount`.`group_or_ledger` != "Group" AND `tabAccount`.`group_or_ledger` is not NULL AND `tabAccount`.`name` LIKE "%s" ORDER BY `tabAccount`.`name` LIMIT 50';
+	return{
+		filters:[
+			['Account', 'company', '=', doc.company_name],
+			['Account', 'is_pl_account', '=', 'Yes'],
+			['Account', 'debit_or_credit', '=', 'Debit'],
+			['Account', 'group_or_ledger', '!=', 'Group'],
+			['Account', 'group_or_ledger', 'is not', 'NULL']
+		]
 	}
+}
 
 cur_frm.fields_dict['parent_cost_center'].get_query = function(doc){
-	return 'SELECT DISTINCT `tabCost Center`.name FROM `tabCost Center` WHERE `tabCost Center`.group_or_ledger="Group" AND `tabCost Center`.docstatus != 2 AND `tabCost Center`.company="'+ doc.company+'" AND `tabCost Center`.company is not NULL AND `tabCost Center`.name LIKE "%s" ORDER BY `tabCost Center`.name LIMIT 50';
+	return{
+		filters:[			
+			['Cost Center', 'group_or_ledger', '=', 'Group'],
+			['Cost Center', 'company', '=', doc.company_name],
+			['Cost Center', 'company_name', 'is not', 'NULL']
+		]
+	}
 }
 
 //parent cost center
diff --git a/accounts/doctype/journal_voucher/journal_voucher.js b/accounts/doctype/journal_voucher/journal_voucher.js
index 53c8764..ea077981 100644
--- a/accounts/doctype/journal_voucher/journal_voucher.js
+++ b/accounts/doctype/journal_voucher/journal_voucher.js
@@ -196,24 +196,32 @@
 
 cur_frm.fields_dict["entries"].grid.get_field("cost_center").get_query = function(doc) {
 	return {
-		query: "accounts.utils.get_cost_center_list",
-		filters: { company: doc.company}
+		filters: { 
+			'company_name': doc.company,
+			'group_or_ledger': 'Ledger'
+		}
 	}
 }
 
 cur_frm.fields_dict['entries'].grid.get_field('against_voucher').get_query = function(doc) {	
 	var d = locals[this.doctype][this.docname];
 	return {
-		query: "accounts.doctype.journal_voucher.journal_voucher.get_against_purchase_invoice",
-		filters: { account: d.account }
+		filters: [
+			['Purchase Invoice', 'credit_to', '=', d.account],
+			['Purchase Invoice', 'docstatus', '=', 1],
+			['Purchase Invoice', 'outstanding_amount', '>', 0]
+		]
 	}
 }
 
 cur_frm.fields_dict['entries'].grid.get_field('against_invoice').get_query = function(doc) {
 	var d = locals[this.doctype][this.docname];
 	return {
-		query: "accounts.doctype.journal_voucher.journal_voucher.get_against_sales_invoice",
-		filters: { account: d.account }
+		filters: [
+			['Sales Invoice', 'debit_to', '=', d.account],
+			['Sales Invoice', 'docstatus', '=', 1],
+			['Sales Invoice', 'outstanding_amount', '>', 0]
+		]
 	}
 }
 
diff --git a/accounts/doctype/journal_voucher_detail/journal_voucher_detail.txt b/accounts/doctype/journal_voucher_detail/journal_voucher_detail.txt
index 9946bfb..750449b 100644
--- a/accounts/doctype/journal_voucher_detail/journal_voucher_detail.txt
+++ b/accounts/doctype/journal_voucher_detail/journal_voucher_detail.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-02-22 01:27:39", 
   "docstatus": 0, 
-  "modified": "2013-07-01 13:53:33", 
+  "modified": "2013-07-10 14:56:33", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -30,6 +30,7 @@
   "fieldname": "account", 
   "fieldtype": "Link", 
   "in_filter": 1, 
+  "in_list_view": 1, 
   "label": "Account", 
   "oldfieldname": "account", 
   "oldfieldtype": "Link", 
@@ -40,29 +41,13 @@
   "width": "250px"
  }, 
  {
-  "doctype": "DocField", 
-  "fieldname": "debit", 
-  "fieldtype": "Currency", 
-  "label": "Debit", 
-  "oldfieldname": "debit", 
-  "oldfieldtype": "Currency", 
-  "options": "Company:company:default_currency"
- }, 
- {
-  "doctype": "DocField", 
-  "fieldname": "credit", 
-  "fieldtype": "Currency", 
-  "label": "Credit", 
-  "oldfieldname": "credit", 
-  "oldfieldtype": "Currency", 
-  "options": "Company:company:default_currency"
- }, 
- {
   "default": ":Company", 
+  "description": "If Income or Expense", 
   "doctype": "DocField", 
   "fieldname": "cost_center", 
   "fieldtype": "Link", 
   "in_filter": 1, 
+  "in_list_view": 1, 
   "label": "Cost Center", 
   "oldfieldname": "cost_center", 
   "oldfieldtype": "Link", 
@@ -73,8 +58,29 @@
  }, 
  {
   "doctype": "DocField", 
+  "fieldname": "debit", 
+  "fieldtype": "Currency", 
+  "in_list_view": 1, 
+  "label": "Debit", 
+  "oldfieldname": "debit", 
+  "oldfieldtype": "Currency", 
+  "options": "Company:company:default_currency"
+ }, 
+ {
+  "doctype": "DocField", 
+  "fieldname": "credit", 
+  "fieldtype": "Currency", 
+  "in_list_view": 1, 
+  "label": "Credit", 
+  "oldfieldname": "credit", 
+  "oldfieldtype": "Currency", 
+  "options": "Company:company:default_currency"
+ }, 
+ {
+  "doctype": "DocField", 
   "fieldname": "balance", 
   "fieldtype": "Currency", 
+  "in_list_view": 1, 
   "label": "Account Balance", 
   "no_copy": 1, 
   "oldfieldname": "balance", 
@@ -87,6 +93,7 @@
   "fieldname": "against_voucher", 
   "fieldtype": "Link", 
   "in_filter": 1, 
+  "in_list_view": 1, 
   "label": "Against Purchase Invoice", 
   "no_copy": 1, 
   "oldfieldname": "against_voucher", 
diff --git a/accounts/doctype/mis_control/mis_control.txt b/accounts/doctype/mis_control/mis_control.txt
index 5d42bde..ed0bedb 100644
--- a/accounts/doctype/mis_control/mis_control.txt
+++ b/accounts/doctype/mis_control/mis_control.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2012-03-27 14:35:49", 
   "docstatus": 0, 
-  "modified": "2012-03-27 14:35:49", 
+  "modified": "2013-07-10 14:54:11", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -10,10 +10,7 @@
   "doctype": "DocType", 
   "issingle": 1, 
   "module": "Accounts", 
-  "name": "__common__", 
-  "section_style": "Simple", 
-  "show_in_menu": 0, 
-  "version": 120
+  "name": "__common__"
  }, 
  {
   "doctype": "DocType", 
diff --git a/accounts/doctype/mode_of_payment/mode_of_payment.js b/accounts/doctype/mode_of_payment/mode_of_payment.js
index 85b2ab1..e3625e6 100644
--- a/accounts/doctype/mode_of_payment/mode_of_payment.js
+++ b/accounts/doctype/mode_of_payment/mode_of_payment.js
@@ -15,8 +15,11 @@
 // along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 cur_frm.set_query("default_account", function(doc) {
-	return erpnext.queries.account({
-		account_type: "Bank or Cash",
-		company: doc.company
-	});
+	return{
+		query: "controllers.queries.account_query",
+		filters: {
+			'account_type': "Bank or Cash",
+			'company': doc.company
+		}
+	}
 });
\ No newline at end of file
diff --git a/accounts/doctype/payment_to_invoice_matching_tool/payment_to_invoice_matching_tool.js b/accounts/doctype/payment_to_invoice_matching_tool/payment_to_invoice_matching_tool.js
index ac7d9d2..3230ecf 100644
--- a/accounts/doctype/payment_to_invoice_matching_tool/payment_to_invoice_matching_tool.js
+++ b/accounts/doctype/payment_to_invoice_matching_tool/payment_to_invoice_matching_tool.js
@@ -36,25 +36,15 @@
 	// TO-do: check for pos, it should not come
 	if (!doc.account) msgprint("Please select Account first");
 	else {
-		return repl("select gle.voucher_no, gle.posting_date, gle.%(account_type)s \
-		    from `tabGL Entry` gle \
-		    where gle.account = '%(acc)s' \
-		    and gle.voucher_type = '%(dt)s' \
-			and gle.voucher_no like '%s' \
-		    and ifnull(gle.is_cancelled, 'No') = 'No' \
-		    and (ifnull(gle.against_voucher, '') = '' \
-		        or ifnull(gle.against_voucher, '') = gle.voucher_no ) \
-			and ifnull(gle.%(account_type)s, 0) > 0 \
-		    and (select ifnull(abs(sum(ifnull(debit, 0)) - sum(ifnull(credit, 0))), 0) \
-				from `tabGL Entry` \
-		        where against_voucher_type = '%(dt)s' \
-		        and against_voucher = gle.voucher_no \
-		        and voucher_no != gle.voucher_no \
-				and account = gle.account \
-		        and ifnull(is_cancelled, 'No') = 'No') != \
-		        abs(ifnull(gle.debit, 0) - ifnull(gle.credit, 0)) \
-		    ORDER BY gle.posting_date DESC, gle.voucher_no DESC LIMIT 50", 
-			{dt:doc.voucher_type, acc:doc.account, account_type: doc.account_type});
+		return {
+			doctype: doc.voucher_type,
+			query: "accounts.doctype.payment_to_invoice_matching_tool.payment_to_invoice_matching_tool.gl_entry_details",
+			filters: {
+				"dt": doc.voucher_type,
+				"acc": doc.account,
+				"account_type": doc.account_type 
+			}
+		}		
 	}
 }
 
diff --git a/accounts/doctype/payment_to_invoice_matching_tool/payment_to_invoice_matching_tool.py b/accounts/doctype/payment_to_invoice_matching_tool/payment_to_invoice_matching_tool.py
index ba4dec3..07a97d8 100644
--- a/accounts/doctype/payment_to_invoice_matching_tool/payment_to_invoice_matching_tool.py
+++ b/accounts/doctype/payment_to_invoice_matching_tool/payment_to_invoice_matching_tool.py
@@ -139,3 +139,30 @@
 			msgprint("Successfully allocated.")
 		else:
 			msgprint("No amount allocated.", raise_exception=1)
+
+def gl_entry_details(doctype, txt, searchfield, start, page_len, filters):
+	from controllers.queries import get_match_cond
+	
+	return webnotes.conn.sql("""select gle.voucher_no, gle.posting_date, 
+				gle.%(account_type)s from `tabGL Entry` gle
+			    where gle.account = '%(acc)s' 
+			    	and gle.voucher_type = '%(dt)s'
+					and gle.voucher_no like '%(txt)s'  
+					and ifnull(gle.is_cancelled, 'No') = 'No'
+			    	and (ifnull(gle.against_voucher, '') = '' 
+			    		or ifnull(gle.against_voucher, '') = gle.voucher_no ) 
+					and ifnull(gle.%(account_type)s, 0) > 0 
+			   		and (select ifnull(abs(sum(ifnull(debit, 0)) 
+			   				- sum(ifnull(credit, 0))), 0) 
+						from `tabGL Entry` 
+			        	where against_voucher_type = '%(dt)s' 
+			        		and against_voucher = gle.voucher_no 
+			        	and voucher_no != gle.voucher_no 
+			        	and ifnull(is_cancelled, 'No') = 'No') 
+							!= abs(ifnull(gle.debit, 0) - ifnull(gle.credit, 0)
+						) 
+					%(mcond)s
+			    ORDER BY gle.posting_date desc, gle.voucher_no desc 
+			    limit %(start)s, %(page_len)s""" %  {dt:filters["dt"], acc:filters["acc"], 
+			    account_type: filters['account_type'], 'mcond':get_match_cond(doctype, searchfield)
+			    'txt': "%%%s%%" % txt,"start": start, "page_len": page_len})
\ No newline at end of file
diff --git a/accounts/doctype/payment_to_invoice_matching_tool_detail/payment_to_invoice_matching_tool_detail.txt b/accounts/doctype/payment_to_invoice_matching_tool_detail/payment_to_invoice_matching_tool_detail.txt
index 1908101..5259f74 100644
--- a/accounts/doctype/payment_to_invoice_matching_tool_detail/payment_to_invoice_matching_tool_detail.txt
+++ b/accounts/doctype/payment_to_invoice_matching_tool_detail/payment_to_invoice_matching_tool_detail.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-02-22 01:27:39", 
   "docstatus": 0, 
-  "modified": "2013-03-07 07:03:26", 
+  "modified": "2013-07-10 14:54:11", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -28,6 +28,7 @@
   "doctype": "DocField", 
   "fieldname": "voucher_no", 
   "fieldtype": "Link", 
+  "in_list_view": 1, 
   "label": "Voucher No", 
   "options": "Journal Voucher", 
   "print_width": "140px", 
@@ -39,6 +40,7 @@
   "doctype": "DocField", 
   "fieldname": "amt_due", 
   "fieldtype": "Currency", 
+  "in_list_view": 1, 
   "label": "Unmatched Amount", 
   "options": "Company:company:default_currency", 
   "read_only": 1
@@ -47,6 +49,7 @@
   "doctype": "DocField", 
   "fieldname": "amt_to_be_reconciled", 
   "fieldtype": "Currency", 
+  "in_list_view": 1, 
   "label": "Allocated Amount", 
   "options": "Company:company:default_currency", 
   "reqd": 1
@@ -55,6 +58,7 @@
   "doctype": "DocField", 
   "fieldname": "posting_date", 
   "fieldtype": "Date", 
+  "in_list_view": 1, 
   "label": "Posting Date", 
   "read_only": 1
  }, 
@@ -62,6 +66,7 @@
   "doctype": "DocField", 
   "fieldname": "total_amt", 
   "fieldtype": "Currency", 
+  "in_list_view": 1, 
   "label": "Total Amount", 
   "options": "Company:company:default_currency", 
   "read_only": 1
@@ -70,6 +75,7 @@
   "doctype": "DocField", 
   "fieldname": "against_account", 
   "fieldtype": "Data", 
+  "in_list_view": 1, 
   "label": "Against Account", 
   "read_only": 1
  }, 
diff --git a/accounts/doctype/period_closing_voucher/period_closing_voucher.js b/accounts/doctype/period_closing_voucher/period_closing_voucher.js
index 830092b..fd45841 100644
--- a/accounts/doctype/period_closing_voucher/period_closing_voucher.js
+++ b/accounts/doctype/period_closing_voucher/period_closing_voucher.js
@@ -23,5 +23,13 @@
 
 // ***************** Get Account Head *****************
 cur_frm.fields_dict['closing_account_head'].get_query = function(doc, cdt, cdn) {
-	return 'SELECT `tabAccount`.name FROM `tabAccount` WHERE `tabAccount`.is_pl_account = "No" AND `tabAccount`.debit_or_credit = "Credit" AND `tabAccount`.company = "'+ cstr(doc.company) +'" AND ifnull(`tabAccount`.freeze_account, "No") = "No" AND `tabAccount`.group_or_ledger = "Ledger" AND `tabAccount`.%(key)s LIKE "%s" ORDER BY `tabAccount`.name ASC LIMIT 50';
+	return{
+		filters:{
+			'is_pl_account': "No",
+			"debit_or_credit": "Credit",
+			"company": doc.company,
+			"freeze_account": "No",
+			"group_or_ledger": "Ledger"
+		}
+	}	
 }
diff --git a/accounts/doctype/pos_setting/pos_setting.js b/accounts/doctype/pos_setting/pos_setting.js
index 1648bad..991c8da 100755
--- a/accounts/doctype/pos_setting/pos_setting.js
+++ b/accounts/doctype/pos_setting/pos_setting.js
@@ -25,43 +25,72 @@
 //cash bank account
 //------------------------------------
 cur_frm.fields_dict['cash_bank_account'].get_query = function(doc,cdt,cdn) {
-	return 'SELECT tabAccount.name FROM tabAccount WHERE tabAccount.debit_or_credit="Debit" AND tabAccount.is_pl_account = "No" AND tabAccount.group_or_ledger="Ledger" AND tabAccount.docstatus!=2 AND tabAccount.company="'+doc.company+'" AND tabAccount.%(key)s LIKE "%s"'
+	return{
+		filters:{
+			'debit_or_credit': "Debit",
+			'is_pl_account': "No",
+			'group_or_ledger': "Ledger",
+			'company': doc.company
+		}
+	}	
 }
 
 // Income Account 
 // --------------------------------
 cur_frm.fields_dict['income_account'].get_query = function(doc,cdt,cdn) {
-	return 'SELECT tabAccount.name FROM tabAccount WHERE tabAccount.debit_or_credit="Credit" AND tabAccount.group_or_ledger="Ledger" AND tabAccount.docstatus!=2 AND tabAccount.company="'+doc.company+'" AND tabAccount.account_type ="Income Account" AND tabAccount.%(key)s LIKE "%s"'
+	return{
+		filters:{
+			'debit_or_credit': "Credit",
+			'group_or_ledger': "Ledger",
+			'company': doc.company,
+			'account_type': "Income Account"
+		}
+	}	
 }
 
 
 // Cost Center 
 // -----------------------------
 cur_frm.fields_dict['cost_center'].get_query = function(doc,cdt,cdn) {
-	return 'SELECT `tabCost Center`.`name` FROM `tabCost Center` WHERE `tabCost Center`.`company` = "' +doc.company+'" AND `tabCost Center`.%(key)s LIKE "%s" AND `tabCost Center`.`group_or_ledger` = "Ledger" AND `tabCost Center`.`docstatus`!= 2 ORDER BY	`tabCost Center`.`name` ASC LIMIT 50';
+	return{
+		filters:{
+			'company_name': doc.company,
+			'group_or_ledger': "Ledger"
+		}
+	}	
 }
 
 //get query select Territory
 //=================================================================
 cur_frm.fields_dict['territory'].get_query = function(doc,cdt,cdn) {
-	return 'SELECT `tabTerritory`.`name`,`tabTerritory`.`parent_territory` FROM `tabTerritory` WHERE `tabTerritory`.`is_group` = "No" AND `tabTerritory`.`docstatus`!= 2 AND `tabTerritory`.%(key)s LIKE "%s"	ORDER BY	`tabTerritory`.`name` ASC LIMIT 50';
+	return{
+		filters:{
+			'is_group': "No"
+		}
+	}	
 }
 
 
 // ------------------ Get Print Heading ------------------------------------
 cur_frm.fields_dict['select_print_heading'].get_query = function(doc, cdt, cdn) {
-	return 'SELECT `tabPrint Heading`.name FROM `tabPrint Heading` WHERE `tabPrint Heading`.docstatus !=2 AND `tabPrint Heading`.name LIKE "%s" ORDER BY `tabPrint Heading`.name ASC LIMIT 50';
+	return{
+		filters:[
+			['Print Heading', 'docstatus', '!=', 2]
+		]	
+	}	
 }
 
 cur_frm.fields_dict["expense_account"].get_query = function(doc) {
 	return {
-		"query": "accounts.utils.get_account_list", 
-		"filters": {
+		filters: {
 			"is_pl_account": "Yes",
 			"debit_or_credit": "Debit",
-			"company": doc.company
+			"company": doc.company,
+			"group_or_ledger": "Ledger"
 		}
 	}
 }
 
-cur_frm.fields_dict.user.get_query = erpnext.utils.profile_query;
\ No newline at end of file
+cur_frm.fields_dict.user.get_query = function(doc,cdt,cdn) {
+	return{	query:"controllers.queries.profile_query"}
+}
diff --git a/accounts/doctype/purchase_invoice/purchase_invoice.js b/accounts/doctype/purchase_invoice/purchase_invoice.js
index 512e036..efe0c2a 100644
--- a/accounts/doctype/purchase_invoice/purchase_invoice.js
+++ b/accounts/doctype/purchase_invoice/purchase_invoice.js
@@ -152,30 +152,55 @@
 
 
 cur_frm.fields_dict['supplier_address'].get_query = function(doc, cdt, cdn) {
-	return 'SELECT name,address_line1,city FROM tabAddress WHERE supplier = "'+ doc.supplier +'" AND docstatus != 2 AND name LIKE "%s" ORDER BY name ASC LIMIT 50';
+	return{
+		filters:{'supplier':  doc.supplier}
+	}
 }
 
 cur_frm.fields_dict['contact_person'].get_query = function(doc, cdt, cdn) {
-	return 'SELECT name,CONCAT(first_name," ",ifnull(last_name,"")) As FullName,department,designation FROM tabContact WHERE supplier = "'+ doc.supplier +'" AND docstatus != 2 AND name LIKE "%s" ORDER BY name ASC LIMIT 50';
+	return{
+		filters:{'supplier':  doc.supplier}
+	}	
 }
 
 cur_frm.fields_dict['entries'].grid.get_field("item_code").get_query = function(doc, cdt, cdn) {
-	return erpnext.queries.item({
-		'ifnull(tabItem.is_purchase_item, "No")': 'Yes'
-	})
+	return {
+		query:"controllers.queries.item_query",
+		filters:{
+			'is_purchase_item': 'Yes'	
+		}
+	}	 
 }
 
 cur_frm.fields_dict['credit_to'].get_query = function(doc) {
-	return 'SELECT tabAccount.name FROM tabAccount WHERE tabAccount.debit_or_credit="Credit" AND tabAccount.is_pl_account="No" AND tabAccount.group_or_ledger="Ledger" AND tabAccount.docstatus != 2 AND tabAccount.company="'+doc.company+'" AND tabAccount.%(key)s LIKE "%s"'
+	return{
+		filters:{
+			'debit_or_credit': 'Credit',
+			'is_pl_account': 'No',
+			'group_or_ledger': 'Ledger',
+			'company': doc.company
+		}
+	}	
 }
 
 // Get Print Heading
 cur_frm.fields_dict['select_print_heading'].get_query = function(doc, cdt, cdn) {
-	return 'SELECT `tabPrint Heading`.name FROM `tabPrint Heading` WHERE `tabPrint Heading`.docstatus !=2 AND `tabPrint Heading`.name LIKE "%s" ORDER BY `tabPrint Heading`.name ASC LIMIT 50';
+return{
+		filters:[
+			['Print Heading', 'docstatus', '!=', 2]
+		]
+	}	
 }
 
 cur_frm.fields_dict['entries'].grid.get_field("expense_head").get_query = function(doc) {
-	return 'SELECT tabAccount.name FROM tabAccount WHERE (tabAccount.debit_or_credit="Debit" OR tabAccount.account_type = "Expense Account") AND tabAccount.group_or_ledger="Ledger" AND tabAccount.docstatus != 2 AND tabAccount.company="'+doc.company+'" AND tabAccount.%(key)s LIKE "%s"';
+	return{
+		filters:{
+			'debit_or_credit':'Debit',
+			'account_type': 'Expense Account',
+			'group_or_ledger': 'Ledger',
+			'company': doc.company
+		}
+	}	
 }
 cur_frm.cscript.expense_head = function(doc, cdt, cdn){
 	var d = locals[cdt][cdn];
@@ -190,8 +215,11 @@
 
 cur_frm.fields_dict["entries"].grid.get_field("cost_center").get_query = function(doc) {
 	return {
-		query: "accounts.utils.get_cost_center_list",
-		filters: { company: doc.company}
+		filters: { 
+			'company_name': doc.company,
+			'group_or_ledger': 'Ledger'
+		}
+
 	}
 }
 
@@ -232,9 +260,11 @@
 }
 
 cur_frm.fields_dict['entries'].grid.get_field('project_name').get_query = function(doc, cdt, cdn) {
-	return 'SELECT `tabProject`.name FROM `tabProject` \
-		WHERE `tabProject`.status not in ("Completed", "Cancelled") \
-		AND `tabProject`.name LIKE "%s" ORDER BY `tabProject`.name ASC LIMIT 50';
+	return{
+		filters:[
+			['Project', 'status', 'not in', 'Completed, Cancelled']
+		]
+	}	
 }
 
 
diff --git a/accounts/doctype/purchase_invoice_advance/purchase_invoice_advance.txt b/accounts/doctype/purchase_invoice_advance/purchase_invoice_advance.txt
index 6b31684..49aa688 100644
--- a/accounts/doctype/purchase_invoice_advance/purchase_invoice_advance.txt
+++ b/accounts/doctype/purchase_invoice_advance/purchase_invoice_advance.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-03-08 15:36:46", 
   "docstatus": 0, 
-  "modified": "2013-03-20 16:52:12", 
+  "modified": "2013-07-10 14:54:12", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -29,6 +29,7 @@
   "doctype": "DocField", 
   "fieldname": "journal_voucher", 
   "fieldtype": "Link", 
+  "in_list_view": 1, 
   "label": "Journal Voucher", 
   "oldfieldname": "journal_voucher", 
   "oldfieldtype": "Link", 
@@ -42,6 +43,7 @@
   "fieldname": "jv_detail_no", 
   "fieldtype": "Data", 
   "hidden": 1, 
+  "in_list_view": 0, 
   "label": "Journal Voucher Detail No", 
   "oldfieldname": "jv_detail_no", 
   "oldfieldtype": "Date", 
@@ -54,6 +56,7 @@
   "doctype": "DocField", 
   "fieldname": "advance_amount", 
   "fieldtype": "Currency", 
+  "in_list_view": 1, 
   "label": "Advance Amount", 
   "oldfieldname": "advance_amount", 
   "oldfieldtype": "Currency", 
@@ -66,6 +69,7 @@
   "doctype": "DocField", 
   "fieldname": "allocated_amount", 
   "fieldtype": "Currency", 
+  "in_list_view": 1, 
   "label": "Allocated Amount", 
   "oldfieldname": "allocated_amount", 
   "oldfieldtype": "Currency", 
@@ -77,6 +81,7 @@
   "doctype": "DocField", 
   "fieldname": "remarks", 
   "fieldtype": "Small Text", 
+  "in_list_view": 1, 
   "label": "Remarks", 
   "oldfieldname": "remarks", 
   "oldfieldtype": "Small Text", 
diff --git a/accounts/doctype/purchase_invoice_item/purchase_invoice_item.txt b/accounts/doctype/purchase_invoice_item/purchase_invoice_item.txt
index 867cd7a..d7fb8e5 100755
--- a/accounts/doctype/purchase_invoice_item/purchase_invoice_item.txt
+++ b/accounts/doctype/purchase_invoice_item/purchase_invoice_item.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-05-22 12:43:10", 
   "docstatus": 0, 
-  "modified": "2013-07-09 12:21:47", 
+  "modified": "2013-07-10 14:54:12", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -30,6 +30,7 @@
   "fieldname": "item_code", 
   "fieldtype": "Link", 
   "in_filter": 1, 
+  "in_list_view": 0, 
   "label": "Item", 
   "oldfieldname": "item_code", 
   "oldfieldtype": "Link", 
@@ -44,6 +45,7 @@
   "fieldname": "item_name", 
   "fieldtype": "Data", 
   "in_filter": 0, 
+  "in_list_view": 1, 
   "label": "Item Name", 
   "oldfieldname": "item_name", 
   "oldfieldtype": "Data", 
@@ -55,6 +57,7 @@
   "doctype": "DocField", 
   "fieldname": "description", 
   "fieldtype": "Text", 
+  "in_list_view": 1, 
   "label": "Description", 
   "oldfieldname": "description", 
   "oldfieldtype": "Text", 
@@ -64,8 +67,16 @@
  }, 
  {
   "doctype": "DocField", 
+  "fieldname": "quantity_and_rate", 
+  "fieldtype": "Section Break", 
+  "in_list_view": 0, 
+  "label": "Quantity and Rate"
+ }, 
+ {
+  "doctype": "DocField", 
   "fieldname": "qty", 
   "fieldtype": "Float", 
+  "in_list_view": 1, 
   "label": "Qty", 
   "oldfieldname": "qty", 
   "oldfieldtype": "Currency", 
@@ -77,6 +88,7 @@
   "doctype": "DocField", 
   "fieldname": "uom", 
   "fieldtype": "Link", 
+  "in_list_view": 0, 
   "label": "UOM", 
   "options": "UOM", 
   "print_hide": 1, 
@@ -86,6 +98,7 @@
   "doctype": "DocField", 
   "fieldname": "import_ref_rate", 
   "fieldtype": "Currency", 
+  "in_list_view": 0, 
   "label": "Price List Rate", 
   "options": "currency", 
   "print_hide": 1, 
@@ -95,6 +108,7 @@
   "doctype": "DocField", 
   "fieldname": "discount_rate", 
   "fieldtype": "Float", 
+  "in_list_view": 0, 
   "label": "Discount %", 
   "print_hide": 0, 
   "read_only": 0
@@ -103,6 +117,7 @@
   "doctype": "DocField", 
   "fieldname": "import_rate", 
   "fieldtype": "Currency", 
+  "in_list_view": 1, 
   "label": "Rate ", 
   "oldfieldname": "import_rate", 
   "oldfieldtype": "Currency", 
@@ -115,6 +130,7 @@
   "doctype": "DocField", 
   "fieldname": "import_amount", 
   "fieldtype": "Currency", 
+  "in_list_view": 1, 
   "label": "Amount", 
   "oldfieldname": "import_amount", 
   "oldfieldtype": "Currency", 
@@ -126,6 +142,7 @@
   "doctype": "DocField", 
   "fieldname": "purchase_ref_rate", 
   "fieldtype": "Currency", 
+  "in_list_view": 0, 
   "label": "Price List Rate (Company Currency)", 
   "options": "Company:company:default_currency", 
   "print_hide": 1, 
@@ -135,6 +152,7 @@
   "doctype": "DocField", 
   "fieldname": "rate", 
   "fieldtype": "Currency", 
+  "in_list_view": 0, 
   "label": "Rate (Company Currency)", 
   "oldfieldname": "rate", 
   "oldfieldtype": "Currency", 
@@ -147,6 +165,7 @@
   "doctype": "DocField", 
   "fieldname": "amount", 
   "fieldtype": "Currency", 
+  "in_list_view": 0, 
   "label": "Amount (Company Currency)", 
   "oldfieldname": "amount", 
   "oldfieldtype": "Currency", 
@@ -157,8 +176,16 @@
  }, 
  {
   "doctype": "DocField", 
+  "fieldname": "accounting", 
+  "fieldtype": "Section Break", 
+  "in_list_view": 0, 
+  "label": "Accounting"
+ }, 
+ {
+  "doctype": "DocField", 
   "fieldname": "expense_head", 
   "fieldtype": "Link", 
+  "in_list_view": 0, 
   "label": "Expense Head", 
   "oldfieldname": "expense_head", 
   "oldfieldtype": "Link", 
@@ -174,6 +201,7 @@
   "doctype": "DocField", 
   "fieldname": "cost_center", 
   "fieldtype": "Link", 
+  "in_list_view": 0, 
   "label": "Cost Center", 
   "oldfieldname": "cost_center", 
   "oldfieldtype": "Link", 
@@ -185,9 +213,17 @@
  }, 
  {
   "doctype": "DocField", 
+  "fieldname": "reference", 
+  "fieldtype": "Section Break", 
+  "in_list_view": 0, 
+  "label": "Reference"
+ }, 
+ {
+  "doctype": "DocField", 
   "fieldname": "project_name", 
   "fieldtype": "Link", 
   "in_filter": 1, 
+  "in_list_view": 0, 
   "label": "Project Name", 
   "options": "Project", 
   "print_hide": 1, 
@@ -198,6 +234,7 @@
   "fieldname": "brand", 
   "fieldtype": "Data", 
   "hidden": 1, 
+  "in_list_view": 0, 
   "label": "Brand", 
   "oldfieldname": "brand", 
   "oldfieldtype": "Data", 
@@ -210,6 +247,7 @@
   "fieldtype": "Link", 
   "hidden": 1, 
   "in_filter": 1, 
+  "in_list_view": 0, 
   "label": "Item Group", 
   "oldfieldname": "item_group", 
   "oldfieldtype": "Link", 
@@ -223,6 +261,7 @@
   "fieldname": "purchase_order", 
   "fieldtype": "Link", 
   "in_filter": 1, 
+  "in_list_view": 0, 
   "label": "Purchase Order", 
   "no_copy": 1, 
   "oldfieldname": "purchase_order", 
@@ -238,6 +277,7 @@
   "fieldtype": "Data", 
   "hidden": 1, 
   "in_filter": 1, 
+  "in_list_view": 0, 
   "label": "Purchase Order Item", 
   "no_copy": 1, 
   "oldfieldname": "po_detail", 
@@ -251,6 +291,7 @@
   "fieldname": "purchase_receipt", 
   "fieldtype": "Link", 
   "in_filter": 1, 
+  "in_list_view": 0, 
   "label": "Purchase Receipt", 
   "no_copy": 1, 
   "oldfieldname": "purchase_receipt", 
@@ -266,6 +307,7 @@
   "fieldtype": "Data", 
   "hidden": 1, 
   "in_filter": 1, 
+  "in_list_view": 0, 
   "label": "PR Detail", 
   "no_copy": 1, 
   "oldfieldname": "pr_detail", 
@@ -280,6 +322,7 @@
   "fieldname": "item_tax_rate", 
   "fieldtype": "Small Text", 
   "hidden": 1, 
+  "in_list_view": 0, 
   "label": "Item Tax Rate", 
   "oldfieldname": "item_tax_rate", 
   "oldfieldtype": "Small Text", 
@@ -292,6 +335,7 @@
   "fieldname": "item_tax_amount", 
   "fieldtype": "Currency", 
   "hidden": 1, 
+  "in_list_view": 0, 
   "label": "Item Tax Amount", 
   "no_copy": 1, 
   "options": "Company:company:default_currency", 
@@ -306,6 +350,7 @@
   "fieldname": "valuation_rate", 
   "fieldtype": "Currency", 
   "hidden": 1, 
+  "in_list_view": 0, 
   "label": "Valuation Rate", 
   "no_copy": 1, 
   "options": "Company:company:default_currency", 
@@ -316,6 +361,7 @@
   "doctype": "DocField", 
   "fieldname": "conversion_factor", 
   "fieldtype": "Float", 
+  "in_list_view": 0, 
   "label": "Conversion Factor", 
   "print_hide": 1, 
   "read_only": 0
@@ -325,6 +371,7 @@
   "fieldname": "rm_supp_cost", 
   "fieldtype": "Currency", 
   "hidden": 1, 
+  "in_list_view": 0, 
   "label": "Raw Materials Supplied Cost", 
   "no_copy": 1, 
   "options": "Company:company:default_currency", 
@@ -336,6 +383,7 @@
   "doctype": "DocField", 
   "fieldname": "page_break", 
   "fieldtype": "Check", 
+  "in_list_view": 0, 
   "label": "Page Break", 
   "no_copy": 1, 
   "print_hide": 1, 
diff --git a/accounts/doctype/purchase_taxes_and_charges/purchase_taxes_and_charges.txt b/accounts/doctype/purchase_taxes_and_charges/purchase_taxes_and_charges.txt
index d6d2a92..5ea7fc0 100644
--- a/accounts/doctype/purchase_taxes_and_charges/purchase_taxes_and_charges.txt
+++ b/accounts/doctype/purchase_taxes_and_charges/purchase_taxes_and_charges.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-05-21 16:16:04", 
   "docstatus": 0, 
-  "modified": "2013-05-28 12:02:02", 
+  "modified": "2013-07-10 14:54:18", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -31,6 +31,7 @@
   "doctype": "DocField", 
   "fieldname": "category", 
   "fieldtype": "Select", 
+  "in_list_view": 1, 
   "label": "Consider Tax or Charge for", 
   "oldfieldname": "category", 
   "oldfieldtype": "Select", 
@@ -42,6 +43,7 @@
   "doctype": "DocField", 
   "fieldname": "charge_type", 
   "fieldtype": "Select", 
+  "in_list_view": 1, 
   "label": "Type", 
   "oldfieldname": "charge_type", 
   "oldfieldtype": "Select", 
@@ -53,6 +55,7 @@
   "doctype": "DocField", 
   "fieldname": "account_head", 
   "fieldtype": "Link", 
+  "in_list_view": 1, 
   "label": "Account Head", 
   "oldfieldname": "account_head", 
   "oldfieldtype": "Link", 
@@ -65,6 +68,7 @@
   "doctype": "DocField", 
   "fieldname": "cost_center", 
   "fieldtype": "Link", 
+  "in_list_view": 1, 
   "label": "Cost Center", 
   "oldfieldname": "cost_center", 
   "oldfieldtype": "Link", 
@@ -75,6 +79,7 @@
   "doctype": "DocField", 
   "fieldname": "description", 
   "fieldtype": "Small Text", 
+  "in_list_view": 1, 
   "label": "Description", 
   "oldfieldname": "description", 
   "oldfieldtype": "Small Text", 
@@ -87,6 +92,7 @@
   "doctype": "DocField", 
   "fieldname": "rate", 
   "fieldtype": "Float", 
+  "in_list_view": 1, 
   "label": "Rate", 
   "oldfieldname": "rate", 
   "oldfieldtype": "Currency", 
diff --git a/accounts/doctype/purchase_taxes_and_charges_master/purchase_taxes_and_charges_master.js b/accounts/doctype/purchase_taxes_and_charges_master/purchase_taxes_and_charges_master.js
index a147ac1..c9f78fb 100644
--- a/accounts/doctype/purchase_taxes_and_charges_master/purchase_taxes_and_charges_master.js
+++ b/accounts/doctype/purchase_taxes_and_charges_master/purchase_taxes_and_charges_master.js
@@ -127,18 +127,28 @@
   refresh_field('row_id',d.name,'purchase_tax_details');
 }
 
-/*---------------------- Get rate if account_head has account_type as TAX or CHARGEABLE-------------------------------------*/
-
-cur_frm.fields_dict['purchase_tax_details'].grid.get_field("account_head").get_query = function(doc,cdt,cdn) {
-  return 'SELECT tabAccount.name FROM tabAccount WHERE tabAccount.group_or_ledger="Ledger" AND tabAccount.docstatus != 2 AND (tabAccount.account_type in ("Tax", "Chargeable", "Expense Account") or (tabAccount.is_pl_account = "Yes" and tabAccount.debit_or_credit = "Debit")) AND tabAccount.company = "' + doc.company + '" AND  tabAccount.name LIKE "%s"'
-}
-
+cur_frm.set_query("account_head", "purchase_tax_details", function() {
+  return {
+    filters: [
+      ["Account", "group_or_ledger", "=", "Ledger"],
+      ["Account", "docstatus", "!=", 2],
+      ["Account", "account_type", "in", "Tax, Chargeable, Expense Account"],
+      ["Account", "is_pl_account", "=", "Yes"],
+      ["Account", "debit_or_credit", "=", "Debit"],
+      ["Account", "company", "=", doc.company]
+    ]
+  }
+});
 
 cur_frm.fields_dict['purchase_tax_details'].grid.get_field("cost_center").get_query = function(doc) {
-	return 'SELECT `tabCost Center`.`name` FROM `tabCost Center` WHERE `tabCost Center`.`company` = "' +doc.company+'" AND `tabCost Center`.%(key)s LIKE "%s" AND `tabCost Center`.`group_or_ledger` = "Ledger" AND `tabCost Center`.`docstatus`!= 2 ORDER BY	`tabCost Center`.`name` ASC LIMIT 50';
+  return {
+    filters: {
+      'company_name': doc.company,
+      'group_or_ledger': "Ledger"
+    }
+  }
 }
 
-
 cur_frm.cscript.account_head = function(doc, cdt, cdn) {
   var d = locals[cdt][cdn];
   if(!d.charge_type && d.account_head){
diff --git a/accounts/doctype/sales_invoice/sales_invoice.js b/accounts/doctype/sales_invoice/sales_invoice.js
index c7d7d25..70bf03b 100644
--- a/accounts/doctype/sales_invoice/sales_invoice.js
+++ b/accounts/doctype/sales_invoice/sales_invoice.js
@@ -249,55 +249,84 @@
 }
 
 cur_frm.fields_dict.debit_to.get_query = function(doc) {
-	return 'SELECT tabAccount.name FROM tabAccount WHERE tabAccount.debit_or_credit="Debit" AND tabAccount.is_pl_account = "No" AND tabAccount.group_or_ledger="Ledger" AND tabAccount.docstatus!=2 AND tabAccount.company="'+doc.company+'" AND tabAccount.%(key)s LIKE "%s"'
+	return{
+		filters: {
+			'debit_or_credit': 'Debit',
+			'is_pl_account': 'No',
+			'group_or_ledger': 'Ledger',
+			'company': doc.company
+		}
+	}
 }
 
 cur_frm.fields_dict.cash_bank_account.get_query = function(doc) {
-	return 'SELECT tabAccount.name FROM tabAccount WHERE tabAccount.debit_or_credit="Debit" AND tabAccount.is_pl_account = "No" AND tabAccount.group_or_ledger="Ledger" AND tabAccount.docstatus!=2 AND tabAccount.company="'+doc.company+'" AND tabAccount.%(key)s LIKE "%s"'
+	return{
+		filters: {
+			'debit_or_credit': 'Debit',
+			'is_pl_account': 'No',
+			'group_or_ledger': 'Ledger',
+			'company': doc.company
+		}
+	}	
 }
 
 cur_frm.fields_dict.write_off_account.get_query = function(doc) {
-	return 'SELECT tabAccount.name FROM tabAccount WHERE tabAccount.debit_or_credit="Debit" AND tabAccount.is_pl_account = "Yes" AND tabAccount.group_or_ledger="Ledger" AND tabAccount.docstatus!=2 AND tabAccount.company="'+doc.company+'" AND tabAccount.%(key)s LIKE "%s"'
+	return{
+		filters:{
+			'debit_or_credit': 'Debit',
+			'is_pl_account': 'Yes',
+			'group_or_ledger': 'Ledger',
+			'company': doc.company
+		}
+	}
 }
 
 // Write off cost center
 //-----------------------
 cur_frm.fields_dict.write_off_cost_center.get_query = function(doc) {
-	return 'SELECT `tabCost Center`.name FROM `tabCost Center` WHERE `tabCost Center`.group_or_ledger="Ledger" AND `tabCost Center`.docstatus!=2 AND `tabCost Center`.company="'+doc.company+'" AND `tabCost Center`.%(key)s LIKE "%s"'
+	return{
+		filters:{
+			'group_or_ledger': 'Ledger',
+			'company_name': doc.company
+		}
+	}	
 }
 
 //project name
 //--------------------------
 cur_frm.fields_dict['project_name'].get_query = function(doc, cdt, cdn) {
-	var cond = '';
-	if(doc.customer) cond = '(`tabProject`.customer = "'+doc.customer+'" OR IFNULL(`tabProject`.customer,"")="") AND';
-	return repl('SELECT `tabProject`.name FROM `tabProject` \
-		WHERE `tabProject`.status not in ("Completed", "Cancelled") \
-		AND %(cond)s `tabProject`.name LIKE "%s" \
-		ORDER BY `tabProject`.name ASC LIMIT 50', {cond:cond});
+	return{
+		query: "controllers.queries.get_project_name",
+		filters: {'customer': doc.customer}
+	}	
 }
 
 //Territory
 //-----------------------------
 cur_frm.fields_dict['territory'].get_query = function(doc,cdt,cdn) {
-	return 'SELECT `tabTerritory`.`name`,`tabTerritory`.`parent_territory` FROM `tabTerritory` WHERE `tabTerritory`.`is_group` = "No" AND `tabTerritory`.`docstatus`!= 2 AND `tabTerritory`.%(key)s LIKE "%s"	ORDER BY	`tabTerritory`.`name` ASC LIMIT 50';
+	return{
+		filters: {'is_group': 'NO'}
+	}	
 }
 
 // Income Account in Details Table
 // --------------------------------
 cur_frm.set_query("income_account", "entries", function(doc) {
-	return 'SELECT tabAccount.name FROM tabAccount WHERE (tabAccount.debit_or_credit="Credit" OR tabAccount.account_type = "Income Account") AND tabAccount.group_or_ledger="Ledger" AND tabAccount.docstatus!=2 AND tabAccount.company="'+doc.company+'" AND tabAccount.%(key)s LIKE "%s"';	
-})
+	return{
+		query: "accounts.doctype.sales_invoice.sales_invoice.get_income_account",
+		filters: {'company': doc.company}
+	}
+});
 
 // expense account
 if (sys_defaults.auto_inventory_accounting) {
 	cur_frm.fields_dict['entries'].grid.get_field('expense_account').get_query = function(doc) {
 		return {
-			"query": "accounts.utils.get_account_list", 
-			"filters": {
-				"is_pl_account": "Yes",
-				"debit_or_credit": "Debit",
-				"company": doc.company
+			filters: {
+				'is_pl_account': 'Yes',
+				'debit_or_credit': 'Debit',
+				'company': doc.company,
+				'group_or_ledger': 'Ledger'
 			}
 		}
 	}
@@ -307,15 +336,22 @@
 //----------------------------
 cur_frm.fields_dict['entries'].grid.get_field('warehouse').get_query= function(doc, cdt, cdn) {
 	var d = locals[cdt][cdn];
-	return "SELECT `tabBin`.`warehouse`, `tabBin`.`actual_qty` FROM `tabBin` WHERE `tabBin`.`item_code` = '"+ d.item_code +"' AND ifnull(`tabBin`.`actual_qty`,0) > 0 AND `tabBin`.`warehouse` like '%s' ORDER BY `tabBin`.`warehouse` DESC LIMIT 50";
+	return{
+		filters:[
+			['Bin', 'item_code', '=', d.item_code],
+			['Bin', 'actual_qty', '>', 0]
+		]
+	}	
 }
 
 // Cost Center in Details Table
 // -----------------------------
 cur_frm.fields_dict["entries"].grid.get_field("cost_center").get_query = function(doc) {
 	return {
-		query: "accounts.utils.get_cost_center_list",
-		filters: { company: doc.company}
+		filters: { 
+			'company': doc.company,
+			'group_or_ledger': 'Ledger'
+		}	
 	}
 }
 
diff --git a/accounts/doctype/sales_invoice/sales_invoice.py b/accounts/doctype/sales_invoice/sales_invoice.py
index e0147b1..e42cb73 100644
--- a/accounts/doctype/sales_invoice/sales_invoice.py
+++ b/accounts/doctype/sales_invoice/sales_invoice.py
@@ -984,3 +984,16 @@
 	return {
 		"cash_bank_account": val
 	}
+
+def get_income_account(doctype, txt, searchfield, start, page_len, filters):
+	from controllers.queries import get_match_cond
+
+	return webnotes.conn.sql("""select tabAccount.name from `tabAccount` 
+			where (tabAccount.debit_or_credit="Credit" 
+					or tabAccount.account_type = "Income Account") 
+				and tabAccount.group_or_ledger="Ledger" 
+				and tabAccount.docstatus!=2 
+				and tabAccount.company = '%(company)s' 
+				and tabAccount.%(key)s LIKE '%(txt)s'
+				%(mcond)s""" % {'company': filters['company'], 'key': searchfield, 
+			'txt': "%%%s%%" % txt, 'mcond':get_match_cond(doctype, searchfield)})
\ No newline at end of file
diff --git a/accounts/doctype/sales_invoice_advance/sales_invoice_advance.txt b/accounts/doctype/sales_invoice_advance/sales_invoice_advance.txt
index 32ef4c5..b82f4ac 100644
--- a/accounts/doctype/sales_invoice_advance/sales_invoice_advance.txt
+++ b/accounts/doctype/sales_invoice_advance/sales_invoice_advance.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-02-22 01:27:41", 
   "docstatus": 0, 
-  "modified": "2013-03-07 07:03:30", 
+  "modified": "2013-07-10 14:54:19", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -29,6 +29,7 @@
   "doctype": "DocField", 
   "fieldname": "journal_voucher", 
   "fieldtype": "Link", 
+  "in_list_view": 1, 
   "label": "Journal Voucher", 
   "oldfieldname": "journal_voucher", 
   "oldfieldtype": "Link", 
@@ -42,6 +43,7 @@
   "fieldname": "jv_detail_no", 
   "fieldtype": "Data", 
   "hidden": 1, 
+  "in_list_view": 0, 
   "label": "Journal Voucher Detail No", 
   "oldfieldname": "jv_detail_no", 
   "oldfieldtype": "Data", 
@@ -54,6 +56,7 @@
   "doctype": "DocField", 
   "fieldname": "advance_amount", 
   "fieldtype": "Currency", 
+  "in_list_view": 1, 
   "label": "Advance amount", 
   "oldfieldname": "advance_amount", 
   "oldfieldtype": "Currency", 
@@ -66,6 +69,7 @@
   "doctype": "DocField", 
   "fieldname": "allocated_amount", 
   "fieldtype": "Currency", 
+  "in_list_view": 1, 
   "label": "Allocated amount", 
   "oldfieldname": "allocated_amount", 
   "oldfieldtype": "Currency", 
@@ -77,6 +81,7 @@
   "doctype": "DocField", 
   "fieldname": "remarks", 
   "fieldtype": "Small Text", 
+  "in_list_view": 1, 
   "label": "Remarks", 
   "oldfieldname": "remarks", 
   "oldfieldtype": "Small Text", 
diff --git a/accounts/doctype/sales_invoice_item/sales_invoice_item.txt b/accounts/doctype/sales_invoice_item/sales_invoice_item.txt
index b0fd7c7..03b9f8b 100644
--- a/accounts/doctype/sales_invoice_item/sales_invoice_item.txt
+++ b/accounts/doctype/sales_invoice_item/sales_invoice_item.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-06-04 11:02:19", 
   "docstatus": 0, 
-  "modified": "2013-07-09 12:46:12", 
+  "modified": "2013-07-10 14:54:19", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -29,6 +29,7 @@
   "doctype": "DocField", 
   "fieldname": "barcode", 
   "fieldtype": "Data", 
+  "in_list_view": 0, 
   "label": "Barcode", 
   "print_hide": 1, 
   "read_only": 0
@@ -38,6 +39,7 @@
   "fieldname": "item_code", 
   "fieldtype": "Link", 
   "in_filter": 1, 
+  "in_list_view": 1, 
   "label": "Item", 
   "oldfieldname": "item_code", 
   "oldfieldtype": "Link", 
@@ -52,6 +54,7 @@
   "fieldname": "customer_item_code", 
   "fieldtype": "Data", 
   "hidden": 1, 
+  "in_list_view": 0, 
   "label": "Customer's Item Code", 
   "print_hide": 1, 
   "read_only": 1
@@ -61,6 +64,7 @@
   "fieldname": "item_name", 
   "fieldtype": "Data", 
   "in_filter": 0, 
+  "in_list_view": 0, 
   "label": "Item Name", 
   "oldfieldname": "item_name", 
   "oldfieldtype": "Data", 
@@ -73,6 +77,7 @@
   "doctype": "DocField", 
   "fieldname": "description", 
   "fieldtype": "Text", 
+  "in_list_view": 1, 
   "label": "Description", 
   "oldfieldname": "description", 
   "oldfieldtype": "Text", 
@@ -83,8 +88,16 @@
  }, 
  {
   "doctype": "DocField", 
+  "fieldname": "quantity_and_rate", 
+  "fieldtype": "Section Break", 
+  "in_list_view": 0, 
+  "label": "Quantity and Rate"
+ }, 
+ {
+  "doctype": "DocField", 
   "fieldname": "qty", 
   "fieldtype": "Float", 
+  "in_list_view": 1, 
   "label": "Quantity", 
   "oldfieldname": "qty", 
   "oldfieldtype": "Currency", 
@@ -95,6 +108,7 @@
   "doctype": "DocField", 
   "fieldname": "stock_uom", 
   "fieldtype": "Data", 
+  "in_list_view": 0, 
   "label": "UOM", 
   "read_only": 1
  }, 
@@ -102,6 +116,7 @@
   "doctype": "DocField", 
   "fieldname": "ref_rate", 
   "fieldtype": "Currency", 
+  "in_list_view": 0, 
   "label": "Price List Rate", 
   "oldfieldname": "ref_rate", 
   "oldfieldtype": "Currency", 
@@ -114,6 +129,7 @@
   "doctype": "DocField", 
   "fieldname": "adj_rate", 
   "fieldtype": "Float", 
+  "in_list_view": 0, 
   "label": "Discount (%)", 
   "oldfieldname": "adj_rate", 
   "oldfieldtype": "Float", 
@@ -124,6 +140,7 @@
   "doctype": "DocField", 
   "fieldname": "export_rate", 
   "fieldtype": "Currency", 
+  "in_list_view": 1, 
   "label": "Basic Rate", 
   "oldfieldname": "export_rate", 
   "oldfieldtype": "Currency", 
@@ -135,6 +152,7 @@
   "doctype": "DocField", 
   "fieldname": "export_amount", 
   "fieldtype": "Currency", 
+  "in_list_view": 1, 
   "label": "Amount", 
   "oldfieldname": "export_amount", 
   "oldfieldtype": "Currency", 
@@ -146,6 +164,7 @@
   "doctype": "DocField", 
   "fieldname": "base_ref_rate", 
   "fieldtype": "Currency", 
+  "in_list_view": 0, 
   "label": "Price List Rate (Company Currency)", 
   "oldfieldname": "base_ref_rate", 
   "oldfieldtype": "Currency", 
@@ -158,6 +177,7 @@
   "fieldname": "basic_rate", 
   "fieldtype": "Currency", 
   "in_filter": 0, 
+  "in_list_view": 0, 
   "label": "Basic Rate (Company Currency)", 
   "oldfieldname": "basic_rate", 
   "oldfieldtype": "Currency", 
@@ -171,6 +191,7 @@
   "doctype": "DocField", 
   "fieldname": "amount", 
   "fieldtype": "Currency", 
+  "in_list_view": 0, 
   "label": "Amount (Company Currency)", 
   "oldfieldname": "amount", 
   "oldfieldtype": "Currency", 
@@ -181,21 +202,17 @@
  }, 
  {
   "doctype": "DocField", 
-  "fieldname": "warehouse", 
-  "fieldtype": "Link", 
-  "hidden": 0, 
-  "label": "Warehouse", 
-  "oldfieldname": "warehouse", 
-  "oldfieldtype": "Link", 
-  "options": "Warehouse", 
-  "print_hide": 1, 
-  "read_only": 0
+  "fieldname": "accounting", 
+  "fieldtype": "Section Break", 
+  "in_list_view": 0, 
+  "label": "Accounting"
  }, 
  {
   "doctype": "DocField", 
   "fieldname": "income_account", 
   "fieldtype": "Link", 
   "in_filter": 1, 
+  "in_list_view": 0, 
   "label": "Income Account", 
   "oldfieldname": "income_account", 
   "oldfieldtype": "Link", 
@@ -212,6 +229,7 @@
   "fieldtype": "Link", 
   "hidden": 0, 
   "in_filter": 1, 
+  "in_list_view": 0, 
   "label": "Expense Account", 
   "options": "Account", 
   "print_hide": 1, 
@@ -224,6 +242,7 @@
   "fieldname": "cost_center", 
   "fieldtype": "Link", 
   "in_filter": 1, 
+  "in_list_view": 0, 
   "label": "Cost Center", 
   "oldfieldname": "cost_center", 
   "oldfieldtype": "Link", 
@@ -236,9 +255,30 @@
  }, 
  {
   "doctype": "DocField", 
+  "fieldname": "warehouse_and_reference", 
+  "fieldtype": "Section Break", 
+  "in_list_view": 0, 
+  "label": "Warehouse and Reference"
+ }, 
+ {
+  "doctype": "DocField", 
+  "fieldname": "warehouse", 
+  "fieldtype": "Link", 
+  "hidden": 0, 
+  "in_list_view": 0, 
+  "label": "Warehouse", 
+  "oldfieldname": "warehouse", 
+  "oldfieldtype": "Link", 
+  "options": "Warehouse", 
+  "print_hide": 1, 
+  "read_only": 0
+ }, 
+ {
+  "doctype": "DocField", 
   "fieldname": "serial_no", 
   "fieldtype": "Small Text", 
   "in_filter": 1, 
+  "in_list_view": 1, 
   "label": "Serial No", 
   "oldfieldname": "serial_no", 
   "oldfieldtype": "Small Text", 
diff --git a/accounts/doctype/sales_taxes_and_charges/sales_taxes_and_charges.txt b/accounts/doctype/sales_taxes_and_charges/sales_taxes_and_charges.txt
index ba9f907..fbba643 100644
--- a/accounts/doctype/sales_taxes_and_charges/sales_taxes_and_charges.txt
+++ b/accounts/doctype/sales_taxes_and_charges/sales_taxes_and_charges.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-04-24 11:39:32", 
   "docstatus": 0, 
-  "modified": "2013-05-28 11:59:02", 
+  "modified": "2013-07-10 14:54:21", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -30,6 +30,7 @@
   "doctype": "DocField", 
   "fieldname": "charge_type", 
   "fieldtype": "Select", 
+  "in_list_view": 1, 
   "label": "Type", 
   "oldfieldname": "charge_type", 
   "oldfieldtype": "Select", 
@@ -40,6 +41,7 @@
   "doctype": "DocField", 
   "fieldname": "account_head", 
   "fieldtype": "Link", 
+  "in_list_view": 1, 
   "label": "Account Head", 
   "oldfieldname": "account_head", 
   "oldfieldtype": "Link", 
@@ -52,6 +54,7 @@
   "doctype": "DocField", 
   "fieldname": "cost_center", 
   "fieldtype": "Link", 
+  "in_list_view": 1, 
   "label": "Cost Center", 
   "oldfieldname": "cost_center_other_charges", 
   "oldfieldtype": "Link", 
@@ -61,6 +64,7 @@
   "doctype": "DocField", 
   "fieldname": "description", 
   "fieldtype": "Small Text", 
+  "in_list_view": 1, 
   "label": "Description", 
   "oldfieldname": "description", 
   "oldfieldtype": "Small Text", 
@@ -72,6 +76,7 @@
   "doctype": "DocField", 
   "fieldname": "rate", 
   "fieldtype": "Float", 
+  "in_list_view": 1, 
   "label": "Rate", 
   "oldfieldname": "rate", 
   "oldfieldtype": "Currency", 
@@ -81,6 +86,7 @@
   "doctype": "DocField", 
   "fieldname": "tax_amount", 
   "fieldtype": "Currency", 
+  "in_list_view": 1, 
   "label": "Amount", 
   "oldfieldname": "tax_amount", 
   "oldfieldtype": "Currency", 
diff --git a/accounts/doctype/sales_taxes_and_charges_master/sales_taxes_and_charges_master.js b/accounts/doctype/sales_taxes_and_charges_master/sales_taxes_and_charges_master.js
index 9f4cb08..9ec574e 100644
--- a/accounts/doctype/sales_taxes_and_charges_master/sales_taxes_and_charges_master.js
+++ b/accounts/doctype/sales_taxes_and_charges_master/sales_taxes_and_charges_master.js
@@ -137,11 +137,20 @@
 /*---------------------- Get rate if account_head has account_type as TAX or CHARGEABLE-------------------------------------*/
 
 cur_frm.fields_dict['other_charges'].grid.get_field("account_head").get_query = function(doc,cdt,cdn) {
-  return 'SELECT tabAccount.name FROM tabAccount WHERE tabAccount.group_or_ledger="Ledger" AND tabAccount.docstatus != 2 AND tabAccount.account_type in ("Tax", "Chargeable", "Income Account") AND tabAccount.company = "'+doc.company+'" AND  tabAccount.name LIKE "%s"'
+  return{
+    filters:[
+      ['Account', 'group_or_ledger', '=', 'Ledger'],
+      ['Account', 'account_type', 'in', 'Tax, Chargeable, Income Account'],
+      ['Account', 'company', '=', doc.company]
+    ]
+  }  
 }
 
 cur_frm.fields_dict['other_charges'].grid.get_field("cost_center").get_query = function(doc) {
-	return 'SELECT `tabCost Center`.`name` FROM `tabCost Center` WHERE `tabCost Center`.`company` = "' +doc.company+'" AND `tabCost Center`.%(key)s LIKE "%s" AND `tabCost Center`.`group_or_ledger` = "Ledger" AND `tabCost Center`.`docstatus`!= 2 ORDER BY	`tabCost Center`.`name` ASC LIMIT 50';
+  return{
+    'company_name': doc.company,
+    'group_or_ledger': "Ledger"
+  }	
 }
 
 
diff --git a/accounts/doctype/shipping_rule_condition/shipping_rule_condition.txt b/accounts/doctype/shipping_rule_condition/shipping_rule_condition.txt
index 2fe43db..3784ecb 100644
--- a/accounts/doctype/shipping_rule_condition/shipping_rule_condition.txt
+++ b/accounts/doctype/shipping_rule_condition/shipping_rule_condition.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-06-25 11:54:50", 
   "docstatus": 0, 
-  "modified": "2013-06-25 11:58:04", 
+  "modified": "2013-07-10 14:54:22", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -15,6 +15,7 @@
  }, 
  {
   "doctype": "DocField", 
+  "in_list_view": 1, 
   "name": "__common__", 
   "parent": "Shipping Rule Condition", 
   "parentfield": "fields", 
diff --git a/accounts/page/accounts_home/accounts_home.js b/accounts/page/accounts_home/accounts_home.js
index aa527f7..e76255e 100644
--- a/accounts/page/accounts_home/accounts_home.js
+++ b/accounts/page/accounts_home/accounts_home.js
@@ -53,6 +53,22 @@
 		]
 	},
 	{
+		title: wn._("Setup"),
+		icon: "icon-wrench",
+		items: [
+			{
+				label: wn._("Company"),
+				description: wn._("Company Master."),
+				doctype:"Company"
+			},
+			{
+				label: wn._("Fiscal Year"),
+				description: wn._("Accounting Year."),
+				doctype:"Fiscal Year"
+			},
+		]
+	},
+	{
 		title: wn._("Tools"),
 		icon: "icon-wrench",
 		items: [
diff --git a/buying/doctype/purchase_common/purchase_common.js b/buying/doctype/purchase_common/purchase_common.js
index 1b7dcf0..ada4beb 100644
--- a/buying/doctype/purchase_common/purchase_common.js
+++ b/buying/doctype/purchase_common/purchase_common.js
@@ -28,27 +28,37 @@
 		
 		if(this.frm.fields_dict.price_list_name) {
 			this.frm.set_query("price_list_name", function() {
-				return repl("select name, currency from `tabPrice List` \
-					where buying_or_selling = 'Buying' and name like \"%s%%\"");
+				return{
+					filters: { 'buying_or_selling': "Buying" }
+				}
 			});
 			
 			this.frm.set_query("price_list_currency", function() {
-				return repl("select distinct ref_currency from `tabItem Price` \
-					where price_list_name=\"%(price_list_name)s\" and buying_or_selling = 'Buying' \
-					and ref_currency like \"%s%%\"", 
-					{price_list_name: me.frm.doc.price_list_name});
+				return{
+					filters: {
+						'price_list_name': me.frm.doc.price_list_name,
+						'buying_or_selling': "Buying"
+					}					
+				}
 			});
 		}
 		
 		if(this.frm.fields_dict.supplier) {
-			this.frm.set_query("supplier", erpnext.utils.supplier_query);
+			this.frm.set_query("supplier", function() {
+				return{	query:"controllers.queries.supplier_query" }});
 		}
 		
 		this.frm.set_query("item_code", this.frm.cscript.fname, function() {
 			if(me.frm.doc.is_subcontracted == "Yes") {
-				return erpnext.queries.item({'ifnull(tabItem.is_sub_contracted_item, "No")': "Yes"});
+				 return{
+					query:"controllers.queries.item_query",
+					filters:{ 'is_sub_contracted_item': 'Yes' }
+				}
 			} else {
-				return erpnext.queries.item({'ifnull(tabItem.is_purchase_item, "No")': "Yes"});
+				return{
+					query: "controllers.queries.item_query",
+					filters: { 'is_purchase_item': 'Yes' }
+				}				
 			}
 		});
 	},
@@ -191,7 +201,7 @@
 		var item = wn.model.get_doc(cdt, cdn);
 		if(item.item_code && item.warehouse) {
 			this.frm.call({
-				method: "buying.utils.get_conversion_factor",
+				method: "buying.utils.get_projected_qty",
 				child: item,
 				args: {
 					item_code: item.item_code,
diff --git a/buying/doctype/purchase_common/purchase_common.txt b/buying/doctype/purchase_common/purchase_common.txt
index 15ef574..40f5756 100644
--- a/buying/doctype/purchase_common/purchase_common.txt
+++ b/buying/doctype/purchase_common/purchase_common.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2012-03-27 14:35:51", 
   "docstatus": 0, 
-  "modified": "2012-03-27 14:35:51", 
+  "modified": "2013-07-10 14:54:12", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -10,10 +10,7 @@
   "doctype": "DocType", 
   "issingle": 1, 
   "module": "Buying", 
-  "name": "__common__", 
-  "section_style": "Simple", 
-  "show_in_menu": 0, 
-  "version": 187
+  "name": "__common__"
  }, 
  {
   "doctype": "DocType", 
diff --git a/buying/doctype/purchase_order/purchase_order.js b/buying/doctype/purchase_order/purchase_order.js
index b378a40..bccd4a9 100644
--- a/buying/doctype/purchase_order/purchase_order.js
+++ b/buying/doctype/purchase_order/purchase_order.js
@@ -110,17 +110,23 @@
 }
 
 cur_frm.fields_dict['supplier_address'].get_query = function(doc, cdt, cdn) {
-	return 'SELECT name,address_line1,city FROM tabAddress WHERE supplier = "'+ doc.supplier +'" AND docstatus != 2 AND name LIKE "%s" ORDER BY name ASC LIMIT 50';
+	return {
+		filters: {'supplier': doc.supplier}
+	}
 }
 
 cur_frm.fields_dict['contact_person'].get_query = function(doc, cdt, cdn) {
-	return 'SELECT name,CONCAT(first_name," ",ifnull(last_name,"")) As FullName,department,designation FROM tabContact WHERE supplier = "'+ doc.supplier +'" AND docstatus != 2 AND name LIKE "%s" ORDER BY name ASC LIMIT 50';
+	return {
+		filters: {'supplier': doc.supplier}
+	}
 }
 
 cur_frm.fields_dict['po_details'].grid.get_field('project_name').get_query = function(doc, cdt, cdn) {
-	return 'SELECT `tabProject`.name FROM `tabProject` \
-		WHERE `tabProject`.status not in ("Completed", "Cancelled") \
-		AND `tabProject`.name LIKE "%s" ORDER BY `tabProject`.name ASC LIMIT 50';
+	return {
+		filters:[
+			['Project', 'status', 'not in', 'Completed, Cancelled']
+		]
+	}
 }
 
 cur_frm.cscript.get_last_purchase_rate = function(doc, cdt, cdn){
diff --git a/buying/doctype/purchase_order_item/purchase_order_item.txt b/buying/doctype/purchase_order_item/purchase_order_item.txt
index dac9a7b..c7233d0 100755
--- a/buying/doctype/purchase_order_item/purchase_order_item.txt
+++ b/buying/doctype/purchase_order_item/purchase_order_item.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-05-24 19:29:06", 
   "docstatus": 0, 
-  "modified": "2013-07-09 11:45:00", 
+  "modified": "2013-07-10 14:54:14", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -30,6 +30,7 @@
   "fieldname": "item_code", 
   "fieldtype": "Link", 
   "in_filter": 1, 
+  "in_list_view": 1, 
   "label": "Item Code", 
   "oldfieldname": "item_code", 
   "oldfieldtype": "Link", 
@@ -45,6 +46,7 @@
   "fieldtype": "Date", 
   "hidden": 0, 
   "in_filter": 1, 
+  "in_list_view": 0, 
   "label": "Reqd By Date", 
   "no_copy": 0, 
   "oldfieldname": "schedule_date", 
@@ -60,6 +62,7 @@
   "fieldname": "supplier_part_no", 
   "fieldtype": "Data", 
   "hidden": 1, 
+  "in_list_view": 0, 
   "label": "Supplier Part Number", 
   "print_hide": 1, 
   "read_only": 1
@@ -70,6 +73,7 @@
   "fieldtype": "Data", 
   "hidden": 0, 
   "in_filter": 1, 
+  "in_list_view": 0, 
   "label": "Item Name", 
   "oldfieldname": "item_name", 
   "oldfieldtype": "Data", 
@@ -80,8 +84,16 @@
  }, 
  {
   "doctype": "DocField", 
+  "fieldname": "quantity_and_rate", 
+  "fieldtype": "Section Break", 
+  "in_list_view": 0, 
+  "label": "Quantity and Rate"
+ }, 
+ {
+  "doctype": "DocField", 
   "fieldname": "description", 
   "fieldtype": "Small Text", 
+  "in_list_view": 1, 
   "label": "Description", 
   "oldfieldname": "description", 
   "oldfieldtype": "Small Text", 
@@ -95,6 +107,7 @@
   "doctype": "DocField", 
   "fieldname": "qty", 
   "fieldtype": "Float", 
+  "in_list_view": 1, 
   "label": "Quantity", 
   "oldfieldname": "qty", 
   "oldfieldtype": "Currency", 
@@ -107,6 +120,7 @@
   "doctype": "DocField", 
   "fieldname": "uom", 
   "fieldtype": "Link", 
+  "in_list_view": 0, 
   "label": "UOM", 
   "oldfieldname": "uom", 
   "oldfieldtype": "Link", 
@@ -121,6 +135,7 @@
   "doctype": "DocField", 
   "fieldname": "import_ref_rate", 
   "fieldtype": "Currency", 
+  "in_list_view": 0, 
   "label": "Price List Rate", 
   "options": "currency", 
   "print_hide": 1, 
@@ -130,6 +145,7 @@
   "doctype": "DocField", 
   "fieldname": "discount_rate", 
   "fieldtype": "Float", 
+  "in_list_view": 0, 
   "label": "Discount %", 
   "print_hide": 0, 
   "read_only": 0
@@ -139,6 +155,7 @@
   "fieldname": "import_rate", 
   "fieldtype": "Currency", 
   "hidden": 0, 
+  "in_list_view": 1, 
   "label": "Rate ", 
   "oldfieldname": "import_rate", 
   "oldfieldtype": "Currency", 
@@ -150,6 +167,7 @@
   "doctype": "DocField", 
   "fieldname": "import_amount", 
   "fieldtype": "Currency", 
+  "in_list_view": 1, 
   "label": "Amount", 
   "oldfieldname": "import_amount", 
   "oldfieldtype": "Currency", 
@@ -160,6 +178,7 @@
   "doctype": "DocField", 
   "fieldname": "purchase_ref_rate", 
   "fieldtype": "Currency", 
+  "in_list_view": 0, 
   "label": "Price List Rate (Company Currency)", 
   "options": "Company:company:default_currency", 
   "print_hide": 1, 
@@ -170,6 +189,7 @@
   "doctype": "DocField", 
   "fieldname": "purchase_rate", 
   "fieldtype": "Currency", 
+  "in_list_view": 0, 
   "label": "Rate (Company Currency)", 
   "oldfieldname": "purchase_rate", 
   "oldfieldtype": "Currency", 
@@ -185,6 +205,7 @@
   "doctype": "DocField", 
   "fieldname": "amount", 
   "fieldtype": "Currency", 
+  "in_list_view": 0, 
   "label": "Amount (Company Currency)", 
   "oldfieldname": "amount", 
   "oldfieldtype": "Currency", 
@@ -195,9 +216,17 @@
  }, 
  {
   "doctype": "DocField", 
+  "fieldname": "warehouse_and_reference", 
+  "fieldtype": "Section Break", 
+  "in_list_view": 0, 
+  "label": "Warehouse and Reference"
+ }, 
+ {
+  "doctype": "DocField", 
   "fieldname": "warehouse", 
   "fieldtype": "Link", 
   "hidden": 0, 
+  "in_list_view": 0, 
   "label": "Warehouse", 
   "oldfieldname": "warehouse", 
   "oldfieldtype": "Link", 
@@ -211,6 +240,7 @@
   "fieldname": "project_name", 
   "fieldtype": "Link", 
   "in_filter": 1, 
+  "in_list_view": 0, 
   "label": "Project Name", 
   "options": "Project", 
   "print_hide": 1, 
@@ -222,6 +252,7 @@
   "fieldname": "conversion_factor", 
   "fieldtype": "Float", 
   "hidden": 0, 
+  "in_list_view": 0, 
   "label": "UOM Conversion Factor", 
   "oldfieldname": "conversion_factor", 
   "oldfieldtype": "Currency", 
@@ -236,6 +267,7 @@
   "fieldname": "stock_uom", 
   "fieldtype": "Data", 
   "hidden": 0, 
+  "in_list_view": 0, 
   "label": "Stock UOM", 
   "oldfieldname": "stock_uom", 
   "oldfieldtype": "Data", 
@@ -250,6 +282,7 @@
   "fieldname": "prevdoc_doctype", 
   "fieldtype": "Data", 
   "hidden": 1, 
+  "in_list_view": 0, 
   "label": "Prevdoc DocType", 
   "no_copy": 1, 
   "oldfieldname": "prevdoc_doctype", 
@@ -263,6 +296,7 @@
   "fieldtype": "Link", 
   "hidden": 0, 
   "in_filter": 1, 
+  "in_list_view": 0, 
   "label": "Material Request No", 
   "no_copy": 1, 
   "oldfieldname": "prevdoc_docname", 
@@ -280,6 +314,7 @@
   "fieldtype": "Date", 
   "hidden": 1, 
   "in_filter": 1, 
+  "in_list_view": 0, 
   "label": "Material Request Date", 
   "no_copy": 1, 
   "oldfieldname": "prevdoc_date", 
@@ -294,6 +329,7 @@
   "fieldtype": "Data", 
   "hidden": 1, 
   "in_filter": 1, 
+  "in_list_view": 0, 
   "label": "Material Request Detail No", 
   "no_copy": 1, 
   "oldfieldname": "prevdoc_detail_docname", 
@@ -308,6 +344,7 @@
   "fieldtype": "Link", 
   "hidden": 1, 
   "in_filter": 0, 
+  "in_list_view": 1, 
   "label": "Supplier Quotation", 
   "no_copy": 1, 
   "options": "Supplier Quotation", 
@@ -319,6 +356,7 @@
   "fieldname": "supplier_quotation_item", 
   "fieldtype": "Link", 
   "hidden": 1, 
+  "in_list_view": 1, 
   "label": "Supplier Quotation Item", 
   "no_copy": 1, 
   "options": "Supplier Quotation Item", 
@@ -329,6 +367,7 @@
   "fieldname": "brand", 
   "fieldtype": "Link", 
   "hidden": 1, 
+  "in_list_view": 1, 
   "label": "Brand", 
   "oldfieldname": "brand", 
   "oldfieldtype": "Link", 
@@ -342,6 +381,7 @@
   "fieldtype": "Link", 
   "hidden": 1, 
   "in_filter": 1, 
+  "in_list_view": 1, 
   "label": "Item Group", 
   "oldfieldname": "item_group", 
   "oldfieldtype": "Link", 
@@ -355,6 +395,7 @@
   "fieldname": "stock_qty", 
   "fieldtype": "Float", 
   "hidden": 0, 
+  "in_list_view": 1, 
   "label": "Stock Qty", 
   "no_copy": 1, 
   "oldfieldname": "stock_qty", 
@@ -369,6 +410,7 @@
   "fieldname": "received_qty", 
   "fieldtype": "Float", 
   "hidden": 0, 
+  "in_list_view": 1, 
   "label": "Received Qty", 
   "no_copy": 1, 
   "oldfieldname": "received_qty", 
@@ -380,6 +422,7 @@
   "doctype": "DocField", 
   "fieldname": "billed_amt", 
   "fieldtype": "Currency", 
+  "in_list_view": 1, 
   "label": "Billed Amt", 
   "no_copy": 1, 
   "options": "currency", 
@@ -392,6 +435,7 @@
   "fieldname": "item_tax_rate", 
   "fieldtype": "Small Text", 
   "hidden": 1, 
+  "in_list_view": 1, 
   "label": "Item Tax Rate", 
   "oldfieldname": "item_tax_rate", 
   "oldfieldtype": "Small Text", 
@@ -405,6 +449,7 @@
   "fieldname": "page_break", 
   "fieldtype": "Check", 
   "hidden": 0, 
+  "in_list_view": 1, 
   "label": "Page Break", 
   "no_copy": 1, 
   "oldfieldname": "page_break", 
diff --git a/buying/doctype/purchase_order_item_supplied/purchase_order_item_supplied.txt b/buying/doctype/purchase_order_item_supplied/purchase_order_item_supplied.txt
index d08963b..1d91aa3 100644
--- a/buying/doctype/purchase_order_item_supplied/purchase_order_item_supplied.txt
+++ b/buying/doctype/purchase_order_item_supplied/purchase_order_item_supplied.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-02-22 01:27:42", 
   "docstatus": 0, 
-  "modified": "2013-03-07 07:03:28", 
+  "modified": "2013-07-10 14:54:15", 
   "modified_by": "Administrator", 
   "owner": "dhanalekshmi@webnotestech.com"
  }, 
@@ -31,6 +31,7 @@
   "fieldtype": "Data", 
   "hidden": 0, 
   "in_filter": 0, 
+  "in_list_view": 1, 
   "label": "Reference Name", 
   "oldfieldname": "reference_name", 
   "oldfieldtype": "Data", 
@@ -41,6 +42,7 @@
   "doctype": "DocField", 
   "fieldname": "bom_detail_no", 
   "fieldtype": "Data", 
+  "in_list_view": 1, 
   "label": "BOM Detail No", 
   "oldfieldname": "bom_detail_no", 
   "oldfieldtype": "Data", 
@@ -50,6 +52,7 @@
   "doctype": "DocField", 
   "fieldname": "main_item_code", 
   "fieldtype": "Data", 
+  "in_list_view": 1, 
   "label": "Item Code", 
   "oldfieldname": "main_item_code", 
   "oldfieldtype": "Data", 
@@ -59,6 +62,7 @@
   "doctype": "DocField", 
   "fieldname": "rm_item_code", 
   "fieldtype": "Data", 
+  "in_list_view": 1, 
   "label": "Raw Material Item Code", 
   "oldfieldname": "rm_item_code", 
   "oldfieldtype": "Data", 
@@ -68,6 +72,7 @@
   "doctype": "DocField", 
   "fieldname": "required_qty", 
   "fieldtype": "Float", 
+  "in_list_view": 1, 
   "label": "Required Qty", 
   "oldfieldname": "required_qty", 
   "oldfieldtype": "Currency", 
@@ -77,6 +82,7 @@
   "doctype": "DocField", 
   "fieldname": "rate", 
   "fieldtype": "Currency", 
+  "in_list_view": 1, 
   "label": "Rate", 
   "oldfieldname": "rate", 
   "oldfieldtype": "Currency", 
diff --git a/buying/doctype/purchase_receipt_item_supplied/purchase_receipt_item_supplied.txt b/buying/doctype/purchase_receipt_item_supplied/purchase_receipt_item_supplied.txt
index 4c0ce0d..0ee20a5 100644
--- a/buying/doctype/purchase_receipt_item_supplied/purchase_receipt_item_supplied.txt
+++ b/buying/doctype/purchase_receipt_item_supplied/purchase_receipt_item_supplied.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-02-22 01:27:42", 
   "docstatus": 0, 
-  "modified": "2013-03-07 07:03:28", 
+  "modified": "2013-07-10 14:54:17", 
   "modified_by": "Administrator", 
   "owner": "wasim@webnotestech.com"
  }, 
@@ -31,6 +31,7 @@
   "fieldtype": "Data", 
   "hidden": 0, 
   "in_filter": 0, 
+  "in_list_view": 1, 
   "label": "Reference Name", 
   "oldfieldname": "reference_name", 
   "oldfieldtype": "Data", 
@@ -41,6 +42,7 @@
   "doctype": "DocField", 
   "fieldname": "bom_detail_no", 
   "fieldtype": "Data", 
+  "in_list_view": 1, 
   "label": "BOM Detail No", 
   "oldfieldname": "bom_detail_no", 
   "oldfieldtype": "Data", 
@@ -50,6 +52,7 @@
   "doctype": "DocField", 
   "fieldname": "main_item_code", 
   "fieldtype": "Data", 
+  "in_list_view": 1, 
   "label": "Item Code", 
   "oldfieldname": "main_item_code", 
   "oldfieldtype": "Data", 
@@ -59,6 +62,7 @@
   "doctype": "DocField", 
   "fieldname": "rm_item_code", 
   "fieldtype": "Data", 
+  "in_list_view": 1, 
   "label": "Raw Material Item Code", 
   "oldfieldname": "rm_item_code", 
   "oldfieldtype": "Data"
@@ -67,6 +71,7 @@
   "doctype": "DocField", 
   "fieldname": "description", 
   "fieldtype": "Data", 
+  "in_list_view": 1, 
   "label": "Description", 
   "oldfieldname": "description", 
   "oldfieldtype": "Data", 
@@ -78,6 +83,7 @@
   "doctype": "DocField", 
   "fieldname": "required_qty", 
   "fieldtype": "Float", 
+  "in_list_view": 1, 
   "label": "Required Qty", 
   "oldfieldname": "required_qty", 
   "oldfieldtype": "Currency", 
diff --git a/buying/doctype/quality_inspection/quality_inspection.js b/buying/doctype/quality_inspection/quality_inspection.js
index 2dbb285..d40d81a 100644
--- a/buying/doctype/quality_inspection/quality_inspection.js
+++ b/buying/doctype/quality_inspection/quality_inspection.js
@@ -43,18 +43,26 @@
 
 // item code based on GRN/DN
 cur_frm.fields_dict['item_code'].get_query = function(doc, cdt, cdn) {
-	if (doc.purchase_receipt_no)
-		return 'SELECT item_code, item_name, description FROM `tabPurchase Receipt Item` WHERE parent = "'+ doc.purchase_receipt_no +'" and docstatus != 2 AND item_code LIKE "%s" ORDER BY item_code ASC LIMIT 50';
-	else if (doc.delivery_note_no) 
-		return 'SELECT item_code, item_name, description FROM `tabDelivery Note Item` WHERE parent = "'+ doc.delivery_note_no +'" and docstatus != 2 AND item_code LIKE "%s" ORDER BY item_code ASC LIMIT 50';
-	else
-		return 'SELECT name, item_name, description FROM tabItem WHERE docstatus != 2 AND %(key)s LIKE "%s" ORDER BY name ASC LIMIT 50';
+	var filter = {};
+	if (doc.purchase_receipt_no) filter['parent'] = doc.purchase_receipt_no;
+		
+	else if (doc.delivery_note_no) filter['parent'] =  doc.delivery_note_no;
+
+	return{
+		filters: filter
+	}
 }
 
 // Serial No based on item_code
 cur_frm.fields_dict['item_serial_no'].get_query = function(doc, cdt, cdn) {
+	var filter = {};
 	if (doc.item_code)
-		return 'SELECT name, item_code, warehouse FROM `tabSerial No` WHERE docstatus != 2 AND item_code = "' + doc.item_code +'" AND status = "In Store" AND %(key)s LIKE "%s" ORDER BY name ASC LIMIT 50';
+		filter:{
+			'item_code': doc.item_code,
+			'status': "In Store"
+		}
 	else
-		return 'SELECT name, item_code, warehouse FROM `tabSerial No` WHERE docstatus != 2 AND status = "In Store" AND %(key)s LIKE "%s" ORDER BY name ASC LIMIT 50';
-}
+		filter: { 'status': "In Store" }
+	
+	return { filters: filter }
+}
\ No newline at end of file
diff --git a/buying/doctype/quality_inspection_reading/quality_inspection_reading.txt b/buying/doctype/quality_inspection_reading/quality_inspection_reading.txt
index 066185e..0c68cc7 100644
--- a/buying/doctype/quality_inspection_reading/quality_inspection_reading.txt
+++ b/buying/doctype/quality_inspection_reading/quality_inspection_reading.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-02-22 01:27:43", 
   "docstatus": 0, 
-  "modified": "2013-03-07 07:03:29", 
+  "modified": "2013-07-10 14:54:18", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -29,6 +29,7 @@
   "doctype": "DocField", 
   "fieldname": "specification", 
   "fieldtype": "Data", 
+  "in_list_view": 1, 
   "label": "Parameter", 
   "oldfieldname": "specification", 
   "oldfieldtype": "Data", 
@@ -38,6 +39,7 @@
   "doctype": "DocField", 
   "fieldname": "value", 
   "fieldtype": "Data", 
+  "in_list_view": 1, 
   "label": "Acceptance Criteria", 
   "oldfieldname": "value", 
   "oldfieldtype": "Data"
@@ -46,6 +48,7 @@
   "doctype": "DocField", 
   "fieldname": "reading_1", 
   "fieldtype": "Data", 
+  "in_list_view": 1, 
   "label": "Reading 1", 
   "oldfieldname": "reading_1", 
   "oldfieldtype": "Data"
@@ -54,6 +57,7 @@
   "doctype": "DocField", 
   "fieldname": "reading_2", 
   "fieldtype": "Data", 
+  "in_list_view": 1, 
   "label": "Reading 2", 
   "oldfieldname": "reading_2", 
   "oldfieldtype": "Data"
@@ -62,6 +66,7 @@
   "doctype": "DocField", 
   "fieldname": "reading_3", 
   "fieldtype": "Data", 
+  "in_list_view": 1, 
   "label": "Reading 3", 
   "oldfieldname": "reading_3", 
   "oldfieldtype": "Data"
@@ -70,6 +75,7 @@
   "doctype": "DocField", 
   "fieldname": "reading_4", 
   "fieldtype": "Data", 
+  "in_list_view": 1, 
   "label": "Reading 4", 
   "oldfieldname": "reading_4", 
   "oldfieldtype": "Data"
diff --git a/buying/doctype/supplier/supplier.py b/buying/doctype/supplier/supplier.py
index d63d336..d1552f94 100644
--- a/buying/doctype/supplier/supplier.py
+++ b/buying/doctype/supplier/supplier.py
@@ -196,7 +196,7 @@
 
 @webnotes.whitelist()
 def get_dashboard_info(supplier):
-	if not webnotes.has_permission("Supplier", supplier):
+	if not webnotes.has_permission("Supplier", "read", supplier):
 		webnotes.msgprint("No Permission", raise_exception=True)
 	
 	out = {}
diff --git a/buying/doctype/supplier_quotation/supplier_quotation.js b/buying/doctype/supplier_quotation/supplier_quotation.js
index ef688ec..722ac00 100644
--- a/buying/doctype/supplier_quotation/supplier_quotation.js
+++ b/buying/doctype/supplier_quotation/supplier_quotation.js
@@ -65,10 +65,11 @@
 
 cur_frm.fields_dict['quotation_items'].grid.get_field('project_name').get_query = 
 	function(doc, cdt, cdn) {
-		return "select `tabProject`.name from `tabProject` \
-			where `tabProject`.status not in (\"Completed\", \"Cancelled\") \
-			and `tabProject`.name like \"%s\" \
-			order by `tabProject`.name ASC LIMIT 50";
+		return{
+			filters:[
+				['Project', 'status', 'not in', 'Completed, Cancelled']
+			]
+		}
 	}
 
 cur_frm.cscript.supplier_address = function(doc, dt, dn) {
@@ -80,12 +81,13 @@
 cur_frm.cscript.contact_person = cur_frm.cscript.supplier_address;
 
 cur_frm.fields_dict['supplier_address'].get_query = function(doc, cdt, cdn) {
-	return "SELECT name, address_line1, city FROM tabAddress WHERE supplier = \"" + doc.supplier
-		+ "\" AND docstatus != 2 AND name LIKE \"%s\" ORDER BY name ASC LIMIT 50";
+	return {
+		filters:{'supplier': doc.supplier}
+	}
 }
 
 cur_frm.fields_dict['contact_person'].get_query = function(doc, cdt, cdn) {
-	return "SELECT name, CONCAT(first_name, \" \", ifnull(last_name,\"\")) As FullName, \
-		department, designation FROM tabContact WHERE supplier = \"" + doc.supplier 
-		+"\" AND docstatus != 2 AND name LIKE \"%s\" ORDER BY name ASC LIMIT 50";
-}
+	return {
+		filters:{'supplier': doc.supplier}
+	}
+}
\ No newline at end of file
diff --git a/buying/doctype/supplier_quotation/supplier_quotation.py b/buying/doctype/supplier_quotation/supplier_quotation.py
index f49782f..3e177a1 100644
--- a/buying/doctype/supplier_quotation/supplier_quotation.py
+++ b/buying/doctype/supplier_quotation/supplier_quotation.py
@@ -94,14 +94,15 @@
 		}, 
 		"Supplier Quotation Item": {
 			"doctype": "Purchase Order Item", 
-			"field_map": {
-				"name": "supplier_quotation_item", 
-				"parent": "supplier_quotation", 
-				"uom": "stock_uom",
-				"prevdoc_detail_docname": "prevdoc_detail_docname",
-				"prevdoc_doctype": "prevdoc_doctype",
-				"prevdoc_docname": "prevdoc_docname",
-			},
+			"field_map": [
+				["name", "supplier_quotation_item"], 
+				["parent", "supplier_quotation"], 
+				["uom", "stock_uom"],
+				["uom", "uom"],
+				["prevdoc_detail_docname", "prevdoc_detail_docname"],
+				["prevdoc_doctype", "prevdoc_doctype"],
+				["prevdoc_docname", "prevdoc_docname"]
+			],
 			"postprocess": update_item
 		}, 
 		"Purchase Taxes and Charges": {
diff --git a/buying/doctype/supplier_quotation_item/supplier_quotation_item.txt b/buying/doctype/supplier_quotation_item/supplier_quotation_item.txt
index d4df404..3ac6200 100644
--- a/buying/doctype/supplier_quotation_item/supplier_quotation_item.txt
+++ b/buying/doctype/supplier_quotation_item/supplier_quotation_item.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-05-22 12:43:10", 
   "docstatus": 0, 
-  "modified": "2013-07-09 12:15:15", 
+  "modified": "2013-07-10 14:54:23", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -30,6 +30,7 @@
   "fieldname": "item_code", 
   "fieldtype": "Link", 
   "in_filter": 1, 
+  "in_list_view": 1, 
   "label": "Item Code", 
   "oldfieldname": "item_code", 
   "oldfieldtype": "Link", 
@@ -45,6 +46,7 @@
   "fieldname": "supplier_part_no", 
   "fieldtype": "Data", 
   "hidden": 1, 
+  "in_list_view": 0, 
   "label": "Supplier Part Number", 
   "print_hide": 1, 
   "read_only": 1
@@ -55,6 +57,7 @@
   "fieldtype": "Data", 
   "hidden": 0, 
   "in_filter": 1, 
+  "in_list_view": 0, 
   "label": "Item Name", 
   "oldfieldname": "item_name", 
   "oldfieldtype": "Data", 
@@ -67,6 +70,7 @@
   "doctype": "DocField", 
   "fieldname": "description", 
   "fieldtype": "Small Text", 
+  "in_list_view": 1, 
   "label": "Description", 
   "oldfieldname": "description", 
   "oldfieldtype": "Small Text", 
@@ -76,10 +80,18 @@
   "width": "300px"
  }, 
  {
+  "doctype": "DocField", 
+  "fieldname": "quantity_and_rate", 
+  "fieldtype": "Section Break", 
+  "in_list_view": 0, 
+  "label": "Quantity and Rate"
+ }, 
+ {
   "default": "0.00", 
   "doctype": "DocField", 
   "fieldname": "qty", 
   "fieldtype": "Float", 
+  "in_list_view": 1, 
   "label": "Quantity", 
   "oldfieldname": "qty", 
   "oldfieldtype": "Currency", 
@@ -92,6 +104,7 @@
   "doctype": "DocField", 
   "fieldname": "uom", 
   "fieldtype": "Link", 
+  "in_list_view": 0, 
   "label": "UOM", 
   "oldfieldname": "uom", 
   "oldfieldtype": "Link", 
@@ -106,6 +119,7 @@
   "doctype": "DocField", 
   "fieldname": "import_ref_rate", 
   "fieldtype": "Currency", 
+  "in_list_view": 0, 
   "label": "Price List Rate", 
   "options": "currency", 
   "print_hide": 1, 
@@ -115,6 +129,7 @@
   "doctype": "DocField", 
   "fieldname": "discount_rate", 
   "fieldtype": "Float", 
+  "in_list_view": 0, 
   "label": "Discount %", 
   "print_hide": 0, 
   "read_only": 0
@@ -124,6 +139,7 @@
   "fieldname": "import_rate", 
   "fieldtype": "Currency", 
   "hidden": 0, 
+  "in_list_view": 1, 
   "label": "Rate ", 
   "oldfieldname": "import_rate", 
   "oldfieldtype": "Currency", 
@@ -135,6 +151,7 @@
   "doctype": "DocField", 
   "fieldname": "import_amount", 
   "fieldtype": "Currency", 
+  "in_list_view": 1, 
   "label": "Amount", 
   "oldfieldname": "import_amount", 
   "oldfieldtype": "Currency", 
@@ -145,6 +162,7 @@
   "doctype": "DocField", 
   "fieldname": "purchase_ref_rate", 
   "fieldtype": "Currency", 
+  "in_list_view": 0, 
   "label": "Price List Rate (Company Currency)", 
   "options": "Company:company:default_currency", 
   "print_hide": 1, 
@@ -155,6 +173,7 @@
   "doctype": "DocField", 
   "fieldname": "purchase_rate", 
   "fieldtype": "Currency", 
+  "in_list_view": 0, 
   "label": "Rate (Company Currency)", 
   "oldfieldname": "purchase_rate", 
   "oldfieldtype": "Currency", 
@@ -170,6 +189,7 @@
   "doctype": "DocField", 
   "fieldname": "amount", 
   "fieldtype": "Currency", 
+  "in_list_view": 0, 
   "label": "Amount (Company Currency)", 
   "oldfieldname": "amount", 
   "oldfieldtype": "Currency", 
@@ -180,9 +200,17 @@
  }, 
  {
   "doctype": "DocField", 
+  "fieldname": "warehouse_and_reference", 
+  "fieldtype": "Section Break", 
+  "in_list_view": 0, 
+  "label": "Warehouse and Reference"
+ }, 
+ {
+  "doctype": "DocField", 
   "fieldname": "warehouse", 
   "fieldtype": "Link", 
   "hidden": 0, 
+  "in_list_view": 0, 
   "label": "Warehouse", 
   "oldfieldname": "warehouse", 
   "oldfieldtype": "Link", 
@@ -196,6 +224,7 @@
   "fieldname": "project_name", 
   "fieldtype": "Link", 
   "in_filter": 1, 
+  "in_list_view": 0, 
   "label": "Project Name", 
   "options": "Project", 
   "print_hide": 1, 
@@ -207,6 +236,7 @@
   "fieldname": "prevdoc_doctype", 
   "fieldtype": "Data", 
   "hidden": 1, 
+  "in_list_view": 0, 
   "label": "Prevdoc DocType", 
   "no_copy": 1, 
   "oldfieldname": "prevdoc_doctype", 
@@ -220,6 +250,7 @@
   "fieldtype": "Link", 
   "hidden": 0, 
   "in_filter": 1, 
+  "in_list_view": 0, 
   "label": "Material Request No", 
   "no_copy": 1, 
   "oldfieldname": "prevdoc_docname", 
@@ -237,6 +268,7 @@
   "fieldtype": "Date", 
   "hidden": 1, 
   "in_filter": 1, 
+  "in_list_view": 0, 
   "label": "Material Request Date", 
   "no_copy": 1, 
   "oldfieldname": "prevdoc_date", 
@@ -251,6 +283,7 @@
   "fieldtype": "Data", 
   "hidden": 1, 
   "in_filter": 1, 
+  "in_list_view": 0, 
   "label": "Material Request Detail No", 
   "no_copy": 1, 
   "oldfieldname": "prevdoc_detail_docname", 
@@ -264,6 +297,7 @@
   "fieldname": "brand", 
   "fieldtype": "Link", 
   "hidden": 1, 
+  "in_list_view": 0, 
   "label": "Brand", 
   "oldfieldname": "brand", 
   "oldfieldtype": "Link", 
@@ -277,6 +311,7 @@
   "fieldtype": "Link", 
   "hidden": 1, 
   "in_filter": 1, 
+  "in_list_view": 0, 
   "label": "Item Group", 
   "oldfieldname": "item_group", 
   "oldfieldtype": "Link", 
@@ -291,6 +326,7 @@
   "fieldname": "item_tax_rate", 
   "fieldtype": "Small Text", 
   "hidden": 1, 
+  "in_list_view": 0, 
   "label": "Item Tax Rate", 
   "oldfieldname": "item_tax_rate", 
   "oldfieldtype": "Small Text", 
@@ -304,6 +340,7 @@
   "fieldname": "page_break", 
   "fieldtype": "Check", 
   "hidden": 0, 
+  "in_list_view": 0, 
   "label": "Page Break", 
   "no_copy": 1, 
   "oldfieldname": "page_break", 
diff --git a/controllers/queries.py b/controllers/queries.py
new file mode 100644
index 0000000..e397420
--- /dev/null
+++ b/controllers/queries.py
@@ -0,0 +1,221 @@
+ # ERPNext - web based ERP (http://erpnext.com)
+ # Copyright (C) 2012 Web Notes Technologies Pvt Ltd
+ 
+ # This program is free software: you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+ # the Free Software Foundation, either version 3 of the License, or
+ # (at your option) any later version.
+
+ # This program is distributed in the hope that it will be useful,
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ # GNU General Public License for more details.
+ 
+ # You should have received a copy of the GNU General Public License
+ # along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+from __future__ import unicode_literals
+import webnotes
+from webnotes.utils import cstr
+
+def get_filters_cond(doctype, filters, conditions):
+	if filters:
+		if isinstance(filters, dict):
+			filters = filters.items()
+			flt = []
+			for f in filters:
+				if f[1][0] == '!':
+					flt.append([doctype, f[0], '!=', f[1][1:]])
+				else:
+					flt.append([doctype, f[0], '=', f[1]])
+		
+		from webnotes.widgets.reportview import build_filter_conditions
+		build_filter_conditions(flt, conditions)
+		cond = ' and ' + ' and '.join(conditions)	
+	else:
+		cond = ''
+	return cond
+
+def get_match_cond(doctype, searchfield = 'name'):
+	meta = webnotes.get_doctype(doctype)
+	from webnotes.widgets.search import get_std_fields_list
+	fields = get_std_fields_list(meta, searchfield)
+
+	from webnotes.widgets.reportview import build_match_conditions
+	cond = build_match_conditions(doctype, fields)
+
+	if cond:
+		cond = ' and ' + cond
+	else:
+		cond = ''
+	return cond
+
+ # searches for enabled profiles
+def profile_query(doctype, txt, searchfield, start, page_len, filters):
+	return webnotes.conn.sql("""select name, concat_ws(' ', first_name, middle_name, last_name) 
+		from `tabProfile` 
+		where ifnull(enabled, 0)=1 
+			and docstatus < 2 
+			and name not in ('Administrator', 'Guest') 
+			and (%(key)s like "%(txt)s" 
+				or concat_ws(' ', first_name, middle_name, last_name) like "%(txt)s") 
+			%(mcond)s
+		order by 
+			case when name like "%(txt)s" then 0 else 1 end, 
+			case when concat_ws(' ', first_name, middle_name, last_name) like "%(txt)s" 
+				then 0 else 1 end, 
+			name asc 
+		limit %(start)s, %(page_len)s""" % {'key': searchfield, 'txt': "%%%s%%" % txt,  
+		'mcond':get_match_cond(doctype, searchfield), 'start': start, 'page_len': page_len})
+
+ # searches for active employees
+def employee_query(doctype, txt, searchfield, start, page_len, filters):
+	return webnotes.conn.sql("""select name, employee_name from `tabEmployee` 
+		where status = 'Active' 
+			and docstatus < 2 
+			and (%(key)s like "%(txt)s" 
+				or employee_name like "%(txt)s") 
+			%(mcond)s
+		order by 
+			case when name like "%(txt)s" then 0 else 1 end, 
+			case when employee_name like "%(txt)s" then 0 else 1 end, 
+			name 
+		limit %(start)s, %(page_len)s""" % {'key': searchfield, 'txt': "%%%s%%" % txt,  
+		'mcond':get_match_cond(doctype, searchfield), 'start': start, 'page_len': page_len})
+
+ # searches for leads which are not converted
+def lead_query(doctype, txt, searchfield, start, page_len, filters): 
+	return webnotes.conn.sql("""select name, lead_name, company_name from `tabLead`
+		where docstatus < 2 
+			and ifnull(status, '') != 'Converted' 
+			and (%(key)s like "%(txt)s" 
+				or lead_name like "%(txt)s" 
+				or company_name like "%(txt)s") 
+			%(mcond)s
+		order by 
+			case when name like "%(txt)s" then 0 else 1 end, 
+			case when lead_name like "%(txt)s" then 0 else 1 end, 
+			case when company_name like "%(txt)s" then 0 else 1 end, 
+			lead_name asc 
+		limit %(start)s, %(page_len)s""" % {'key': searchfield, 'txt': "%%%s%%" % txt,  
+		'mcond':get_match_cond(doctype, searchfield), 'start': start, 'page_len': page_len})
+
+ # searches for customer
+def customer_query(doctype, txt, searchfield, start, page_len, filters):
+	cust_master_name = webnotes.defaults.get_user_default("cust_master_name")
+
+	if cust_master_name == "Customer Name":
+		fields = ["name", "customer_group", "territory"]
+	else:
+		fields = ["name", "customer_name", "customer_group", "territory"]
+
+	fields = ", ".join(fields) 
+
+	return webnotes.conn.sql("""select %(field)s from `tabCustomer` 
+		where docstatus < 2 
+			and (%(key)s like "%(txt)s" 
+				or customer_name like "%(txt)s") 
+			%(mcond)s
+		order by 
+			case when name like "%(txt)s" then 0 else 1 end, 
+			case when customer_name like "%(txt)s" then 0 else 1 end, 
+			name, customer_name 
+		limit %(start)s, %(page_len)s""" % {'field': fields,'key': searchfield, 
+		'txt': "%%%s%%" % txt, 'mcond':get_match_cond(doctype, searchfield), 
+		'start': start, 'page_len': page_len})
+
+# searches for supplier
+def supplier_query(doctype, txt, searchfield, start, page_len, filters):
+	supp_master_name = webnotes.defaults.get_user_default("supp_master_name")
+	if supp_master_name == "Supplier Name":  
+		fields = ["name", "supplier_type"]
+	else: 
+		fields = ["name", "supplier_name", "supplier_type"]
+	fields = ", ".join(fields) 
+
+	return webnotes.conn.sql("""select %(field)s from `tabSupplier` 
+		where docstatus < 2 
+			and (%(key)s like "%(txt)s" 
+				or supplier_name like "%(txt)s") 
+			%(mcond)s
+		order by 
+			case when name like "%(txt)s" then 0 else 1 end, 
+			case when supplier_name like "%(txt)s" then 0 else 1 end, 
+			name, supplier_name 
+		limit %(start)s, %(page_len)s """ % {'field': fields,'key': searchfield, 
+		'txt': "%%%s%%" % txt, 'mcond':get_match_cond(doctype, searchfield), 'start': start, 
+		'page_len': page_len})
+
+def item_std(doctype, txt, searchfield, start, page_len, filters):
+	return webnotes.conn.sql("""select tabItem.name, 
+		if(length(tabItem.item_name) > 40, 
+			concat(substr(tabItem.item_name, 1, 40), "..."), item_name) as item_name, 
+		if(length(tabItem.description) > 40, 
+			concat(substr(tabItem.description, 1, 40), "..."), description) as decription 
+		FROM tabItem 
+		WHERE tabItem.docstatus!=2 
+			and tabItem.%(key)s LIKE "%(txt)s" 
+			%(mcond)s 
+		limit %(start)s, %(page_len)s """ % {'key': searchfield, 'txt': "%%%s%%" % txt, 
+		'mcond':get_match_cond(doctype, searchfield), 'start': start, 
+		'page_len': page_len})
+
+def account_query(doctype, txt, searchfield, start, page_len, filters):
+	conditions = []
+	if not filters:
+		filters = {}
+	if not filters.group_or_ledger:
+		filters.group_or_ledger = "Ledger"
+	
+	return webnotes.conn.sql("""select tabAccount.name, tabAccount.parent_account, 
+		tabAccount.debit_or_credit from tabAccount 
+		where tabAccount.docstatus!=2 
+			and tabAccount.%(key)s LIKE "%(txt)s" 
+		 	%(fcond)s %(mcond)s 
+		limit %(start)s, %(page_len)s""" % {'key': searchfield, 
+		'txt': "%%%s%%" % txt, 'fcond': get_filters_cond(doctype, filters, conditions), 
+		'mcond':get_match_cond(doctype, searchfield), 'start': start, 'page_len': page_len})
+
+def item_query(doctype, txt, searchfield, start, page_len, filters):
+	conditions = []
+
+	return webnotes.conn.sql("""select tabItem.name, 
+		if(length(tabItem.item_name) > 40, 
+			concat(substr(tabItem.item_name, 1, 40), "..."), item_name) as item_name, 
+		if(length(tabItem.description) > 40, \
+			concat(substr(tabItem.description, 1, 40), "..."), description) as decription 
+		from tabItem 
+		where tabItem.docstatus!=2 
+			and (ifnull(`tabItem`.`end_of_life`,"") in ("", "0000-00-00") 
+				or `tabItem`.`end_of_life` > NOW()) 
+			and (tabItem.%(key)s LIKE "%(txt)s" 
+				or tabItem.item_name LIKE "%(txt)s")  
+			%(fcond)s %(mcond)s 
+		limit %(start)s,%(page_len)s """ %  {'key': searchfield, 'txt': "%%%s%%" % txt, 
+		'fcond': get_filters_cond(doctype, filters, conditions), 
+		'mcond':get_match_cond(doctype, searchfield), 'start': start, 'page_len': page_len})
+
+def bom(doctype, txt, searchfield, start, page_len, filters):
+	conditions = []	
+
+	return webnotes.conn.sql("""select tabBOM.name, tabBOM.item 
+		from tabBOM 
+		where tabBOM.docstatus=1 
+			and tabBOM.is_active=1 
+			and tabBOM.%(key)s like "%s"  
+			%(fcond)s  %(mcond)s  
+		limit %(start)s, %(page_len)s """ %  {'key': searchfield, 'txt': "%%%s%%" % txt, 
+		'fcond': get_filters_cond(doctype, filters, conditions), 
+		'mcond':get_match_cond(doctype, searchfield), 'start': start, 'page_len': page_len})
+
+def get_project_name(doctype, txt, searchfield, start, page_len, filters):
+	cond = ''
+	if filters['customer']:
+		cond = '(`tabProject`.customer = "' + filters['customer'] + '" or ifnull(`tabProject`.customer,"")="") and'
+	
+	return webnotes.conn.sql("""select `tabProject`.name from `tabProject` 
+		where `tabProject`.status not in ("Completed", "Cancelled") 
+			and %(cond)s `tabProject`.name like "%(txt)s" %(mcond)s 
+		order by `tabProject`.name asc 
+		limit %(start)s, %(page_len)s """ % {'cond': cond,'txt': "%%%s%%" % txt, 
+		'mcond':get_match_cond(doctype, searchfield),'start': start, 'page_len': page_len})
\ No newline at end of file
diff --git a/home/page/latest_updates/latest_updates.js b/home/page/latest_updates/latest_updates.js
index 0d4165b..60539db 100644
--- a/home/page/latest_updates/latest_updates.js
+++ b/home/page/latest_updates/latest_updates.js
@@ -21,7 +21,7 @@
 			var $tbody = $('<table class="table table-bordered"><tbody></tbody></table>')
 				.appendTo(parent).find("tbody");
 			$.each(r.message, function(i, log) {
-				if(log.message.indexOf("[")!==-1) {
+				if(log.message.indexOf("minor")===1 && log.message.indexOf("[")!==-1) {
 					log.message = log.message.replace(/(\[[^\]]*\])/g, 
 						function(match, p1, offset, string) { 
 							match = match.toLowerCase();
diff --git a/hr/doctype/appraisal/appraisal.js b/hr/doctype/appraisal/appraisal.js
index 601f3fc..2289064 100644
--- a/hr/doctype/appraisal/appraisal.js
+++ b/hr/doctype/appraisal/appraisal.js
@@ -83,4 +83,6 @@
 	refresh_field('total_score');
 }
 
-cur_frm.fields_dict.employee.get_query = erpnext.utils.employee_query;
\ No newline at end of file
+cur_frm.fields_dict.employee.get_query = function(doc,cdt,cdn) {
+	return{	query:"controllers.queries.employee_query" }	
+}
\ No newline at end of file
diff --git a/hr/doctype/appraisal_goal/appraisal_goal.txt b/hr/doctype/appraisal_goal/appraisal_goal.txt
index ed71e69..794a879 100644
--- a/hr/doctype/appraisal_goal/appraisal_goal.txt
+++ b/hr/doctype/appraisal_goal/appraisal_goal.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-02-22 01:27:44", 
   "docstatus": 0, 
-  "modified": "2013-03-07 07:03:18", 
+  "modified": "2013-07-10 14:54:03", 
   "modified_by": "Administrator", 
   "owner": "ashwini@webnotestech.com"
  }, 
@@ -15,6 +15,7 @@
  }, 
  {
   "doctype": "DocField", 
+  "in_list_view": 1, 
   "name": "__common__", 
   "parent": "Appraisal Goal", 
   "parentfield": "fields", 
diff --git a/hr/doctype/appraisal_template_goal/appraisal_template_goal.txt b/hr/doctype/appraisal_template_goal/appraisal_template_goal.txt
index da9fde0..074c247 100644
--- a/hr/doctype/appraisal_template_goal/appraisal_template_goal.txt
+++ b/hr/doctype/appraisal_template_goal/appraisal_template_goal.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-02-22 01:27:44", 
   "docstatus": 0, 
-  "modified": "2013-03-07 07:03:18", 
+  "modified": "2013-07-10 14:54:03", 
   "modified_by": "Administrator", 
   "owner": "ashwini@webnotestech.com"
  }, 
@@ -15,6 +15,7 @@
  }, 
  {
   "doctype": "DocField", 
+  "in_list_view": 1, 
   "name": "__common__", 
   "parent": "Appraisal Template Goal", 
   "parentfield": "fields", 
diff --git a/hr/doctype/attendance/attendance.js b/hr/doctype/attendance/attendance.js
index 3ba9868..d1a66ce 100644
--- a/hr/doctype/attendance/attendance.js
+++ b/hr/doctype/attendance/attendance.js
@@ -14,12 +14,15 @@
 // You should have received a copy of the GNU General Public License
 // along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-cur_frm.add_fetch('employee', 'company', 'company');	
+cur_frm.add_fetch('employee', 'company', 'company');
+cur_frm.add_fetch('employee', 'employee_name', 'employee_name');
 
-//get employee's name based on employee id selected
-cur_frm.cscript.employee = function(doc,cdt,cdn){
-	if(doc.employee) get_server_fields('get_emp_name', '', '', doc, cdt, cdn, 1);
-	refresh_field('employee_name'); 
+cur_frm.cscript.onload = function(doc, cdt, cdn) {
+	if(doc.__islocal) cur_frm.set_value("att_date", get_today());
 }
 
-cur_frm.fields_dict.employee.get_query = erpnext.utils.employee_query;
\ No newline at end of file
+cur_frm.fields_dict.employee.get_query = function(doc,cdt,cdn) {
+	return{
+		query:"controllers.queries.employee_query"
+	}	
+}
diff --git a/hr/doctype/attendance/attendance.py b/hr/doctype/attendance/attendance.py
index ac41acf..16e2547 100644
--- a/hr/doctype/attendance/attendance.py
+++ b/hr/doctype/attendance/attendance.py
@@ -26,12 +26,6 @@
 	def __init__(self, doc, doclist=[]):
 		self.doc = doc
 		self.doclist = doclist
-		
-	def get_emp_name(self):
-		return {
-			"employee_name": webnotes.conn.get_value("Employee", 
-				self.doc.employee_name, "employee_name")
-		}
 	
 	def validate_duplicate_record(self):	 
 		res = sql("""select name from `tabAttendance` where employee = %s and att_date = %s 
diff --git a/hr/doctype/attendance/attendance.txt b/hr/doctype/attendance/attendance.txt
index aa917ed..d948d6f 100644
--- a/hr/doctype/attendance/attendance.txt
+++ b/hr/doctype/attendance/attendance.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-01-10 16:34:13", 
   "docstatus": 0, 
-  "modified": "2013-07-05 14:25:19", 
+  "modified": "2013-07-10 17:39:22", 
   "modified_by": "Administrator", 
   "owner": "ashwini@webnotestech.com"
  }, 
@@ -25,6 +25,7 @@
   "permlevel": 0
  }, 
  {
+  "cancel": 1, 
   "create": 1, 
   "doctype": "DocPerm", 
   "name": "__common__", 
@@ -33,6 +34,8 @@
   "parenttype": "DocType", 
   "permlevel": 0, 
   "read": 1, 
+  "report": 1, 
+  "submit": 1, 
   "write": 1
  }, 
  {
@@ -80,6 +83,7 @@
   "oldfieldtype": "Data"
  }, 
  {
+  "default": "Present", 
   "doctype": "DocField", 
   "fieldname": "status", 
   "fieldtype": "Select", 
@@ -157,15 +161,15 @@
   "read_only": 1
  }, 
  {
-  "cancel": 1, 
   "doctype": "DocPerm", 
-  "report": 1, 
-  "role": "HR User", 
-  "submit": 1
+  "role": "System Manager"
  }, 
  {
   "doctype": "DocPerm", 
-  "match": "owner", 
-  "role": "Employee"
+  "role": "HR User"
+ }, 
+ {
+  "doctype": "DocPerm", 
+  "role": "HR Manager"
  }
 ]
\ No newline at end of file
diff --git a/hr/doctype/employee/employee.js b/hr/doctype/employee/employee.js
index 5a2dbab..398d8f8 100644
--- a/hr/doctype/employee/employee.js
+++ b/hr/doctype/employee/employee.js
@@ -18,8 +18,10 @@
 erpnext.hr.EmployeeController = wn.ui.form.Controller.extend({
 	setup: function() {
 		this.setup_leave_approver_select();
-		this.frm.fields_dict.user_id.get_query = erpnext.utils.profile_query;
-		this.frm.fields_dict.reports_to.get_query = erpnext.utils.employee_query;
+		this.frm.fields_dict.user_id.get_query = function(doc,cdt,cdn) {
+				return { query:"controllers.queries.profile_query"} }
+		this.frm.fields_dict.reports_to.get_query = function(doc,cdt,cdn) {	
+			return{	query:"controllers.queries.employee_query"}	}
 	},
 	
 	onload: function() {
@@ -30,13 +32,9 @@
 	refresh: function() {
 		var me = this;
 		erpnext.hide_naming_series();
-		if(!this.frm.doc.__islocal) {
-			cur_frm.add_custom_button('View Active Salary Structure', function() {
-				me.view_active_salary_structure(this); });
-			
+		if(!this.frm.doc.__islocal) {			
 			cur_frm.add_custom_button('Make Salary Structure', function() {
 				me.make_salary_structure(this); });
-			
 		}
 	},
 	
@@ -45,7 +43,8 @@
 		this.frm.call({
 			method:"hr.utils.get_leave_approver_list",
 			callback: function(r) {
-				me.frm.fields_dict.employee_leave_approvers.grid.get_field("leave_approver").df.options =
+				me.frm.fields_dict.employee_leave_approvers.grid
+					.get_field("leave_approver").df.options =
 					$.map(r.message, function(profile) { 
 						return {value: profile, label: wn.user_info(profile).fullname}; 
 					});
@@ -75,9 +74,9 @@
 			if(r.message) {
 				msgprint(wn._("Employee") + ' "' + me.frm.doc.name + '": ' 
 					+ wn._("An active Salary Structure already exists. \
-						If you want to create new one, please ensure that no active Salary Structure \
-					 	exists for this Employee. Go to the active Salary Structure and set \
-						\"Is Active\" = \"No\""));
+						If you want to create new one, please ensure that no active \
+						Salary Structure exists for this Employee. \
+						Go to the active Salary Structure and set \"Is Active\" = \"No\""));
 			} else if(!r.exc) {
 				wn.model.map({
 					source: wn.model.get_doclist(me.frm.doc.doctype, me.frm.doc.name),
diff --git a/hr/doctype/employee/employee.txt b/hr/doctype/employee/employee.txt
index 9d6dfae..44e1bb2 100644
--- a/hr/doctype/employee/employee.txt
+++ b/hr/doctype/employee/employee.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-03-07 09:04:18", 
   "docstatus": 0, 
-  "modified": "2013-07-05 14:36:19", 
+  "modified": "2013-07-10 12:52:17", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -31,7 +31,9 @@
   "parent": "Employee", 
   "parentfield": "permissions", 
   "parenttype": "DocType", 
+  "permlevel": 0, 
   "read": 1, 
+  "report": 1, 
   "submit": 0
  }, 
  {
@@ -55,7 +57,7 @@
   "doctype": "DocField", 
   "fieldname": "image_view", 
   "fieldtype": "Image", 
-  "in_list_view": 1, 
+  "in_list_view": 0, 
   "label": "Image View", 
   "options": "image"
  }, 
@@ -564,6 +566,12 @@
  }, 
  {
   "doctype": "DocField", 
+  "fieldname": "column_break6", 
+  "fieldtype": "Column Break", 
+  "width": "50%"
+ }, 
+ {
+  "doctype": "DocField", 
   "fieldname": "marital_status", 
   "fieldtype": "Select", 
   "label": "Marital Status", 
@@ -577,12 +585,6 @@
   "options": "\nA+\nA-\nB+\nB-\nAB+\nAB-\nO+\nO-"
  }, 
  {
-  "doctype": "DocField", 
-  "fieldname": "column_break6", 
-  "fieldtype": "Column Break", 
-  "width": "50%"
- }, 
- {
   "description": "Here you can maintain family details like name and occupation of parent, spouse and children", 
   "doctype": "DocField", 
   "fieldname": "family_background", 
@@ -748,17 +750,6 @@
   "create": 0, 
   "doctype": "DocPerm", 
   "match": "employee", 
-  "permlevel": 0, 
-  "report": 1, 
-  "role": "Employee", 
-  "write": 0
- }, 
- {
-  "cancel": 0, 
-  "create": 0, 
-  "doctype": "DocPerm", 
-  "permlevel": 1, 
-  "report": 0, 
   "role": "Employee", 
   "write": 0
  }, 
@@ -767,8 +758,6 @@
   "create": 1, 
   "doctype": "DocPerm", 
   "match": "company", 
-  "permlevel": 0, 
-  "report": 1, 
   "role": "HR User", 
   "write": 1
  }, 
@@ -776,27 +765,7 @@
   "cancel": 1, 
   "create": 1, 
   "doctype": "DocPerm", 
-  "permlevel": 0, 
-  "report": 1, 
   "role": "HR Manager", 
   "write": 1
- }, 
- {
-  "cancel": 0, 
-  "create": 0, 
-  "doctype": "DocPerm", 
-  "permlevel": 1, 
-  "report": 0, 
-  "role": "HR User", 
-  "write": 0
- }, 
- {
-  "cancel": 0, 
-  "create": 0, 
-  "doctype": "DocPerm", 
-  "permlevel": 1, 
-  "report": 0, 
-  "role": "HR Manager", 
-  "write": 0
  }
 ]
\ No newline at end of file
diff --git a/hr/doctype/employee_education/employee_education.txt b/hr/doctype/employee_education/employee_education.txt
index 46b6f00..69bbbde 100644
--- a/hr/doctype/employee_education/employee_education.txt
+++ b/hr/doctype/employee_education/employee_education.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-02-22 01:27:45", 
   "docstatus": 0, 
-  "modified": "2013-03-07 07:03:21", 
+  "modified": "2013-07-10 14:54:08", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -14,6 +14,7 @@
  }, 
  {
   "doctype": "DocField", 
+  "in_list_view": 1, 
   "name": "__common__", 
   "parent": "Employee Education", 
   "parentfield": "fields", 
diff --git a/hr/doctype/employee_external_work_history/employee_external_work_history.txt b/hr/doctype/employee_external_work_history/employee_external_work_history.txt
index 05fc5c0..2d54729 100644
--- a/hr/doctype/employee_external_work_history/employee_external_work_history.txt
+++ b/hr/doctype/employee_external_work_history/employee_external_work_history.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-02-22 01:27:45", 
   "docstatus": 0, 
-  "modified": "2013-03-07 07:03:21", 
+  "modified": "2013-07-10 14:54:08", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -14,6 +14,7 @@
  }, 
  {
   "doctype": "DocField", 
+  "in_list_view": 1, 
   "name": "__common__", 
   "parent": "Employee External Work History", 
   "parentfield": "fields", 
diff --git a/hr/doctype/employee_internal_work_history/employee_internal_work_history.txt b/hr/doctype/employee_internal_work_history/employee_internal_work_history.txt
index d813e7c..9cd03ce 100644
--- a/hr/doctype/employee_internal_work_history/employee_internal_work_history.txt
+++ b/hr/doctype/employee_internal_work_history/employee_internal_work_history.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-02-22 01:27:45", 
   "docstatus": 0, 
-  "modified": "2013-03-07 07:03:21", 
+  "modified": "2013-07-10 14:54:08", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -14,6 +14,7 @@
  }, 
  {
   "doctype": "DocField", 
+  "in_list_view": 1, 
   "name": "__common__", 
   "parent": "Employee Internal Work History", 
   "parentfield": "fields", 
diff --git a/hr/doctype/employee_leave_approver/employee_leave_approver.txt b/hr/doctype/employee_leave_approver/employee_leave_approver.txt
index 31e3e09..f175bbd 100644
--- a/hr/doctype/employee_leave_approver/employee_leave_approver.txt
+++ b/hr/doctype/employee_leave_approver/employee_leave_approver.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-04-12 06:56:15", 
   "docstatus": 0, 
-  "modified": "2013-04-12 07:53:33", 
+  "modified": "2013-07-10 14:54:08", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -19,6 +19,7 @@
   "doctype": "DocField", 
   "fieldname": "leave_approver", 
   "fieldtype": "Select", 
+  "in_list_view": 0, 
   "label": "Leave Approver", 
   "name": "__common__", 
   "parent": "Employee Leave Approver", 
diff --git a/hr/doctype/expense_claim/expense_claim.js b/hr/doctype/expense_claim/expense_claim.js
index 5b136d0..406b57a 100644
--- a/hr/doctype/expense_claim/expense_claim.js
+++ b/hr/doctype/expense_claim/expense_claim.js
@@ -35,7 +35,11 @@
 		}
 	});
 	
-	cur_frm.fields_dict.employee.get_query = erpnext.utils.employee_query;
+	cur_frm.fields_dict.employee.get_query = function(doc,cdt,cdn) {
+		return{
+			query:"controllers.queries.employee_query"
+		}	
+	}
 }
 
 cur_frm.cscript.clear_sanctioned = function(doc) {
diff --git a/hr/doctype/expense_claim_detail/expense_claim_detail.txt b/hr/doctype/expense_claim_detail/expense_claim_detail.txt
index d2b5cf3..e9c5a99 100644
--- a/hr/doctype/expense_claim_detail/expense_claim_detail.txt
+++ b/hr/doctype/expense_claim_detail/expense_claim_detail.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-02-22 01:27:46", 
   "docstatus": 0, 
-  "modified": "2013-03-07 07:03:21", 
+  "modified": "2013-07-10 14:54:09", 
   "modified_by": "Administrator", 
   "owner": "harshada@webnotestech.com"
  }, 
@@ -14,6 +14,7 @@
  }, 
  {
   "doctype": "DocField", 
+  "in_list_view": 1, 
   "name": "__common__", 
   "parent": "Expense Claim Detail", 
   "parentfield": "fields", 
diff --git a/hr/doctype/holiday/holiday.txt b/hr/doctype/holiday/holiday.txt
index 94f7936..3b87bb0 100644
--- a/hr/doctype/holiday/holiday.txt
+++ b/hr/doctype/holiday/holiday.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-02-22 01:27:46", 
   "docstatus": 0, 
-  "modified": "2013-03-07 07:03:21", 
+  "modified": "2013-07-10 14:54:09", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -14,6 +14,7 @@
  }, 
  {
   "doctype": "DocField", 
+  "in_list_view": 1, 
   "name": "__common__", 
   "parent": "Holiday", 
   "parentfield": "fields", 
diff --git a/hr/doctype/leave_allocation/leave_allocation.js b/hr/doctype/leave_allocation/leave_allocation.js
index a26d211..80445c1 100755
--- a/hr/doctype/leave_allocation/leave_allocation.js
+++ b/hr/doctype/leave_allocation/leave_allocation.js
@@ -79,4 +79,8 @@
   }
 }
 
-cur_frm.fields_dict.employee.get_query = erpnext.utils.employee_query;
\ No newline at end of file
+cur_frm.fields_dict.employee.get_query = function(doc,cdt,cdn) {
+  return{
+    query:"controllers.queries.employee_query"
+  } 
+}
\ No newline at end of file
diff --git a/hr/doctype/leave_block_list_allow/leave_block_list_allow.txt b/hr/doctype/leave_block_list_allow/leave_block_list_allow.txt
index 8e362f3..1e8c86b 100644
--- a/hr/doctype/leave_block_list_allow/leave_block_list_allow.txt
+++ b/hr/doctype/leave_block_list_allow/leave_block_list_allow.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-02-22 01:27:47", 
   "docstatus": 0, 
-  "modified": "2013-03-07 07:03:23", 
+  "modified": "2013-07-10 14:54:10", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -16,6 +16,7 @@
   "doctype": "DocField", 
   "fieldname": "allow_user", 
   "fieldtype": "Link", 
+  "in_list_view": 1, 
   "label": "Allow User", 
   "name": "__common__", 
   "options": "Profile", 
diff --git a/hr/doctype/leave_block_list_date/leave_block_list_date.txt b/hr/doctype/leave_block_list_date/leave_block_list_date.txt
index d0b9fbf..c13e2d5 100644
--- a/hr/doctype/leave_block_list_date/leave_block_list_date.txt
+++ b/hr/doctype/leave_block_list_date/leave_block_list_date.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-02-22 01:27:47", 
   "docstatus": 0, 
-  "modified": "2013-03-07 07:03:23", 
+  "modified": "2013-07-10 14:54:10", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -14,6 +14,7 @@
  }, 
  {
   "doctype": "DocField", 
+  "in_list_view": 1, 
   "name": "__common__", 
   "parent": "Leave Block List Date", 
   "parentfield": "fields", 
diff --git a/hr/doctype/salary_slip/salary_slip.js b/hr/doctype/salary_slip/salary_slip.js
index fc58271..f6853fc 100644
--- a/hr/doctype/salary_slip/salary_slip.js
+++ b/hr/doctype/salary_slip/salary_slip.js
@@ -20,13 +20,14 @@
 // -------------------------------------------------------------------
 cur_frm.cscript.onload = function(doc,dt,dn){
 	if((cint(doc.__islocal) == 1) && !doc.amended_from){
-		var today=new Date();
-		month = (today.getMonth()+01).toString();
-		if(month.length>1) doc.month = month;
-		else doc.month = '0'+month;
-		doc.fiscal_year = sys_defaults['fiscal_year'];
+		if(!doc.month) {
+			var today=new Date();
+			month = (today.getMonth()+01).toString();
+			if(month.length>1) doc.month = month;
+			else doc.month = '0'+month;
+		}
+		if(!doc.fiscal_year) doc.fiscal_year = sys_defaults['fiscal_year'];
 		refresh_many(['month', 'fiscal_year']);
-		cur_frm.cscript.fiscal_year(doc, dt, dn);
 	}
 }
 
@@ -42,8 +43,6 @@
 
 cur_frm.cscript.month = cur_frm.cscript.employee = cur_frm.cscript.fiscal_year;
 
-// Calculate total if lwp exists
-// ------------------------------------------------------------------------
 cur_frm.cscript.leave_without_pay = function(doc,dt,dn){
 	if (doc.employee && doc.fiscal_year && doc.month) {
 		$c_obj(make_doclist(doc.doctype,doc.name), 'get_leave_details',doc.leave_without_pay,function(r, rt) {
@@ -54,16 +53,12 @@
 	}
 }
 
-// Calculate all
-// ------------------------------------------------------------------------
 var calculate_all = function(doc, dt, dn) {
 	calculate_earning_total(doc, dt, dn);
 	calculate_ded_total(doc, dt, dn);
 	calculate_net_pay(doc, dt, dn);
 }
 
-// Trigger on earning modified amount and depends on lwp
-// ------------------------------------------------------------------------
 cur_frm.cscript.e_modified_amount = function(doc,dt,dn){
 	calculate_earning_total(doc, dt, dn);
 	calculate_net_pay(doc, dt, dn);
@@ -139,4 +134,8 @@
 	calculate_all(doc, dt, dn);
 }
 
-cur_frm.fields_dict.employee.get_query = erpnext.utils.employee_query;
\ No newline at end of file
+cur_frm.fields_dict.employee.get_query = function(doc,cdt,cdn) {
+	return{
+		query:"controllers.queries.employee_query"
+	}		
+}
diff --git a/hr/doctype/salary_slip/salary_slip.py b/hr/doctype/salary_slip/salary_slip.py
index e3e43e4..2b1d80c 100644
--- a/hr/doctype/salary_slip/salary_slip.py
+++ b/hr/doctype/salary_slip/salary_slip.py
@@ -17,11 +17,11 @@
 from __future__ import unicode_literals
 import webnotes
 
-from webnotes.utils import add_days, cint, cstr, flt, getdate
+from webnotes.utils import add_days, cint, cstr, flt, getdate, nowdate
 from webnotes.model.doc import make_autoname
 from webnotes.model.bean import getlist
 from webnotes.model.code import get_obj
-from webnotes import msgprint
+from webnotes import msgprint, _
 from setup.utils import get_company_currency
 
 sql = webnotes.conn.sql
@@ -40,9 +40,7 @@
 
 	def get_emp_and_leave_details(self):
 		if self.doc.employee:
-			# Get payment days
-			if self.doc.fiscal_year and self.doc.month:
-				self.get_leave_details()
+			self.get_leave_details()
 
 			# check sal structure
 			struct = self.check_sal_struct()
@@ -59,20 +57,24 @@
 
 
 	def pull_sal_struct(self, struct):
-		self.doclist = self.doc.clear_table(self.doclist, 'earning_details')
-		self.doclist = self.doc.clear_table(self.doclist, 'deduction_details')
-
 		from hr.doctype.salary_structure.salary_structure import make_salary_slip
-		make_salary_slip(struct, self.doclist)
-
-		basic_info = sql("select bank_name, bank_ac_no, esic_card_no, pf_number from `tabEmployee` where name ='%s'" % self.doc.employee)
-		self.doc.bank_name = basic_info[0][0]
-		self.doc.bank_account_no = basic_info[0][1]
-		self.doc.esic_no = basic_info[0][2]
-		self.doc.pf_no = basic_info[0][3]
-
+		self.doclist = make_salary_slip(struct, self.doclist)
+		
+	def pull_emp_details(self):
+		emp = webnotes.conn.get_value("Employee", self.doc.employee, 
+			["bank_name", "bank_ac_no", "esic_card_no", "pf_number"], as_dict=1)
+		if emp:
+			self.doc.bank_name = emp.bank_name
+			self.doc.bank_ac_no = emp.bank_ac_no
+			self.doc.esic_no = emp.esic_card_no
+			self.doc.pf_no = emp.pf_number
 
 	def get_leave_details(self, lwp=None):
+		if not self.doc.fiscal_year:
+			self.doc.fiscal_year = webnotes.get_default("fiscal_year")
+		if not self.doc.month:
+			self.doc.month = "%02d" % getdate(nowdate()).month
+			
 		m = get_obj('Salary Manager').get_month_details(self.doc.fiscal_year, self.doc.month)
 		
 		if not lwp:
@@ -92,7 +94,9 @@
 			if getdate(emp['relieving_date']) > m['month_start_date'] and getdate(emp['relieving_date']) < m['month_end_date']:
 				payment_days = getdate(emp['relieving_date']).day
 			elif getdate(emp['relieving_date']) < m['month_start_date']:
-				payment_days = 0
+				webnotes.msgprint(_("Relieving Date of employee is ") + cstr(emp['relieving_date']
+					+ _(". Please set status of the employee as 'Left'")), raise_exception=1)
+				
 			
 		if emp['date_of_joining']:
 			if getdate(emp['date_of_joining']) > m['month_start_date'] and getdate(emp['date_of_joining']) < m['month_end_date']:
diff --git a/hr/doctype/salary_slip_deduction/salary_slip_deduction.txt b/hr/doctype/salary_slip_deduction/salary_slip_deduction.txt
index 86acef0..7fa4051 100644
--- a/hr/doctype/salary_slip_deduction/salary_slip_deduction.txt
+++ b/hr/doctype/salary_slip_deduction/salary_slip_deduction.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-02-22 01:27:48", 
   "docstatus": 0, 
-  "modified": "2013-03-07 07:03:30", 
+  "modified": "2013-07-10 14:54:18", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -14,6 +14,7 @@
  }, 
  {
   "doctype": "DocField", 
+  "in_list_view": 1, 
   "name": "__common__", 
   "parent": "Salary Slip Deduction", 
   "parentfield": "fields", 
diff --git a/hr/doctype/salary_slip_earning/salary_slip_earning.txt b/hr/doctype/salary_slip_earning/salary_slip_earning.txt
index 64f4dc6..4ac3f39 100644
--- a/hr/doctype/salary_slip_earning/salary_slip_earning.txt
+++ b/hr/doctype/salary_slip_earning/salary_slip_earning.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-02-22 01:27:48", 
   "docstatus": 0, 
-  "modified": "2013-03-07 07:03:30", 
+  "modified": "2013-07-10 14:54:18", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -14,6 +14,7 @@
  }, 
  {
   "doctype": "DocField", 
+  "in_list_view": 1, 
   "name": "__common__", 
   "parent": "Salary Slip Earning", 
   "parentfield": "fields", 
diff --git a/hr/doctype/salary_structure/salary_structure.js b/hr/doctype/salary_structure/salary_structure.js
index 2979243..60c159d 100644
--- a/hr/doctype/salary_structure/salary_structure.js
+++ b/hr/doctype/salary_structure/salary_structure.js
@@ -72,4 +72,6 @@
   calculate_totals(doc, cdt, cdn);
 }
 
-cur_frm.fields_dict.employee.get_query = erpnext.utils.employee_query;
\ No newline at end of file
+cur_frm.fields_dict.employee.get_query = function(doc,cdt,cdn) {
+  return{ query:"controllers.queries.employee_query" } 
+}
\ No newline at end of file
diff --git a/hr/doctype/salary_structure/salary_structure.py b/hr/doctype/salary_structure/salary_structure.py
index f890024..37b0b47 100644
--- a/hr/doctype/salary_structure/salary_structure.py
+++ b/hr/doctype/salary_structure/salary_structure.py
@@ -99,14 +99,11 @@
 	from webnotes.model.mapper import get_mapped_doclist
 	
 	def postprocess(source, target):
-		emp = webnotes.conn.get_value("Employee", source.doc.employee, 
-			["bank_name", "bank_ac_no", "esic_card_no", "pf_number"], as_dict=1)
-		if emp:
-			target[0].bank_name = emp.bank_name
-			target[0].bank_ac_no = emp.bank_ac_no
-			target[0].esic_no = emp.esic_card_no
-			target[0].pf_no = emp.pf_number
-				
+		sal_slip = webnotes.bean(target)
+		sal_slip.run_method("pull_emp_details")
+		sal_slip.run_method("get_leave_details")
+		sal_slip.run_method("calculate_net_pay")
+
 	doclist = get_mapped_doclist("Salary Structure", source_name, {
 		"Salary Structure": {
 			"doctype": "Salary Slip", 
@@ -116,16 +113,19 @@
 		}, 
 		"Salary Structure Deduction": {
 			"doctype": "Salary Slip Deduction", 
-			"field_map": {
-				"depend_on_lwp": "d_depends_on_lwp"
-			}
+			"field_map": [
+				["depend_on_lwp", "d_depends_on_lwp"],
+				["d_modified_amt", "d_amount"],
+				["d_modified_amt", "d_modified_amount"]
+			]
 		}, 
 		"Salary Structure Earning": {
 			"doctype": "Salary Slip Earning", 
-			"field_map": {
-				"depend_on_lwp": "e_depends_on_lwp", 
-				"modified_value": "e_modified_amount"
-			}
+			"field_map": [
+				["depend_on_lwp", "e_depends_on_lwp"], 
+				["modified_value", "e_modified_amount"],
+				["modified_value", "e_amount"]
+			]
 		}
 	}, target_doclist, postprocess)
 
diff --git a/hr/doctype/salary_structure_deduction/salary_structure_deduction.txt b/hr/doctype/salary_structure_deduction/salary_structure_deduction.txt
index 53dbf69..81e9a46 100644
--- a/hr/doctype/salary_structure_deduction/salary_structure_deduction.txt
+++ b/hr/doctype/salary_structure_deduction/salary_structure_deduction.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-02-22 01:27:48", 
   "docstatus": 0, 
-  "modified": "2013-03-07 07:03:30", 
+  "modified": "2013-07-10 14:54:19", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -14,6 +14,7 @@
  }, 
  {
   "doctype": "DocField", 
+  "in_list_view": 1, 
   "name": "__common__", 
   "parent": "Salary Structure Deduction", 
   "parentfield": "fields", 
diff --git a/hr/doctype/salary_structure_earning/salary_structure_earning.txt b/hr/doctype/salary_structure_earning/salary_structure_earning.txt
index 29c3f52..b2a8e30 100644
--- a/hr/doctype/salary_structure_earning/salary_structure_earning.txt
+++ b/hr/doctype/salary_structure_earning/salary_structure_earning.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-02-22 01:27:48", 
   "docstatus": 0, 
-  "modified": "2013-03-07 07:03:30", 
+  "modified": "2013-07-10 14:54:19", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -16,6 +16,7 @@
  }, 
  {
   "doctype": "DocField", 
+  "in_list_view": 1, 
   "name": "__common__", 
   "parent": "Salary Structure Earning", 
   "parentfield": "fields", 
diff --git a/hr/page/hr_home/hr_home.js b/hr/page/hr_home/hr_home.js
index 517fb77..dadc6fb 100644
--- a/hr/page/hr_home/hr_home.js
+++ b/hr/page/hr_home/hr_home.js
@@ -23,9 +23,14 @@
 				doctype:"Expense Claim"
 			},
 			{
-				label: wn._("Job Applicant"),
-				description: wn._("Applicant for a Job."),
-				doctype:"Job Applicant"
+				label: wn._("Salary Slip"),
+				description: wn._("Monthly salary statement."),
+				doctype:"Salary Slip"
+			},
+			{
+				label: wn._("Attendance"),
+				description: wn._("Attendance record."),
+				doctype:"Attendance"
 			},
 		]
 	},
@@ -34,14 +39,9 @@
 		icon: "icon-copy",
 		items: [
 			{
-				label: wn._("Attendance"),
-				description: wn._("Attendance record."),
-				doctype:"Attendance"
-			},
-			{
-				label: wn._("Salary Slip"),
-				description: wn._("Monthly salary statement."),
-				doctype:"Salary Slip"
+				label: wn._("Job Applicant"),
+				description: wn._("Applicant for a Job."),
+				doctype:"Job Applicant"
 			},
 			{
 				label: wn._("Appraisal"),
diff --git a/manufacturing/doctype/bom/bom.js b/manufacturing/doctype/bom/bom.js
index d14590c..acb770d 100644
--- a/manufacturing/doctype/bom/bom.js
+++ b/manufacturing/doctype/bom/bom.js
@@ -169,30 +169,37 @@
 
 
 cur_frm.fields_dict['item'].get_query = function(doc) {
-	return erpnext.queries.item({
-		'ifnull(tabItem.is_manufactured_item, "No")': 'Yes',
-	})
+ 	return{
+		query:"controllers.queries.item_query",
+		filters:{
+			'has_serial_no': 'Yes'	
+		}
+	}
 }
 
 cur_frm.fields_dict['project_name'].get_query = function(doc, dt, dn) {
-	return 'SELECT `tabProject`.name FROM `tabProject` \
-		WHERE `tabProject`.status not in ("Completed", "Cancelled") \
-		AND `tabProject`.name LIKE "%s" ORDER BY `tabProject`.name ASC LIMIT 50';
+	return{
+		filters:[
+			['Project', 'status', 'not in', 'Completed, Cancelled']
+		]
+	}
 }
 
 cur_frm.fields_dict['bom_materials'].grid.get_field('item_code').get_query = function(doc) {
-	return 'SELECT DISTINCT `tabItem`.`name`, `tabItem`.description FROM `tabItem` \
-		WHERE (IFNULL(`tabItem`.`end_of_life`,"") = "" OR `tabItem`.`end_of_life` = "0000-00-00" \
-			OR `tabItem`.`end_of_life` > NOW()) AND `tabItem`.`%(key)s` like "%s" \
-		ORDER BY `tabItem`.`name` LIMIT 50';
+	return{
+		query:"controllers.queries.item_query"
+	}
 }
 
 cur_frm.fields_dict['bom_materials'].grid.get_field('bom_no').get_query = function(doc, cdt, cdn) {
 	var d = locals[cdt][cdn];
-	return 'SELECT DISTINCT `tabBOM`.`name`, `tabBOM`.`remarks` FROM `tabBOM` \
-		WHERE `tabBOM`.`item` = "' + d.item_code + '" AND `tabBOM`.`is_active` = 1 AND \
-		 	`tabBOM`.docstatus = 1 AND `tabBOM`.`name` like "%s" \
-		ORDER BY `tabBOM`.`name` LIMIT 50';
+	return{
+		filters:{
+			'item': d.item_code,
+			'is_active': 1,
+			'docstatus': 1
+		}
+	}	
 }
 
 cur_frm.cscript.validate = function(doc, dt, dn) {
diff --git a/manufacturing/doctype/bom/bom.py b/manufacturing/doctype/bom/bom.py
index 5f64148..00523c5 100644
--- a/manufacturing/doctype/bom/bom.py
+++ b/manufacturing/doctype/bom/bom.py
@@ -85,10 +85,10 @@
 			msgprint("Item %s does not exist in system" % item[0]['item_code'], raise_exception = 1)
 			
 	def set_bom_material_details(self):
-		for item in self.doclist.get({"parentfield": "bom_materials"}):			
-			ret = self.get_bom_material_detail({ "item_code": item.item_code, "bom_no": item.bom_no,
-				"qty": item.qty	})
-			
+		for item in self.doclist.get({"parentfield": "bom_materials"}):
+			ret = self.get_bom_material_detail({"item_code": item.item_code, "bom_no": item.bom_no, 
+				"qty": item.qty})
+
 			for r in ret:
 				if not item.fields.get(r):
 					item.fields[r] = ret[r]
@@ -100,7 +100,7 @@
 			args = webnotes.form_dict.get('args')
 			import json
 			args = json.loads(args)
-			
+
 		item = self.get_item_det(args['item_code'])
 		self.validate_rm_item(item)
 		
diff --git a/manufacturing/doctype/bom_explosion_item/bom_explosion_item.txt b/manufacturing/doctype/bom_explosion_item/bom_explosion_item.txt
index 3808cdf..abc74cd 100644
--- a/manufacturing/doctype/bom_explosion_item/bom_explosion_item.txt
+++ b/manufacturing/doctype/bom_explosion_item/bom_explosion_item.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-03-07 11:42:57", 
   "docstatus": 0, 
-  "modified": "2013-06-04 13:13:28", 
+  "modified": "2013-07-10 14:54:04", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -32,6 +32,7 @@
   "doctype": "DocField", 
   "fieldname": "item_code", 
   "fieldtype": "Link", 
+  "in_list_view": 1, 
   "label": "Item Code", 
   "oldfieldname": "item_code", 
   "oldfieldtype": "Link", 
@@ -41,6 +42,7 @@
   "doctype": "DocField", 
   "fieldname": "description", 
   "fieldtype": "Text", 
+  "in_list_view": 1, 
   "label": "Description", 
   "oldfieldname": "description", 
   "oldfieldtype": "Text", 
@@ -51,6 +53,7 @@
   "doctype": "DocField", 
   "fieldname": "qty", 
   "fieldtype": "Float", 
+  "in_list_view": 1, 
   "label": "Qty", 
   "oldfieldname": "qty", 
   "oldfieldtype": "Currency"
@@ -59,6 +62,7 @@
   "doctype": "DocField", 
   "fieldname": "rate", 
   "fieldtype": "Float", 
+  "in_list_view": 1, 
   "label": "Rate", 
   "oldfieldname": "standard_rate", 
   "oldfieldtype": "Currency"
@@ -67,6 +71,7 @@
   "doctype": "DocField", 
   "fieldname": "amount", 
   "fieldtype": "Float", 
+  "in_list_view": 1, 
   "label": "Amount", 
   "oldfieldname": "amount_as_per_sr", 
   "oldfieldtype": "Currency"
@@ -75,6 +80,7 @@
   "doctype": "DocField", 
   "fieldname": "stock_uom", 
   "fieldtype": "Link", 
+  "in_list_view": 0, 
   "label": "Stock UOM", 
   "oldfieldname": "stock_uom", 
   "oldfieldtype": "Link", 
@@ -85,6 +91,7 @@
   "fieldname": "qty_consumed_per_unit", 
   "fieldtype": "Float", 
   "hidden": 0, 
+  "in_list_view": 1, 
   "label": "Qty Consumed Per Unit", 
   "no_copy": 0
  }
diff --git a/manufacturing/doctype/bom_item/bom_item.txt b/manufacturing/doctype/bom_item/bom_item.txt
index 2554adf..85fbcf6 100644
--- a/manufacturing/doctype/bom_item/bom_item.txt
+++ b/manufacturing/doctype/bom_item/bom_item.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-02-22 01:27:49", 
   "docstatus": 0, 
-  "modified": "2013-06-27 11:30:07", 
+  "modified": "2013-07-10 14:54:05", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -41,6 +41,7 @@
   "doctype": "DocField", 
   "fieldname": "operation_no", 
   "fieldtype": "Select", 
+  "in_list_view": 1, 
   "label": "Operation No", 
   "oldfieldname": "operation_no", 
   "oldfieldtype": "Data", 
@@ -51,6 +52,7 @@
   "fieldname": "item_code", 
   "fieldtype": "Link", 
   "in_filter": 1, 
+  "in_list_view": 1, 
   "label": "Item Code", 
   "oldfieldname": "item_code", 
   "oldfieldtype": "Link", 
@@ -63,6 +65,7 @@
   "fieldname": "bom_no", 
   "fieldtype": "Link", 
   "in_filter": 1, 
+  "in_list_view": 1, 
   "label": "BOM No", 
   "oldfieldname": "bom_no", 
   "oldfieldtype": "Link", 
@@ -76,6 +79,7 @@
   "doctype": "DocField", 
   "fieldname": "qty", 
   "fieldtype": "Float", 
+  "in_list_view": 1, 
   "label": "Qty", 
   "oldfieldname": "qty", 
   "oldfieldtype": "Currency", 
@@ -85,6 +89,7 @@
   "doctype": "DocField", 
   "fieldname": "stock_uom", 
   "fieldtype": "Data", 
+  "in_list_view": 0, 
   "label": "Stock UOM", 
   "oldfieldname": "stock_uom", 
   "oldfieldtype": "Data", 
@@ -96,12 +101,14 @@
   "doctype": "DocField", 
   "fieldname": "rate", 
   "fieldtype": "Float", 
+  "in_list_view": 1, 
   "label": "Rate"
  }, 
  {
   "doctype": "DocField", 
   "fieldname": "amount", 
   "fieldtype": "Float", 
+  "in_list_view": 1, 
   "label": "Amount", 
   "oldfieldname": "amount_as_per_mar", 
   "oldfieldtype": "Currency", 
diff --git a/manufacturing/doctype/bom_operation/bom_operation.txt b/manufacturing/doctype/bom_operation/bom_operation.txt
index 56805b5..86dffe9 100644
--- a/manufacturing/doctype/bom_operation/bom_operation.txt
+++ b/manufacturing/doctype/bom_operation/bom_operation.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-02-22 01:27:49", 
   "docstatus": 0, 
-  "modified": "2013-03-07 07:03:19", 
+  "modified": "2013-07-10 14:54:05", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -14,6 +14,7 @@
  }, 
  {
   "doctype": "DocField", 
+  "in_list_view": 1, 
   "name": "__common__", 
   "parent": "BOM Operation", 
   "parentfield": "fields", 
diff --git a/manufacturing/doctype/bom_replace_tool/bom_replace_tool.js b/manufacturing/doctype/bom_replace_tool/bom_replace_tool.js
index c98603c..bad03ac 100644
--- a/manufacturing/doctype/bom_replace_tool/bom_replace_tool.js
+++ b/manufacturing/doctype/bom_replace_tool/bom_replace_tool.js
@@ -20,10 +20,16 @@
 }
 
 cur_frm.set_query("current_bom", function(doc) {
-	return erpnext.queries.bom({name: "!" + doc.new_bom});
+	return{
+		query:"controllers.queries.bom",
+		filters: {name: "!" + doc.new_bom}
+	}
 });
 
 
 cur_frm.set_query("new_bom", function(doc) {
-	return erpnext.queries.bom({name: "!" + doc.current_bom});
+	return{
+		query:"controllers.queries.bom",
+		filters: {name: "!" + doc.current_bom}
+	}
 });
\ No newline at end of file
diff --git a/manufacturing/doctype/production_order/production_order.js b/manufacturing/doctype/production_order/production_order.js
index 77dce03..12f9490 100644
--- a/manufacturing/doctype/production_order/production_order.js
+++ b/manufacturing/doctype/production_order/production_order.js
@@ -101,18 +101,27 @@
 }
 
 cur_frm.fields_dict['production_item'].get_query = function(doc) {
-	 return 'SELECT DISTINCT `tabItem`.`name`, `tabItem`.`description` FROM `tabItem` WHERE (IFNULL(`tabItem`.`end_of_life`,"") = "" OR `tabItem`.`end_of_life` = "0000-00-00" OR `tabItem`.`end_of_life` > NOW()) AND `tabItem`.docstatus != 2 AND `tabItem`.is_pro_applicable = "Yes" AND `tabItem`.%(key)s LIKE "%s" ORDER BY `tabItem`.`name` LIMIT 50';
+	return {
+		filters:[
+			['Item', 'is_pro_applicable', '=', 'Yes']
+		]
+	}
 }
 
 cur_frm.fields_dict['project_name'].get_query = function(doc, dt, dn) {
-	return 'SELECT `tabProject`.name FROM `tabProject` \
-		WHERE `tabProject`.status not in ("Completed", "Cancelled") \
-		AND `tabProject`.name LIKE "%s" ORDER BY `tabProject`.name ASC LIMIT 50';
+	return{
+		filters:[
+			['Project', 'status', 'not in', 'Completed, Cancelled']
+		]
+	}	
 }
 
 
 cur_frm.set_query("bom_no", function(doc) {
 	if (doc.production_item) {
-		return erpnext.queries.bom({item: cstr(doc.production_item)});
+		return{
+			query:"controllers.queries.bom",
+			filters: {item: cstr(doc.production_item)}
+		}
 	} else msgprint(" Please enter Production Item first");
 });
\ No newline at end of file
diff --git a/manufacturing/doctype/production_plan_item/production_plan_item.txt b/manufacturing/doctype/production_plan_item/production_plan_item.txt
index 3af1bea..37f56c9 100644
--- a/manufacturing/doctype/production_plan_item/production_plan_item.txt
+++ b/manufacturing/doctype/production_plan_item/production_plan_item.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-02-22 01:27:49", 
   "docstatus": 0, 
-  "modified": "2013-03-07 07:03:26", 
+  "modified": "2013-07-10 14:54:12", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -29,6 +29,7 @@
   "doctype": "DocField", 
   "fieldname": "item_code", 
   "fieldtype": "Link", 
+  "in_list_view": 1, 
   "label": "Item Code", 
   "oldfieldname": "item_code", 
   "oldfieldtype": "Link", 
@@ -41,6 +42,7 @@
   "doctype": "DocField", 
   "fieldname": "bom_no", 
   "fieldtype": "Link", 
+  "in_list_view": 1, 
   "label": "BOM No", 
   "oldfieldname": "bom_no", 
   "oldfieldtype": "Link", 
@@ -54,6 +56,7 @@
   "doctype": "DocField", 
   "fieldname": "planned_qty", 
   "fieldtype": "Float", 
+  "in_list_view": 1, 
   "label": "Planned Qty", 
   "oldfieldname": "planned_qty", 
   "oldfieldtype": "Currency", 
@@ -65,6 +68,7 @@
   "doctype": "DocField", 
   "fieldname": "sales_order", 
   "fieldtype": "Link", 
+  "in_list_view": 1, 
   "label": "Sales Order", 
   "oldfieldname": "source_docname", 
   "oldfieldtype": "Data", 
@@ -76,6 +80,7 @@
   "doctype": "DocField", 
   "fieldname": "so_pending_qty", 
   "fieldtype": "Float", 
+  "in_list_view": 1, 
   "label": "SO Pending Qty", 
   "oldfieldname": "prevdoc_reqd_qty", 
   "oldfieldtype": "Currency", 
@@ -88,6 +93,7 @@
   "doctype": "DocField", 
   "fieldname": "stock_uom", 
   "fieldtype": "Data", 
+  "in_list_view": 0, 
   "label": "UOM", 
   "oldfieldname": "stock_uom", 
   "oldfieldtype": "Data", 
@@ -100,6 +106,7 @@
   "doctype": "DocField", 
   "fieldname": "description", 
   "fieldtype": "Text", 
+  "in_list_view": 1, 
   "label": "Description", 
   "oldfieldname": "description", 
   "oldfieldtype": "Text", 
diff --git a/manufacturing/doctype/production_plan_sales_order/production_plan_sales_order.txt b/manufacturing/doctype/production_plan_sales_order/production_plan_sales_order.txt
index dc5b88d..e74f3bb 100644
--- a/manufacturing/doctype/production_plan_sales_order/production_plan_sales_order.txt
+++ b/manufacturing/doctype/production_plan_sales_order/production_plan_sales_order.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-02-22 01:27:49", 
   "docstatus": 0, 
-  "modified": "2013-03-07 07:03:26", 
+  "modified": "2013-07-10 14:54:12", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -15,6 +15,7 @@
  }, 
  {
   "doctype": "DocField", 
+  "in_list_view": 1, 
   "name": "__common__", 
   "parent": "Production Plan Sales Order", 
   "parentfield": "fields", 
diff --git a/manufacturing/doctype/production_planning_tool/production_planning_tool.js b/manufacturing/doctype/production_planning_tool/production_planning_tool.js
index 95b84b2..9158748 100644
--- a/manufacturing/doctype/production_planning_tool/production_planning_tool.js
+++ b/manufacturing/doctype/production_planning_tool/production_planning_tool.js
@@ -53,11 +53,18 @@
 cur_frm.fields_dict['pp_details'].grid.get_field('bom_no').get_query = function(doc) {
 	var d = locals[this.doctype][this.docname];
 	if (d.item_code) {
-		return erpnext.queries.bom({item: cstr(d.item_code)});
+		return {
+			query:"controllers.queries.bom",
+			filters:{'item': cstr(d.item_code)}
+		}
 	} else msgprint(" Please enter Item first");
 }
 
-cur_frm.fields_dict.customer.get_query = erpnext.utils.customer_query;
+cur_frm.fields_dict.customer.get_query = function(doc,cdt,cdn) {
+	return{
+		query:"controllers.queries.customer_query"
+	}
+}
 
 cur_frm.fields_dict.pp_so_details.grid.get_field("customer").get_query =
-	erpnext.utils.customer_query;
\ No newline at end of file
+	cur_frm.fields_dict.customer.get_query;
\ No newline at end of file
diff --git a/patches/patch_list.py b/patches/patch_list.py
index 48e521d..032297f 100644
--- a/patches/patch_list.py
+++ b/patches/patch_list.py
@@ -20,6 +20,7 @@
 	"execute:webnotes.reload_doc('core', 'doctype', 'docperm') # 2013-04-07",
 	"execute:webnotes.reload_doc('core', 'doctype', 'report')",
 	"execute:webnotes.reload_doc('core', 'doctype', 'doctype') # 2013-07-08",
+	"execute:webnotes.reload_doc('core', 'doctype', 'page') # 2013-06-24",
 	"patches.mar_2012.clean_property_setter", 
 	"patches.april_2012.naming_series_patch", 
 	"patches.mar_2012.cleanup_control_panel", 
diff --git a/projects/doctype/project/project.js b/projects/doctype/project/project.js
index a6f32cb..9d04477 100644
--- a/projects/doctype/project/project.js
+++ b/projects/doctype/project/project.js
@@ -28,4 +28,8 @@
 	}
 }
 
-cur_frm.fields_dict.customer.get_query = erpnext.utils.customer_query;
\ No newline at end of file
+cur_frm.fields_dict.customer.get_query = function(doc,cdt,cdn) {
+	return{
+		query:"controllers.queries.customer_query"
+	}
+}
\ No newline at end of file
diff --git a/projects/doctype/project_milestone/project_milestone.txt b/projects/doctype/project_milestone/project_milestone.txt
index 11c5d20..31722d6 100644
--- a/projects/doctype/project_milestone/project_milestone.txt
+++ b/projects/doctype/project_milestone/project_milestone.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-02-22 01:27:50", 
   "docstatus": 0, 
-  "modified": "2013-03-07 07:03:26", 
+  "modified": "2013-07-10 14:54:12", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -14,6 +14,7 @@
  }, 
  {
   "doctype": "DocField", 
+  "in_list_view": 1, 
   "name": "__common__", 
   "parent": "Project Milestone", 
   "parentfield": "fields", 
diff --git a/projects/doctype/task/task.js b/projects/doctype/task/task.js
index 131b5fd..cb2c539 100644
--- a/projects/doctype/task/task.js
+++ b/projects/doctype/task/task.js
@@ -21,9 +21,9 @@
 erpnext.projects.Task = wn.ui.form.Controller.extend({
 	setup: function() {
 		this.frm.fields_dict.project.get_query = function() {
-			return "select name from `tabProject` \
-				where %(key)s like \"%s\" \
-				order by name asc limit 50";
+			return {
+				query: "projects.doctype.task.task.get_project"
+			}
 		};
 	},
 
diff --git a/projects/doctype/task/task.py b/projects/doctype/task/task.py
index 1df8547..0ea9eea 100644
--- a/projects/doctype/task/task.py
+++ b/projects/doctype/task/task.py
@@ -92,3 +92,13 @@
 		}, as_dict=True, update={"allDay": 0})
 
 	return data
+
+def get_project(doctype, txt, searchfield, start, page_len, filters):
+	from controllers.queries import get_match_cond
+	return webnotes.conn.sql(""" select name from `tabProject`
+			where %(key)s like "%(txt)s"
+				%(mcond)s
+			order by name 
+			limit %(start)s, %(page_len)s """ % {'key': searchfield, 
+			'txt': "%%%s%%" % txt, 'mcond':get_match_cond(doctype, searchfield),
+			'start': start, 'page_len': page_len})
\ No newline at end of file
diff --git a/projects/doctype/time_log/time_log.js b/projects/doctype/time_log/time_log.js
index 22f9610..69ec304 100644
--- a/projects/doctype/time_log/time_log.js
+++ b/projects/doctype/time_log/time_log.js
@@ -2,8 +2,8 @@
 
 erpnext.projects.TimeLog = wn.ui.form.Controller.extend({
 	setup: function() {
-		this.frm.set_query("task", erpnext.queries.task);
-	}
-});
+		this.frm.set_query("task", function() {
+			return { query: "projects.utils.query_task" }
+		});
 
 cur_frm.cscript = new erpnext.projects.TimeLog({frm: cur_frm});
\ No newline at end of file
diff --git a/projects/doctype/time_log_batch_detail/time_log_batch_detail.txt b/projects/doctype/time_log_batch_detail/time_log_batch_detail.txt
index 8bd554f..98eca10 100644
--- a/projects/doctype/time_log_batch_detail/time_log_batch_detail.txt
+++ b/projects/doctype/time_log_batch_detail/time_log_batch_detail.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-03-05 09:11:06", 
   "docstatus": 0, 
-  "modified": "2013-03-07 07:03:34", 
+  "modified": "2013-07-10 14:54:25", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -14,6 +14,7 @@
  }, 
  {
   "doctype": "DocField", 
+  "in_list_view": 1, 
   "name": "__common__", 
   "parent": "Time Log Batch Detail", 
   "parentfield": "fields", 
diff --git a/public/js/complete_setup.js b/public/js/complete_setup.js
index cdc8662..a93aae6 100644
--- a/public/js/complete_setup.js
+++ b/public/js/complete_setup.js
@@ -44,7 +44,7 @@
 				{fieldname:'timezone', label: 'Time Zone', reqd:1,
 					options: "", fieldtype: 'Select'},
 				{fieldname:'industry', label: 'Industry', reqd:1,
-					options: erpnext.complete_setup.industry_list.join('\n'), fieldtype: 'Select'},
+					options: erpnext.complete_setup.domains.join('\n'), fieldtype: 'Select'},
 				{fieldname:'update', label:'Setup',fieldtype:'Button'},
 			],
 		});
@@ -75,6 +75,7 @@
 			if(!data) return;
 			$(this).set_working();
 			$c_obj('Setup Control','setup_account',data,function(r, rt){
+				$(this).done_working();
 				if(!r.exc) {
 					sys_defaults = r.message;
 					user_fullname = r.message.user_fullname;
@@ -84,12 +85,16 @@
 					wn.container.wntoolbar.set_user_name();
 					
 					setTimeout(function() { window.location.reload(); }, 3000);
-				} else {
-					$(this).done_working();
 				}
 			});
 		};
-		
+
+		d.fields_dict.company_name.input.onchange = function() {
+			var parts = d.get_input("company_name").val().split(" ");
+			var abbr = $.map(parts, function(p) { return p ? p.substr(0,1) : null }).join("");
+			d.get_input("company_abbr").val(abbr.toUpperCase());
+		}
+
 		d.fields_dict.country.input.onchange = function() {
 			var country = d.fields_dict.country.input.value;
 			var $timezone = $(d.fields_dict.timezone.input);
@@ -129,11 +134,5 @@
 	
 	fy_start_list: ['', '1st Jan', '1st Apr', '1st Jul', '1st Oct'],
 
-	industry_list: ['', 'Aerospace and Defence', 'Agriculture', 'Apparel', 'Automobile',
-	'Banking', 'Biotechnology', 'Chemical', 'Communications', 'Consulting', 'Customer Service',
-	'Education', 'Electronics', 'Energy', 'Engineering', 'Entertainment', 'Environmental',
-	'Finance', 'Food and Beverage', 'Government', 'Healthcare', 'Hospitality',
-	'Information Technology', 'Insurance', 'Machinery', 'Manufacturing', 'Media',
-	'Not For Profit', 'Recreation', 'Retail', 'Shipping', 'Technology',
-	'Telecommunications', 'Transportation', 'Trading', 'Utilities', 'Other'],	
+	domains: ['', "Manufacturing", "Retail", "Distribution", "Services"],	
 });
\ No newline at end of file
diff --git a/selling/doctype/customer/customer.js b/selling/doctype/customer/customer.js
index 914836c..cd530a2 100644
--- a/selling/doctype/customer/customer.js
+++ b/selling/doctype/customer/customer.js
@@ -122,8 +122,14 @@
 }
 
 cur_frm.fields_dict['customer_group'].get_query = function(doc,dt,dn) {
-	return 'SELECT `tabCustomer Group`.`name`, `tabCustomer Group`.`parent_customer_group` FROM `tabCustomer Group` WHERE `tabCustomer Group`.`is_group` = "No" AND `tabCustomer Group`.`docstatus`!= 2 AND `tabCustomer Group`.%(key)s LIKE "%s" ORDER BY	`tabCustomer Group`.`name` ASC LIMIT 50';
+	return{
+		filters:{'is_group': 'No'}
+	}	
 }
 
 
-cur_frm.fields_dict.lead_name.get_query = erpnext.utils.lead_query;
\ No newline at end of file
+cur_frm.fields_dict.lead_name.get_query = function(doc,cdt,cdn) {
+	return{
+		query:"controllers.queries.lead_query"
+	}
+}
\ No newline at end of file
diff --git a/selling/doctype/customer/customer.py b/selling/doctype/customer/customer.py
index e7d46d2..9022cb5 100644
--- a/selling/doctype/customer/customer.py
+++ b/selling/doctype/customer/customer.py
@@ -184,7 +184,7 @@
 
 @webnotes.whitelist()
 def get_dashboard_info(customer):
-	if not webnotes.has_permission("Customer", customer):
+	if not webnotes.has_permission("Customer", "read", customer):
 		webnotes.msgprint("No Permission", raise_exception=True)
 	
 	out = {}
diff --git a/selling/doctype/installation_note/installation_note.js b/selling/doctype/installation_note/installation_note.js
index 4fd8678..4cbd67d 100644
--- a/selling/doctype/installation_note/installation_note.js
+++ b/selling/doctype/installation_note/installation_note.js
@@ -62,16 +62,20 @@
 
 cur_frm.fields_dict['delivery_note_no'].get_query = function(doc) {
 	doc = locals[this.doctype][this.docname];
-	var cond = '';
-	if(doc.customer) {
-		cond = '`tabDelivery Note`.customer = "'+doc.customer+'" AND';
-	}
-	return repl('SELECT DISTINCT `tabDelivery Note`.name, `tabDelivery Note`.customer_name	FROM `tabDelivery Note`, `tabDelivery Note Item` WHERE `tabDelivery Note`.company = "%(company)s" AND `tabDelivery Note`.docstatus = 1 AND ifnull(`tabDelivery Note`.per_installed,0) < 99.99 AND %(cond)s `tabDelivery Note`.name LIKE "%s" ORDER BY `tabDelivery Note`.name DESC LIMIT 50', {company:doc.company, cond:cond});
+
+	var filter = {
+    	'company': doc.company,
+    	'docstatus': 1,
+    	'per_installed': 99.99
+  	};
+	if(doc.customer) filter['customer'] = doc.customer;
+  	return { filters: filter }
 }
 
-
 cur_frm.fields_dict['territory'].get_query = function(doc,cdt,cdn) {
-	return 'SELECT `tabTerritory`.`name`,`tabTerritory`.`parent_territory` FROM `tabTerritory` WHERE `tabTerritory`.`is_group` = "No" AND `tabTerritory`.`docstatus`!= 2 AND `tabTerritory`.%(key)s LIKE "%s"	ORDER BY	`tabTerritory`.`name` ASC LIMIT 50';
+  	return{
+ 		filters: { 'is_group': "No" }
+  	}	
 }
 
 cur_frm.cscript.customer_address = cur_frm.cscript.contact_person = function(doc,dt,dn) {		
@@ -79,11 +83,19 @@
 }
 
 cur_frm.fields_dict['customer_address'].get_query = function(doc, cdt, cdn) {
-	return 'SELECT name,address_line1,city FROM tabAddress WHERE customer = "'+ doc.customer +'" AND docstatus != 2 AND name LIKE "%s" ORDER BY name ASC LIMIT 50';
+  	return{
+    	filters: { 'customer': doc.customer }
+	}
 }
 
 cur_frm.fields_dict['contact_person'].get_query = function(doc, cdt, cdn) {
-	return 'SELECT name,CONCAT(first_name," ",ifnull(last_name,"")) As FullName,department,designation FROM tabContact WHERE customer = "'+ doc.customer +'" AND docstatus != 2 AND name LIKE "%s" ORDER BY name ASC LIMIT 50';
+	return{
+    	filters: { 'customer': doc.customer }
+	}
 }
 
-cur_frm.fields_dict.customer.get_query = erpnext.utils.customer_query;
\ No newline at end of file
+cur_frm.fields_dict.customer.get_query = function(doc,cdt,cdn) {
+	return{
+		query:"controllers.queries.customer_query"
+	}
+}
\ No newline at end of file
diff --git a/selling/doctype/installation_note_item/installation_note_item.txt b/selling/doctype/installation_note_item/installation_note_item.txt
index a2ccdc4..02871ad 100644
--- a/selling/doctype/installation_note_item/installation_note_item.txt
+++ b/selling/doctype/installation_note_item/installation_note_item.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-02-22 01:27:51", 
   "docstatus": 0, 
-  "modified": "2013-03-07 07:03:21", 
+  "modified": "2013-07-10 14:54:09", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -29,6 +29,7 @@
   "doctype": "DocField", 
   "fieldname": "item_code", 
   "fieldtype": "Link", 
+  "in_list_view": 1, 
   "label": "Item Code", 
   "oldfieldname": "item_code", 
   "oldfieldtype": "Link", 
@@ -39,6 +40,7 @@
   "doctype": "DocField", 
   "fieldname": "description", 
   "fieldtype": "Data", 
+  "in_list_view": 1, 
   "label": "Description", 
   "oldfieldname": "description", 
   "oldfieldtype": "Data", 
@@ -51,6 +53,7 @@
   "fieldname": "prevdoc_date", 
   "fieldtype": "Date", 
   "hidden": 0, 
+  "in_list_view": 1, 
   "label": "Delivery Date", 
   "oldfieldname": "prevdoc_date", 
   "oldfieldtype": "Date", 
@@ -61,6 +64,7 @@
   "doctype": "DocField", 
   "fieldname": "serial_no", 
   "fieldtype": "Small Text", 
+  "in_list_view": 1, 
   "label": "Serial No", 
   "oldfieldname": "serial_no", 
   "oldfieldtype": "Small Text", 
@@ -72,6 +76,7 @@
   "fieldname": "prevdoc_detail_docname", 
   "fieldtype": "Data", 
   "hidden": 1, 
+  "in_list_view": 0, 
   "label": "Against Document Detail No", 
   "no_copy": 1, 
   "oldfieldname": "prevdoc_detail_docname", 
@@ -87,6 +92,7 @@
   "fieldtype": "Data", 
   "hidden": 1, 
   "in_filter": 1, 
+  "in_list_view": 0, 
   "label": "Against Document No", 
   "no_copy": 1, 
   "oldfieldname": "prevdoc_docname", 
@@ -103,6 +109,7 @@
   "fieldtype": "Data", 
   "hidden": 1, 
   "in_filter": 1, 
+  "in_list_view": 0, 
   "label": "Document Type", 
   "no_copy": 1, 
   "oldfieldname": "prevdoc_doctype", 
@@ -117,6 +124,7 @@
   "doctype": "DocField", 
   "fieldname": "qty", 
   "fieldtype": "Float", 
+  "in_list_view": 1, 
   "label": "Installed Qty", 
   "oldfieldname": "qty", 
   "oldfieldtype": "Currency", 
diff --git a/selling/doctype/lead/lead.js b/selling/doctype/lead/lead.js
index 40cf454..a20b331 100644
--- a/selling/doctype/lead/lead.js
+++ b/selling/doctype/lead/lead.js
@@ -20,16 +20,19 @@
 wn.provide("erpnext");
 erpnext.LeadController = wn.ui.form.Controller.extend({
 	setup: function() {
-		this.frm.fields_dict.customer.get_query = erpnext.utils.customer_query;
+		this.frm.fields_dict.customer.get_query = function(doc,cdt,cdn) {
+				return { query:"controllers.queries.customer_query" } }
 	},
 	
 	onload: function() {
 		if(cur_frm.fields_dict.lead_owner.df.options.match(/^Profile/)) {
-			cur_frm.fields_dict.lead_owner.get_query = erpnext.utils.profile_query;
+			cur_frm.fields_dict.lead_owner.get_query = function(doc,cdt,cdn) {
+				return { query:"controllers.queries.profile_query" } }
 		}
 
 		if(cur_frm.fields_dict.contact_by.df.options.match(/^Profile/)) {
-			cur_frm.fields_dict.contact_by.get_query = erpnext.utils.profile_query;
+			cur_frm.fields_dict.contact_by.get_query = function(doc,cdt,cdn) {
+				return { query:"controllers.queries.profile_query" } }
 		}
 
 		if(in_list(user_roles,'System Manager')) {
diff --git a/selling/doctype/opportunity/opportunity.js b/selling/doctype/opportunity/opportunity.js
index bc10c9b..b87fee1 100644
--- a/selling/doctype/opportunity/opportunity.js
+++ b/selling/doctype/opportunity/opportunity.js
@@ -109,7 +109,8 @@
 	}
 	
 	if(cur_frm.fields_dict.contact_by.df.options.match(/^Profile/)) {
-		cur_frm.fields_dict.contact_by.get_query = erpnext.utils.profile_query;
+		cur_frm.fields_dict.contact_by.get_query = function(doc,cdt,cdn) {
+				return { query:"controllers.queries.profile_query" } }
 	}
 	
 	if(doc.customer && !doc.customer_name) cur_frm.cscript.customer(doc);
@@ -153,23 +154,23 @@
 }
 
 cur_frm.fields_dict['customer_address'].get_query = function(doc, cdt, cdn) {
-	return 'SELECT name, address_line1, city FROM tabAddress \
-		WHERE customer = "'+ doc.customer +'" AND docstatus != 2 AND \
-		%(key)s LIKE "%s" ORDER BY name ASC LIMIT 50';
+	return {
+		filters:{'customer':doc.customer}
+	}
 }
 
 cur_frm.fields_dict['contact_person'].get_query = function(doc, cdt, cdn) {
 	if (!doc.customer) msgprint("Please select customer first");
 	else {
-		return 'SELECT name, CONCAT(first_name," ",ifnull(last_name,"")) As FullName, \
-		department, designation FROM tabContact WHERE customer = "'+ doc.customer + 
-		'" AND docstatus != 2 AND %(key)s LIKE "%s" ORDER BY name ASC LIMIT 50';
+		filters:{'customer':doc.customer}
 	}
 }
 
 // lead
 cur_frm.fields_dict['lead'].get_query = function(doc,cdt,cdn){
-	return 'SELECT `tabLead`.name, `tabLead`.lead_name FROM `tabLead` WHERE `tabLead`.%(key)s LIKE "%s"	ORDER BY	`tabLead`.`name` ASC LIMIT 50';
+	return {
+		query: "selling.doctype.opportunity.opportunity.get_lead"
+	}
 }
 
 cur_frm.cscript.lead = function(doc, cdt, cdn) {
@@ -185,14 +186,17 @@
 }
 
 cur_frm.fields_dict['enquiry_details'].grid.get_field('item_code').get_query = function(doc, cdt, cdn) {
-	if (doc.enquiry_type == 'Maintenance')
-	 	return erpnext.queries.item({
-			'ifnull(tabItem.is_service_item, "No")': 'Yes'
-		});
-	else 
- 		return erpnext.queries.item({
-			'ifnull(tabItem.is_sales_item, "No")': 'Yes'
-		});
+	if (doc.enquiry_type == 'Maintenance') {
+		return {
+			query:"controllers.queries.item_query",
+			filters:{ 'is_service_item': 'Yes' }
+		}
+	} else {
+		return {
+			query:"controllers.queries.item_query",
+			filters:{ 'is_sales_item': 'Yes' }
+		}		
+	}
 }
 
 cur_frm.cscript['Declare Opportunity Lost'] = function(){
@@ -229,8 +233,12 @@
 
 //get query select Territory
 cur_frm.fields_dict['territory'].get_query = function(doc,cdt,cdn) {
-	return 'SELECT `tabTerritory`.`name`,`tabTerritory`.`parent_territory` FROM `tabTerritory` WHERE `tabTerritory`.`is_group` = "No" AND `tabTerritory`.`docstatus`!= 2 AND `tabTerritory`.%(key)s LIKE "%s"	ORDER BY	`tabTerritory`.`name` ASC LIMIT 50';}
+	return{
+		filters:{'is_group': 'No'}
+	}	
 	
-cur_frm.fields_dict.lead.get_query = erpnext.utils.lead_query;
+cur_frm.fields_dict.lead.get_query = function(doc,cdt,cdn) {
+				return { query:"controllers.queries.lead_query" } }
 
-cur_frm.fields_dict.customer.get_query = erpnext.utils.customer_query;
\ No newline at end of file
+cur_frm.fields_dict.customer.get_query = function(doc,cdt,cdn) {
+				return { query:"controllers.queries.customer_query" } }
\ No newline at end of file
diff --git a/selling/doctype/opportunity/opportunity.py b/selling/doctype/opportunity/opportunity.py
index cced9ab..92d391b 100644
--- a/selling/doctype/opportunity/opportunity.py
+++ b/selling/doctype/opportunity/opportunity.py
@@ -202,4 +202,14 @@
 		}
 	}, target_doclist)
 		
-	return [d.fields for d in doclist]
\ No newline at end of file
+	return [d.fields for d in doclist]
+
+def get_lead(doctype, txt, searchfield, start, page_len, filters):
+	from controllers.queries import get_match_cond
+	return webnotes.conn.sql ("""select `tabLead`.name, `tabLead`.lead_name FROM `tabLead` 
+			where `tabLead`.%(key)s like "%(txt)s" 
+				%(mcond)s	
+			order by `tabLead`.`name` asc 
+			limit %(start)s, %(page_len)s """ % {'key': searchfield, 
+			'txt': "%%%s%%" % txt, 'mcond':get_match_cond(doctype, searchfield),
+			'start': start, 'page_len': page_len})
\ No newline at end of file
diff --git a/selling/doctype/opportunity_item/opportunity_item.txt b/selling/doctype/opportunity_item/opportunity_item.txt
index ba7870e..fb1501c 100644
--- a/selling/doctype/opportunity_item/opportunity_item.txt
+++ b/selling/doctype/opportunity_item/opportunity_item.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-02-22 01:27:51", 
   "docstatus": 0, 
-  "modified": "2013-03-07 07:03:26", 
+  "modified": "2013-07-10 14:54:11", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -28,6 +28,7 @@
   "doctype": "DocField", 
   "fieldname": "item_code", 
   "fieldtype": "Link", 
+  "in_list_view": 1, 
   "label": "Item Code", 
   "oldfieldname": "item_code", 
   "oldfieldtype": "Link", 
@@ -38,6 +39,7 @@
   "doctype": "DocField", 
   "fieldname": "item_name", 
   "fieldtype": "Data", 
+  "in_list_view": 1, 
   "label": "Item Name", 
   "oldfieldname": "item_name", 
   "oldfieldtype": "Data", 
@@ -47,6 +49,7 @@
   "doctype": "DocField", 
   "fieldname": "description", 
   "fieldtype": "Text", 
+  "in_list_view": 1, 
   "label": "Description", 
   "oldfieldname": "description", 
   "oldfieldtype": "Text", 
@@ -59,6 +62,7 @@
   "fieldname": "item_group", 
   "fieldtype": "Link", 
   "hidden": 1, 
+  "in_list_view": 0, 
   "label": "Item Group", 
   "oldfieldname": "item_group", 
   "oldfieldtype": "Link", 
@@ -71,6 +75,7 @@
   "fieldname": "brand", 
   "fieldtype": "Link", 
   "hidden": 1, 
+  "in_list_view": 0, 
   "label": "Brand", 
   "oldfieldname": "brand", 
   "oldfieldtype": "Link", 
@@ -80,9 +85,26 @@
  }, 
  {
   "doctype": "DocField", 
+  "fieldname": "quantity_and_rate", 
+  "fieldtype": "Section Break", 
+  "in_list_view": 0, 
+  "label": "Quantity and Rate"
+ }, 
+ {
+  "doctype": "DocField", 
+  "fieldname": "qty", 
+  "fieldtype": "Float", 
+  "in_list_view": 1, 
+  "label": "Qty", 
+  "oldfieldname": "qty", 
+  "oldfieldtype": "Currency"
+ }, 
+ {
+  "doctype": "DocField", 
   "fieldname": "basic_rate", 
   "fieldtype": "Currency", 
   "hidden": 1, 
+  "in_list_view": 0, 
   "label": "Basic Rate", 
   "oldfieldname": "basic_rate", 
   "oldfieldtype": "Currency", 
@@ -91,16 +113,9 @@
  }, 
  {
   "doctype": "DocField", 
-  "fieldname": "qty", 
-  "fieldtype": "Float", 
-  "label": "Qty", 
-  "oldfieldname": "qty", 
-  "oldfieldtype": "Currency"
- }, 
- {
-  "doctype": "DocField", 
   "fieldname": "uom", 
   "fieldtype": "Link", 
+  "in_list_view": 0, 
   "label": "UOM", 
   "oldfieldname": "uom", 
   "oldfieldtype": "Link", 
diff --git a/selling/doctype/quotation/quotation.js b/selling/doctype/quotation/quotation.js
index 877f65c..0649f54 100644
--- a/selling/doctype/quotation/quotation.js
+++ b/selling/doctype/quotation/quotation.js
@@ -118,7 +118,8 @@
 	}),'', doc, dt, dn, 1);
 }
 
-cur_frm.fields_dict.lead.get_query = erpnext.utils.lead_query;
+cur_frm.fields_dict.lead.get_query = function(doc,cdt,cdn) {
+	return{	query:"controllers.queries.lead_query" } }
 
 cur_frm.cscript.lead = function(doc, cdt, cdn) {
 	if(doc.lead) {
@@ -186,45 +187,21 @@
 	if(doc.customer) {
 		var export_rate_field = wn.meta.get_docfield(cdt, 'export_rate', cdn);
 		var precision = (export_rate_field && export_rate_field.fieldtype) === 'Float' ? 6 : 2;
-		return repl("\
-			select \
-				item.name, \
-				( \
-					select concat('Last Quote @ ', q.currency, ' ', \
-						format(q_item.export_rate, %(precision)s)) \
-					from `tabQuotation` q, `tabQuotation Item` q_item \
-					where \
-						q.name = q_item.parent \
-						and q_item.item_code = item.name \
-						and q.docstatus = 1 \
-						and q.customer = \"%(cust)s\" \
-					order by q.transaction_date desc \
-					limit 1 \
-				) as quote_rate, \
-				( \
-					select concat('Last Sale @ ', si.currency, ' ', \
-						format(si_item.basic_rate, %(precision)s)) \
-					from `tabSales Invoice` si, `tabSales Invoice Item` si_item \
-					where \
-						si.name = si_item.parent \
-						and si_item.item_code = item.name \
-						and si.docstatus = 1 \
-						and si.customer = \"%(cust)s\" \
-					order by si.posting_date desc \
-					limit 1 \
-				) as sales_rate, \
-				item.item_name, item.description \
-			from `tabItem` item \
-			where \
-				item.%(key)s like \"%s\" \
-				%(cond)s \
-				limit 25", {
-					cust: doc.customer,
-					cond: cond,
-					precision: precision
-				});
+		return {
+			query: "selling.doctype.quotation.quotation.quotation_details",
+			filters:{
+				cust: doc.customer,
+				cond: cond,
+				precision: precision
+			}
+		}
 	} else {
-		return repl("SELECT name, item_name, description FROM `tabItem` item WHERE item.%(key)s LIKE '%s' %(cond)s ORDER BY item.item_code DESC LIMIT 50", {cond:cond});
+		return {
+			query: 'selling.doctype.quotation.quotation.quotation_details',
+			filters:{
+				cond: cond
+			}		
+		}	
 	}
 }
 
diff --git a/selling/doctype/quotation/quotation.py b/selling/doctype/quotation/quotation.py
index 9792ace..6020c93 100644
--- a/selling/doctype/quotation/quotation.py
+++ b/selling/doctype/quotation/quotation.py
@@ -270,7 +270,7 @@
 	# postprocess: fetch shipping address, set missing values
 		
 	return [d.fields for d in doclist]
-	
+
 def _make_customer(source_name, ignore_permissions=False):
 	quotation = webnotes.conn.get_value("Quotation", source_name, ["lead", "order_type"])
 	if quotation and quotation[0]:
@@ -295,4 +295,42 @@
 					customer.insert()
 					return customer
 				else:
-					raise e
\ No newline at end of file
+					raise e
+
+def quotation_details(doctype, txt, searchfield, start, page_len, filters):
+	from controllers.queries import get_match_cond
+
+	if filters.has_key('cust') and filters.has_key('precision'):
+		return webnotes.conn.sql("""select 	item.name, 
+					(select concat('Last Quote @ ', q.currency, ' ', 
+								format(q_item.export_rate, %(precision)s))
+						from `tabQuotation` q, `tabQuotation Item` q_item 
+						where q.name = q_item.parent 
+							and q_item.item_code = item.name
+							and q.docstatus = 1	
+							and q.customer = "%(cust)s"
+						order by q.transaction_date desc 
+						limit 1) as quote_rate,
+					(select concat('Last Sale @ ', si.currency, ' ', 
+								format(si_item.basic_rate, %(precision)s)) 
+						from `tabSales Invoice` si, `tabSales Invoice Item` si_item 
+						where si.name = si_item.parent 
+							and si_item.item_code = item.name
+							and si.docstatus = 1 
+							and si.customer ="%(cust)s"
+						order by si.posting_date desc 
+						limit 1) as sales_rate,
+					item.item_name, item.description
+					from `tabItem` item 
+					where %(cond)s %(mcond)s 
+						and item.%(searchfield)s like '%(txt)s' 
+					order by item.name desc limit %(start)s, %(page_len)s """ % {'precision': filters["precision"], 
+					'cust': filters['cust'], 'cond': filters['cond'], 'searchfield': searchfield, 
+					'txt': "%%%s%%" % txt, 'mcond': get_match_cond(doctype, searchfield), 
+					'start': start, 'page_len': page_len})
+
+	else:
+		return webnotes.conn.sql(""" select name, item_name, description from `tabItem` item 
+			where %s %s and %s like %s order by name desc limit %s, %s""" % 
+		("%s", get_match_cond(doctype, searchfield), searchfield, "%s", "%s", "%s"), 
+		(filters["cond"], "%%%s%%" % txt, start, page_len))
diff --git a/selling/doctype/quotation_item/quotation_item.txt b/selling/doctype/quotation_item/quotation_item.txt
index a15166a..32b8421 100644
--- a/selling/doctype/quotation_item/quotation_item.txt
+++ b/selling/doctype/quotation_item/quotation_item.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-03-07 11:42:57", 
   "docstatus": 0, 
-  "modified": "2013-07-09 12:24:21", 
+  "modified": "2013-07-10 14:54:18", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -31,6 +31,7 @@
   "fieldtype": "Link", 
   "hidden": 0, 
   "in_filter": 1, 
+  "in_list_view": 1, 
   "label": "Item Code", 
   "oldfieldname": "item_code", 
   "oldfieldtype": "Link", 
@@ -47,6 +48,7 @@
   "fieldname": "customer_item_code", 
   "fieldtype": "Data", 
   "hidden": 1, 
+  "in_list_view": 0, 
   "label": "Customer's Item Code", 
   "print_hide": 1, 
   "read_only": 1
@@ -56,6 +58,7 @@
   "fieldname": "item_name", 
   "fieldtype": "Data", 
   "in_filter": 1, 
+  "in_list_view": 0, 
   "label": "Item Name", 
   "oldfieldname": "item_name", 
   "oldfieldtype": "Data", 
@@ -70,6 +73,7 @@
   "doctype": "DocField", 
   "fieldname": "description", 
   "fieldtype": "Small Text", 
+  "in_list_view": 1, 
   "label": "Description", 
   "oldfieldname": "description", 
   "oldfieldtype": "Small Text", 
@@ -80,11 +84,19 @@
   "width": "300px"
  }, 
  {
+  "doctype": "DocField", 
+  "fieldname": "quantity_and_rate", 
+  "fieldtype": "Section Break", 
+  "in_list_view": 0, 
+  "label": "Quantity and Rate"
+ }, 
+ {
   "default": "0.00", 
   "doctype": "DocField", 
   "fieldname": "qty", 
   "fieldtype": "Float", 
   "in_filter": 0, 
+  "in_list_view": 1, 
   "label": "Quantity", 
   "oldfieldname": "qty", 
   "oldfieldtype": "Currency", 
@@ -99,6 +111,7 @@
   "doctype": "DocField", 
   "fieldname": "stock_uom", 
   "fieldtype": "Data", 
+  "in_list_view": 0, 
   "label": "UOM", 
   "oldfieldname": "stock_uom", 
   "oldfieldtype": "Data", 
@@ -113,6 +126,7 @@
   "doctype": "DocField", 
   "fieldname": "ref_rate", 
   "fieldtype": "Currency", 
+  "in_list_view": 0, 
   "label": "Price List Rate", 
   "oldfieldname": "ref_rate", 
   "oldfieldtype": "Currency", 
@@ -128,6 +142,7 @@
   "doctype": "DocField", 
   "fieldname": "adj_rate", 
   "fieldtype": "Float", 
+  "in_list_view": 0, 
   "label": "Discount (%)", 
   "oldfieldname": "adj_rate", 
   "oldfieldtype": "Float", 
@@ -142,6 +157,7 @@
   "fieldname": "export_rate", 
   "fieldtype": "Currency", 
   "in_filter": 0, 
+  "in_list_view": 1, 
   "label": "Rate", 
   "oldfieldname": "export_rate", 
   "oldfieldtype": "Currency", 
@@ -159,6 +175,7 @@
   "fieldname": "export_amount", 
   "fieldtype": "Currency", 
   "in_filter": 0, 
+  "in_list_view": 1, 
   "label": "Amount", 
   "oldfieldname": "export_amount", 
   "oldfieldtype": "Currency", 
@@ -174,6 +191,7 @@
   "doctype": "DocField", 
   "fieldname": "base_ref_rate", 
   "fieldtype": "Currency", 
+  "in_list_view": 0, 
   "label": "Price List Rate (Company Currency)", 
   "oldfieldname": "base_ref_rate", 
   "oldfieldtype": "Currency", 
@@ -189,6 +207,7 @@
   "fieldname": "basic_rate", 
   "fieldtype": "Currency", 
   "in_filter": 0, 
+  "in_list_view": 0, 
   "label": "Basic Rate (Company Currency)", 
   "oldfieldname": "basic_rate", 
   "oldfieldtype": "Currency", 
@@ -206,6 +225,7 @@
   "fieldname": "amount", 
   "fieldtype": "Currency", 
   "in_filter": 0, 
+  "in_list_view": 0, 
   "label": "Amount (Company Currency)", 
   "oldfieldname": "amount", 
   "oldfieldtype": "Currency", 
@@ -219,10 +239,18 @@
  }, 
  {
   "doctype": "DocField", 
+  "fieldname": "reference", 
+  "fieldtype": "Section Break", 
+  "in_list_view": 0, 
+  "label": "Reference"
+ }, 
+ {
+  "doctype": "DocField", 
   "fieldname": "item_group", 
   "fieldtype": "Link", 
   "hidden": 1, 
   "in_filter": 1, 
+  "in_list_view": 0, 
   "label": "Item Group", 
   "oldfieldname": "item_group", 
   "oldfieldtype": "Link", 
@@ -237,6 +265,7 @@
   "fieldtype": "Link", 
   "hidden": 1, 
   "in_filter": 1, 
+  "in_list_view": 0, 
   "label": "Brand", 
   "oldfieldname": "brand", 
   "oldfieldtype": "Link", 
@@ -252,6 +281,7 @@
   "fieldname": "item_tax_rate", 
   "fieldtype": "Small Text", 
   "hidden": 1, 
+  "in_list_view": 0, 
   "label": "Item Tax Rate", 
   "oldfieldname": "item_tax_rate", 
   "oldfieldtype": "Small Text", 
@@ -263,6 +293,7 @@
   "doctype": "DocField", 
   "fieldname": "prevdoc_docname", 
   "fieldtype": "Data", 
+  "in_list_view": 0, 
   "label": "Against Docname", 
   "no_copy": 1, 
   "oldfieldname": "prevdoc_docname", 
@@ -278,6 +309,7 @@
   "fieldname": "prevdoc_doctype", 
   "fieldtype": "Data", 
   "hidden": 1, 
+  "in_list_view": 0, 
   "label": "Against Doctype", 
   "no_copy": 1, 
   "oldfieldname": "prevdoc_doctype", 
@@ -294,6 +326,7 @@
   "fieldname": "page_break", 
   "fieldtype": "Check", 
   "hidden": 0, 
+  "in_list_view": 0, 
   "label": "Page Break", 
   "no_copy": 1, 
   "oldfieldname": "page_break", 
diff --git a/selling/doctype/sales_bom/sales_bom.js b/selling/doctype/sales_bom/sales_bom.js
index b6ba779..7d79340 100644
--- a/selling/doctype/sales_bom/sales_bom.js
+++ b/selling/doctype/sales_bom/sales_bom.js
@@ -24,9 +24,9 @@
 }
 
 cur_frm.fields_dict.new_item_code.get_query = function() {
-	return 'select name, description from tabItem where is_stock_item="No" and is_sales_item="Yes"\
-		and name not in (select name from `tabSales BOM`)\
-		and `%(key)s` like "%s"'
+	return{
+		query: "selling.doctype.sales_bom.sales_bom.get_new_item_code"
+	}
 }
 cur_frm.fields_dict.new_item_code.query_description = 'Select Item where "Is Stock Item" is "No" \
 	and "Is Sales Item" is "Yes" and there is no other Sales BOM';
diff --git a/selling/doctype/sales_bom/sales_bom.py b/selling/doctype/sales_bom/sales_bom.py
index 03479eb..13f68aa 100644
--- a/selling/doctype/sales_bom/sales_bom.py
+++ b/selling/doctype/sales_bom/sales_bom.py
@@ -83,3 +83,13 @@
 			if l not in l2:
 				return 0
 		return 1
+
+def get_new_item_code(doctype, txt, searchfield, start, page_len, filters):
+	from controllers.queries import get_match_cond
+
+	return webnotes.conn.sql("""select name, description from tabItem 
+		where is_stock_item="No" and is_sales_item="Yes"
+		and name not in (select name from `tabSales BOM`) and %s like "%s" 
+		%s limit %s, %s""" % (searchfield, "%s", 
+		get_match_cond(doctype, searchfield),"%s", "%s"), 
+		("%%%s%%" % txt, start, page_len))
\ No newline at end of file
diff --git a/selling/doctype/sales_bom_item/sales_bom_item.txt b/selling/doctype/sales_bom_item/sales_bom_item.txt
index f7906b7..1bd456b 100644
--- a/selling/doctype/sales_bom_item/sales_bom_item.txt
+++ b/selling/doctype/sales_bom_item/sales_bom_item.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-05-23 16:55:51", 
   "docstatus": 0, 
-  "modified": "2013-06-26 13:45:41", 
+  "modified": "2013-07-10 14:54:19", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -28,6 +28,7 @@
   "doctype": "DocField", 
   "fieldname": "item_code", 
   "fieldtype": "Link", 
+  "in_list_view": 1, 
   "label": "Item", 
   "oldfieldname": "item_code", 
   "oldfieldtype": "Link", 
@@ -38,6 +39,7 @@
   "doctype": "DocField", 
   "fieldname": "qty", 
   "fieldtype": "Float", 
+  "in_list_view": 1, 
   "label": "Qty", 
   "oldfieldname": "qty", 
   "oldfieldtype": "Currency", 
@@ -47,6 +49,7 @@
   "doctype": "DocField", 
   "fieldname": "description", 
   "fieldtype": "Text", 
+  "in_list_view": 1, 
   "label": "Description", 
   "oldfieldname": "description", 
   "oldfieldtype": "Text", 
@@ -57,6 +60,7 @@
   "doctype": "DocField", 
   "fieldname": "rate", 
   "fieldtype": "Float", 
+  "in_list_view": 1, 
   "label": "Rate", 
   "oldfieldname": "rate", 
   "oldfieldtype": "Currency"
@@ -65,6 +69,7 @@
   "doctype": "DocField", 
   "fieldname": "uom", 
   "fieldtype": "Link", 
+  "in_list_view": 0, 
   "label": "UOM", 
   "oldfieldname": "uom", 
   "oldfieldtype": "Link", 
diff --git a/selling/doctype/sales_common/sales_common.js b/selling/doctype/sales_common/sales_common.js
index cf757a6..8d86950 100644
--- a/selling/doctype/sales_common/sales_common.js
+++ b/selling/doctype/sales_common/sales_common.js
@@ -36,32 +36,34 @@
 		}
 		
 		this.frm.set_query("customer_address", function() {
-			return 'SELECT name, address_line1, city FROM tabAddress \
-				WHERE customer = "'+ me.frm.doc.customer +'" AND docstatus != 2 AND \
-				%(key)s LIKE "%s" ORDER BY name ASC LIMIT 50';
+			return {
+				filters: {'customer': me.frm.doc.customer }
+			}
 		});
 		
 		this.frm.set_query("contact_person", function() {
-			return 'SELECT name, CONCAT(first_name," ",ifnull(last_name,"")) As FullName, \
-				department, designation FROM tabContact WHERE customer = "'+ me.frm.doc.customer + 
-				'" AND docstatus != 2 AND %(key)s LIKE "%s" ORDER BY name ASC LIMIT 50';
+			return {
+				filters: {'customer': me.frm.doc.customer }
+			}
 		});
 		
 		if(this.frm.fields_dict.charge) {
 			this.frm.set_query("charge", function() {
-				return 'SELECT DISTINCT `tabSales Taxes and Charges Master`.name FROM \
-					`tabSales Taxes and Charges Master` \
-					WHERE `tabSales Taxes and Charges Master`.company = "' + me.frm.doc.company +
-					'" AND `tabSales Taxes and Charges Master`.company is not NULL \
-					AND `tabSales Taxes and Charges Master`.docstatus != 2 \
-					AND `tabSales Taxes and Charges Master`.%(key)s LIKE "%s" \
-					ORDER BY `tabSales Taxes and Charges Master`.name LIMIT 50';
+				return {
+					filters: [
+						['Sales Taxes and Charges Master', 'company', '=', me.frm.doc.company],
+						['Sales Taxes and Charges Master', 'company', 'is not', 'NULL'],
+						['Sales Taxes and Charges Master', 'docstatus', '!=', 2]
+					]
+				}
 			});
 		}
 		
-		this.frm.fields_dict.customer.get_query = erpnext.utils.customer_query;
+		this.frm.fields_dict.customer.get_query = function(doc,cdt,cdn) {
+			return{	query:"controllers.queries.customer_query" } }
 
-		this.frm.fields_dict.lead && this.frm.set_query("lead", erpnext.utils.lead_query);
+		this.frm.fields_dict.lead && this.frm.set_query("lead", function(doc,cdt,cdn) {
+			return{	query:"controllers.queries.lead_query" } });
 
 		if(!this.fname) {
 			return;
@@ -70,8 +72,10 @@
 		if(this.frm.fields_dict[this.fname].grid.get_field('item_code')) {
 			this.frm.set_query("item_code", this.fname, function() {
 				return me.frm.doc.order_type === "Maintenance" ?
-					erpnext.queries.item({'ifnull(tabItem.is_service_item, "No")': "Yes"}) :
-					erpnext.queries.item({'ifnull(tabItem.is_sales_item, "No")': "Yes"});
+					 	{ query:"controllers.queries.item_query",
+							filters:{'is_service_item': 'Yes'}}	:
+						{ query:"controllers.queries.item_query",
+							filters:{'is_sales_item': 'Yes'	}}	;
 			});
 		}
 		
@@ -82,18 +86,22 @@
 					wn.throw("Please enter Item Code to get batch no");
 				} else {
 					if(item.warehouse) {
-						return "select batch_no from `tabStock Ledger Entry` sle \
-							where item_code = '" + item.item_code + 
-							"' and warehouse = '" + item.warehouse +
-							"' and ifnull(is_cancelled, 'No') = 'No' and batch_no like '%s' \
-							and exists(select * from `tabBatch` where \
-							name = sle.batch_no and expiry_date >= '" + me.frm.doc.posting_date + 
-							"' and docstatus != 2) group by batch_no having sum(actual_qty) > 0 \
-							order by batch_no desc limit 50";
+						return {
+							query : "selling.doctype.sales_common.sales_common.get_batch_no",
+							filters: {
+								'item_code': item.item_code,
+								'warehouse': item.warehouse,
+								'posting_date': me.frm.doc.posting_date
+							}
+						}
 					} else {
-						return "SELECT name FROM tabBatch WHERE docstatus != 2 AND item = '" + 
-							item.item_code + "' and expiry_date >= '" + me.frm.doc.posting_date + 
-							"' AND name like '%s' ORDER BY name DESC LIMIT 50";
+						return{
+							query : "selling.doctype.sales_common.sales_common.get_batch_no",
+							filters: {
+								'item': item.item_code,
+								'posting_date': me.frm.doc.posting_date
+							}
+						}
 					}
 				}
 			});
diff --git a/selling/doctype/sales_common/sales_common.py b/selling/doctype/sales_common/sales_common.py
index f34ebf9..00825bb 100644
--- a/selling/doctype/sales_common/sales_common.py
+++ b/selling/doctype/sales_common/sales_common.py
@@ -365,3 +365,35 @@
 					dt = webnotes.conn.sql("select transaction_date from `tab%s` where name = '%s'" % (d.prevdoc_doctype, d.prevdoc_docname))
 				d.prevdoc_date = (dt and dt[0][0]) and dt[0][0].strftime('%Y-%m-%d') or ''
 
+def get_batch_no(doctype, txt, searchfield, start, page_len, filters):
+	from controllers.queries import get_match_cond
+
+	if filters.has_key('warehouse'):
+		return webnotes.conn.sql("""select batch_no from `tabStock Ledger Entry` sle 
+				where item_code = '%(item_code)s' 
+					and warehouse = '%(warehouse)s' 
+					and ifnull(is_cancelled, 'No') = 'No' 
+					and batch_no like '%(txt)s' 
+					and exists(select * from `tabBatch` 
+							where name = sle.batch_no 
+								and expiry_date >= '%(posting_date)s' 
+								and docstatus != 2) 
+					%(mcond)s
+				group by batch_no having sum(actual_qty) > 0 
+				order by batch_no desc 
+				limit %(start)s, %(page_len)s """ % {'item_code': filters['item_code'], 
+					'warehouse': filters['warehouse'], 'posting_date': filters['posting_date'], 
+					'txt': "%%%s%%" % txt, 'mcond':get_match_cond(doctype, searchfield), 
+					'start': start, 'page_len': page_len})
+	else:
+		return webnotes.conn.sql("""select name from tabBatch 
+				where docstatus != 2 
+					and item = '%(item_code)s' 
+					and expiry_date >= '%(posting_date)s' 
+					and name like '%(txt)s' 
+					%(mcond)s 
+				order by name desc 
+				limit %(start)s, %(page_len)s""" % {'item_code': filters['item_code'], 
+				'posting_date': filters['posting_date'], 'txt': "%%%s%%" % txt, 
+				'mcond':get_match_cond(doctype, searchfield),'start': start, 
+				'page_len': page_len})
\ No newline at end of file
diff --git a/selling/doctype/sales_common/sales_common.txt b/selling/doctype/sales_common/sales_common.txt
index 4d00b51..a407493 100644
--- a/selling/doctype/sales_common/sales_common.txt
+++ b/selling/doctype/sales_common/sales_common.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2012-03-27 14:36:14", 
   "docstatus": 0, 
-  "modified": "2012-03-27 14:36:14", 
+  "modified": "2013-07-10 14:54:19", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -10,10 +10,7 @@
   "doctype": "DocType", 
   "issingle": 1, 
   "module": "Selling", 
-  "name": "__common__", 
-  "section_style": "Simple", 
-  "show_in_menu": 0, 
-  "version": 290
+  "name": "__common__"
  }, 
  {
   "doctype": "DocType", 
diff --git a/selling/doctype/sales_order/sales_order.js b/selling/doctype/sales_order/sales_order.js
index 27db426..509ecf7 100644
--- a/selling/doctype/sales_order/sales_order.js
+++ b/selling/doctype/sales_order/sales_order.js
@@ -154,12 +154,12 @@
 }
 
 cur_frm.fields_dict['project_name'].get_query = function(doc, cdt, cdn) {
-	var cond = '';
-	if(doc.customer) cond = '(`tabProject`.customer = "'+doc.customer+'" OR IFNULL(`tabProject`.customer,"")="") AND';
-	return repl('SELECT `tabProject`.name FROM `tabProject` \
-		WHERE `tabProject`.status not in ("Completed", "Cancelled") \
-		AND %(cond)s `tabProject`.name LIKE "%s" \
-		ORDER BY `tabProject`.name ASC LIMIT 50', {cond:cond});
+	return {
+		query: "controllers.queries.get_project_name",
+		filters: {
+			'customer': doc.customer
+		}
+	}
 }
 
 cur_frm.cscript['Stop Sales Order'] = function() {
@@ -193,7 +193,9 @@
 }
 
 cur_frm.fields_dict['territory'].get_query = function(doc,cdt,cdn) {
-	return 'SELECT `tabTerritory`.`name`,`tabTerritory`.`parent_territory` FROM `tabTerritory` WHERE `tabTerritory`.`is_group` = "No" AND `tabTerritory`.`docstatus`!= 2 AND `tabTerritory`.%(key)s LIKE "%s"	ORDER BY	`tabTerritory`.`name` ASC LIMIT 50';
+	return{
+		filters:{ 'is_group': "No"}
+	}
 }
 
 cur_frm.cscript.on_submit = function(doc, cdt, cdn) {
diff --git a/selling/doctype/sales_order_item/sales_order_item.txt b/selling/doctype/sales_order_item/sales_order_item.txt
index 0d1ca5b..84e44b0 100644
--- a/selling/doctype/sales_order_item/sales_order_item.txt
+++ b/selling/doctype/sales_order_item/sales_order_item.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-03-07 11:42:58", 
   "docstatus": 0, 
-  "modified": "2013-07-09 12:28:31", 
+  "modified": "2013-07-10 14:54:21", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -30,6 +30,7 @@
   "fieldname": "item_code", 
   "fieldtype": "Link", 
   "in_filter": 1, 
+  "in_list_view": 1, 
   "label": "Item Code", 
   "oldfieldname": "item_code", 
   "oldfieldtype": "Link", 
@@ -45,6 +46,7 @@
   "fieldname": "customer_item_code", 
   "fieldtype": "Data", 
   "hidden": 1, 
+  "in_list_view": 0, 
   "label": "Customer's Item Code", 
   "print_hide": 1, 
   "read_only": 1
@@ -53,6 +55,7 @@
   "doctype": "DocField", 
   "fieldname": "item_name", 
   "fieldtype": "Data", 
+  "in_list_view": 0, 
   "label": "Item Name", 
   "oldfieldname": "item_name", 
   "oldfieldtype": "Data", 
@@ -67,6 +70,7 @@
   "fieldname": "description", 
   "fieldtype": "Small Text", 
   "in_filter": 1, 
+  "in_list_view": 1, 
   "label": "Description", 
   "oldfieldname": "description", 
   "oldfieldtype": "Small Text", 
@@ -77,10 +81,18 @@
   "width": "300px"
  }, 
  {
+  "doctype": "DocField", 
+  "fieldname": "quantity_and_rate", 
+  "fieldtype": "Section Break", 
+  "in_list_view": 0, 
+  "label": "Quantity and Rate"
+ }, 
+ {
   "default": "0.00", 
   "doctype": "DocField", 
   "fieldname": "qty", 
   "fieldtype": "Float", 
+  "in_list_view": 1, 
   "label": "Quantity", 
   "oldfieldname": "qty", 
   "oldfieldtype": "Currency", 
@@ -94,6 +106,7 @@
   "fieldname": "stock_uom", 
   "fieldtype": "Data", 
   "hidden": 0, 
+  "in_list_view": 0, 
   "label": "UOM", 
   "oldfieldname": "stock_uom", 
   "oldfieldtype": "Data", 
@@ -107,6 +120,7 @@
   "doctype": "DocField", 
   "fieldname": "ref_rate", 
   "fieldtype": "Currency", 
+  "in_list_view": 0, 
   "label": "Price List Rate", 
   "oldfieldname": "ref_rate", 
   "oldfieldtype": "Currency", 
@@ -122,6 +136,7 @@
   "doctype": "DocField", 
   "fieldname": "adj_rate", 
   "fieldtype": "Float", 
+  "in_list_view": 0, 
   "label": "Discount(%)", 
   "oldfieldname": "adj_rate", 
   "oldfieldtype": "Float", 
@@ -135,6 +150,7 @@
   "doctype": "DocField", 
   "fieldname": "export_rate", 
   "fieldtype": "Currency", 
+  "in_list_view": 1, 
   "label": "Rate", 
   "oldfieldname": "export_rate", 
   "oldfieldtype": "Currency", 
@@ -149,6 +165,7 @@
   "doctype": "DocField", 
   "fieldname": "export_amount", 
   "fieldtype": "Currency", 
+  "in_list_view": 1, 
   "label": "Amount", 
   "no_copy": 0, 
   "oldfieldname": "export_amount", 
@@ -163,6 +180,7 @@
   "doctype": "DocField", 
   "fieldname": "base_ref_rate", 
   "fieldtype": "Currency", 
+  "in_list_view": 0, 
   "label": "Price List Rate (Company Currency)", 
   "oldfieldname": "base_ref_rate", 
   "oldfieldtype": "Currency", 
@@ -177,6 +195,7 @@
   "doctype": "DocField", 
   "fieldname": "basic_rate", 
   "fieldtype": "Currency", 
+  "in_list_view": 0, 
   "label": "Basic Rate (Company Currency)", 
   "oldfieldname": "basic_rate", 
   "oldfieldtype": "Currency", 
@@ -192,6 +211,7 @@
   "doctype": "DocField", 
   "fieldname": "amount", 
   "fieldtype": "Currency", 
+  "in_list_view": 0, 
   "label": "Amount (Company Currency)", 
   "no_copy": 0, 
   "oldfieldname": "amount", 
@@ -205,8 +225,16 @@
  }, 
  {
   "doctype": "DocField", 
+  "fieldname": "warehouse_and_reference", 
+  "fieldtype": "Section Break", 
+  "in_list_view": 0, 
+  "label": "Warehouse and Reference"
+ }, 
+ {
+  "doctype": "DocField", 
   "fieldname": "reserved_warehouse", 
   "fieldtype": "Link", 
+  "in_list_view": 0, 
   "label": "Reserved Warehouse", 
   "no_copy": 1, 
   "oldfieldname": "reserved_warehouse", 
@@ -224,6 +252,7 @@
   "fieldname": "projected_qty", 
   "fieldtype": "Float", 
   "hidden": 1, 
+  "in_list_view": 0, 
   "label": "Projected Qty", 
   "no_copy": 1, 
   "oldfieldname": "projected_qty", 
@@ -238,6 +267,7 @@
   "doctype": "DocField", 
   "fieldname": "actual_qty", 
   "fieldtype": "Float", 
+  "in_list_view": 0, 
   "label": "Actual Qty", 
   "no_copy": 1, 
   "print_hide": 1, 
@@ -252,6 +282,7 @@
   "fieldtype": "Float", 
   "hidden": 0, 
   "in_filter": 0, 
+  "in_list_view": 0, 
   "label": "Delivered Qty", 
   "no_copy": 1, 
   "oldfieldname": "delivered_qty", 
@@ -266,6 +297,7 @@
   "doctype": "DocField", 
   "fieldname": "billed_amt", 
   "fieldtype": "Currency", 
+  "in_list_view": 0, 
   "label": "Billed Amt", 
   "no_copy": 1, 
   "options": "currency", 
@@ -278,6 +310,7 @@
   "fieldname": "planned_qty", 
   "fieldtype": "Float", 
   "hidden": 1, 
+  "in_list_view": 0, 
   "label": "Planned Quantity", 
   "no_copy": 1, 
   "oldfieldname": "planned_qty", 
@@ -294,6 +327,7 @@
   "fieldname": "produced_qty", 
   "fieldtype": "Float", 
   "hidden": 1, 
+  "in_list_view": 0, 
   "label": "Produced Quantity", 
   "oldfieldname": "produced_qty", 
   "oldfieldtype": "Currency", 
@@ -309,6 +343,7 @@
   "fieldtype": "Link", 
   "hidden": 1, 
   "in_filter": 1, 
+  "in_list_view": 0, 
   "label": "Brand Name", 
   "oldfieldname": "brand", 
   "oldfieldtype": "Link", 
@@ -323,6 +358,7 @@
   "fieldtype": "Link", 
   "hidden": 1, 
   "in_filter": 1, 
+  "in_list_view": 0, 
   "label": "Item Group", 
   "oldfieldname": "item_group", 
   "oldfieldtype": "Link", 
@@ -337,6 +373,7 @@
   "fieldtype": "Link", 
   "hidden": 0, 
   "in_filter": 1, 
+  "in_list_view": 0, 
   "label": "Quotation", 
   "no_copy": 1, 
   "oldfieldname": "prevdoc_docname", 
@@ -351,6 +388,7 @@
   "doctype": "DocField", 
   "fieldname": "page_break", 
   "fieldtype": "Check", 
+  "in_list_view": 0, 
   "label": "Page Break", 
   "oldfieldname": "page_break", 
   "oldfieldtype": "Check", 
@@ -363,6 +401,7 @@
   "fieldname": "item_tax_rate", 
   "fieldtype": "Small Text", 
   "hidden": 1, 
+  "in_list_view": 0, 
   "label": "Item Tax Rate", 
   "oldfieldname": "item_tax_rate", 
   "oldfieldtype": "Small Text", 
@@ -377,6 +416,7 @@
   "fieldtype": "Date", 
   "hidden": 1, 
   "in_filter": 0, 
+  "in_list_view": 0, 
   "label": "Sales Order Date", 
   "oldfieldname": "transaction_date", 
   "oldfieldtype": "Date", 
diff --git a/selling/doctype/sales_team/sales_team.txt b/selling/doctype/sales_team/sales_team.txt
index 29a951e..ae50814b 100644
--- a/selling/doctype/sales_team/sales_team.txt
+++ b/selling/doctype/sales_team/sales_team.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-04-19 13:30:51", 
   "docstatus": 0, 
-  "modified": "2013-05-21 17:04:45", 
+  "modified": "2013-07-10 14:54:22", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -29,6 +29,7 @@
   "fieldname": "sales_person", 
   "fieldtype": "Link", 
   "in_filter": 1, 
+  "in_list_view": 1, 
   "label": "Sales Person", 
   "oldfieldname": "sales_person", 
   "oldfieldtype": "Link", 
@@ -43,6 +44,7 @@
   "fieldname": "sales_designation", 
   "fieldtype": "Data", 
   "hidden": 0, 
+  "in_list_view": 1, 
   "label": "Designation", 
   "oldfieldname": "sales_designation", 
   "oldfieldtype": "Data", 
@@ -54,6 +56,7 @@
   "fieldname": "contact_no", 
   "fieldtype": "Data", 
   "hidden": 1, 
+  "in_list_view": 1, 
   "label": "Contact No.", 
   "oldfieldname": "contact_no", 
   "oldfieldtype": "Data", 
@@ -64,6 +67,7 @@
   "doctype": "DocField", 
   "fieldname": "allocated_percentage", 
   "fieldtype": "Float", 
+  "in_list_view": 1, 
   "label": "Contribution (%)", 
   "oldfieldname": "allocated_percentage", 
   "oldfieldtype": "Currency", 
@@ -75,6 +79,7 @@
   "doctype": "DocField", 
   "fieldname": "allocated_amount", 
   "fieldtype": "Currency", 
+  "in_list_view": 1, 
   "label": "Contribution to Net Total", 
   "oldfieldname": "allocated_amount", 
   "oldfieldtype": "Currency", 
@@ -90,6 +95,7 @@
   "fieldtype": "Data", 
   "hidden": 1, 
   "in_filter": 1, 
+  "in_list_view": 0, 
   "label": "Parenttype", 
   "oldfieldname": "parenttype", 
   "oldfieldtype": "Data", 
@@ -100,6 +106,7 @@
   "doctype": "DocField", 
   "fieldname": "incentives", 
   "fieldtype": "Currency", 
+  "in_list_view": 1, 
   "label": "Incentives", 
   "oldfieldname": "incentives", 
   "oldfieldtype": "Currency", 
diff --git a/setup/doctype/authorization_control/authorization_control.txt b/setup/doctype/authorization_control/authorization_control.txt
index 601381e..897994b 100644
--- a/setup/doctype/authorization_control/authorization_control.txt
+++ b/setup/doctype/authorization_control/authorization_control.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2012-03-27 14:36:18", 
   "docstatus": 0, 
-  "modified": "2012-03-27 14:36:18", 
+  "modified": "2013-07-10 14:54:03", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -10,9 +10,7 @@
   "doctype": "DocType", 
   "issingle": 1, 
   "module": "Setup", 
-  "name": "__common__", 
-  "section_style": "Tabbed", 
-  "version": 216
+  "name": "__common__"
  }, 
  {
   "doctype": "DocType", 
diff --git a/setup/doctype/authorization_rule/authorization_rule.js b/setup/doctype/authorization_rule/authorization_rule.js
index 184c761..fce0497 100644
--- a/setup/doctype/authorization_rule/authorization_rule.js
+++ b/setup/doctype/authorization_rule/authorization_rule.js
@@ -81,20 +81,22 @@
 }
 
 
-cur_frm.fields_dict.system_user.get_query = erpnext.utils.profile_query;
+cur_frm.fields_dict.system_user.get_query = function(doc,cdt,cdn) {
+  return{ query:"controllers.queries.profile_query" } }
 
-cur_frm.fields_dict.approving_user.get_query = erpnext.utils.profile_query;
+cur_frm.fields_dict.approving_user.get_query = function(doc,cdt,cdn) {
+  return{ query:"controllers.queries.profile_query" } }
+
+cur_frm.fields_dict['approving_role'].get_query = cur_frm.fields_dict['system_role'].get_query;
 
 // System Role Trigger
 // -----------------------
 cur_frm.fields_dict['system_role'].get_query = function(doc) {
-  return 'SELECT tabRole.name FROM tabRole WHERE tabRole.name not in ("Administrator","Guest","All") AND tabRole.%(key)s LIKE "%s" LIMIT 50'
-}
-
-// Approving Role Trigger
-// -----------------------
-cur_frm.fields_dict['approving_role'].get_query = function(doc) {
-  return 'SELECT tabRole.name FROM tabRole WHERE tabRole.name not in ("Administrator","Guest","All") AND tabRole.%(key)s LIKE "%s" LIMIT 50'
+  return{
+    filters:[
+      ['Role', 'name', 'not in', 'Administrator, Guest, All']
+    ]
+  }
 }
 
 
@@ -102,11 +104,24 @@
 // --------------------
 cur_frm.fields_dict['master_name'].get_query = function(doc){
   if(doc.based_on == 'Customerwise Discount')
-    return 'SELECT `tabCustomer`.`name` FROM `tabCustomer` WHERE `tabCustomer`.docstatus !=2 and `tabCustomer`.`name` LIKE "%s" ORDER BY `tabCustomer`.`name` DESC LIMIT 50';
+    return {
+	  doctype: "Customer",
+      filters:[
+        ['Customer', 'docstatus', '!=', 2]
+      ]
+    }
   else if(doc.based_on == 'Itemwise Discount')
-    return 'SELECT `tabItem`.`name` FROM `tabItem` WHERE (IFNULL(`tabItem`.`end_of_life`,"") = "" OR `tabItem`.`end_of_life` = "0000-00-00" OR `tabItem`.`end_of_life` > NOW()) and `tabItem`.is_sales_item = "Yes" and tabItem.%(key)s LIKE "%s" ORDER BY `tabItem`.`name` DESC LIMIT 50';
+    return {
+	  doctype: "Item",
+      query: "controllers.queries.item_query"
+    }
   else
-    return 'SELECT `tabItem`.`name` FROM `tabItem` WHERE `tabItem`.`name` = "cheating done to avoid null" ORDER BY `tabItem`.`name` DESC LIMIT 50';
+    return {
+      filters: [
+        ['Item', 'name', '=', 'cheating done to avoid null']
+      ]
+    }
 }
 
-cur_frm.fields_dict.to_emp.get_query = erpnext.utils.employee_query;
\ No newline at end of file
+cur_frm.fields_dict.to_emp.get_query = function(doc,cdt,cdn) {
+  return{ query:"controllers.queries.employee_query" } }
\ No newline at end of file
diff --git a/setup/doctype/company/company.js b/setup/doctype/company/company.js
index 489ed0c..dfe8e2a 100644
--- a/setup/doctype/company/company.js
+++ b/setup/doctype/company/company.js
@@ -45,43 +45,48 @@
   }
 }
 
+cur_frm.fields_dict.default_cash_account.get_query = cur_frm.fields_dict.default_bank_account.get_query;
+
 cur_frm.fields_dict.default_bank_account.get_query = function(doc) {    
-  return 'SELECT `tabAccount`.name, `tabAccount`.debit_or_credit, `tabAccount`.group_or_ledger FROM `tabAccount` WHERE `tabAccount`.company = "'+doc.name+'" AND `tabAccount`.group_or_ledger = "Ledger" AND `tabAccount`.docstatus != 2 AND `tabAccount`.account_type = "Bank or Cash" AND `tabAccount`.%(key)s LIKE "%s" ORDER BY `tabAccount`.name LIMIT 50';   
+	return{
+		filters:{
+			'company': doc.name,
+			'group_or_ledger': "Ledger",
+			'account_type': "Bank or Cash"
+		}
+	}  
 }
 
-cur_frm.fields_dict.default_cash_account.get_query = function(doc) {    
-  return 'SELECT `tabAccount`.name, `tabAccount`.debit_or_credit, `tabAccount`.group_or_ledger FROM `tabAccount` WHERE `tabAccount`.company = "'+doc.name+'" AND `tabAccount`.group_or_ledger = "Ledger" AND `tabAccount`.docstatus != 2 AND `tabAccount`.account_type = "Bank or Cash" AND `tabAccount`.%(key)s LIKE "%s" ORDER BY `tabAccount`.name LIMIT 50';   
-}
-
+cur_frm.fields_dict.payables_group.get_query = cur_frm.fields_dict.receivables_group.get_query;
 
 cur_frm.fields_dict.receivables_group.get_query = function(doc) {  
-  return 'SELECT `tabAccount`.name FROM `tabAccount` WHERE `tabAccount`.company = "'+doc.name+'" AND `tabAccount`.group_or_ledger = "Group" AND `tabAccount`.docstatus != 2 AND `tabAccount`.%(key)s LIKE "%s" ORDER BY `tabAccount`.name LIMIT 50';
-}
-
-
-cur_frm.fields_dict.payables_group.get_query = function(doc) {  
-  return 'SELECT `tabAccount`.name FROM `tabAccount` WHERE `tabAccount`.company = "'+doc.name+'" AND `tabAccount`.group_or_ledger = "Group" AND `tabAccount`.docstatus != 2 AND `tabAccount`.%(key)s LIKE "%s" ORDER BY `tabAccount`.name LIMIT 50';
+	return{
+		filters:{
+			'company': doc.name,
+			'group_or_ledger': "Group"
+		}
+	}  
 }
 
 if (sys_defaults.auto_inventory_accounting) {
 	cur_frm.fields_dict["stock_in_hand_account"].get_query = function(doc) {
 		return {
-			"query": "accounts.utils.get_account_list", 
 			"filters": {
 				"is_pl_account": "No",
 				"debit_or_credit": "Debit",
-				"company": doc.name
+				"company": doc.name,
+				'group_or_ledger': "Ledger"
 			}
 		}
 	}
 
 	cur_frm.fields_dict["stock_adjustment_account"].get_query = function(doc) {
 		return {
-			"query": "accounts.utils.get_account_list", 
 			"filters": {
 				"is_pl_account": "Yes",
 				"debit_or_credit": "Debit",
-				"company": doc.name
+				"company": doc.name,
+				'group_or_ledger': "Ledger"
 			}
 		}
 	}
@@ -91,18 +96,17 @@
 
 	cur_frm.fields_dict["stock_received_but_not_billed"].get_query = function(doc) {
 		return {
-			"query": "accounts.utils.get_account_list", 
 			"filters": {
 				"is_pl_account": "No",
 				"debit_or_credit": "Credit",
-				"company": doc.name
+				"company": doc.name,
+				'group_or_ledger': "Ledger"
 			}
 		}
 	}
 
 	cur_frm.fields_dict["stock_adjustment_cost_center"].get_query = function(doc) {
 		return {
-			"query": "accounts.utils.get_cost_center_list", 
 			"filters": {"company": doc.name}
 		}
 	}
diff --git a/setup/doctype/company/company.py b/setup/doctype/company/company.py
index 55a17f7..968296c 100644
--- a/setup/doctype/company/company.py
+++ b/setup/doctype/company/company.py
@@ -33,9 +33,67 @@
 		if self.doc.fields.get('__islocal') and len(self.doc.abbr) > 5:
 			webnotes.msgprint("Abbreviation cannot have more than 5 characters",
 				raise_exception=1)
-	
-	# Create default accounts
-	# ---------------------------------------------------
+
+	def on_update(self):
+		if not webnotes.conn.sql("""select name from tabAccount 
+			where company=%s and docstatus<2 limit 1""", self.doc.name):
+			self.create_default_accounts()
+			self.create_default_warehouses()
+			self.create_default_web_page()
+		
+		if not self.doc.cost_center:
+			self.create_default_cost_center()
+			
+		self.set_default_accounts()
+
+		if self.doc.default_currency:
+			webnotes.conn.set_value("Currency", self.doc.default_currency, "enabled", 1)
+
+	def create_default_warehouses(self):
+		for whname in ("Stores", "Work In Progress", "Finished Goods"):
+			webnotes.bean({
+				"doctype":"Warehouse",
+				"warehouse_name": whname,
+				"company": self.doc.name
+			}).insert()
+			
+	def create_default_web_page(self):
+		if not webnotes.conn.get_value("Website Settings", None, "home_page"):
+			import os
+			with open(os.path.join(os.path.dirname(__file__), "sample_home_page.html"), "r") as webfile:
+				webpage = webnotes.bean({
+					"doctype": "Web Page",
+					"title": self.doc.name + " Home",
+					"published": 1,
+					"description": "Standard Home Page for " + self.doc.company,
+					"main_section": webfile.read() % self.doc.fields
+				}).insert()
+			
+				# update in home page in settings
+				website_settings = webnotes.bean("Website Settings", "Website Settings")
+				website_settings.doc.home_page = webpage.doc.name
+				website_settings.doc.banner_html = """<h3 style='margin-bottom: 20px;'>""" + self.doc.name + "</h3>"
+				website_settings.doc.copyright = self.doc.name
+				website_settings.doclist.append({
+					"doctype": "Top Bar Item",
+					"parentfield": "top_bar_items",
+					"label":"Home",
+					"url": webpage.doc.name
+				})
+				website_settings.doclist.append({
+					"doctype": "Top Bar Item",
+					"parentfield": "top_bar_items",
+					"label":"Contact",
+					"url": "contact"
+				})
+				website_settings.doclist.append({
+					"doctype": "Top Bar Item",
+					"parentfield": "top_bar_items",
+					"label":"Blog",
+					"url": "blog"
+				})
+				website_settings.save()
+
 	def create_default_accounts(self):
 		self.fld_dict = {'account_name':0,'parent_account':1,'group_or_ledger':2,'is_pl_account':3,'account_type':4,'debit_or_credit':5,'company':6,'tax_rate':7}
 		acc_list_common = [
@@ -162,32 +220,16 @@
 			for d in acc_list_india:
 				self.add_acc(d)
 
-	# Create account
-	# ---------------------------------------------------
 	def add_acc(self,lst):
-		ac = Document('Account')
+		account = webnotes.bean({
+			"doctype": "Account",
+			"freeze_account": "No",
+			"master_type": "",
+		})
 		for d in self.fld_dict.keys():
-			ac.fields[d] = (d == 'parent_account' and lst[self.fld_dict[d]]) and lst[self.fld_dict[d]] +' - '+ self.doc.abbr or lst[self.fld_dict[d]]
-		ac_obj = get_obj(doc=ac)
-		ac_obj.doc.freeze_account='No'
-		ac_obj.doc.master_type = ''
-		ac_obj.validate()
-		ac_obj.doc.save(1)
-		ac_obj.on_update()
-
-
-	# Set letter head
-	# ---------------------------------------------------
-	def set_letter_head(self):
-		if not self.doc.letter_head:
-			if self.doc.address:
-				header = """ 
-<div><h3> %(comp)s </h3> %(add)s </div>
-
-			""" % {'comp':self.doc.name,
-				 'add':self.doc.address.replace("\n",'<br>')}
-			 
-				self.doc.letter_head = header
+			account.doc.fields[d] = (d == 'parent_account' and lst[self.fld_dict[d]]) and lst[self.fld_dict[d]] +' - '+ self.doc.abbr or lst[self.fld_dict[d]]
+			
+		account.insert()
 
 	def set_default_accounts(self):
 		accounts = {
@@ -209,8 +251,6 @@
 		if not self.doc.stock_adjustment_cost_center:
 				webnotes.conn.set(self.doc, "stock_adjustment_cost_center", self.doc.cost_center)
 
-	# Create default cost center
-	# ---------------------------------------------------
 	def create_default_cost_center(self):
 		cc_list = [
 			{
@@ -237,21 +277,6 @@
 			cc_bean.insert()
 			
 		webnotes.conn.set(self.doc, "cost_center", "Main - " + self.doc.abbr)
-			
-	def on_update(self):
-		self.set_letter_head()
-
-		if not webnotes.conn.sql("""select name from tabAccount 
-			where company=%s and docstatus<2 limit 1""", self.doc.name):
-			self.create_default_accounts()
-		
-		if not self.doc.cost_center:
-			self.create_default_cost_center()
-			
-		self.set_default_accounts()
-			
-		if self.doc.default_currency:
-			webnotes.conn.set_value("Currency", self.doc.default_currency, "enabled", 1)
 
 	def on_trash(self):
 		"""
diff --git a/setup/doctype/company/company.txt b/setup/doctype/company/company.txt
index e3afda1..134af2c 100644
--- a/setup/doctype/company/company.txt
+++ b/setup/doctype/company/company.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-04-10 08:35:39", 
   "docstatus": 0, 
-  "modified": "2013-07-08 17:34:21", 
+  "modified": "2013-07-10 18:17:55", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -53,6 +53,17 @@
   "read_only": 0
  }, 
  {
+  "doctype": "DocField", 
+  "fieldname": "company_name", 
+  "fieldtype": "Data", 
+  "label": "Company", 
+  "no_copy": 0, 
+  "oldfieldname": "company_name", 
+  "oldfieldtype": "Data", 
+  "read_only": 0, 
+  "reqd": 1
+ }, 
+ {
   "description": "Please Enter Abbreviation or Short Name properly as it will be added as Suffix to all Account Heads.", 
   "doctype": "DocField", 
   "fieldname": "abbr", 
@@ -72,13 +83,10 @@
  }, 
  {
   "doctype": "DocField", 
-  "fieldname": "company_name", 
-  "fieldtype": "Data", 
-  "label": "Company", 
-  "no_copy": 0, 
-  "oldfieldname": "company_name", 
-  "oldfieldtype": "Data", 
-  "read_only": 0, 
+  "fieldname": "domain", 
+  "fieldtype": "Select", 
+  "label": "Domain", 
+  "options": "Distribution\nManufacturing\nRetail\nServices", 
   "reqd": 1
  }, 
  {
diff --git a/setup/doctype/company/sample_home_page.html b/setup/doctype/company/sample_home_page.html
new file mode 100644
index 0000000..32e58bd
--- /dev/null
+++ b/setup/doctype/company/sample_home_page.html
@@ -0,0 +1,22 @@
+<h2 style="text-align: center;"><i class="icon-home"></i> Sample Home Page</h2>
+<br>
+<p>This is a sample home page for your company <b>%(name)s's</b> website. This was 
+	created from the Website Module inside ERPNext. ERPNext provides you with simple 
+	tools to build and update your website. You can add sections like your Product Catalog,
+	Blog, Contact Us, About Us and so on. Messages entered in the "Contact" page are
+	automatically added as Leads in the system.
+
+<h5>What you can do with your website:</h5>
+
+<ul>
+	<li>Automatically generate products / services catalog from your Items.
+	<li>Capture Leads from your website.
+	<li>Communicate with your customers by sharing your thoughts in your Blog.
+	<li>Introduce your company and team in the About Us page.
+</ul>
+
+<p>Infact, 
+	<a href="https://erpnext.com" target="_blank">erpnext.com</a> 
+	website is built on ERPNext itself.</p>
+
+<p class="text-muted">For more help, click here</p>
diff --git a/setup/doctype/contact_control/contact_control.js b/setup/doctype/contact_control/contact_control.js
index c427ec0..db0ed91 100755
--- a/setup/doctype/contact_control/contact_control.js
+++ b/setup/doctype/contact_control/contact_control.js
@@ -24,7 +24,11 @@
 // ---------------------------
 if(cur_frm.fields_dict['territory']){
 	cur_frm.fields_dict['territory'].get_query = function(doc,dt,dn) {
-		return 'SELECT `tabTerritory`.`name`,`tabTerritory`.`parent_territory` FROM `tabTerritory` WHERE `tabTerritory`.`is_group` = "No" AND `tabTerritory`.`docstatus`!= 2 AND `tabTerritory`.%(key)s LIKE "%s"  ORDER BY  `tabTerritory`.`name` ASC LIMIT 50';
+		return {
+			filters: {
+				'is_group': "No" 
+			}
+		}
 	}
 }
 
diff --git a/setup/doctype/contact_control/contact_control.txt b/setup/doctype/contact_control/contact_control.txt
index 9fab367..80caeae 100644
--- a/setup/doctype/contact_control/contact_control.txt
+++ b/setup/doctype/contact_control/contact_control.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2012-03-27 14:36:19", 
   "docstatus": 0, 
-  "modified": "2012-03-27 14:36:19", 
+  "modified": "2013-07-10 14:54:06", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -12,14 +12,12 @@
   "issingle": 1, 
   "module": "Setup", 
   "name": "__common__", 
-  "read_only": 1, 
-  "section_style": "Simple", 
-  "show_in_menu": 0, 
-  "version": 25
+  "read_only": 1
  }, 
  {
   "doctype": "DocField", 
   "fieldtype": "Text", 
+  "in_list_view": 1, 
   "name": "__common__", 
   "parent": "Contact Control", 
   "parentfield": "fields", 
@@ -43,9 +41,6 @@
   "name": "Contact Control"
  }, 
  {
-  "doctype": "DocPerm"
- }, 
- {
   "doctype": "DocField", 
   "fieldname": "header", 
   "label": "Header"
@@ -59,5 +54,8 @@
   "doctype": "DocField", 
   "fieldname": "supplier_intro", 
   "label": "Supplier Intro"
+ }, 
+ {
+  "doctype": "DocPerm"
  }
 ]
\ No newline at end of file
diff --git a/setup/doctype/customer_group/customer_group.js b/setup/doctype/customer_group/customer_group.js
index af0c6f0..e865860 100644
--- a/setup/doctype/customer_group/customer_group.js
+++ b/setup/doctype/customer_group/customer_group.js
@@ -30,8 +30,10 @@
 
 //get query select Customer Group
 cur_frm.fields_dict['parent_customer_group'].get_query = function(doc,cdt,cdn) {
-  return 'SELECT `tabCustomer Group`.`name`,`tabCustomer Group`.`parent_customer_group` \
-	FROM `tabCustomer Group` WHERE `tabCustomer Group`.`is_group` = "Yes" AND \
-		`tabCustomer Group`.`docstatus`!= 2 AND `tabCustomer Group`.%(key)s LIKE "%s" \
-		ORDER BY  `tabCustomer Group`.`name` ASC LIMIT 50';
+	return{
+		searchfield:['name', 'parent_customer_group'],
+		filters: {
+			'is_group': "Yes"
+		}
+	} 
 }
\ No newline at end of file
diff --git a/setup/doctype/for_territory/for_territory.txt b/setup/doctype/for_territory/for_territory.txt
index 658a11c..be454ec 100644
--- a/setup/doctype/for_territory/for_territory.txt
+++ b/setup/doctype/for_territory/for_territory.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-06-20 12:48:38", 
   "docstatus": 0, 
-  "modified": "2013-06-20 12:48:38", 
+  "modified": "2013-07-10 14:54:09", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -16,6 +16,7 @@
   "doctype": "DocField", 
   "fieldname": "territory", 
   "fieldtype": "Link", 
+  "in_list_view": 1, 
   "label": "Territory", 
   "name": "__common__", 
   "options": "Territory", 
diff --git a/setup/doctype/item_group/item_group.js b/setup/doctype/item_group/item_group.js
index 6bb6fe3..b642735 100644
--- a/setup/doctype/item_group/item_group.js
+++ b/setup/doctype/item_group/item_group.js
@@ -34,5 +34,10 @@
 
 //get query select item group
 cur_frm.fields_dict['parent_item_group'].get_query = function(doc,cdt,cdn) {
-  return 'SELECT `tabItem Group`.`name`,`tabItem Group`.`parent_item_group` FROM `tabItem Group` WHERE `tabItem Group`.`is_group` = "Yes" AND  `tabItem Group`.`docstatus`!= 2 AND `tabItem Group`.`name` !="'+doc.item_group_name+'" AND `tabItem Group`.%(key)s LIKE "%s" ORDER BY  `tabItem Group`.`name` ASC LIMIT 50';
+	return{
+		filters:[
+			['Item Group', 'is_group', '=', 'Yes'],
+			['Item Group', 'naem', '!=', doc.item_group_name]
+		]
+	}
 }
\ No newline at end of file
diff --git a/setup/doctype/notification_control/notification_control.txt b/setup/doctype/notification_control/notification_control.txt
index be86a96..81e08a5 100644
--- a/setup/doctype/notification_control/notification_control.txt
+++ b/setup/doctype/notification_control/notification_control.txt
@@ -1,208 +1,218 @@
 [
  {
-  "owner": "Administrator", 
-  "docstatus": 0, 
   "creation": "2012-07-12 23:29:45", 
+  "docstatus": 0, 
+  "modified": "2013-07-10 19:24:07", 
   "modified_by": "Administrator", 
-  "modified": "2013-01-10 12:22:45"
+  "owner": "Administrator"
  }, 
  {
+  "allow_copy": 1, 
   "allow_email": 1, 
-  "issingle": 1, 
-  "description": "Send automatic emails to Contacts on Submitting transactions.", 
-  "name": "__common__", 
   "allow_print": 1, 
+  "description": "Send automatic emails to Contacts on Submitting transactions.", 
   "doctype": "DocType", 
+  "icon": "icon-envelope", 
+  "issingle": 1, 
   "module": "Setup", 
-  "allow_copy": 1
+  "name": "__common__"
  }, 
  {
-  "name": "__common__", 
-  "parent": "Notification Control", 
   "doctype": "DocField", 
-  "parenttype": "DocType", 
-  "permlevel": 0, 
-  "parentfield": "fields"
- }, 
- {
   "name": "__common__", 
   "parent": "Notification Control", 
-  "read": 1, 
-  "doctype": "DocPerm", 
+  "parentfield": "fields", 
   "parenttype": "DocType", 
-  "permlevel": 0, 
-  "parentfield": "permissions"
+  "permlevel": 0
  }, 
  {
-  "name": "Notification Control", 
-  "doctype": "DocType"
+  "doctype": "DocPerm", 
+  "name": "__common__", 
+  "parent": "Notification Control", 
+  "parentfield": "permissions", 
+  "parenttype": "DocType", 
+  "permlevel": 0, 
+  "read": 1
+ }, 
+ {
+  "doctype": "DocType", 
+  "name": "Notification Control"
  }, 
  {
   "description": "When any of the checked transactions are \"Submitted\", an email pop-up automatically opened to send an email to the associated \"Contact\" in that transaction, with the transaction as an attachment. The user may or may not send the email.", 
   "doctype": "DocField", 
-  "label": "Prompt for Email on Submission of", 
   "fieldname": "send_autonotification_for", 
-  "fieldtype": "Section Break"
+  "fieldtype": "Section Break", 
+  "in_list_view": 0, 
+  "label": "Prompt for Email on Submission of"
  }, 
  {
-  "print_width": "50%", 
   "doctype": "DocField", 
-  "label": "Sales", 
-  "width": "50%", 
   "fieldname": "sales", 
-  "fieldtype": "Column Break"
- }, 
- {
-  "doctype": "DocField", 
-  "label": "Quotation", 
-  "fieldname": "quotation", 
-  "fieldtype": "Check"
- }, 
- {
-  "doctype": "DocField", 
-  "label": "Sales Order", 
-  "fieldname": "sales_order", 
-  "fieldtype": "Check"
- }, 
- {
-  "doctype": "DocField", 
-  "label": "Delivery Note", 
-  "fieldname": "delivery_note", 
-  "fieldtype": "Check"
- }, 
- {
-  "doctype": "DocField", 
-  "label": "Sales Invoice", 
-  "fieldname": "sales_invoice", 
-  "fieldtype": "Check"
- }, 
- {
+  "fieldtype": "Column Break", 
+  "in_list_view": 0, 
+  "label": "Sales", 
   "print_width": "50%", 
+  "width": "50%"
+ }, 
+ {
   "doctype": "DocField", 
-  "label": "Purchase", 
-  "width": "50%", 
+  "fieldname": "quotation", 
+  "fieldtype": "Check", 
+  "in_list_view": 1, 
+  "label": "Quotation"
+ }, 
+ {
+  "doctype": "DocField", 
+  "fieldname": "sales_order", 
+  "fieldtype": "Check", 
+  "in_list_view": 1, 
+  "label": "Sales Order"
+ }, 
+ {
+  "doctype": "DocField", 
+  "fieldname": "delivery_note", 
+  "fieldtype": "Check", 
+  "in_list_view": 1, 
+  "label": "Delivery Note"
+ }, 
+ {
+  "doctype": "DocField", 
+  "fieldname": "sales_invoice", 
+  "fieldtype": "Check", 
+  "in_list_view": 1, 
+  "label": "Sales Invoice"
+ }, 
+ {
+  "doctype": "DocField", 
   "fieldname": "purchase", 
-  "fieldtype": "Column Break"
+  "fieldtype": "Column Break", 
+  "in_list_view": 0, 
+  "label": "Purchase", 
+  "print_width": "50%", 
+  "width": "50%"
  }, 
  {
   "doctype": "DocField", 
-  "label": "Purchase Order", 
   "fieldname": "purchase_order", 
-  "fieldtype": "Check"
+  "fieldtype": "Check", 
+  "in_list_view": 1, 
+  "label": "Purchase Order"
  }, 
  {
   "doctype": "DocField", 
-  "label": "Purchase Receipt", 
   "fieldname": "purchase_receipt", 
-  "fieldtype": "Check"
+  "fieldtype": "Check", 
+  "in_list_view": 1, 
+  "label": "Purchase Receipt"
  }, 
  {
   "doctype": "DocField", 
-  "label": "Expense Claim", 
   "fieldname": "expense_claim", 
-  "fieldtype": "Check"
+  "fieldtype": "Check", 
+  "label": "Expense Claim"
  }, 
  {
   "description": "Customize the introductory text that goes as a part of that email. Each transaction has a separate introductory text.", 
   "doctype": "DocField", 
-  "label": "Customize the Notification", 
   "fieldname": "customize_the_notification", 
-  "fieldtype": "Section Break"
+  "fieldtype": "Section Break", 
+  "label": "Customize the Notification"
  }, 
  {
   "doctype": "DocField", 
-  "label": "Select Transaction", 
   "fieldname": "select_transaction", 
   "fieldtype": "Select", 
+  "label": "Select Transaction", 
   "options": "\nQuotation\nSales Order\nDelivery Note\nSales Invoice\nPurchase Order\nPurchase Receipt\nExpense Claim\nExpense Claim Approved\nExpense Claim Rejected"
  }, 
  {
   "doctype": "DocField", 
-  "label": "Custom Message", 
   "fieldname": "custom_message", 
-  "fieldtype": "Text Editor"
+  "fieldtype": "Text Editor", 
+  "label": "Custom Message"
  }, 
  {
   "doctype": "DocField", 
-  "label": "Update", 
   "fieldname": "update", 
   "fieldtype": "Button", 
+  "label": "Update", 
   "options": "set_message"
  }, 
  {
-  "print_hide": 1, 
   "doctype": "DocField", 
-  "label": "Quotation Message", 
   "fieldname": "quotation_message", 
   "fieldtype": "Text", 
-  "hidden": 1
+  "hidden": 1, 
+  "label": "Quotation Message", 
+  "print_hide": 1
  }, 
  {
-  "print_hide": 1, 
   "doctype": "DocField", 
-  "label": "Sales Order Message", 
   "fieldname": "sales_order_message", 
   "fieldtype": "Text", 
-  "hidden": 1
+  "hidden": 1, 
+  "label": "Sales Order Message", 
+  "print_hide": 1
  }, 
  {
-  "print_hide": 1, 
   "doctype": "DocField", 
-  "label": "Delivery Note Message", 
   "fieldname": "delivery_note_message", 
   "fieldtype": "Text", 
-  "hidden": 1
+  "hidden": 1, 
+  "label": "Delivery Note Message", 
+  "print_hide": 1
  }, 
  {
-  "print_hide": 1, 
   "doctype": "DocField", 
-  "label": "Sales Invoice Message", 
   "fieldname": "sales_invoice_message", 
   "fieldtype": "Text", 
-  "hidden": 1
+  "hidden": 1, 
+  "label": "Sales Invoice Message", 
+  "print_hide": 1
  }, 
  {
-  "print_hide": 1, 
   "doctype": "DocField", 
-  "label": "Purchase Order Message", 
   "fieldname": "purchase_order_message", 
   "fieldtype": "Text", 
-  "hidden": 1
+  "hidden": 1, 
+  "label": "Purchase Order Message", 
+  "print_hide": 1
  }, 
  {
-  "print_hide": 1, 
   "doctype": "DocField", 
-  "label": "Purchase Receipt Message", 
   "fieldname": "purchase_receipt_message", 
   "fieldtype": "Text", 
-  "hidden": 1
+  "hidden": 1, 
+  "label": "Purchase Receipt Message", 
+  "print_hide": 1
  }, 
  {
-  "print_hide": 1, 
   "doctype": "DocField", 
-  "label": "Expense Claim Approved Message", 
   "fieldname": "expense_claim_approved_message", 
   "fieldtype": "Text", 
-  "hidden": 1
+  "hidden": 1, 
+  "label": "Expense Claim Approved Message", 
+  "print_hide": 1
  }, 
  {
-  "print_hide": 1, 
   "doctype": "DocField", 
-  "label": "Expense Claim Rejected Message", 
   "fieldname": "expense_claim_rejected_message", 
   "fieldtype": "Text", 
-  "hidden": 1
+  "hidden": 1, 
+  "label": "Expense Claim Rejected Message", 
+  "print_hide": 1
  }, 
  {
   "create": 0, 
   "doctype": "DocPerm", 
-  "write": 0, 
-  "role": "Guest"
+  "role": "Guest", 
+  "write": 0
  }, 
  {
   "create": 1, 
   "doctype": "DocPerm", 
-  "write": 1, 
-  "role": "System Manager"
+  "role": "System Manager", 
+  "write": 1
  }
 ]
\ No newline at end of file
diff --git a/setup/doctype/sales_partner/sales_partner.js b/setup/doctype/sales_partner/sales_partner.js
index c5f0dba..acf6b31 100644
--- a/setup/doctype/sales_partner/sales_partner.js
+++ b/setup/doctype/sales_partner/sales_partner.js
@@ -97,5 +97,7 @@
 }
 
 cur_frm.fields_dict['partner_target_details'].grid.get_field("item_group").get_query = function(doc, dt, dn) {
-  return 'SELECT `tabItem Group`.`name`,`tabItem Group`.`parent_item_group` FROM `tabItem Group` WHERE `tabItem Group`.is_group="No" AND `tabItem Group`.docstatus != 2 AND `tabItem Group`.%(key)s LIKE "%s" LIMIT 50'
+  return{
+  	filters:{ 'is_group': "No" }
+  }
 }
\ No newline at end of file
diff --git a/setup/doctype/sales_person/sales_person.js b/setup/doctype/sales_person/sales_person.js
index c529488..fd03a44 100644
--- a/setup/doctype/sales_person/sales_person.js
+++ b/setup/doctype/sales_person/sales_person.js
@@ -35,11 +35,19 @@
 
 //get query select sales person
 cur_frm.fields_dict['parent_sales_person'].get_query = function(doc,cdt,cdn) {
-  return 'SELECT `tabSales Person`.`name`,`tabSales Person`.`parent_sales_person` FROM `tabSales Person` WHERE `tabSales Person`.`is_group` = "Yes" AND `tabSales Person`.`docstatus`!= 2 AND `tabSales Person`.`name` !="'+doc.sales_person_name+'" AND `tabSales Person`.%(key)s LIKE "%s" ORDER BY  `tabSales Person`.`name` ASC LIMIT 50';
+	return{
+		filters:[
+			['Sales Person', 'is_group', '=', 'Yes'],
+			['Sales Person', 'name', '!=', doc.sales_person_name]
+		]
+	}
 }
 
 cur_frm.fields_dict['target_details'].grid.get_field("item_group").get_query = function(doc, cdt, cdn) {
-  return 'SELECT `tabItem Group`.name FROM `tabItem Group` WHERE `tabItem Group`.is_group="No" AND `tabItem Group`.docstatus != 2 AND `tabItem Group`.%(key)s LIKE "%s" LIMIT 50'
+	return{
+		filters:{ 'is_group': "No" }
+	}
 }
 
-cur_frm.fields_dict.employee.get_query = erpnext.utils.employee_query;
\ No newline at end of file
+cur_frm.fields_dict.employee.get_query = function(doc,cdt,cdn) {
+	return{	query:"controllers.queries.employee_query" } }
\ No newline at end of file
diff --git a/setup/doctype/sales_person/sales_person.py b/setup/doctype/sales_person/sales_person.py
index ea21cd0..2fe08fa 100644
--- a/setup/doctype/sales_person/sales_person.py
+++ b/setup/doctype/sales_person/sales_person.py
@@ -32,4 +32,13 @@
 		for d in getlist(self.doclist, 'target_details'):
 			if not flt(d.target_qty) and not flt(d.target_amount):
 				webnotes.msgprint("Either target qty or target amount is mandatory.")
-				raise Exception
\ No newline at end of file
+				raise Exception
+	
+	def get_email_id(self):
+		profile = webnotes.conn.get_value("Employee", self.doc.employee, "user_id")
+		if not profile:
+			webnotes.msgprint("User ID (Profile) no set for Employee %s" % self.doc.employee, 
+				raise_exception=True)
+		else:
+			return webnotes.conn.get_value("Profile", profile, "email") or profile
+		
\ No newline at end of file
diff --git a/setup/doctype/sales_person/sales_person.txt b/setup/doctype/sales_person/sales_person.txt
index 44a246d..56c6397 100644
--- a/setup/doctype/sales_person/sales_person.txt
+++ b/setup/doctype/sales_person/sales_person.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-01-10 16:34:24", 
   "docstatus": 0, 
-  "modified": "2013-07-05 14:54:33", 
+  "modified": "2013-07-10 12:51:58", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -44,12 +44,10 @@
  }, 
  {
   "doctype": "DocField", 
-  "fieldname": "trash_reason", 
-  "fieldtype": "Small Text", 
-  "label": "Trash Reason", 
-  "oldfieldname": "trash_reason", 
-  "oldfieldtype": "Small Text", 
-  "read_only": 1
+  "fieldname": "name_and_employee_id", 
+  "fieldtype": "Section Break", 
+  "label": "Name and Employee ID", 
+  "options": "icon-user"
  }, 
  {
   "doctype": "DocField", 
@@ -93,7 +91,8 @@
   "fieldname": "employee", 
   "fieldtype": "Link", 
   "label": "Employee", 
-  "options": "Employee"
+  "options": "Employee", 
+  "reqd": 1
  }, 
  {
   "doctype": "DocField", 
@@ -138,7 +137,8 @@
   "fieldname": "target_details_section_break", 
   "fieldtype": "Section Break", 
   "label": "Sales Person Targets", 
-  "oldfieldtype": "Section Break"
+  "oldfieldtype": "Section Break", 
+  "options": "icon-bullseye"
  }, 
  {
   "doctype": "DocField", 
diff --git a/setup/doctype/sales_person/test_sales_person.py b/setup/doctype/sales_person/test_sales_person.py
index 2dea3e5..f4283de 100644
--- a/setup/doctype/sales_person/test_sales_person.py
+++ b/setup/doctype/sales_person/test_sales_person.py
@@ -1,21 +1,25 @@
+test_dependencies = ["Employee"]
 test_records = [
 	[{
 		"doctype": "Sales Person",
 		"sales_person_name": "_Test Sales Person",
 		"parent_sales_person": "All Sales Persons",
-		"is_group": "No"
+		"is_group": "No",
+		"employee": "_T-Employee-0001",
 	}],
 	[{
 		"doctype": "Sales Person",
 		"sales_person_name": "_Test Sales Person 1",
 		"parent_sales_person": "All Sales Persons",
-		"is_group": "No"
+		"is_group": "No",
+		"employee": "_T-Employee-0002",
 	}],
 	[{
 		"doctype": "Sales Person",
 		"sales_person_name": "_Test Sales Person 2",
 		"parent_sales_person": "All Sales Persons",
-		"is_group": "No"
+		"is_group": "No",
+		"employee": "_T-Employee-0003",
 	}]
 	
 	
diff --git a/setup/doctype/setup_control/setup_control.py b/setup/doctype/setup_control/setup_control.py
index c6b0b6c..a85384b 100644
--- a/setup/doctype/setup_control/setup_control.py
+++ b/setup/doctype/setup_control/setup_control.py
@@ -65,7 +65,7 @@
 		webnotes.bean([{
 			"doctype":"Fiscal Year",
 			'year': curr_fiscal_year,
-			'year_start_date': fy_start_date,
+			'year_start_date': fy_start_date
 		}]).insert()
 
 		curr_fiscal_year, fy_start_date, fy_abbr = self.get_fy_details(args.get('fy_start'))
@@ -79,9 +79,10 @@
 		# Company
 		webnotes.bean([{
 			"doctype":"Company",
+			'domain': args.get("industry"),
 			'company_name':args.get('company_name'),
 			'abbr':args.get('company_abbr'),
-			'default_currency':args.get('currency')
+			'default_currency':args.get('currency'),
 		}]).insert()
 		
 		self.curr_fiscal_year = curr_fiscal_year
@@ -148,7 +149,7 @@
 
 		# control panel
 		cp = webnotes.doc("Control Panel", "Control Panel")
-		for k in ['industry', 'country', 'timezone', 'company_name']:
+		for k in ['country', 'timezone', 'company_name']:
 			cp.fields[k] = args[k]
 			
 		cp.save()
diff --git a/setup/doctype/sms_parameter/sms_parameter.txt b/setup/doctype/sms_parameter/sms_parameter.txt
index cc7a002..38cca31 100755
--- a/setup/doctype/sms_parameter/sms_parameter.txt
+++ b/setup/doctype/sms_parameter/sms_parameter.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-02-22 01:27:58", 
   "docstatus": 0, 
-  "modified": "2013-03-07 07:03:32", 
+  "modified": "2013-07-10 14:54:23", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -15,6 +15,7 @@
  {
   "doctype": "DocField", 
   "fieldtype": "Data", 
+  "in_list_view": 1, 
   "name": "__common__", 
   "parent": "SMS Parameter", 
   "parentfield": "fields", 
diff --git a/setup/doctype/target_detail/target_detail.txt b/setup/doctype/target_detail/target_detail.txt
index b3e2886..5d22d88 100644
--- a/setup/doctype/target_detail/target_detail.txt
+++ b/setup/doctype/target_detail/target_detail.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-02-22 01:27:58", 
   "docstatus": 0, 
-  "modified": "2013-03-07 07:03:33", 
+  "modified": "2013-07-10 14:54:24", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -14,6 +14,7 @@
  }, 
  {
   "doctype": "DocField", 
+  "in_list_view": 1, 
   "name": "__common__", 
   "parent": "Target Detail", 
   "parentfield": "fields", 
diff --git a/setup/doctype/territory/territory.js b/setup/doctype/territory/territory.js
index 2932006..7fdfee5 100644
--- a/setup/doctype/territory/territory.js
+++ b/setup/doctype/territory/territory.js
@@ -30,11 +30,18 @@
 
 //get query select territory
 cur_frm.fields_dict['parent_territory'].get_query = function(doc,cdt,cdn) {
-  return 'SELECT `tabTerritory`.`name`,`tabTerritory`.`parent_territory` FROM `tabTerritory` WHERE `tabTerritory`.`is_group` = "Yes" AND `tabTerritory`.`docstatus`!= 2 AND `tabTerritory`.`name` !="'+doc.territory_name+'" AND `tabTerritory`.%(key)s LIKE "%s" ORDER BY  `tabTerritory`.`name` ASC LIMIT 50';
+	return{
+		filters:[
+			['Territory', 'is_group', '=', 'Yes'],
+			['Territory', 'name', '!=', doc.territory_name]
+		]
+	}
 }
 
 
 // ******************** ITEM Group ******************************** 
 cur_frm.fields_dict['target_details'].grid.get_field("item_group").get_query = function(doc, cdt, cdn) {
-  return 'SELECT `tabItem Group`.`name`,`tabItem Group`.`parent_item_group` FROM `tabItem Group` WHERE `tabItem Group`.is_group="No" AND `tabItem Group`.docstatus != 2 AND `tabItem Group`.%(key)s LIKE "%s" LIMIT 50'
+	return{
+		filters:{ 'is_group': "No"}
+	}
 }
diff --git a/setup/doctype/warehouse_type/README.md b/setup/doctype/warehouse_type/README.md
deleted file mode 100644
index ad065d5..0000000
--- a/setup/doctype/warehouse_type/README.md
+++ /dev/null
@@ -1 +0,0 @@
-Warehouse classification.
\ No newline at end of file
diff --git a/setup/doctype/warehouse_type/__init__.py b/setup/doctype/warehouse_type/__init__.py
deleted file mode 100644
index baffc48..0000000
--- a/setup/doctype/warehouse_type/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-from __future__ import unicode_literals
diff --git a/setup/doctype/warehouse_type/test_warehouse_type.py b/setup/doctype/warehouse_type/test_warehouse_type.py
deleted file mode 100644
index 208859b..0000000
--- a/setup/doctype/warehouse_type/test_warehouse_type.py
+++ /dev/null
@@ -1,6 +0,0 @@
-test_records = [
-	[{
-		"doctype": "Warehouse Type",
-		"warehouse_type": "_Test Warehouse Type"
-	}]
-]
\ No newline at end of file
diff --git a/setup/doctype/warehouse_type/warehouse_type.js b/setup/doctype/warehouse_type/warehouse_type.js
deleted file mode 100644
index 3cad944..0000000
--- a/setup/doctype/warehouse_type/warehouse_type.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// ERPNext - web based ERP (http://erpnext.com)
-// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-// 
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-// 
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-// 
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
- 
-
-//--------- ONLOAD -------------
-cur_frm.cscript.onload = function(doc, cdt, cdn) {
-   
-}
-
-cur_frm.cscript.refresh = function(doc, cdt, cdn) {
-   
-}
\ No newline at end of file
diff --git a/setup/doctype/warehouse_type/warehouse_type.py b/setup/doctype/warehouse_type/warehouse_type.py
deleted file mode 100644
index 7794430..0000000
--- a/setup/doctype/warehouse_type/warehouse_type.py
+++ /dev/null
@@ -1,22 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-from __future__ import unicode_literals
-import webnotes
-
-class DocType:
-	def __init__(self, d, dl):
-		self.doc, self.doclist = d, dl
diff --git a/setup/doctype/warehouse_type/warehouse_type.txt b/setup/doctype/warehouse_type/warehouse_type.txt
deleted file mode 100644
index 31df7d6..0000000
--- a/setup/doctype/warehouse_type/warehouse_type.txt
+++ /dev/null
@@ -1,82 +0,0 @@
-[
- {
-  "creation": "2013-01-10 16:34:24", 
-  "docstatus": 0, 
-  "modified": "2013-07-05 15:02:15", 
-  "modified_by": "Administrator", 
-  "owner": "Administrator"
- }, 
- {
-  "autoname": "field:warehouse_type", 
-  "doctype": "DocType", 
-  "icon": "icon-flag", 
-  "istable": 0, 
-  "module": "Setup", 
-  "name": "__common__"
- }, 
- {
-  "doctype": "DocField", 
-  "name": "__common__", 
-  "parent": "Warehouse Type", 
-  "parentfield": "fields", 
-  "parenttype": "DocType", 
-  "permlevel": 0
- }, 
- {
-  "amend": 0, 
-  "doctype": "DocPerm", 
-  "name": "__common__", 
-  "parent": "Warehouse Type", 
-  "parentfield": "permissions", 
-  "parenttype": "DocType", 
-  "permlevel": 0, 
-  "read": 1, 
-  "report": 1, 
-  "submit": 0
- }, 
- {
-  "doctype": "DocType", 
-  "name": "Warehouse Type"
- }, 
- {
-  "doctype": "DocField", 
-  "fieldname": "trash_reason", 
-  "fieldtype": "Small Text", 
-  "label": "Trash Reason", 
-  "oldfieldname": "trash_reason", 
-  "oldfieldtype": "Small Text", 
-  "read_only": 1
- }, 
- {
-  "doctype": "DocField", 
-  "fieldname": "warehouse_type", 
-  "fieldtype": "Data", 
-  "in_filter": 1, 
-  "label": "Warehouse Type", 
-  "oldfieldname": "warehouse_type", 
-  "oldfieldtype": "Data", 
-  "reqd": 1, 
-  "search_index": 1
- }, 
- {
-  "cancel": 1, 
-  "create": 1, 
-  "doctype": "DocPerm", 
-  "role": "Material Master Manager", 
-  "write": 1
- }, 
- {
-  "cancel": 0, 
-  "create": 0, 
-  "doctype": "DocPerm", 
-  "role": "Material Manager", 
-  "write": 0
- }, 
- {
-  "cancel": 0, 
-  "create": 0, 
-  "doctype": "DocPerm", 
-  "role": "Material User", 
-  "write": 0
- }
-]
\ No newline at end of file
diff --git a/startup/install.py b/startup/install.py
index de60e38..896a6cd 100644
--- a/startup/install.py
+++ b/startup/install.py
@@ -10,9 +10,9 @@
 	
 def make_modules():
 	modules = [
-		" Home", " System", " Utilities", " Website", " Setup",
-		" Selling", " Buying", " Projects", " Accounts", " Stock",
-		" Support", " HR", " Manufacturing"]
+		"Home", "System", "Utilities", "Website", "Setup",
+		"Selling", "Buying", "Projects", "Accounts", "Stock",
+		"Support", "HR", "Manufacturing"]
 	
 	for m in modules:
 		doc = webnotes.doc(fielddata = {
@@ -100,8 +100,10 @@
 def import_defaults():
 	records = [
 		# item group
-		{'doctype': 'Item Group', 'item_group_name': 'All Item Groups', 'is_group': 'Yes', 'name': 'All Item Groups', 'parent_item_group': ''},
-		{'doctype': 'Item Group', 'item_group_name': 'Default', 'is_group': 'No', 'name': 'Default', 'parent_item_group': 'All Item Groups'},
+		{'doctype': 'Item Group', 'item_group_name': 'All Item Groups', 'is_group': 'Yes', 'parent_item_group': ''},
+		{'doctype': 'Item Group', 'item_group_name': 'Products', 'is_group': 'No', 'parent_item_group': 'All Item Groups'},
+		{'doctype': 'Item Group', 'item_group_name': 'Raw Material', 'is_group': 'No', 'parent_item_group': 'All Item Groups'},
+		{'doctype': 'Item Group', 'item_group_name': 'Services', 'is_group': 'No', 'parent_item_group': 'All Item Groups'},
 		
 		# deduction type
 		{'doctype': 'Deduction Type', 'name': 'Income Tax', 'description': 'Income Tax', 'deduction_name': 'Income Tax'},
@@ -131,37 +133,27 @@
 			
 		# customer group
 		{'doctype': 'Customer Group', 'customer_group_name': 'All Customer Groups', 'is_group': 'Yes', 	'name': 'All Customer Groups', 'parent_customer_group': ''},
-		{'doctype': 'Customer Group', 'customer_group_name': 'Default', 'is_group': 'No', 'name': 'Default Customer Group', 'parent_customer_group': 'All Customer Groups'},
+		{'doctype': 'Customer Group', 'customer_group_name': 'Individual', 'is_group': 'No', 'parent_customer_group': 'All Customer Groups'},
+		{'doctype': 'Customer Group', 'customer_group_name': 'Commercial', 'is_group': 'No', 'parent_customer_group': 'All Customer Groups'},
+		{'doctype': 'Customer Group', 'customer_group_name': 'Non Profit', 'is_group': 'No', 'parent_customer_group': 'All Customer Groups'},
+		{'doctype': 'Customer Group', 'customer_group_name': 'Government', 'is_group': 'No', 'parent_customer_group': 'All Customer Groups'},
 			
 		# supplier type
-		{'doctype': 'Supplier Type', 'name': 'Default Supplier Type', 'supplier_type': 'Default Supplier Type'},
-		
-		# warehouse type
-		{'doctype': 'Warehouse Type', 'name': 'Default Warehouse Type', 'warehouse_type': 'Default Warehouse Type'},
-		{'doctype': 'Warehouse Type', 'name': 'Fixed Asset', 'warehouse_type': 'Fixed Asset'},
-		{'doctype': 'Warehouse Type', 'name': 'Reserved', 'warehouse_type': 'Reserved'},
-		{'doctype': 'Warehouse Type', 'name': 'Rejected', 'warehouse_type': 'Rejected'},
-		{'doctype': 'Warehouse Type', 'name': 'Sample', 'warehouse_type': 'Sample'},
-		{'doctype': 'Warehouse Type', 'name': 'Stores', 'warehouse_type': 'Stores'},
-		{'doctype': 'Warehouse Type', 'name': 'WIP Warehouse', 'warehouse_type': 'WIP Warehouse'},
-		
-		# warehouse 
-		{'doctype': 'Warehouse', 'warehouse_name': 'Default Warehouse', 'name': 'Default Warehouse', 'warehouse_type': 'Default Warehouse Type'},
-			
-		# Workstation
-		{'doctype': 'Workstation', 'name': 'Default Workstation', 'workstation_name': 'Default Workstation', 'warehouse': 'Default Warehouse'},
+		{'doctype': 'Supplier Type', 'supplier_type': 'Services'},
+		{'doctype': 'Supplier Type', 'supplier_type': 'Local'},
+		{'doctype': 'Supplier Type', 'supplier_type': 'Raw Material'},
+		{'doctype': 'Supplier Type', 'supplier_type': 'Electrical'},
+		{'doctype': 'Supplier Type', 'supplier_type': 'Hardware'},
+		{'doctype': 'Supplier Type', 'supplier_type': 'Pharmaceutical'},
+		{'doctype': 'Supplier Type', 'supplier_type': 'Distributor'},
 		
 		# Sales Person
-		{'doctype': 'Sales Person', 'name': 'All Sales Persons', 'sales_person_name': 'All Sales Persons', 'is_group': "Yes", "parent_sales_person": ""},
+		{'doctype': 'Sales Person', 'sales_person_name': 'Sales Team', 'is_group': "Yes", "parent_sales_person": ""},
 		
 		# UOM
 		{'uom_name': 'Unit', 'doctype': 'UOM', 'name': 'Unit'}, 
 		{'uom_name': 'Box', 'doctype': 'UOM', 'name': 'Box'}, 
-		{'uom_name': 'Ft', 'doctype': 'UOM', 'name': 'Ft'}, 
 		{'uom_name': 'Kg', 'doctype': 'UOM', 'name': 'Kg'}, 
-		{'uom_name': 'Ltr', 'doctype': 'UOM', 'name': 'Ltr'}, 
-		{'uom_name': 'Meter', 'doctype': 'UOM', 'name': 'Meter'}, 
-		{'uom_name': 'Mtr', 'doctype': 'UOM', 'name': 'Mtr'}, 
 		{'uom_name': 'Nos', 'doctype': 'UOM', 'name': 'Nos'}, 
 		{'uom_name': 'Pair', 'doctype': 'UOM', 'name': 'Pair'}, 
 		{'uom_name': 'Set', 'doctype': 'UOM', 'name': 'Set'}, 
@@ -171,12 +163,11 @@
 	
 	from webnotes.modules import scrub
 	for r in records:
-		if not webnotes.conn.exists(r['doctype'], r['name']):
-			bean = webnotes.bean(r)
-			
-			# ignore mandatory for root
-			parent_link_field = ("parent_" + scrub(bean.doc.doctype))
-			if parent_link_field in bean.doc.fields and not bean.doc.fields.get(parent_link_field):
-				bean.ignore_mandatory = True
-			
-			bean.insert()
\ No newline at end of file
+		bean = webnotes.bean(r)
+		
+		# ignore mandatory for root
+		parent_link_field = ("parent_" + scrub(bean.doc.doctype))
+		if parent_link_field in bean.doc.fields and not bean.doc.fields.get(parent_link_field):
+			bean.ignore_mandatory = True
+		
+		bean.insert()
\ No newline at end of file
diff --git a/stock/doctype/batch/batch.js b/stock/doctype/batch/batch.js
index 93979da..8b26d54 100644
--- a/stock/doctype/batch/batch.js
+++ b/stock/doctype/batch/batch.js
@@ -15,7 +15,10 @@
 // along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 cur_frm.fields_dict['item'].get_query = function(doc, cdt, cdn) {
-	return erpnext.queries.item({
-		'ifnull(tabItem.is_stock_item, "No")': 'Yes'
-	})
+	return {
+		query:"controllers.queries.item_query",
+		filters:{
+			'is_stock_item': 'Yes'	
+		}
+	}	
 }
\ No newline at end of file
diff --git a/stock/doctype/bin/bin.py b/stock/doctype/bin/bin.py
index 61baafa..cf30c5a 100644
--- a/stock/doctype/bin/bin.py
+++ b/stock/doctype/bin/bin.py
@@ -31,11 +31,7 @@
 	def validate(self):
 		if not self.doc.stock_uom:
 			self.doc.stock_uom = webnotes.conn.get_value('Item', self.doc.item_code, 'stock_uom')
-		
-		if not self.doc.warehouse_type:
-			self.doc.warehouse_type = webnotes.conn.get_value("Warehouse", self.doc.warehouse,
-				"warehouse_type")
-		
+				
 		self.validate_mandatory()
 		
 		self.doc.projected_qty = flt(self.doc.actual_qty) + flt(self.doc.ordered_qty) + \
diff --git a/stock/doctype/bin/bin.txt b/stock/doctype/bin/bin.txt
index cf3fbb1..676976a 100644
--- a/stock/doctype/bin/bin.txt
+++ b/stock/doctype/bin/bin.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-01-10 16:34:25", 
   "docstatus": 0, 
-  "modified": "2013-01-23 16:53:15", 
+  "modified": "2013-07-10 18:32:13", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -45,6 +45,7 @@
   "fieldname": "warehouse", 
   "fieldtype": "Link", 
   "in_filter": 1, 
+  "in_list_view": 1, 
   "label": "Warehouse", 
   "oldfieldname": "warehouse", 
   "oldfieldtype": "Link", 
@@ -53,17 +54,10 @@
  }, 
  {
   "doctype": "DocField", 
-  "fieldname": "warehouse_type", 
-  "fieldtype": "Data", 
-  "label": "Warehouse Type", 
-  "oldfieldname": "warehouse_type", 
-  "oldfieldtype": "Data"
- }, 
- {
-  "doctype": "DocField", 
   "fieldname": "item_code", 
   "fieldtype": "Link", 
   "in_filter": 1, 
+  "in_list_view": 1, 
   "label": "Item Code", 
   "oldfieldname": "item_code", 
   "oldfieldtype": "Link", 
@@ -76,6 +70,7 @@
   "fieldname": "reserved_qty", 
   "fieldtype": "Float", 
   "in_filter": 0, 
+  "in_list_view": 1, 
   "label": "Reserved Quantity", 
   "oldfieldname": "reserved_qty", 
   "oldfieldtype": "Currency", 
@@ -87,6 +82,7 @@
   "fieldname": "actual_qty", 
   "fieldtype": "Float", 
   "in_filter": 1, 
+  "in_list_view": 1, 
   "label": "Actual Quantity", 
   "oldfieldname": "actual_qty", 
   "oldfieldtype": "Currency", 
@@ -98,6 +94,7 @@
   "fieldname": "ordered_qty", 
   "fieldtype": "Float", 
   "in_filter": 0, 
+  "in_list_view": 1, 
   "label": "Ordered Quantity", 
   "oldfieldname": "ordered_qty", 
   "oldfieldtype": "Currency", 
diff --git a/stock/doctype/delivery_note/delivery_note.js b/stock/doctype/delivery_note/delivery_note.js
index bbc22b9..790d409 100644
--- a/stock/doctype/delivery_note/delivery_note.js
+++ b/stock/doctype/delivery_note/delivery_note.js
@@ -106,12 +106,12 @@
 
 // ***************** Get project name *****************
 cur_frm.fields_dict['project_name'].get_query = function(doc, cdt, cdn) {
-	var cond = '';
-	if(doc.customer) cond = '(`tabProject`.customer = "'+doc.customer+'" OR IFNULL(`tabProject`.customer,"")="") AND';
-	return repl('SELECT `tabProject`.name FROM `tabProject` \
-		WHERE `tabProject`.status not in ("Completed", "Cancelled") \
-		AND %(cond)s `tabProject`.name LIKE "%s" \
-		ORDER BY `tabProject`.name ASC LIMIT 50', {cond:cond});
+	return {
+		query: "controllers.queries.get_project_name",
+		filters: {
+			'customer': doc.customer
+		}
+	}
 }
 
 cur_frm.cscript.serial_no = function(doc, cdt, cdn) {
@@ -122,7 +122,9 @@
 }
 
 cur_frm.fields_dict['transporter_name'].get_query = function(doc) {
-	return 'SELECT DISTINCT `tabSupplier`.`name` FROM `tabSupplier` WHERE `tabSupplier`.supplier_type = "transporter" AND `tabSupplier`.docstatus != 2 AND `tabSupplier`.%(key)s LIKE "%s" ORDER BY `tabSupplier`.`name` LIMIT 50';
+	return{
+		filters: { 'supplier_type': "transporter" }
+	}	
 }
 
 cur_frm.cscript['Make Packing Slip'] = function() {
@@ -135,7 +137,9 @@
 
 //get query select Territory
 cur_frm.fields_dict['territory'].get_query = function(doc,cdt,cdn) {
-	return 'SELECT `tabTerritory`.`name`,`tabTerritory`.`parent_territory` FROM `tabTerritory` WHERE `tabTerritory`.`is_group` = "No" AND `tabTerritory`.`docstatus`!= 2 AND `tabTerritory`.%(key)s LIKE "%s"	ORDER BY	`tabTerritory`.`name` ASC LIMIT 50';
+	return{
+		filters: { 'is_group': "No" }
+	}
 }
 
 var set_print_hide= function(doc, cdt, cdn){
@@ -223,11 +227,11 @@
 	// expense account
 	cur_frm.fields_dict['delivery_note_details'].grid.get_field('expense_account').get_query = function(doc) {
 		return {
-			"query": "accounts.utils.get_account_list", 
-			"filters": {
+			filters: {
 				"is_pl_account": "Yes",
 				"debit_or_credit": "Debit",
-				"company": doc.company
+				"company": doc.company,
+				"group_or_ledger": "Ledger"
 			}
 		}
 	}
@@ -246,8 +250,11 @@
 	
 	cur_frm.fields_dict.delivery_note_details.grid.get_field("cost_center").get_query = function(doc) {
 		return {
-			query: "accounts.utils.get_cost_center_list",
-			filters: { company: doc.company}
+
+			filters: { 
+				'company_name': doc.company,
+				'group_or_ledger': "Ledger"
+			}
 		}
 	}
 }
\ No newline at end of file
diff --git a/stock/doctype/delivery_note_item/delivery_note_item.txt b/stock/doctype/delivery_note_item/delivery_note_item.txt
index ef5a984..346673f 100644
--- a/stock/doctype/delivery_note_item/delivery_note_item.txt
+++ b/stock/doctype/delivery_note_item/delivery_note_item.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-04-22 13:15:44", 
   "docstatus": 0, 
-  "modified": "2013-07-09 12:42:09", 
+  "modified": "2013-07-10 14:54:07", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -29,6 +29,7 @@
   "doctype": "DocField", 
   "fieldname": "barcode", 
   "fieldtype": "Data", 
+  "in_list_view": 0, 
   "label": "Barcode", 
   "print_hide": 1, 
   "read_only": 0
@@ -38,6 +39,7 @@
   "fieldname": "item_code", 
   "fieldtype": "Link", 
   "in_filter": 1, 
+  "in_list_view": 1, 
   "label": "Item Code", 
   "oldfieldname": "item_code", 
   "oldfieldtype": "Link", 
@@ -53,6 +55,7 @@
   "fieldname": "customer_item_code", 
   "fieldtype": "Data", 
   "hidden": 1, 
+  "in_list_view": 0, 
   "label": "Customer's Item Code", 
   "print_hide": 1, 
   "read_only": 1
@@ -61,6 +64,7 @@
   "doctype": "DocField", 
   "fieldname": "item_name", 
   "fieldtype": "Data", 
+  "in_list_view": 0, 
   "label": "Item Name", 
   "oldfieldname": "item_name", 
   "oldfieldtype": "Data", 
@@ -74,6 +78,7 @@
   "doctype": "DocField", 
   "fieldname": "description", 
   "fieldtype": "Small Text", 
+  "in_list_view": 1, 
   "label": "Description", 
   "oldfieldname": "description", 
   "oldfieldtype": "Small Text", 
@@ -83,10 +88,18 @@
   "width": "300px"
  }, 
  {
+  "doctype": "DocField", 
+  "fieldname": "quantity_and_rate", 
+  "fieldtype": "Section Break", 
+  "in_list_view": 0, 
+  "label": "Quantity and Rate"
+ }, 
+ {
   "default": "0.00", 
   "doctype": "DocField", 
   "fieldname": "qty", 
   "fieldtype": "Float", 
+  "in_list_view": 1, 
   "label": "Quantity", 
   "oldfieldname": "qty", 
   "oldfieldtype": "Currency", 
@@ -99,6 +112,7 @@
   "doctype": "DocField", 
   "fieldname": "stock_uom", 
   "fieldtype": "Data", 
+  "in_list_view": 0, 
   "label": "UOM", 
   "oldfieldname": "stock_uom", 
   "oldfieldtype": "Data", 
@@ -113,6 +127,7 @@
   "doctype": "DocField", 
   "fieldname": "ref_rate", 
   "fieldtype": "Currency", 
+  "in_list_view": 0, 
   "label": "Price List Rate", 
   "no_copy": 0, 
   "oldfieldname": "ref_rate", 
@@ -129,6 +144,7 @@
   "doctype": "DocField", 
   "fieldname": "adj_rate", 
   "fieldtype": "Float", 
+  "in_list_view": 0, 
   "label": "Discount (%)", 
   "oldfieldname": "adj_rate", 
   "oldfieldtype": "Float", 
@@ -141,6 +157,7 @@
   "doctype": "DocField", 
   "fieldname": "export_rate", 
   "fieldtype": "Currency", 
+  "in_list_view": 1, 
   "label": "Rate", 
   "oldfieldname": "export_rate", 
   "oldfieldtype": "Currency", 
@@ -155,6 +172,7 @@
   "doctype": "DocField", 
   "fieldname": "export_amount", 
   "fieldtype": "Currency", 
+  "in_list_view": 1, 
   "label": "Amount", 
   "oldfieldname": "export_amount", 
   "oldfieldtype": "Currency", 
@@ -169,6 +187,7 @@
   "doctype": "DocField", 
   "fieldname": "base_ref_rate", 
   "fieldtype": "Currency", 
+  "in_list_view": 0, 
   "label": "Price List Rate (Company Currency)", 
   "oldfieldname": "base_ref_rate", 
   "oldfieldtype": "Currency", 
@@ -183,6 +202,7 @@
   "doctype": "DocField", 
   "fieldname": "basic_rate", 
   "fieldtype": "Currency", 
+  "in_list_view": 0, 
   "label": "Rate (Company Currency)", 
   "oldfieldname": "basic_rate", 
   "oldfieldtype": "Currency", 
@@ -197,6 +217,7 @@
   "doctype": "DocField", 
   "fieldname": "amount", 
   "fieldtype": "Currency", 
+  "in_list_view": 0, 
   "label": "Amount (Company Currency)", 
   "oldfieldname": "amount", 
   "oldfieldtype": "Currency", 
@@ -209,8 +230,16 @@
  }, 
  {
   "doctype": "DocField", 
+  "fieldname": "warehouse_and_reference", 
+  "fieldtype": "Section Break", 
+  "in_list_view": 0, 
+  "label": "Warehouse and Reference"
+ }, 
+ {
+  "doctype": "DocField", 
   "fieldname": "warehouse", 
   "fieldtype": "Link", 
+  "in_list_view": 0, 
   "label": "Warehouse", 
   "oldfieldname": "warehouse", 
   "oldfieldtype": "Link", 
@@ -225,6 +254,7 @@
   "fieldname": "serial_no", 
   "fieldtype": "Text", 
   "in_filter": 1, 
+  "in_list_view": 1, 
   "label": "Serial No", 
   "no_copy": 1, 
   "oldfieldname": "serial_no", 
diff --git a/stock/doctype/delivery_note_packing_item/delivery_note_packing_item.txt b/stock/doctype/delivery_note_packing_item/delivery_note_packing_item.txt
index defd39d..441b13a 100644
--- a/stock/doctype/delivery_note_packing_item/delivery_note_packing_item.txt
+++ b/stock/doctype/delivery_note_packing_item/delivery_note_packing_item.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-02-22 01:28:00", 
   "docstatus": 0, 
-  "modified": "2013-03-07 07:03:20", 
+  "modified": "2013-07-10 14:54:08", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -28,6 +28,7 @@
   "doctype": "DocField", 
   "fieldname": "parent_item", 
   "fieldtype": "Link", 
+  "in_list_view": 1, 
   "label": "Parent Item", 
   "oldfieldname": "parent_item", 
   "oldfieldtype": "Link", 
@@ -39,6 +40,7 @@
   "fieldname": "item_code", 
   "fieldtype": "Link", 
   "in_filter": 1, 
+  "in_list_view": 1, 
   "label": "Item Code", 
   "oldfieldname": "item_code", 
   "oldfieldtype": "Link", 
@@ -50,6 +52,7 @@
   "fieldname": "item_name", 
   "fieldtype": "Data", 
   "in_filter": 1, 
+  "in_list_view": 1, 
   "label": "Item Name", 
   "oldfieldname": "item_name", 
   "oldfieldtype": "Data", 
@@ -60,6 +63,7 @@
   "fieldname": "parent_detail_docname", 
   "fieldtype": "Data", 
   "hidden": 1, 
+  "in_list_view": 0, 
   "label": "Parent Detail docname", 
   "no_copy": 1, 
   "oldfieldname": "parent_detail_docname", 
@@ -71,6 +75,7 @@
   "doctype": "DocField", 
   "fieldname": "description", 
   "fieldtype": "Text", 
+  "in_list_view": 1, 
   "label": "Description", 
   "oldfieldname": "description", 
   "oldfieldtype": "Text", 
@@ -82,6 +87,7 @@
   "doctype": "DocField", 
   "fieldname": "warehouse", 
   "fieldtype": "Link", 
+  "in_list_view": 1, 
   "label": "Warehouse", 
   "oldfieldname": "warehouse", 
   "oldfieldtype": "Link", 
@@ -91,6 +97,7 @@
   "doctype": "DocField", 
   "fieldname": "qty", 
   "fieldtype": "Float", 
+  "in_list_view": 1, 
   "label": "Qty", 
   "oldfieldname": "qty", 
   "oldfieldtype": "Currency", 
diff --git a/stock/doctype/item/item.js b/stock/doctype/item/item.js
index 7a731d2..3d427ad 100644
--- a/stock/doctype/item/item.js
+++ b/stock/doctype/item/item.js
@@ -51,39 +51,64 @@
 
 cur_frm.fields_dict['default_bom'].get_query = function(doc) {
    //var d = locals[this.doctype][this.docname];
-   return 'SELECT DISTINCT `tabBOM`.`name` FROM `tabBOM` WHERE `tabBOM`.`item` = "' + doc.item_code + '"  AND ifnull(`tabBOM`.`is_active`, 0) = 0 and `tabBOM`.docstatus != 2 AND `tabBOM`.%(key)s LIKE "%s" ORDER BY `tabBOM`.`name` LIMIT 50'
+    return{
+   		filters:{
+   			'item': doc.item_code,
+   			'is_active': 0
+   		}
+   }
 }
 
 
 // Expense Account
 // ---------------------------------
 cur_frm.fields_dict['purchase_account'].get_query = function(doc){
-  return 'SELECT DISTINCT `tabAccount`.`name` FROM `tabAccount` WHERE `tabAccount`.`debit_or_credit`="Debit" AND `tabAccount`.`group_or_ledger`="Ledger" AND `tabAccount`.`docstatus`!=2 AND `tabAccount`.%(key)s LIKE "%s" ORDER BY `tabAccount`.`name` LIMIT 50'
+	return{
+		filters:{
+			'debit_or_credit': "Debit",
+			'group_or_ledger': "Ledger"
+		}
+	}
 }
 
 // Income Account
 // --------------------------------
 cur_frm.fields_dict['default_income_account'].get_query = function(doc) {
-  return 'SELECT DISTINCT `tabAccount`.`name` FROM `tabAccount` WHERE `tabAccount`.`debit_or_credit`="Credit" AND `tabAccount`.`group_or_ledger`="Ledger" AND `tabAccount`.`docstatus`!=2 AND `tabAccount`.`account_type` ="Income Account" AND `tabAccount`.%(key)s LIKE "%s" ORDER BY `tabAccount`.`name` LIMIT 50'
+	return{
+		filters:{
+			'debit_or_credit': "Credit",
+			'group_or_ledger': "Ledger",
+			'account_type': "Income Account"
+		}
+	}
 }
 
 
 // Purchase Cost Center
 // -----------------------------
 cur_frm.fields_dict['cost_center'].get_query = function(doc) {
-  return 'SELECT `tabCost Center`.`name` FROM `tabCost Center` WHERE `tabCost Center`.%(key)s LIKE "%s" AND `tabCost Center`.`group_or_ledger` = "Ledger" AND `tabCost Center`.`docstatus`!= 2 ORDER BY  `tabCost Center`.`name` ASC LIMIT 50'
+	return{
+		filters:{ 'group_or_ledger': "Ledger" }
+	}
 }
 
 
 // Sales Cost Center
 // -----------------------------
 cur_frm.fields_dict['default_sales_cost_center'].get_query = function(doc) {
-  return 'SELECT `tabCost Center`.`name` FROM `tabCost Center` WHERE `tabCost Center`.%(key)s LIKE "%s" AND `tabCost Center`.`group_or_ledger` = "Ledger" AND `tabCost Center`.`docstatus`!= 2 ORDER BY  `tabCost Center`.`name` ASC LIMIT 50'
+	return{
+		filters:{ 'group_or_ledger': "Ledger" }
+	}
 }
 
 
 cur_frm.fields_dict['item_tax'].grid.get_field("tax_type").get_query = function(doc, cdt, cdn) {
-  return 'SELECT `tabAccount`.`name` FROM `tabAccount` WHERE `tabAccount`.`account_type` in ("Tax", "Chargeable") and `tabAccount`.`docstatus` != 2 and `tabAccount`.%(key)s LIKE "%s" ORDER BY `tabAccount`.`name` DESC LIMIT 50'
+	return{
+		filters:[
+			['Account', 'account_type', 'in', 'Tax, Chargeable'],
+			['Account', 'docstatus', '!=', 2]
+		]
+	}
 }
 
 cur_frm.cscript.tax_type = function(doc, cdt, cdn){
@@ -94,10 +119,11 @@
 
 //get query select item group
 cur_frm.fields_dict['item_group'].get_query = function(doc,cdt,cdn) {
-  return 'SELECT `tabItem Group`.`name`,`tabItem Group`.`parent_item_group` \
-		FROM `tabItem Group` WHERE `tabItem Group`.`docstatus`!= 2 AND \
-		`tabItem Group`.%(key)s LIKE "%s"  ORDER BY  `tabItem Group`.`name` \
-		ASC LIMIT 50'
+	return {
+		filters: [
+			['Item Group', 'docstatus', '!=', 2]
+		]
+	}
 }
 
 // for description from attachment
@@ -137,10 +163,12 @@
 }
 
 cur_frm.fields_dict.item_customer_details.grid.get_field("customer_name").get_query = 
-	erpnext.utils.customer_query;
+function(doc,cdt,cdn) {
+		return{	query:"controllers.queries.customer_query" } }
 	
 cur_frm.fields_dict.item_supplier_details.grid.get_field("supplier").get_query = 
-	erpnext.utils.supplier_query;
+	function(doc,cdt,cdn) {
+		return{ query:"controllers.queries.supplier_query" } }
 
 cur_frm.cscript.on_remove_attachment = function(doc) {
 	if(!inList(cur_frm.fields_dict.image.df.options.split("\n"), doc.image)) {
diff --git a/stock/doctype/item/item.py b/stock/doctype/item/item.py
index 85bb3d1..4a4cd89 100644
--- a/stock/doctype/item/item.py
+++ b/stock/doctype/item/item.py
@@ -51,7 +51,6 @@
 		self.fill_customer_code()
 		self.check_item_tax()
 		self.validate_barcode()
-		self.check_non_asset_warehouse()
 		self.cant_change()
 		self.validate_item_type_for_reorder()
 
@@ -185,18 +184,7 @@
 			if duplicate:
 				msgprint("Barcode: %s already used in item: %s" % 
 					(self.doc.barcode, cstr(duplicate[0][0])), raise_exception = 1)
-					
-	def check_non_asset_warehouse(self):
-		if not self.doc.__islocal and self.doc.is_asset_item == "Yes":
-			existing_qty = webnotes.conn.sql("select t1.warehouse, t1.actual_qty from tabBin t1, tabWarehouse t2 where t1.item_code=%s and (t2.warehouse_type!='Fixed Asset' or t2.warehouse_type is null) and t1.warehouse=t2.name and t1.actual_qty > 0", self.doc.name)
-			for e in existing_qty:
-				msgprint("%s Units exist in Warehouse %s, which is not an Asset Warehouse." % 
-					(e[1],e[0]))
-			if existing_qty:
-				self.doc.is_asset_item = 'No'
-				msgprint(_("""Please transfer the above quantities to an asset warehouse \
-					before changing this item to an asset item"""), raise_exception=1)
-					
+
 	def cant_change(self):
 		if not self.doc.fields.get("__islocal"):
 			vals = webnotes.conn.get_value("Item", self.doc.name, 
diff --git a/stock/doctype/item_customer_detail/item_customer_detail.txt b/stock/doctype/item_customer_detail/item_customer_detail.txt
index 3b916a2..def1dff 100644
--- a/stock/doctype/item_customer_detail/item_customer_detail.txt
+++ b/stock/doctype/item_customer_detail/item_customer_detail.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-03-08 15:37:16", 
   "docstatus": 0, 
-  "modified": "2013-03-21 17:29:45", 
+  "modified": "2013-07-10 14:54:09", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -19,6 +19,7 @@
  {
   "doctype": "DocField", 
   "in_filter": 1, 
+  "in_list_view": 1, 
   "name": "__common__", 
   "parent": "Item Customer Detail", 
   "parentfield": "fields", 
diff --git a/stock/doctype/item_price/item_price.txt b/stock/doctype/item_price/item_price.txt
index e4926cb..8062b57 100644
--- a/stock/doctype/item_price/item_price.txt
+++ b/stock/doctype/item_price/item_price.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-05-02 16:29:48", 
   "docstatus": 0, 
-  "modified": "2013-06-11 18:27:55", 
+  "modified": "2013-07-10 14:54:09", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -17,6 +17,7 @@
  }, 
  {
   "doctype": "DocField", 
+  "in_list_view": 1, 
   "name": "__common__", 
   "parent": "Item Price", 
   "parentfield": "fields", 
diff --git a/stock/doctype/item_quality_inspection_parameter/item_quality_inspection_parameter.txt b/stock/doctype/item_quality_inspection_parameter/item_quality_inspection_parameter.txt
index 8233ede..df8c817 100644
--- a/stock/doctype/item_quality_inspection_parameter/item_quality_inspection_parameter.txt
+++ b/stock/doctype/item_quality_inspection_parameter/item_quality_inspection_parameter.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-02-22 01:28:01", 
   "docstatus": 0, 
-  "modified": "2013-03-07 07:03:22", 
+  "modified": "2013-07-10 14:54:09", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -16,6 +16,7 @@
  {
   "doctype": "DocField", 
   "fieldtype": "Data", 
+  "in_list_view": 1, 
   "name": "__common__", 
   "oldfieldtype": "Data", 
   "parent": "Item Quality Inspection Parameter", 
diff --git a/stock/doctype/item_reorder/item_reorder.txt b/stock/doctype/item_reorder/item_reorder.txt
index b6933c7..ae9de1e 100644
--- a/stock/doctype/item_reorder/item_reorder.txt
+++ b/stock/doctype/item_reorder/item_reorder.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-03-07 11:42:59", 
   "docstatus": 0, 
-  "modified": "2013-03-19 12:22:44", 
+  "modified": "2013-07-10 14:54:09", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -16,6 +16,7 @@
  }, 
  {
   "doctype": "DocField", 
+  "in_list_view": 1, 
   "name": "__common__", 
   "parent": "Item Reorder", 
   "parentfield": "fields", 
diff --git a/stock/doctype/item_supplier/item_supplier.txt b/stock/doctype/item_supplier/item_supplier.txt
index 3129504..e0e0e6d 100644
--- a/stock/doctype/item_supplier/item_supplier.txt
+++ b/stock/doctype/item_supplier/item_supplier.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-02-22 01:28:01", 
   "docstatus": 0, 
-  "modified": "2013-03-07 07:03:22", 
+  "modified": "2013-07-10 14:54:09", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -14,6 +14,7 @@
  }, 
  {
   "doctype": "DocField", 
+  "in_list_view": 1, 
   "name": "__common__", 
   "parent": "Item Supplier", 
   "parentfield": "fields", 
diff --git a/stock/doctype/item_tax/item_tax.txt b/stock/doctype/item_tax/item_tax.txt
index 343f965..cbc112e 100644
--- a/stock/doctype/item_tax/item_tax.txt
+++ b/stock/doctype/item_tax/item_tax.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-02-22 01:28:01", 
   "docstatus": 0, 
-  "modified": "2013-03-07 07:03:22", 
+  "modified": "2013-07-10 14:54:09", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -14,6 +14,7 @@
  }, 
  {
   "doctype": "DocField", 
+  "in_list_view": 1, 
   "name": "__common__", 
   "parent": "Item Tax", 
   "parentfield": "fields", 
diff --git a/stock/doctype/item_website_specification/item_website_specification.txt b/stock/doctype/item_website_specification/item_website_specification.txt
index 1b371c7..c3c1d34 100644
--- a/stock/doctype/item_website_specification/item_website_specification.txt
+++ b/stock/doctype/item_website_specification/item_website_specification.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-02-22 01:28:01", 
   "docstatus": 0, 
-  "modified": "2013-03-07 07:03:22", 
+  "modified": "2013-07-10 14:54:10", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -15,6 +15,7 @@
  }, 
  {
   "doctype": "DocField", 
+  "in_list_view": 1, 
   "name": "__common__", 
   "parent": "Item Website Specification", 
   "parentfield": "fields", 
diff --git a/stock/doctype/landed_cost_item/landed_cost_item.txt b/stock/doctype/landed_cost_item/landed_cost_item.txt
index 1563fac..3e14ce8 100644
--- a/stock/doctype/landed_cost_item/landed_cost_item.txt
+++ b/stock/doctype/landed_cost_item/landed_cost_item.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-02-22 01:28:02", 
   "docstatus": 0, 
-  "modified": "2013-03-07 07:03:23", 
+  "modified": "2013-07-10 14:54:10", 
   "modified_by": "Administrator", 
   "owner": "wasim@webnotestech.com"
  }, 
@@ -14,6 +14,7 @@
  }, 
  {
   "doctype": "DocField", 
+  "in_list_view": 1, 
   "name": "__common__", 
   "parent": "Landed Cost Item", 
   "parentfield": "fields", 
diff --git a/stock/doctype/landed_cost_purchase_receipt/landed_cost_purchase_receipt.txt b/stock/doctype/landed_cost_purchase_receipt/landed_cost_purchase_receipt.txt
index 8b80559..e47dd27 100644
--- a/stock/doctype/landed_cost_purchase_receipt/landed_cost_purchase_receipt.txt
+++ b/stock/doctype/landed_cost_purchase_receipt/landed_cost_purchase_receipt.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-02-22 01:28:02", 
   "docstatus": 0, 
-  "modified": "2013-03-07 07:03:23", 
+  "modified": "2013-07-10 14:54:10", 
   "modified_by": "Administrator", 
   "owner": "wasim@webnotestech.com"
  }, 
@@ -14,6 +14,7 @@
  }, 
  {
   "doctype": "DocField", 
+  "in_list_view": 1, 
   "name": "__common__", 
   "parent": "Landed Cost Purchase Receipt", 
   "parentfield": "fields", 
diff --git a/stock/doctype/landed_cost_wizard/landed_cost_wizard.js b/stock/doctype/landed_cost_wizard/landed_cost_wizard.js
index eb0c3df..a093d6f 100644
--- a/stock/doctype/landed_cost_wizard/landed_cost_wizard.js
+++ b/stock/doctype/landed_cost_wizard/landed_cost_wizard.js
@@ -20,5 +20,12 @@
 
 
 cur_frm.fields_dict['landed_cost_details'].grid.get_field("account_head").get_query = function(doc,cdt,cdn) {
-  return 'SELECT tabAccount.name FROM tabAccount WHERE tabAccount.group_or_ledger="Ledger" AND tabAccount.docstatus != 2 AND (tabAccount.account_type = "Tax" OR tabAccount.account_type = "Chargeable" or (tabAccount.is_pl_account = "Yes" and tabAccount.debit_or_credit = "Debit")) AND  tabAccount.name LIKE "%s"';
+return{
+		filters:[
+			['Account', 'group_or_ledger', '=', 'Ledger'],
+			['Account', 'account_type', 'in', 'Tax, Chargeable'],
+			['Account', 'is_pl_account', '=', 'Yes'],
+			['Account', 'debit_or_credit', '=', 'Debit']
+		]
+	}
 }
diff --git a/stock/doctype/material_request/material_request.py b/stock/doctype/material_request/material_request.py
index 861162a..71a9e13 100644
--- a/stock/doctype/material_request/material_request.py
+++ b/stock/doctype/material_request/material_request.py
@@ -254,12 +254,13 @@
 		}, 
 		"Material Request Item": {
 			"doctype": "Purchase Order Item", 
-			"field_map": {
-				"name": "prevdoc_detail_docname", 
-				"parent": "prevdoc_docname", 
-				"parenttype": "prevdoc_doctype", 
-				"uom": "stock_uom"
-			},
+			"field_map": [
+				["name", "prevdoc_detail_docname"], 
+				["parent", "prevdoc_docname"], 
+				["parenttype", "prevdoc_doctype"], 
+				["uom", "stock_uom"],
+				["uom", "uom"]
+			],
 			"postprocess": update_item
 		}
 	}, target_doclist, set_missing_values)
diff --git a/stock/doctype/material_request_item/material_request_item.txt b/stock/doctype/material_request_item/material_request_item.txt
index 992b4cf..86cc168 100644
--- a/stock/doctype/material_request_item/material_request_item.txt
+++ b/stock/doctype/material_request_item/material_request_item.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-02-22 01:28:02", 
   "docstatus": 0, 
-  "modified": "2013-07-09 11:37:12", 
+  "modified": "2013-07-10 14:54:10", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -30,6 +30,7 @@
   "fieldname": "item_code", 
   "fieldtype": "Link", 
   "in_filter": 1, 
+  "in_list_view": 1, 
   "label": "Item Code", 
   "oldfieldname": "item_code", 
   "oldfieldtype": "Link", 
@@ -44,6 +45,7 @@
   "doctype": "DocField", 
   "fieldname": "schedule_date", 
   "fieldtype": "Date", 
+  "in_list_view": 1, 
   "label": "Required Date", 
   "no_copy": 1, 
   "oldfieldname": "schedule_date", 
@@ -57,6 +59,7 @@
   "doctype": "DocField", 
   "fieldname": "description", 
   "fieldtype": "Text", 
+  "in_list_view": 1, 
   "label": "Description", 
   "oldfieldname": "description", 
   "oldfieldtype": "Text", 
@@ -66,8 +69,16 @@
  }, 
  {
   "doctype": "DocField", 
+  "fieldname": "quantity_and_warehouse", 
+  "fieldtype": "Section Break", 
+  "in_list_view": 0, 
+  "label": "Quantity and Warehouse"
+ }, 
+ {
+  "doctype": "DocField", 
   "fieldname": "warehouse", 
   "fieldtype": "Link", 
+  "in_list_view": 1, 
   "label": "Warehouse", 
   "oldfieldname": "warehouse", 
   "oldfieldtype": "Link", 
@@ -82,6 +93,7 @@
   "doctype": "DocField", 
   "fieldname": "qty", 
   "fieldtype": "Float", 
+  "in_list_view": 1, 
   "label": "Quantity", 
   "no_copy": 0, 
   "oldfieldname": "qty", 
@@ -94,6 +106,7 @@
   "doctype": "DocField", 
   "fieldname": "uom", 
   "fieldtype": "Link", 
+  "in_list_view": 0, 
   "label": "Stock UOM", 
   "no_copy": 0, 
   "oldfieldname": "uom", 
@@ -108,6 +121,7 @@
   "doctype": "DocField", 
   "fieldname": "lead_time_date", 
   "fieldtype": "Date", 
+  "in_list_view": 0, 
   "label": "Lead Time Date", 
   "no_copy": 1, 
   "oldfieldname": "lead_time_date", 
@@ -120,6 +134,7 @@
   "fieldname": "item_name", 
   "fieldtype": "Data", 
   "in_filter": 1, 
+  "in_list_view": 1, 
   "label": "Item Name", 
   "oldfieldname": "item_name", 
   "oldfieldtype": "Data", 
diff --git a/stock/doctype/packing_slip/packing_slip.js b/stock/doctype/packing_slip/packing_slip.js
index 18a2486..e19ab49 100644
--- a/stock/doctype/packing_slip/packing_slip.js
+++ b/stock/doctype/packing_slip/packing_slip.js
@@ -15,17 +15,18 @@
 // along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 cur_frm.fields_dict['delivery_note'].get_query = function(doc, cdt, cdn) {
-	return 'SELECT name FROM `tabDelivery Note` WHERE docstatus=0 AND %(key)s LIKE "%s"';
+	return{
+		filters:{ 'docstatus': 0}
+	}
 }
 
 
 cur_frm.fields_dict['item_details'].grid.get_field('item_code').get_query = 
 		function(doc, cdt, cdn) {
-	var query = 'SELECT name, item_name, description FROM `tabItem` WHERE name IN ( \
-		SELECT item_code FROM `tabDelivery Note Item` dnd \
-		WHERE parent="'	+ doc.delivery_note + '" AND IFNULL(qty, 0) > IFNULL(packed_qty, 0)) \
-		AND %(key)s LIKE "%s" LIMIT 50';
-	return query;
+			return {
+				query: "stock.doctype.packing_slip.packing_slip.item_details",
+				filters:{ 'delivery_note': doc.delivery_note}
+			}
 }
 
 cur_frm.cscript.onload_post_render = function(doc, cdt, cdn) {
diff --git a/stock/doctype/packing_slip/packing_slip.py b/stock/doctype/packing_slip/packing_slip.py
index 1375108..63aa6a9 100644
--- a/stock/doctype/packing_slip/packing_slip.py
+++ b/stock/doctype/packing_slip/packing_slip.py
@@ -171,4 +171,15 @@
 				ch.item_name = item.item_name
 				ch.stock_uom = item.stock_uom
 				ch.qty = flt(item.qty) - flt(item.packed_qty)
-		self.update_item_details()
\ No newline at end of file
+		self.update_item_details()
+
+def item_details(doctype, txt, searchfield, start, page_len, filters):
+	from controllers.queries import get_match_cond
+	return webnotes.conn.sql("""select name, item_name, description from `tabItem` 
+				where name in ( select item_code FROM `tabDelivery Note Item` 
+	 						where parent= %s 
+	 							and ifnull(qty, 0) > ifnull(packed_qty, 0)) 
+	 			and %s like "%s" %s 
+	 			limit  %s, %s """ % ("%s", searchfield, "%s", 
+	 			get_match_cond(doctype, searchfield), "%s", "%s"), 
+	 			(filters["delivery_note"], "%%%s%%" % txt, start, page_len))
\ No newline at end of file
diff --git a/stock/doctype/packing_slip_item/packing_slip_item.txt b/stock/doctype/packing_slip_item/packing_slip_item.txt
index b186f40..8dea877 100644
--- a/stock/doctype/packing_slip_item/packing_slip_item.txt
+++ b/stock/doctype/packing_slip_item/packing_slip_item.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-04-08 13:10:16", 
   "docstatus": 0, 
-  "modified": "2013-04-11 15:06:05", 
+  "modified": "2013-07-10 14:54:11", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -29,6 +29,7 @@
   "doctype": "DocField", 
   "fieldname": "item_code", 
   "fieldtype": "Link", 
+  "in_list_view": 1, 
   "label": "Item Code", 
   "options": "Item", 
   "print_width": "100px", 
@@ -40,6 +41,7 @@
   "doctype": "DocField", 
   "fieldname": "item_name", 
   "fieldtype": "Data", 
+  "in_list_view": 1, 
   "label": "Item Name", 
   "print_width": "200px", 
   "read_only": 1, 
@@ -49,6 +51,7 @@
   "doctype": "DocField", 
   "fieldname": "qty", 
   "fieldtype": "Float", 
+  "in_list_view": 1, 
   "label": "Quantity", 
   "print_width": "100px", 
   "read_only": 0, 
@@ -59,6 +62,7 @@
   "doctype": "DocField", 
   "fieldname": "stock_uom", 
   "fieldtype": "Data", 
+  "in_list_view": 0, 
   "label": "UOM", 
   "print_width": "100px", 
   "read_only": 1, 
@@ -68,6 +72,7 @@
   "doctype": "DocField", 
   "fieldname": "net_weight", 
   "fieldtype": "Float", 
+  "in_list_view": 1, 
   "label": "Net Weight", 
   "print_width": "100px", 
   "read_only": 0, 
@@ -77,6 +82,7 @@
   "doctype": "DocField", 
   "fieldname": "weight_uom", 
   "fieldtype": "Link", 
+  "in_list_view": 0, 
   "label": "Weight UOM", 
   "options": "UOM", 
   "print_width": "100px", 
@@ -87,6 +93,7 @@
   "doctype": "DocField", 
   "fieldname": "page_break", 
   "fieldtype": "Check", 
+  "in_list_view": 1, 
   "label": "Page Break", 
   "read_only": 0
  }, 
@@ -95,6 +102,7 @@
   "fieldname": "dn_detail", 
   "fieldtype": "Data", 
   "hidden": 1, 
+  "in_list_view": 1, 
   "label": "DN Detail", 
   "read_only": 0
  }
diff --git a/stock/doctype/purchase_receipt/purchase_receipt.js b/stock/doctype/purchase_receipt/purchase_receipt.js
index 852a9c6..e21d6a3 100644
--- a/stock/doctype/purchase_receipt/purchase_receipt.js
+++ b/stock/doctype/purchase_receipt/purchase_receipt.js
@@ -116,11 +116,15 @@
 }
 
 cur_frm.fields_dict['supplier_address'].get_query = function(doc, cdt, cdn) {
-	return 'SELECT name,address_line1,city FROM tabAddress WHERE supplier = "'+ doc.supplier +'" AND docstatus != 2 AND name LIKE "%s" ORDER BY name ASC LIMIT 50';
+	return{
+		filters:{ 'supplier': doc.supplier}
+	}
 }
 
 cur_frm.fields_dict['contact_person'].get_query = function(doc, cdt, cdn) {
-	return 'SELECT name,CONCAT(first_name," ",ifnull(last_name,"")) As FullName,department,designation FROM tabContact WHERE supplier = "'+ doc.supplier +'" AND docstatus != 2 AND name LIKE "%s" ORDER BY name ASC LIMIT 50';
+	return{
+		filters:{ 'supplier': doc.supplier}
+	}
 }
 
 cur_frm.cscript.new_contact = function(){
@@ -131,15 +135,19 @@
 }
 
 cur_frm.fields_dict['purchase_receipt_details'].grid.get_field('project_name').get_query = function(doc, cdt, cdn) {
-	return 'SELECT `tabProject`.name FROM `tabProject` \
-		WHERE `tabProject`.status not in ("Completed", "Cancelled") \
-		AND `tabProject`.name LIKE "%s" ORDER BY `tabProject`.name ASC LIMIT 50';
+	return{
+		filters:[
+			['project', 'status', 'not in', 'Completed, Cancelled']
+		]
+	}
 }
 
 cur_frm.fields_dict['purchase_receipt_details'].grid.get_field('batch_no').get_query= function(doc, cdt, cdn) {
 	var d = locals[cdt][cdn];
 	if(d.item_code){
-		return "SELECT tabBatch.name, tabBatch.description FROM tabBatch WHERE tabBatch.docstatus != 2 AND tabBatch.item = '"+ d.item_code +"' AND `tabBatch`.`name` like '%s' ORDER BY `tabBatch`.`name` DESC LIMIT 50"
+		return{
+			filters:{'item': d.item_code}
+		}
 	}
 	else{
 		alert("Please enter Item Code.");
@@ -156,11 +164,19 @@
 }
 
 cur_frm.fields_dict['select_print_heading'].get_query = function(doc, cdt, cdn) {
-	return 'SELECT `tabPrint Heading`.name FROM `tabPrint Heading` WHERE `tabPrint Heading`.docstatus !=2 AND `tabPrint Heading`.name LIKE "%s" ORDER BY `tabPrint Heading`.name ASC LIMIT 50';
+	return{
+		filters:[
+			['Print Heading', 'docstatus', '!=', '2']
+		]
+	}
 }
 
 cur_frm.fields_dict.purchase_receipt_details.grid.get_field("qa_no").get_query = function(doc) {
-	return 'SELECT `tabQuality Inspection`.name FROM `tabQuality Inspection` WHERE `tabQuality Inspection`.docstatus = 1 AND `tabQuality Inspection`.%(key)s LIKE "%s"';
+	return {
+		filters: {
+			'docstatus': 1
+		}
+	}
 }
 
 cur_frm.cscript.on_submit = function(doc, cdt, cdn) {
diff --git a/stock/doctype/purchase_receipt_item/purchase_receipt_item.txt b/stock/doctype/purchase_receipt_item/purchase_receipt_item.txt
index 186ab3d..60b1b56 100755
--- a/stock/doctype/purchase_receipt_item/purchase_receipt_item.txt
+++ b/stock/doctype/purchase_receipt_item/purchase_receipt_item.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-05-24 19:29:10", 
   "docstatus": 0, 
-  "modified": "2013-07-09 12:20:50", 
+  "modified": "2013-07-10 14:54:16", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -30,6 +30,7 @@
   "fieldname": "item_code", 
   "fieldtype": "Link", 
   "in_filter": 1, 
+  "in_list_view": 1, 
   "label": "Item Code", 
   "oldfieldname": "item_code", 
   "oldfieldtype": "Link", 
@@ -45,6 +46,7 @@
   "fieldname": "item_name", 
   "fieldtype": "Data", 
   "in_filter": 0, 
+  "in_list_view": 0, 
   "label": "Item Name", 
   "oldfieldname": "item_name", 
   "oldfieldtype": "Data", 
@@ -57,6 +59,7 @@
   "doctype": "DocField", 
   "fieldname": "description", 
   "fieldtype": "Text", 
+  "in_list_view": 1, 
   "label": "Description", 
   "oldfieldname": "description", 
   "oldfieldtype": "Text", 
@@ -66,10 +69,18 @@
   "width": "300px"
  }, 
  {
+  "doctype": "DocField", 
+  "fieldname": "received_and_accepted", 
+  "fieldtype": "Section Break", 
+  "in_list_view": 0, 
+  "label": "Received and Accepted"
+ }, 
+ {
   "default": "0.00", 
   "doctype": "DocField", 
   "fieldname": "received_qty", 
   "fieldtype": "Float", 
+  "in_list_view": 0, 
   "label": "Recd Quantity", 
   "oldfieldname": "received_qty", 
   "oldfieldtype": "Currency", 
@@ -84,6 +95,7 @@
   "doctype": "DocField", 
   "fieldname": "qty", 
   "fieldtype": "Float", 
+  "in_list_view": 1, 
   "label": "Accepted Quantity", 
   "oldfieldname": "qty", 
   "oldfieldtype": "Currency", 
@@ -97,6 +109,7 @@
   "fieldname": "rejected_qty", 
   "fieldtype": "Float", 
   "in_filter": 0, 
+  "in_list_view": 0, 
   "label": "Rejected Quantity", 
   "oldfieldname": "rejected_qty", 
   "oldfieldtype": "Currency", 
@@ -110,6 +123,7 @@
   "doctype": "DocField", 
   "fieldname": "uom", 
   "fieldtype": "Link", 
+  "in_list_view": 0, 
   "label": "UOM", 
   "oldfieldname": "uom", 
   "oldfieldtype": "Link", 
@@ -122,8 +136,16 @@
  }, 
  {
   "doctype": "DocField", 
+  "fieldname": "rate_and_amount", 
+  "fieldtype": "Section Break", 
+  "in_list_view": 0, 
+  "label": "Rate and Amount"
+ }, 
+ {
+  "doctype": "DocField", 
   "fieldname": "import_ref_rate", 
   "fieldtype": "Currency", 
+  "in_list_view": 0, 
   "label": "Price List Rate", 
   "options": "currency", 
   "print_hide": 1, 
@@ -133,6 +155,7 @@
   "doctype": "DocField", 
   "fieldname": "discount_rate", 
   "fieldtype": "Float", 
+  "in_list_view": 0, 
   "label": "Discount  %", 
   "print_hide": 1, 
   "read_only": 0
@@ -142,6 +165,7 @@
   "doctype": "DocField", 
   "fieldname": "import_rate", 
   "fieldtype": "Currency", 
+  "in_list_view": 1, 
   "label": "Rate", 
   "oldfieldname": "import_rate", 
   "oldfieldtype": "Currency", 
@@ -155,6 +179,7 @@
   "doctype": "DocField", 
   "fieldname": "import_amount", 
   "fieldtype": "Currency", 
+  "in_list_view": 1, 
   "label": "Amount", 
   "oldfieldname": "import_amount", 
   "oldfieldtype": "Currency", 
@@ -165,6 +190,7 @@
   "doctype": "DocField", 
   "fieldname": "purchase_ref_rate", 
   "fieldtype": "Currency", 
+  "in_list_view": 0, 
   "label": "Price List Rate (Company Currency)", 
   "options": "Company:company:default_currency", 
   "print_hide": 1, 
@@ -175,6 +201,7 @@
   "doctype": "DocField", 
   "fieldname": "purchase_rate", 
   "fieldtype": "Currency", 
+  "in_list_view": 0, 
   "label": "Rate (Company Currency)", 
   "oldfieldname": "purchase_rate", 
   "oldfieldtype": "Currency", 
@@ -190,6 +217,7 @@
   "doctype": "DocField", 
   "fieldname": "amount", 
   "fieldtype": "Currency", 
+  "in_list_view": 0, 
   "label": "Amount (Company Currency)", 
   "oldfieldname": "amount", 
   "oldfieldtype": "Currency", 
@@ -202,9 +230,17 @@
  }, 
  {
   "doctype": "DocField", 
+  "fieldname": "warehouse_and_reference", 
+  "fieldtype": "Section Break", 
+  "in_list_view": 0, 
+  "label": "Warehouse and Reference"
+ }, 
+ {
+  "doctype": "DocField", 
   "fieldname": "warehouse", 
   "fieldtype": "Link", 
   "hidden": 0, 
+  "in_list_view": 0, 
   "label": "Accepted Warehouse", 
   "oldfieldname": "warehouse", 
   "oldfieldtype": "Link", 
@@ -218,6 +254,7 @@
   "doctype": "DocField", 
   "fieldname": "conversion_factor", 
   "fieldtype": "Float", 
+  "in_list_view": 0, 
   "label": "Conversion Factor", 
   "oldfieldname": "conversion_factor", 
   "oldfieldtype": "Currency", 
@@ -231,6 +268,7 @@
   "doctype": "DocField", 
   "fieldname": "stock_uom", 
   "fieldtype": "Data", 
+  "in_list_view": 0, 
   "label": "Stock UOM", 
   "oldfieldname": "stock_uom", 
   "oldfieldtype": "Data", 
@@ -245,6 +283,7 @@
   "fieldname": "serial_no", 
   "fieldtype": "Text", 
   "in_filter": 1, 
+  "in_list_view": 1, 
   "label": "Serial No", 
   "no_copy": 1, 
   "oldfieldname": "serial_no", 
diff --git a/stock/doctype/serial_no/serial_no.js b/stock/doctype/serial_no/serial_no.js
index 9e1426c..0253ffb 100644
--- a/stock/doctype/serial_no/serial_no.js
+++ b/stock/doctype/serial_no/serial_no.js
@@ -46,7 +46,9 @@
 // territory
 // ----------
 cur_frm.fields_dict['territory'].get_query = function(doc,cdt,cdn) {
-	return 'SELECT `tabTerritory`.`name`,`tabTerritory`.`parent_territory` FROM `tabTerritory` WHERE `tabTerritory`.`is_group` = "No" AND `tabTerritory`.`docstatus`!= 2 AND `tabTerritory`.%(key)s LIKE "%s"	ORDER BY	`tabTerritory`.`name` ASC LIMIT 50';
+	return{
+		filters:{'is_group': "No"}
+	}
 }
 
 // Supplier
@@ -59,11 +61,22 @@
 //item code
 //----------
 cur_frm.fields_dict['item_code'].get_query = function(doc,cdt,cdn) {
- 	return erpnext.queries.item({
-		'ifnull(tabItem.has_serial_no, "No")': 'Yes'
-	});
+ 	return{
+		query:"controllers.queries.item_query",
+		filters:{
+			'has_serial_no': 'Yes'	
+		}
+	}	
 }
 
-cur_frm.fields_dict.customer.get_query = erpnext.utils.customer_query;
+cur_frm.fields_dict.customer.get_query = function(doc,cdt,cdn) {
+	return{
+		query:"controllers.queries.customer_query"
+	}
+}
 
-cur_frm.fields_dict.supplier.get_query = erpnext.utils.supplier_query;
\ No newline at end of file
+cur_frm.fields_dict.supplier.get_query = function(doc,cdt,cdn) {
+	return{
+		query:"controllers.queries.supplier_query"
+	}
+}
\ No newline at end of file
diff --git a/stock/doctype/stock_entry/stock_entry.js b/stock/doctype/stock_entry/stock_entry.js
index 468d3d7..3fc03cb 100644
--- a/stock/doctype/stock_entry/stock_entry.js
+++ b/stock/doctype/stock_entry/stock_entry.js
@@ -56,7 +56,9 @@
 			this.frm.fields_dict.delivery_note_no.get_query;
 		
 		this.frm.fields_dict.purchase_receipt_no.get_query = function() {
-			return { query: "stock.doctype.stock_entry.stock_entry.query_purchase_return_doc" };
+			return { 
+				filters:{ 'docstatus': 1 }
+			};
 		};
 		
 		this.frm.fields_dict.mtn_details.grid.get_field('item_code').get_query = function() {
@@ -81,8 +83,10 @@
 
 			this.frm.fields_dict["expense_adjustment_account"].get_query = function() {
 				return {
-					"query": "accounts.utils.get_account_list", 
-					"filters": { "company": me.frm.doc.company }
+					filters: { 
+						"company": me.frm.doc.company,
+						"group_or_ledger": "Ledger"
+					}
 				}
 			}
 		}
@@ -280,9 +284,12 @@
 }
 
 cur_frm.fields_dict['production_order'].get_query = function(doc) {
-	return 'select name from `tabProduction Order` \
-		where docstatus = 1 and qty > ifnull(produced_qty,0) AND %(key)s like "%s%%" \
-		order by name desc limit 50';
+	return{
+		filters:[
+			['Production Order', 'docstatus', '=', 1],
+			['Production Order', 'qty', '>','`tabProduction Order`.produced_qty']
+		]
+	}
 }
 
 cur_frm.cscript.purpose = function(doc, cdt, cdn) {
@@ -307,17 +314,21 @@
 	var d = locals[cdt][cdn];		
 	if(d.item_code) {
 		if (d.s_warehouse) {
-			return "select batch_no from `tabStock Ledger Entry` sle \
-				where item_code = '" + d.item_code + "' and warehouse = '" + d.s_warehouse +
-				"' and ifnull(is_cancelled, 'No') = 'No' and batch_no like '%s' \
-				and exists(select * from `tabBatch` where \
-				name = sle.batch_no and expiry_date >= '" + doc.posting_date + 
-				"' and docstatus != 2) group by batch_no having sum(actual_qty) > 0 \
-				order by batch_no desc limit 50";
+			return{
+				query: "stock.doctype.stock_entry.stock_entry.get_batch_no",
+				filters:{
+					'item_code': d.item_code,
+					's_warehouse': d.s_warehouse,
+					'posting_date': doc.posting_date
+				}
+			}			
 		} else {
-			return "SELECT name FROM tabBatch WHERE docstatus != 2 AND item = '" + 
-				d.item_code + "' and expiry_date >= '" + doc.posting_date + 
-				"' AND name like '%s' ORDER BY name DESC LIMIT 50";
+			return{
+				filters:[
+					['Batch', 'item', '=', d.item_code],
+					['Batch', 'expiry_date', '>=', doc.posting_date]
+				]
+			}
 		}		
 	} else {
 		msgprint("Please enter Item Code to get batch no");
@@ -374,6 +385,8 @@
 	}
 }
 
-cur_frm.fields_dict.customer.get_query = erpnext.utils.customer_query;
+cur_frm.fields_dict.customer.get_query = function(doc,cdt,cdn) {
+	return{ query:"controllers.queries.customer_query" } }
 
-cur_frm.fields_dict.supplier.get_query = erpnext.utils.supplier_query;
\ No newline at end of file
+cur_frm.fields_dict.supplier.get_query = function(doc,cdt,cdn) {
+	return{	query:"controllers.queries.supplier_query" } }
diff --git a/stock/doctype/stock_entry/stock_entry.py b/stock/doctype/stock_entry/stock_entry.py
index 2595f9b..4e2d484 100644
--- a/stock/doctype/stock_entry/stock_entry.py
+++ b/stock/doctype/stock_entry/stock_entry.py
@@ -25,6 +25,7 @@
 from webnotes import msgprint, _
 from stock.utils import get_incoming_rate
 from stock.stock_ledger import get_previous_sle
+from controllers.queries import get_match_cond
 import json
 
 sql = webnotes.conn.sql
@@ -718,24 +719,31 @@
 	return result and result[0] or {}
 	
 def query_sales_return_doc(doctype, txt, searchfield, start, page_len, filters):
+	from controllers.queries import get_match_cond
 	conditions = ""
 	if doctype == "Sales Invoice":
 		conditions = "and update_stock=1"
 	
 	return webnotes.conn.sql("""select name, customer, customer_name
 		from `tab%s` where docstatus = 1
-		and (`%s` like %%(txt)s or `customer` like %%(txt)s) %s
+			and (`%s` like %%(txt)s 
+				or `customer` like %%(txt)s) %s %s
 		order by name, customer, customer_name
-		limit %s""" % (doctype, searchfield, conditions, "%(start)s, %(page_len)s"),
-		{"txt": "%%%s%%" % txt, "start": start, "page_len": page_len}, as_list=True)
+		limit %s""" % (doctype, searchfield, conditions, 
+		get_match_cond(doctype, searchfield), "%(start)s, %(page_len)s"), 
+		{"txt": "%%%s%%" % txt, "start": start, "page_len": page_len}, 
+		as_list=True)
 	
 def query_purchase_return_doc(doctype, txt, searchfield, start, page_len, filters):
+	from controllers.queries import get_match_cond
 	return webnotes.conn.sql("""select name, supplier, supplier_name
 		from `tab%s` where docstatus = 1
-		and (`%s` like %%(txt)s or `supplier` like %%(txt)s)
+			and (`%s` like %%(txt)s 
+				or `supplier` like %%(txt)s) %s
 		order by name, supplier, supplier_name
-		limit %s""" % (doctype, searchfield, "%(start)s, %(page_len)s"),
-		{"txt": "%%%s%%" % txt, "start": start, "page_len": page_len}, as_list=True)
+		limit %s""" % (doctype, searchfield, get_match_cond(doctype, searchfield), 
+		"%(start)s, %(page_len)s"),	{"txt": "%%%s%%" % txt, "start": 
+		start, "page_len": page_len}, as_list=True)
 		
 def query_return_item(doctype, txt, searchfield, start, page_len, filters):
 	txt = txt.replace("%", "")
@@ -761,6 +769,26 @@
 
 	return result[start:start+page_len]
 
+def get_batch_no(doctype, txt, searchfield, start, page_len, filters):
+	from controllers.queries import get_match_cond
+
+	return webnotes.conn.sql("""select batch_no from `tabStock Ledger Entry` sle 
+			where item_code = '%(item_code)s' 
+				and warehouse = '%(s_warehouse)s'
+				and ifnull(is_cancelled, 'No') = 'No' 
+				and batch_no like '%(txt)s' 
+				and exists(select * from `tabBatch` 
+						where name = sle.batch_no 
+							and expiry_date >= %(posting_date)s 
+							and docstatus != 2) 
+			%(mcond)s
+			group by batch_no having sum(actual_qty) > 0 
+			order by batch_no desc 
+			limit %(start)s, %(page_len)s """ % {'item_code': filters['item_code'], 
+			's_warehouse': filters['s_warehouse'], 'posting_date': filters['posting_date'], 
+			'txt': "%%%s%%" % txt, 'mcond':get_match_cond(doctype, searchfield), 
+			"start": start, "page_len": page_len})
+
 def get_stock_items_for_return(ref_doclist, parentfields):
 	"""return item codes filtered from doclist, which are stock items"""
 	if isinstance(parentfields, basestring):
diff --git a/stock/doctype/stock_entry_detail/stock_entry_detail.txt b/stock/doctype/stock_entry_detail/stock_entry_detail.txt
index 8426ddca..f47e192 100644
--- a/stock/doctype/stock_entry_detail/stock_entry_detail.txt
+++ b/stock/doctype/stock_entry_detail/stock_entry_detail.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-03-29 18:22:12", 
   "docstatus": 0, 
-  "modified": "2013-03-29 19:43:04", 
+  "modified": "2013-07-10 14:54:23", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -30,6 +30,7 @@
   "fieldname": "s_warehouse", 
   "fieldtype": "Link", 
   "in_filter": 1, 
+  "in_list_view": 1, 
   "label": "Source Warehouse", 
   "no_copy": 1, 
   "oldfieldname": "s_warehouse", 
@@ -42,6 +43,7 @@
   "fieldname": "t_warehouse", 
   "fieldtype": "Link", 
   "in_filter": 1, 
+  "in_list_view": 1, 
   "label": "Target Warehouse", 
   "no_copy": 1, 
   "oldfieldname": "t_warehouse", 
@@ -54,6 +56,7 @@
   "fieldname": "item_code", 
   "fieldtype": "Link", 
   "in_filter": 1, 
+  "in_list_view": 1, 
   "label": "Item Code", 
   "oldfieldname": "item_code", 
   "oldfieldtype": "Link", 
@@ -66,6 +69,7 @@
   "doctype": "DocField", 
   "fieldname": "description", 
   "fieldtype": "Text", 
+  "in_list_view": 1, 
   "label": "Description", 
   "oldfieldname": "description", 
   "oldfieldtype": "Text", 
@@ -77,6 +81,7 @@
   "doctype": "DocField", 
   "fieldname": "qty", 
   "fieldtype": "Float", 
+  "in_list_view": 1, 
   "label": "Qty", 
   "oldfieldname": "qty", 
   "oldfieldtype": "Currency", 
@@ -87,6 +92,7 @@
   "doctype": "DocField", 
   "fieldname": "uom", 
   "fieldtype": "Link", 
+  "in_list_view": 0, 
   "label": "UOM", 
   "oldfieldname": "uom", 
   "oldfieldtype": "Link", 
@@ -98,6 +104,7 @@
   "doctype": "DocField", 
   "fieldname": "incoming_rate", 
   "fieldtype": "Currency", 
+  "in_list_view": 1, 
   "label": "Valuation Rate", 
   "oldfieldname": "incoming_rate", 
   "oldfieldtype": "Currency", 
diff --git a/stock/doctype/stock_ledger/stock_ledger.py b/stock/doctype/stock_ledger/stock_ledger.py
index 8fdb50e..5b3d660 100644
--- a/stock/doctype/stock_ledger/stock_ledger.py
+++ b/stock/doctype/stock_ledger/stock_ledger.py
@@ -222,9 +222,6 @@
 
 	def make_entry(self, args):
 		args.update({"doctype": "Stock Ledger Entry"})
-		if args.get("warehouse"):
-			args["warehouse_type"] = webnotes.conn.get_value('Warehouse' , args["warehouse"],
-				'warehouse_type')
 		sle = webnotes.bean([args])
 		sle.ignore_permissions = 1
 		sle.insert()
diff --git a/stock/doctype/stock_ledger/stock_ledger.txt b/stock/doctype/stock_ledger/stock_ledger.txt
index 1da37c6..afdaa4d 100644
--- a/stock/doctype/stock_ledger/stock_ledger.txt
+++ b/stock/doctype/stock_ledger/stock_ledger.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-01-10 16:34:30", 
   "docstatus": 0, 
-  "modified": "2013-01-22 14:57:24", 
+  "modified": "2013-07-10 14:54:23", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
diff --git a/stock/doctype/stock_ledger_entry/stock_ledger_entry.txt b/stock/doctype/stock_ledger_entry/stock_ledger_entry.txt
index 38005f7..6ca9cc6 100644
--- a/stock/doctype/stock_ledger_entry/stock_ledger_entry.txt
+++ b/stock/doctype/stock_ledger_entry/stock_ledger_entry.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-01-29 19:25:42", 
   "docstatus": 0, 
-  "modified": "2013-07-05 14:56:15", 
+  "modified": "2013-07-10 18:34:09", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -92,18 +92,6 @@
   "width": "100px"
  }, 
  {
-  "doctype": "DocField", 
-  "fieldname": "warehouse_type", 
-  "fieldtype": "Select", 
-  "in_filter": 1, 
-  "label": "Warehouse Type", 
-  "oldfieldname": "warehouse_type", 
-  "oldfieldtype": "Select", 
-  "options": "link:Warehouse Type", 
-  "read_only": 1, 
-  "search_index": 0
- }, 
- {
   "description": "The date at which current entry will get or has actually executed.", 
   "doctype": "DocField", 
   "fieldname": "posting_date", 
diff --git a/stock/doctype/stock_reconciliation/stock_reconciliation.js b/stock/doctype/stock_reconciliation/stock_reconciliation.js
index dd49683..b003e05 100644
--- a/stock/doctype/stock_reconciliation/stock_reconciliation.js
+++ b/stock/doctype/stock_reconciliation/stock_reconciliation.js
@@ -46,9 +46,9 @@
 		
 			this.frm.fields_dict["expense_account"].get_query = function() {
 				return {
-					"query": "accounts.utils.get_account_list", 
 					"filters": {
-						"company": me.frm.doc.company
+						'company': me.frm.doc.company,
+						'group_or_ledger': 'Ledger'
 					}
 				}
 			}
diff --git a/stock/doctype/stock_uom_replace_utility/stock_uom_replace_utility.js b/stock/doctype/stock_uom_replace_utility/stock_uom_replace_utility.js
index e022bb7..94b3bf0 100644
--- a/stock/doctype/stock_uom_replace_utility/stock_uom_replace_utility.js
+++ b/stock/doctype/stock_uom_replace_utility/stock_uom_replace_utility.js
@@ -15,7 +15,9 @@
 // along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 cur_frm.fields_dict['item_code'].get_query = function(doc) {
- 	return erpnext.queries.item_std();	
+ 	return {
+ 		query: "controllers.queries.item_std"
+ 	}	
 }
 
 //==================== Get Items Stock UOM =====================================================
diff --git a/stock/doctype/uom_conversion_detail/uom_conversion_detail.txt b/stock/doctype/uom_conversion_detail/uom_conversion_detail.txt
index 381c7f7..8b35f64 100644
--- a/stock/doctype/uom_conversion_detail/uom_conversion_detail.txt
+++ b/stock/doctype/uom_conversion_detail/uom_conversion_detail.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-02-22 01:28:04", 
   "docstatus": 0, 
-  "modified": "2013-03-07 07:03:34", 
+  "modified": "2013-07-10 14:54:25", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -29,6 +29,7 @@
   "doctype": "DocField", 
   "fieldname": "uom", 
   "fieldtype": "Link", 
+  "in_list_view": 0, 
   "label": "UOM", 
   "oldfieldname": "uom", 
   "oldfieldtype": "Link", 
@@ -38,6 +39,7 @@
   "doctype": "DocField", 
   "fieldname": "conversion_factor", 
   "fieldtype": "Float", 
+  "in_list_view": 1, 
   "label": "Conversion Factor", 
   "oldfieldname": "conversion_factor", 
   "oldfieldtype": "Float"
diff --git a/stock/doctype/warehouse/test_warehouse.py b/stock/doctype/warehouse/test_warehouse.py
index 10b49b6..34cc28c 100644
--- a/stock/doctype/warehouse/test_warehouse.py
+++ b/stock/doctype/warehouse/test_warehouse.py
@@ -2,19 +2,16 @@
 	[{
 		"doctype": "Warehouse",
 		"warehouse_name": "_Test Warehouse",
-		"warehouse_type": "_Test Warehouse Type",
 		"company": "_Test Company"
 	}],
 	[{
 		"doctype": "Warehouse",
 		"warehouse_name": "_Test Warehouse 1",
-		"warehouse_type": "_Test Warehouse Type",
 		"company": "_Test Company"
 	}],
 	[{
 		"doctype": "Warehouse",
 		"warehouse_name": "_Test Warehouse 2",
-		"warehouse_type": "_Test Warehouse Type",
 		"company": "_Test Company 1"
 	}]	
 ]
diff --git a/stock/doctype/warehouse/warehouse.py b/stock/doctype/warehouse/warehouse.py
index 7eb407c..1f9a32a 100644
--- a/stock/doctype/warehouse/warehouse.py
+++ b/stock/doctype/warehouse/warehouse.py
@@ -27,7 +27,12 @@
 	def __init__(self, doc, doclist=[]):
 		self.doc = doc
 		self.doclist = doclist
-		
+	
+	def autoname(self):
+		suffix = " - " + webnotes.conn.get_value("Company", self.doc.company, "abbr")
+		if not self.doc.warehouse_name.endswith(suffix):
+			self.doc.name = self.doc.warehouse_name + suffix
+	
 	def get_bin(self, item_code, warehouse=None):
 		warehouse = warehouse or self.doc.name
 		bin = sql("select name from tabBin where item_code = %s and \
@@ -47,15 +52,7 @@
 			bin_obj = get_obj('Bin', bin)
 		return bin_obj
 	
-
-	def validate_asset(self, item_code):
-		if webnotes.conn.get_value("Item", item_code, "is_asset_item") == 'Yes' \
-				and self.doc.warehouse_type != 'Fixed Asset':
-			msgprint("""Fixed Asset Item %s can only be transacted in a 
-				Fixed Asset type Warehouse""" % item_code, raise_exception=1)
-
 	def update_bin(self, args):
-		self.validate_asset(args.get("item_code"))
 		is_stock_item = webnotes.conn.get_value('Item', args.get("item_code"), 'is_stock_item')
 		if is_stock_item == 'Yes':
 			bin = self.get_bin(args.get("item_code"))
@@ -68,14 +65,7 @@
 	def validate(self):
 		if self.doc.email_id and not validate_email_add(self.doc.email_id):
 				msgprint("Please enter valid Email Id", raise_exception=1)
-		if not self.doc.warehouse_type:
-			msgprint("Warehouse Type is Mandatory", raise_exception=1)
-			
-		wt = sql("select warehouse_type from `tabWarehouse` where name ='%s'" % self.doc.name)
-		if wt and cstr(self.doc.warehouse_type) != cstr(wt[0][0]):
-			sql("""update `tabStock Ledger Entry` set warehouse_type = %s 
-				where warehouse = %s""", (self.doc.warehouse_type, self.doc.name))
-	
+
 	def merge_warehouses(self):
 		webnotes.conn.auto_commit_on_many_writes = 1
 		
diff --git a/stock/doctype/warehouse/warehouse.txt b/stock/doctype/warehouse/warehouse.txt
index 3873408..95b0b52 100644
--- a/stock/doctype/warehouse/warehouse.txt
+++ b/stock/doctype/warehouse/warehouse.txt
@@ -2,20 +2,18 @@
  {
   "creation": "2013-03-07 18:50:32", 
   "docstatus": 0, 
-  "modified": "2013-07-05 15:02:12", 
+  "modified": "2013-07-10 18:46:40", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
  {
   "allow_rename": 1, 
-  "autoname": "field:warehouse_name", 
   "description": "A logical Warehouse against which stock entries are made.", 
   "doctype": "DocType", 
   "document_type": "Master", 
   "icon": "icon-building", 
   "module": "Stock", 
-  "name": "__common__", 
-  "search_fields": "warehouse_type"
+  "name": "__common__"
  }, 
  {
   "doctype": "DocField", 
@@ -59,19 +57,6 @@
  }, 
  {
   "doctype": "DocField", 
-  "fieldname": "warehouse_type", 
-  "fieldtype": "Link", 
-  "in_filter": 1, 
-  "in_list_view": 1, 
-  "label": "Warehouse Type", 
-  "oldfieldname": "warehouse_type", 
-  "oldfieldtype": "Link", 
-  "options": "Warehouse Type", 
-  "permlevel": 0, 
-  "reqd": 1
- }, 
- {
-  "doctype": "DocField", 
   "fieldname": "company", 
   "fieldtype": "Link", 
   "in_filter": 1, 
@@ -80,12 +65,13 @@
   "oldfieldtype": "Link", 
   "options": "Company", 
   "permlevel": 0, 
+  "reqd": 1, 
   "search_index": 1
  }, 
  {
   "doctype": "DocField", 
   "fieldname": "column_break_4", 
-  "fieldtype": "Column Break", 
+  "fieldtype": "Section Break", 
   "permlevel": 0
  }, 
  {
diff --git a/stock/doctype/warehouse_user/warehouse_user.txt b/stock/doctype/warehouse_user/warehouse_user.txt
index 6912e30..fee6221 100644
--- a/stock/doctype/warehouse_user/warehouse_user.txt
+++ b/stock/doctype/warehouse_user/warehouse_user.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-02-22 01:28:05", 
   "docstatus": 0, 
-  "modified": "2013-03-07 07:03:34", 
+  "modified": "2013-07-10 14:54:25", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -17,6 +17,7 @@
   "doctype": "DocField", 
   "fieldname": "user", 
   "fieldtype": "Link", 
+  "in_list_view": 1, 
   "label": "User", 
   "name": "__common__", 
   "options": "Profile", 
diff --git a/stock/page/stock_home/stock_home.js b/stock/page/stock_home/stock_home.js
index 4528cd4..6c315ad 100644
--- a/stock/page/stock_home/stock_home.js
+++ b/stock/page/stock_home/stock_home.js
@@ -123,11 +123,6 @@
 				"doctype":"Brand",
 				"label": wn._("Brand"),
 				"description": wn._("Brand master.")
-			},
-			{
-				"label": wn._("Warehouse Type"),
-				"doctype":"Warehouse Type",
-				"description": wn._("Types of warehouse")
 			}
 		]
 	},
diff --git a/support/doctype/customer_issue/customer_issue.js b/support/doctype/customer_issue/customer_issue.js
index 558ef32..2268493 100644
--- a/support/doctype/customer_issue/customer_issue.js
+++ b/support/doctype/customer_issue/customer_issue.js
@@ -18,10 +18,9 @@
 // TODO commonify this code
 erpnext.support.CustomerIssue = wn.ui.form.Controller.extend({
 	refresh: function() {
-		if(cur_frm.doc.docstatus==1 && (cur_frm.doc.status=='Open' || 
-			cur_frm.doc.status == 'Work In Progress')) {
-				cur_frm.add_custom_button('Make Maintenance Visit', this.make_maintenance_visit)
-			}
+		if((cur_frm.doc.status=='Open' || cur_frm.doc.status == 'Work In Progress')) {
+			cur_frm.add_custom_button('Make Maintenance Visit', this.make_maintenance_visit)
+		}
 	}, 
 	
 	customer: function() {
@@ -65,24 +64,29 @@
 }
 
 cur_frm.fields_dict['customer_address'].get_query = function(doc, cdt, cdn) {
-	return 'SELECT name,address_line1,city FROM tabAddress WHERE customer = "'+ doc.customer +
-		'" AND docstatus != 2 AND name LIKE "%s" ORDER BY name ASC LIMIT 50';
+	return{
+		filters:{ 'customer': doc.customer}
+	}
 }
 
 cur_frm.fields_dict['contact_person'].get_query = function(doc, cdt, cdn) {
-	return 'SELECT name,CONCAT(first_name," ",ifnull(last_name,"")) As FullName,department,designation \
-		FROM tabContact WHERE customer = "'	+ doc.customer +
-		'" AND docstatus != 2 AND name LIKE "%s" ORDER BY name ASC LIMIT 50';
+	return{
+		filters:{ 'customer': doc.customer}
+	}
 }
 
 cur_frm.fields_dict['serial_no'].get_query = function(doc, cdt, cdn) {
-	var cond = '';
-	if(doc.item_code) cond = ' AND `tabSerial No`.item_code = "'+ doc.item_code +'"';
-	if(doc.customer) cond += ' AND `tabSerial No`.customer = "' + doc.customer + '"';
-	return 'SELECT `tabSerial No`.name, `tabSerial No`.description \
-		FROM `tabSerial No` \
-		WHERE `tabSerial No`.docstatus != 2 AND `tabSerial No`.status = "Delivered" \
-		AND `tabSerial No`.name LIKE "%s" ' + cond + ' ORDER BY `tabSerial No`.name ASC LIMIT 50';
+	var cond = [];
+	var filter = [
+		['Serial No', 'docstatus', '!=', 2],
+		['Serial No', 'status', '=', "Delivered"]
+	];
+	if(doc.item_code) cond = ['Serial No', 'item_code', '=', doc.item_code];
+	if(doc.customer) cond = ['Serial No', 'customer', '=', doc.customer];
+	filter.push(cond);
+	return{
+		filters:filter
+	}
 }
 
 cur_frm.add_fetch('serial_no', 'item_code', 'item_code');
@@ -97,15 +101,16 @@
 
 cur_frm.fields_dict['item_code'].get_query = function(doc, cdt, cdn) {
 	if(doc.serial_no) {
-		return 'SELECT `tabSerial No`.item_code, `tabSerial No`.description \
-			FROM `tabSerial No` \
-			WHERE `tabSerial No`.docstatus != 2 AND `tabSerial No`.name = "' + doc.serial_no +
-			'" AND `tabSerial No`.item_code LIKE "%s" ORDER BY `tabSerial No`.item_code ASC LIMIT 50';
+		return{
+			filters:{ 'serial_no': doc.serial_no}
+		}		
 	}
 	else{
-		return 'SELECT `tabItem`.name, `tabItem`.item_name, `tabItem`.description \
-			FROM `tabItem` \
-			WHERE `tabItem`.docstatus != 2 AND `tabItem`.%(key)s LIKE "%s" ORDER BY `tabItem`.name ASC LIMIT 50';
+		return{
+			filters:[
+				['Item', 'docstatus', '!=', 2]
+			]
+		}		
 	}
 }
 
@@ -113,10 +118,10 @@
 cur_frm.add_fetch('item_code', 'description', 'description');
 
 cur_frm.fields_dict['territory'].get_query = function(doc,cdt,cdn) {
-	return 'SELECT `tabTerritory`.`name`,`tabTerritory`.`parent_territory` \
-		FROM `tabTerritory` \
-		WHERE `tabTerritory`.`is_group` = "No" AND `tabTerritory`.`docstatus`!= 2 \
-		AND `tabTerritory`.%(key)s LIKE "%s"	ORDER BY	`tabTerritory`.`name` ASC LIMIT 50';
+	return{
+		filters:{ 'is_group': "No"}
+	}
 }
 
-cur_frm.fields_dict.customer.get_query = erpnext.utils.customer_query;
\ No newline at end of file
+cur_frm.fields_dict.customer.get_query = function(doc,cdt,cdn) {
+	return{	query:"controllers.queries.customer_query" } }
diff --git a/support/doctype/customer_issue/customer_issue.txt b/support/doctype/customer_issue/customer_issue.txt
index 1850f57..5f89ade 100644
--- a/support/doctype/customer_issue/customer_issue.txt
+++ b/support/doctype/customer_issue/customer_issue.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-01-10 16:34:30", 
   "docstatus": 0, 
-  "modified": "2013-07-05 14:34:37", 
+  "modified": "2013-07-10 13:13:27", 
   "modified_by": "Administrator", 
   "owner": "harshada@webnotestech.com"
  }, 
@@ -10,7 +10,7 @@
   "autoname": "naming_series:", 
   "doctype": "DocType", 
   "icon": "icon-bug", 
-  "is_submittable": 1, 
+  "is_submittable": 0, 
   "module": "Support", 
   "name": "__common__", 
   "search_fields": "status,customer,customer_name,allocated_to,allocated_on, territory"
@@ -24,6 +24,8 @@
   "permlevel": 0
  }, 
  {
+  "amend": 0, 
+  "cancel": 1, 
   "create": 1, 
   "doctype": "DocPerm", 
   "name": "__common__", 
@@ -33,6 +35,8 @@
   "permlevel": 0, 
   "read": 1, 
   "report": 1, 
+  "role": "Maintenance User", 
+  "submit": 0, 
   "write": 1
  }, 
  {
@@ -412,28 +416,6 @@
   "width": "150px"
  }, 
  {
-  "amend": 1, 
-  "cancel": 1, 
-  "doctype": "DocPerm", 
-  "role": "System Manager", 
-  "submit": 1
- }, 
- {
-  "amend": 1, 
-  "cancel": 1, 
-  "doctype": "DocPerm", 
-  "role": "Maintenance Manager", 
-  "submit": 1
- }, 
- {
-  "amend": 1, 
-  "cancel": 1, 
-  "doctype": "DocPerm", 
-  "role": "Maintenance User", 
-  "submit": 1
- }, 
- {
-  "doctype": "DocPerm", 
-  "role": "Guest"
+  "doctype": "DocPerm"
  }
 ]
\ No newline at end of file
diff --git a/support/doctype/maintenance_schedule/maintenance_schedule.js b/support/doctype/maintenance_schedule/maintenance_schedule.js
index ec75289..fab9b2a 100644
--- a/support/doctype/maintenance_schedule/maintenance_schedule.js
+++ b/support/doctype/maintenance_schedule/maintenance_schedule.js
@@ -17,6 +17,30 @@
 wn.provide("erpnext.support");
 // TODO commonify this code
 erpnext.support.MaintenanceSchedule = wn.ui.form.Controller.extend({
+	refresh: function() {
+		if (this.frm.doc.docstatus===0) {
+			cur_frm.add_custom_button(wn._('From Sales Order'), 
+				function() {
+					wn.model.map_current_doc({
+						method: "selling.doctype.sales_order.sales_order.make_maintenance_schedule",
+						source_doctype: "Sales Order",
+						get_query_filters: {
+							docstatus: 1,
+							order_type: cur_frm.doc.order_type,
+							customer: cur_frm.doc.customer || undefined,
+							company: cur_frm.doc.company
+						}
+					})
+				});
+		} else if (this.frm.doc.docstatus===1) {
+			cur_frm.add_custom_button(wn._("Make Maintenance Visit"), function() {
+				wn.model.open_mapped_doc({
+					method: "support.doctype.maintenance_schedule.maintenance_schedule.make_maintenance_visit",
+					source_name: cur_frm.doc.name
+				})
+			})
+		}
+	},
 	customer: function() {
 		var me = this;
 		if(this.frm.doc.customer) {
@@ -27,23 +51,8 @@
 					if(!r.exc) me.frm.refresh_fields();
 				}
 			});
-			
-			// TODO shift this to depends_on
-			unhide_field(['customer_address', 'contact_person', 'customer_name',
-				'address_display', 'contact_display', 'contact_mobile', 'contact_email', 
-				'territory', 'customer_group']);
-			
-		}
+		}		
 	}, 
-	
-	get_items: function() {
-		wn.model.map_current_doc({
-			method: "selling.doctype.sales_order.sales_order.make_maintenance_schedule",
-			source_name: cur_frm.doc.quotation_no,
-		});
-		unhide_field(['customer_address', 'contact_person', 'customer_name', 'address_display', 
-			'contact_display', 'contact_mobile', 'contact_email', 'territory', 'customer_group']);
-	}
 });
 
 $.extend(cur_frm.cscript, new erpnext.support.MaintenanceSchedule({frm: cur_frm}));
@@ -62,16 +71,22 @@
 }
 
 cur_frm.fields_dict['customer_address'].get_query = function(doc, cdt, cdn) {
-  return 'SELECT name,address_line1,city FROM tabAddress WHERE customer = "'+ doc.customer +'" AND docstatus != 2 AND name LIKE "%s" ORDER BY name ASC LIMIT 50';
+  return{
+    filters:{ 'customer': doc.customer}
+  }
 }
 
 cur_frm.fields_dict['contact_person'].get_query = function(doc, cdt, cdn) {
-  return 'SELECT name,CONCAT(first_name," ",ifnull(last_name,"")) As FullName,department,designation FROM tabContact WHERE customer = "'+ doc.customer +'" AND docstatus != 2 AND name LIKE "%s" ORDER BY name ASC LIMIT 50';
+  return{
+    filters:{ 'customer': doc.customer}
+  }
 }
 
 //
 cur_frm.fields_dict['item_maintenance_detail'].grid.get_field('item_code').get_query = function(doc, cdt, cdn) {
-  return 'SELECT tabItem.name,tabItem.item_name,tabItem.description FROM tabItem WHERE tabItem.is_service_item="Yes" AND tabItem.docstatus != 2 AND tabItem.%(key)s LIKE "%s" LIMIT 50';
+  return{
+    filters:{ 'is_service_item': "Yes"}
+  }
 }
 
 cur_frm.cscript.item_code = function(doc, cdt, cdn) {
@@ -82,15 +97,6 @@
   }
 }
 
-cur_frm.fields_dict['sales_order_no'].get_query = function(doc) {
-  doc = locals[this.doctype][this.docname];
-  var cond = '';
-  if(doc.customer) {
-    cond = '`tabSales Order`.customer = "'+doc.customer+'" AND';
-  }
-  return repl('SELECT DISTINCT `tabSales Order`.name FROM `tabSales Order`, `tabSales Order Item`, `tabItem` WHERE `tabSales Order`.company = "%(company)s" AND `tabSales Order`.docstatus = 1 AND `tabSales Order Item`.parent = `tabSales Order`.name AND `tabSales Order Item`.item_code = `tabItem`.name AND `tabItem`.is_service_item = "Yes" AND %(cond)s `tabSales Order`.name LIKE "%s" ORDER BY `tabSales Order`.name DESC LIMIT 50', {company:doc.company, cond:cond});
-}
-
 cur_frm.cscript.periodicity = function(doc, cdt, cdn){
   var d = locals[cdt][cdn];
   if(d.start_date && d.end_date){
@@ -118,7 +124,10 @@
 }
 
 cur_frm.fields_dict['territory'].get_query = function(doc,cdt,cdn) {
-  return 'SELECT `tabTerritory`.`name`,`tabTerritory`.`parent_territory` FROM `tabTerritory` WHERE `tabTerritory`.`is_group` = "No" AND `tabTerritory`.`docstatus`!= 2 AND `tabTerritory`.%(key)s LIKE "%s"  ORDER BY  `tabTerritory`.`name` ASC LIMIT 50';
+  return{
+    filters:{ 'is_group': "No"}
+  }  
 }
 
-cur_frm.fields_dict.customer.get_query = erpnext.utils.customer_query;
\ No newline at end of file
+cur_frm.fields_dict.customer.get_query = function(doc,cdt,cdn) {
+  return{ query:"controllers.queries.customer_query" } }
diff --git a/support/doctype/maintenance_schedule/maintenance_schedule.py b/support/doctype/maintenance_schedule/maintenance_schedule.py
index ee7f45a..0e2d1f9 100644
--- a/support/doctype/maintenance_schedule/maintenance_schedule.py
+++ b/support/doctype/maintenance_schedule/maintenance_schedule.py
@@ -77,8 +77,8 @@
 				self.update_amc_date(d.serial_no, d.end_date)
 
 			if d.incharge_name not in email_map:
-				e = sql("select email_id, name from `tabSales Person` where name='%s' " %(d.incharge_name),as_dict=1)[0]
-				email_map[d.incharge_name] = (e['email_id'])
+				email_map[d.incharge_name] = webnotes.bean("Sales Person", 
+					d.incharge_name).run_method("get_email_id")
 
 			scheduled_date =sql("select scheduled_date from `tabMaintenance Schedule Detail` \
 				where incharge_name='%s' and item_code='%s' and parent='%s' " %(d.incharge_name, \
@@ -312,6 +312,9 @@
 def make_maintenance_visit(source_name, target_doclist=None):
 	from webnotes.model.mapper import get_mapped_doclist
 	
+	def update_status(source, target, parent):
+		target.maintenance_type = "Scheduled"
+	
 	doclist = get_mapped_doclist("Maintenance Schedule", source_name, {
 		"Maintenance Schedule": {
 			"doctype": "Maintenance Visit", 
@@ -320,13 +323,15 @@
 			},
 			"validation": {
 				"docstatus": ["=", 1]
-			}
+			},
+			"postprocess": update_status
 		}, 
 		"Maintenance Schedule Item": {
 			"doctype": "Maintenance Visit Purpose", 
 			"field_map": {
 				"parent": "prevdoc_docname", 
-				"parenttype": "prevdoc_doctype"
+				"parenttype": "prevdoc_doctype",
+				"incharge_name": "service_person"
 			}
 		}
 	}, target_doclist)
diff --git a/support/doctype/maintenance_schedule/maintenance_schedule.txt b/support/doctype/maintenance_schedule/maintenance_schedule.txt
index fc95ec6..0491946 100644
--- a/support/doctype/maintenance_schedule/maintenance_schedule.txt
+++ b/support/doctype/maintenance_schedule/maintenance_schedule.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-01-10 16:34:30", 
   "docstatus": 0, 
-  "modified": "2013-07-07 12:18:51", 
+  "modified": "2013-07-10 12:18:19", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -24,13 +24,19 @@
   "permlevel": 0
  }, 
  {
+  "amend": 1, 
+  "cancel": 1, 
+  "create": 1, 
   "doctype": "DocPerm", 
   "name": "__common__", 
   "parent": "Maintenance Schedule", 
   "parentfield": "permissions", 
   "parenttype": "DocType", 
+  "permlevel": 0, 
   "read": 1, 
-  "report": 1
+  "report": 1, 
+  "submit": 1, 
+  "write": 1
  }, 
  {
   "doctype": "DocType", 
@@ -42,7 +48,7 @@
   "fieldtype": "Section Break", 
   "label": "Customer Details", 
   "oldfieldtype": "Section Break", 
-  "options": "Simple"
+  "options": "icon-user"
  }, 
  {
   "doctype": "DocField", 
@@ -97,6 +103,7 @@
   "doctype": "DocField", 
   "fieldname": "address_display", 
   "fieldtype": "Small Text", 
+  "hidden": 1, 
   "label": "Address", 
   "read_only": 1
  }, 
@@ -104,20 +111,23 @@
   "doctype": "DocField", 
   "fieldname": "contact_display", 
   "fieldtype": "Small Text", 
+  "hidden": 1, 
   "label": "Contact", 
   "read_only": 1
  }, 
  {
   "doctype": "DocField", 
   "fieldname": "contact_mobile", 
-  "fieldtype": "Text", 
+  "fieldtype": "Data", 
+  "hidden": 1, 
   "label": "Mobile No", 
   "read_only": 1
  }, 
  {
   "doctype": "DocField", 
   "fieldname": "contact_email", 
-  "fieldtype": "Text", 
+  "fieldtype": "Data", 
+  "hidden": 1, 
   "label": "Contact Email", 
   "print_hide": 1, 
   "read_only": 1
@@ -202,26 +212,7 @@
   "fieldtype": "Section Break", 
   "label": "Items", 
   "oldfieldtype": "Section Break", 
-  "options": "Simple"
- }, 
- {
-  "doctype": "DocField", 
-  "fieldname": "sales_order_no", 
-  "fieldtype": "Link", 
-  "in_filter": 1, 
-  "label": "Sales Order No", 
-  "oldfieldname": "sales_order_no", 
-  "oldfieldtype": "Link", 
-  "options": "Sales Order", 
-  "search_index": 1
- }, 
- {
-  "doctype": "DocField", 
-  "fieldname": "get_items", 
-  "fieldtype": "Button", 
-  "label": "Get Items", 
-  "oldfieldtype": "Button", 
-  "report_hide": 1
+  "options": "icon-shopping-cart"
  }, 
  {
   "doctype": "DocField", 
@@ -238,7 +229,7 @@
   "fieldtype": "Section Break", 
   "label": "Schedule", 
   "oldfieldtype": "Section Break", 
-  "options": "Simple"
+  "options": "icon-time"
  }, 
  {
   "doctype": "DocField", 
@@ -258,41 +249,11 @@
   "read_only": 1
  }, 
  {
-  "amend": 1, 
-  "cancel": 1, 
-  "create": 1, 
   "doctype": "DocPerm", 
-  "permlevel": 0, 
-  "role": "System Manager", 
-  "submit": 1, 
-  "write": 1
+  "role": "System Manager"
  }, 
  {
-  "amend": 0, 
-  "cancel": 0, 
-  "create": 0, 
   "doctype": "DocPerm", 
-  "permlevel": 1, 
-  "role": "System Manager", 
-  "submit": 0
- }, 
- {
-  "amend": 1, 
-  "cancel": 1, 
-  "create": 1, 
-  "doctype": "DocPerm", 
-  "permlevel": 0, 
-  "role": "Maintenance Manager", 
-  "submit": 1, 
-  "write": 1
- }, 
- {
-  "amend": 0, 
-  "cancel": 0, 
-  "create": 0, 
-  "doctype": "DocPerm", 
-  "permlevel": 1, 
-  "role": "Maintenance Manager", 
-  "submit": 0
+  "role": "Maintenance Manager"
  }
 ]
\ No newline at end of file
diff --git a/support/doctype/maintenance_schedule_detail/maintenance_schedule_detail.txt b/support/doctype/maintenance_schedule_detail/maintenance_schedule_detail.txt
index 0aa4d0d..e55a69c 100644
--- a/support/doctype/maintenance_schedule_detail/maintenance_schedule_detail.txt
+++ b/support/doctype/maintenance_schedule_detail/maintenance_schedule_detail.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-02-22 01:28:05", 
   "docstatus": 0, 
-  "modified": "2013-03-07 07:03:23", 
+  "modified": "2013-07-10 14:54:10", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -30,6 +30,7 @@
   "fieldname": "item_code", 
   "fieldtype": "Link", 
   "in_filter": 1, 
+  "in_list_view": 1, 
   "label": "Item Code", 
   "oldfieldname": "item_code", 
   "oldfieldtype": "Link", 
@@ -43,6 +44,7 @@
   "fieldname": "item_name", 
   "fieldtype": "Data", 
   "in_filter": 0, 
+  "in_list_view": 1, 
   "label": "Item Name", 
   "oldfieldname": "item_name", 
   "oldfieldtype": "Data", 
@@ -54,6 +56,7 @@
   "fieldname": "scheduled_date", 
   "fieldtype": "Date", 
   "in_filter": 1, 
+  "in_list_view": 1, 
   "label": "Scheduled Date", 
   "oldfieldname": "scheduled_date", 
   "oldfieldtype": "Date", 
@@ -65,6 +68,7 @@
   "fieldname": "actual_date", 
   "fieldtype": "Date", 
   "hidden": 1, 
+  "in_list_view": 0, 
   "label": "Actual Date", 
   "no_copy": 1, 
   "oldfieldname": "actual_date", 
@@ -78,6 +82,7 @@
   "fieldname": "incharge_name", 
   "fieldtype": "Link", 
   "in_filter": 1, 
+  "in_list_view": 1, 
   "label": "Incharge Name", 
   "oldfieldname": "incharge_name", 
   "oldfieldtype": "Link", 
@@ -90,6 +95,7 @@
   "fieldname": "serial_no", 
   "fieldtype": "Small Text", 
   "in_filter": 1, 
+  "in_list_view": 1, 
   "label": "Serial No", 
   "no_copy": 0, 
   "oldfieldname": "serial_no", 
diff --git a/support/doctype/maintenance_schedule_item/maintenance_schedule_item.txt b/support/doctype/maintenance_schedule_item/maintenance_schedule_item.txt
index 3a95b2c..648a328 100644
--- a/support/doctype/maintenance_schedule_item/maintenance_schedule_item.txt
+++ b/support/doctype/maintenance_schedule_item/maintenance_schedule_item.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-02-22 01:28:05", 
   "docstatus": 0, 
-  "modified": "2013-03-07 07:03:24", 
+  "modified": "2013-07-10 14:54:10", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -30,6 +30,7 @@
   "fieldname": "item_code", 
   "fieldtype": "Link", 
   "in_filter": 1, 
+  "in_list_view": 1, 
   "label": "Item Code", 
   "oldfieldname": "item_code", 
   "oldfieldtype": "Link", 
@@ -41,6 +42,7 @@
   "doctype": "DocField", 
   "fieldname": "item_name", 
   "fieldtype": "Data", 
+  "in_list_view": 1, 
   "label": "Item Name", 
   "oldfieldname": "item_name", 
   "oldfieldtype": "Data", 
@@ -50,6 +52,7 @@
   "doctype": "DocField", 
   "fieldname": "description", 
   "fieldtype": "Data", 
+  "in_list_view": 1, 
   "label": "Description", 
   "oldfieldname": "description", 
   "oldfieldtype": "Data", 
@@ -59,9 +62,17 @@
  }, 
  {
   "doctype": "DocField", 
+  "fieldname": "schedule_details", 
+  "fieldtype": "Section Break", 
+  "in_list_view": 0, 
+  "label": "Schedule Details"
+ }, 
+ {
+  "doctype": "DocField", 
   "fieldname": "start_date", 
   "fieldtype": "Date", 
   "in_filter": 1, 
+  "in_list_view": 1, 
   "label": "Start Date", 
   "oldfieldname": "start_date", 
   "oldfieldtype": "Date", 
@@ -73,6 +84,7 @@
   "fieldname": "end_date", 
   "fieldtype": "Date", 
   "in_filter": 1, 
+  "in_list_view": 1, 
   "label": "End Date", 
   "oldfieldname": "end_date", 
   "oldfieldtype": "Date", 
@@ -83,6 +95,7 @@
   "doctype": "DocField", 
   "fieldname": "periodicity", 
   "fieldtype": "Select", 
+  "in_list_view": 1, 
   "label": "Periodicity", 
   "oldfieldname": "periodicity", 
   "oldfieldtype": "Select", 
@@ -102,7 +115,7 @@
   "fieldname": "incharge_name", 
   "fieldtype": "Link", 
   "in_filter": 1, 
-  "label": "Incharge Name", 
+  "label": "Sales Person Incharge", 
   "oldfieldname": "incharge_name", 
   "oldfieldtype": "Link", 
   "options": "Sales Person", 
@@ -111,6 +124,12 @@
  }, 
  {
   "doctype": "DocField", 
+  "fieldname": "reference", 
+  "fieldtype": "Section Break", 
+  "label": "Reference"
+ }, 
+ {
+  "doctype": "DocField", 
   "fieldname": "serial_no", 
   "fieldtype": "Small Text", 
   "label": "Serial No", 
diff --git a/support/doctype/maintenance_visit/maintenance_visit.js b/support/doctype/maintenance_visit/maintenance_visit.js
index 6c282c0..0b0d010 100644
--- a/support/doctype/maintenance_visit/maintenance_visit.js
+++ b/support/doctype/maintenance_visit/maintenance_visit.js
@@ -17,6 +17,48 @@
 wn.provide("erpnext.support");
 // TODO commonify this code
 erpnext.support.MaintenanceVisit = wn.ui.form.Controller.extend({
+	refresh: function() {
+		if (this.frm.doc.docstatus===0) {
+			cur_frm.add_custom_button(wn._('From Maintenance Schedule'), 
+				function() {
+					wn.model.map_current_doc({
+						method: "support.doctype.maintenance_schedule.maintenance_schedule.make_maintenance_visit",
+						source_doctype: "Maintenance Schedule",
+						get_query_filters: {
+							docstatus: 1,
+							customer: cur_frm.doc.customer || undefined,
+							company: cur_frm.doc.company
+						}
+					})
+				});
+			cur_frm.add_custom_button(wn._('From Customer Issue'), 
+				function() {
+					wn.model.map_current_doc({
+						method: "support.doctype.customer_issue.customer_issue.make_maintenance_visit",
+						source_doctype: "Customer Issue",
+						get_query_filters: {
+							status: ["in", "Open, Work in Progress"],
+							customer: cur_frm.doc.customer || undefined,
+							company: cur_frm.doc.company
+						}
+					})
+				});
+			cur_frm.add_custom_button(wn._('From Sales Order'), 
+				function() {
+					wn.model.map_current_doc({
+						method: "selling.doctype.sales_order.sales_order.make_maintenance_visit",
+						source_doctype: "Sales Order",
+						get_query_filters: {
+							docstatus: 1,
+							order_type: cur_frm.doc.order_type,
+							customer: cur_frm.doc.customer || undefined,
+							company: cur_frm.doc.company
+						}
+					})
+				});
+		}
+		cur_frm.cscript.hide_contact_info();			
+	},
 	customer: function() {
 		var me = this;
 		if(this.frm.doc.customer) {
@@ -29,29 +71,9 @@
 			});
 			
 			// TODO shift this to depends_on
-			hide_contact_info(this.frm.doc);			
+			cur_frm.cscript.hide_contact_info();			
 		}
 	}, 
-	
-	get_items: function() {
-		if(cur_frm.doc.sales_order_no) {
-			wn.model.map_current_doc({
-				method: "selling.doctype.sales_order.sales_order.make_maintenance_visit",
-				source_name: cur_frm.doc.quotation_no,
-			});
-		} else if (cur_frm.doc.customer_issue_no) {
-			wn.model.map_current_doc({
-				method: "support.doctype.customer_issue.customer_issue.make_maintenance_visit",
-				source_name: cur_frm.doc.quotation_no,
-			});
-		} else if (cur_frm.doc.maintenance_schedule) {
-			wn.model.map_current_doc({
-				method: "support.doctype.maintenance_schedule.maintenance_schedule\
-					.make_maintenance_visit",
-				source_name: cur_frm.doc.quotation_no,
-			});
-		}	
-	}
 });
 
 $.extend(cur_frm.cscript, new erpnext.support.MaintenanceVisit({frm: cur_frm}));
@@ -59,17 +81,11 @@
 cur_frm.cscript.onload = function(doc, dt, dn) {
 	if(!doc.status) set_multiple(dt,dn,{status:'Draft'});
 	if(doc.__islocal) set_multiple(dt,dn,{mntc_date:get_today()});
-	hide_contact_info(doc);
+	cur_frm.cscript.hide_contact_info();			
 }
 
-var hide_contact_info = function(doc) {
-	if(doc.customer) $(cur_frm.fields_dict.contact_info_section.row.wrapper).toggle(true);
-	else $(cur_frm.fields_dict.contact_info_section.row.wrapper).toggle(false);
-	
-}
-
-cur_frm.cscript.refresh = function(doc) {
-	hide_contact_info(doc);
+cur_frm.cscript.hide_contact_info = function() {
+	cur_frm.toggle_display("contact_info_section", cur_frm.doc.customer ? true : false);
 }
 
 cur_frm.cscript.customer_address = cur_frm.cscript.contact_person = function(doc,dt,dn) {		
@@ -77,23 +93,21 @@
 }
 
 cur_frm.fields_dict['customer_address'].get_query = function(doc, cdt, cdn) {
-	return 'SELECT name,address_line1,city FROM tabAddress WHERE customer = "'+ doc.customer +'" AND docstatus != 2 AND name LIKE "%s" ORDER BY name ASC LIMIT 50';
+	return{
+    	filters:{'customer': doc.customer}
+  	}
 }
 
 cur_frm.fields_dict['contact_person'].get_query = function(doc, cdt, cdn) {
-	return 'SELECT name,CONCAT(first_name," ",ifnull(last_name,"")) As FullName,department,designation FROM tabContact WHERE customer = "'+ doc.customer +'" AND docstatus != 2 AND name LIKE "%s" ORDER BY name ASC LIMIT 50';
-}
-
-cur_frm.cscript.get_items = function(doc, dt, dn) {
-	var callback = function(r,rt) { 
-		hide_contact_info(doc);
-		cur_frm.refresh();
-	}
-	get_server_fields('fetch_items','','',doc, dt, dn,1,callback);
+  	return{
+    	filters:{'customer': doc.customer}
+  	}
 }
 
 cur_frm.fields_dict['maintenance_visit_details'].grid.get_field('item_code').get_query = function(doc, cdt, cdn) {
-	return 'SELECT tabItem.name,tabItem.item_name,tabItem.description FROM tabItem WHERE tabItem.is_service_item="Yes" AND tabItem.docstatus != 2 AND tabItem.%(key)s LIKE "%s" LIMIT 50';
+	return{
+    	filters:{ 'is_service_item': "Yes"}
+  	}
 }
 
 cur_frm.cscript.item_code = function(doc, cdt, cdn) {
@@ -104,36 +118,15 @@
 	}
 }
 
-cur_frm.fields_dict['sales_order_no'].get_query = function(doc) {
-	doc = locals[this.doctype][this.docname];
-	var cond = '';
-	if(doc.customer) {
-		cond = '`tabSales Order`.customer = "'+doc.customer+'" AND';
-	}
-	return repl('SELECT DISTINCT `tabSales Order`.name FROM `tabSales Order`, `tabSales Order Item`, `tabItem` WHERE `tabSales Order`.company = "%(company)s" AND `tabSales Order`.docstatus = 1 AND `tabSales Order Item`.parent = `tabSales Order`.name AND `tabSales Order Item`.item_code = `tabItem`.name AND `tabItem`.is_service_item = "Yes" AND %(cond)s `tabSales Order`.name LIKE "%s" ORDER BY `tabSales Order`.name DESC LIMIT 50', {company:doc.company, cond:cond});
-}
-
-cur_frm.fields_dict['customer_issue_no'].get_query = function(doc) {
-	doc = locals[this.doctype][this.docname];
-	var cond = '';
-	if(doc.customer) {
-		cond = '`tabCustomer Issue`.customer = "'+doc.customer+'" AND';
-	}
-	return repl('SELECT `tabCustomer Issue`.name FROM `tabCustomer Issue` WHERE `tabCustomer Issue`.company = "%(company)s" AND %(cond)s `tabCustomer Issue`.docstatus = 1 AND (`tabCustomer Issue`.status = "Open" OR `tabCustomer Issue`.status = "Work In Progress") AND `tabCustomer Issue`.name LIKE "%s" ORDER BY `tabCustomer Issue`.name DESC LIMIT 50', {company:doc.company, cond:cond});
-}
-
-cur_frm.fields_dict['maintenance_schedule'].get_query = function(doc) {
-	doc = locals[this.doctype][this.docname];
-	var cond = '';
-	if(doc.customer) {
-		cond = '`tabMaintenance Schedule`.customer = "'+doc.customer+'" AND';
-	}
-	return repl('SELECT `tabMaintenance Schedule`.name FROM `tabMaintenance Schedule` WHERE `tabMaintenance Schedule`.company = "%(company)s" AND %(cond)s `tabMaintenance Schedule`.docstatus = 1 AND `tabMaintenance Schedule`.name LIKE "%s" ORDER BY `tabMaintenance Schedule`.name DESC LIMIT 50', {company:doc.company, cond:cond});
-}
-
 //get query select Territory
 cur_frm.fields_dict['territory'].get_query = function(doc,cdt,cdn) {
-	return 'SELECT `tabTerritory`.`name`,`tabTerritory`.`parent_territory` FROM `tabTerritory` WHERE `tabTerritory`.`is_group` = "No" AND `tabTerritory`.`docstatus`!= 2 AND `tabTerritory`.%(key)s LIKE "%s"	ORDER BY	`tabTerritory`.`name` ASC LIMIT 50';
+  	return{
+    	filters:{
+      		'is_group': "No"
+    	}
+  	}
 }
 
-cur_frm.fields_dict.customer.get_query = erpnext.utils.customer_query;
\ No newline at end of file
+cur_frm.fields_dict.customer.get_query = function(doc,cdt,cdn) {
+	return {query: "controllers.queries.customer_query" }
+}
\ No newline at end of file
diff --git a/support/doctype/maintenance_visit/maintenance_visit.txt b/support/doctype/maintenance_visit/maintenance_visit.txt
index c57787e..478d9ac 100644
--- a/support/doctype/maintenance_visit/maintenance_visit.txt
+++ b/support/doctype/maintenance_visit/maintenance_visit.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-01-10 16:34:31", 
   "docstatus": 0, 
-  "modified": "2013-07-07 12:08:12", 
+  "modified": "2013-07-10 12:26:15", 
   "modified_by": "Administrator", 
   "owner": "ashwini@webnotestech.com"
  }, 
@@ -24,13 +24,19 @@
   "permlevel": 0
  }, 
  {
+  "amend": 1, 
+  "cancel": 1, 
+  "create": 1, 
   "doctype": "DocPerm", 
   "name": "__common__", 
   "parent": "Maintenance Visit", 
   "parentfield": "permissions", 
   "parenttype": "DocType", 
+  "permlevel": 0, 
   "read": 1, 
-  "report": 1
+  "report": 1, 
+  "submit": 1, 
+  "write": 1
  }, 
  {
   "doctype": "DocType", 
@@ -42,7 +48,7 @@
   "fieldtype": "Section Break", 
   "label": "Customer Details", 
   "oldfieldtype": "Section Break", 
-  "options": "Simple"
+  "options": "icon-user"
  }, 
  {
   "doctype": "DocField", 
@@ -137,7 +143,7 @@
   "fieldtype": "Section Break", 
   "label": "Maintenance Details", 
   "oldfieldtype": "Section Break", 
-  "options": "Simple"
+  "options": "icon-wrench"
  }, 
  {
   "doctype": "DocField", 
@@ -151,6 +157,11 @@
   "reqd": 1
  }, 
  {
+  "doctype": "DocField", 
+  "fieldname": "column_break_14", 
+  "fieldtype": "Column Break"
+ }, 
+ {
   "default": "Unscheduled", 
   "doctype": "DocField", 
   "fieldname": "maintenance_type", 
@@ -166,56 +177,10 @@
  }, 
  {
   "doctype": "DocField", 
-  "fieldname": "column_break2", 
-  "fieldtype": "Column Break", 
-  "oldfieldtype": "Column Break", 
-  "width": "50%"
- }, 
- {
-  "doctype": "DocField", 
-  "fieldname": "sales_order_no", 
-  "fieldtype": "Link", 
-  "in_filter": 1, 
-  "label": "Sales Order No", 
-  "oldfieldname": "sales_order_no", 
-  "oldfieldtype": "Link", 
-  "options": "Sales Order", 
-  "search_index": 1
- }, 
- {
-  "doctype": "DocField", 
-  "fieldname": "customer_issue_no", 
-  "fieldtype": "Link", 
-  "in_filter": 1, 
-  "label": "Customer Issue No", 
-  "oldfieldname": "customer_issue_no", 
-  "oldfieldtype": "Link", 
-  "options": "Customer Issue", 
-  "search_index": 1
- }, 
- {
-  "doctype": "DocField", 
-  "fieldname": "maintenance_schedule", 
-  "fieldtype": "Link", 
-  "in_filter": 1, 
-  "label": "Maintenance Schedule", 
-  "options": "Maintenance Schedule"
- }, 
- {
-  "doctype": "DocField", 
-  "fieldname": "get_items", 
-  "fieldtype": "Button", 
-  "label": "Get Items", 
-  "oldfieldtype": "Button", 
-  "print_hide": 1, 
-  "report_hide": 1
- }, 
- {
-  "doctype": "DocField", 
   "fieldname": "section_break0", 
   "fieldtype": "Section Break", 
   "oldfieldtype": "Section Break", 
-  "options": "Simple"
+  "options": "icon-wrench"
  }, 
  {
   "doctype": "DocField", 
@@ -231,7 +196,8 @@
   "fieldname": "more_info", 
   "fieldtype": "Section Break", 
   "label": "More Info", 
-  "oldfieldtype": "Section Break"
+  "oldfieldtype": "Section Break", 
+  "options": "icon-file-text"
  }, 
  {
   "doctype": "DocField", 
@@ -301,7 +267,8 @@
   "doctype": "DocField", 
   "fieldname": "contact_info_section", 
   "fieldtype": "Section Break", 
-  "label": "Contact Info"
+  "label": "Contact Info", 
+  "options": "icon-bullhorn"
  }, 
  {
   "doctype": "DocField", 
@@ -341,60 +308,15 @@
   "print_hide": 1
  }, 
  {
-  "amend": 1, 
-  "cancel": 1, 
-  "create": 1, 
   "doctype": "DocPerm", 
-  "permlevel": 0, 
-  "role": "System Manager", 
-  "submit": 1, 
-  "write": 1
+  "role": "System Manager"
  }, 
  {
-  "amend": 0, 
-  "cancel": 0, 
-  "create": 0, 
   "doctype": "DocPerm", 
-  "permlevel": 1, 
-  "role": "System Manager", 
-  "submit": 0
+  "role": "Maintenance Manager"
  }, 
  {
-  "amend": 1, 
-  "cancel": 1, 
-  "create": 1, 
   "doctype": "DocPerm", 
-  "permlevel": 0, 
-  "role": "Maintenance Manager", 
-  "submit": 1, 
-  "write": 1
- }, 
- {
-  "amend": 0, 
-  "cancel": 0, 
-  "create": 0, 
-  "doctype": "DocPerm", 
-  "permlevel": 1, 
-  "role": "Maintenance Manager", 
-  "submit": 0
- }, 
- {
-  "amend": 1, 
-  "cancel": 1, 
-  "create": 1, 
-  "doctype": "DocPerm", 
-  "permlevel": 0, 
-  "role": "Maintenance User", 
-  "submit": 1, 
-  "write": 1
- }, 
- {
-  "amend": 0, 
-  "cancel": 0, 
-  "create": 0, 
-  "doctype": "DocPerm", 
-  "permlevel": 1, 
-  "role": "Maintenance User", 
-  "submit": 0
+  "role": "Maintenance User"
  }
 ]
\ No newline at end of file
diff --git a/support/doctype/maintenance_visit_purpose/maintenance_visit_purpose.txt b/support/doctype/maintenance_visit_purpose/maintenance_visit_purpose.txt
index 694f871..53fa0a2 100644
--- a/support/doctype/maintenance_visit_purpose/maintenance_visit_purpose.txt
+++ b/support/doctype/maintenance_visit_purpose/maintenance_visit_purpose.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-02-22 01:28:06", 
   "docstatus": 0, 
-  "modified": "2013-03-07 07:03:24", 
+  "modified": "2013-07-10 14:54:10", 
   "modified_by": "Administrator", 
   "owner": "ashwini@webnotestech.com"
  }, 
@@ -27,38 +27,9 @@
  }, 
  {
   "doctype": "DocField", 
-  "fieldname": "description", 
-  "fieldtype": "Small Text", 
-  "label": "Description", 
-  "oldfieldname": "description", 
-  "oldfieldtype": "Small Text", 
-  "print_width": "300px", 
-  "reqd": 1, 
-  "width": "300px"
- }, 
- {
-  "doctype": "DocField", 
-  "fieldname": "service_person", 
-  "fieldtype": "Link", 
-  "label": "Service Person", 
-  "oldfieldname": "service_person", 
-  "oldfieldtype": "Link", 
-  "options": "Sales Person", 
-  "reqd": 1
- }, 
- {
-  "doctype": "DocField", 
-  "fieldname": "work_done", 
-  "fieldtype": "Small Text", 
-  "label": "Work Done", 
-  "oldfieldname": "work_done", 
-  "oldfieldtype": "Small Text", 
-  "reqd": 1
- }, 
- {
-  "doctype": "DocField", 
   "fieldname": "item_code", 
   "fieldtype": "Link", 
+  "in_list_view": 1, 
   "label": "Item Code", 
   "oldfieldname": "item_code", 
   "oldfieldtype": "Link", 
@@ -68,6 +39,7 @@
   "doctype": "DocField", 
   "fieldname": "item_name", 
   "fieldtype": "Data", 
+  "in_list_view": 1, 
   "label": "Item Name", 
   "oldfieldname": "item_name", 
   "oldfieldtype": "Data", 
@@ -77,12 +49,53 @@
   "doctype": "DocField", 
   "fieldname": "serial_no", 
   "fieldtype": "Small Text", 
+  "in_list_view": 1, 
   "label": "Serial No", 
   "oldfieldname": "serial_no", 
   "oldfieldtype": "Small Text"
  }, 
  {
   "doctype": "DocField", 
+  "fieldname": "description", 
+  "fieldtype": "Small Text", 
+  "in_list_view": 1, 
+  "label": "Description", 
+  "oldfieldname": "description", 
+  "oldfieldtype": "Small Text", 
+  "print_width": "300px", 
+  "reqd": 1, 
+  "width": "300px"
+ }, 
+ {
+  "doctype": "DocField", 
+  "fieldname": "work_details", 
+  "fieldtype": "Section Break", 
+  "in_list_view": 0, 
+  "label": "Work Details"
+ }, 
+ {
+  "doctype": "DocField", 
+  "fieldname": "service_person", 
+  "fieldtype": "Link", 
+  "in_list_view": 1, 
+  "label": "Sales Person", 
+  "oldfieldname": "service_person", 
+  "oldfieldtype": "Link", 
+  "options": "Sales Person", 
+  "reqd": 1
+ }, 
+ {
+  "doctype": "DocField", 
+  "fieldname": "work_done", 
+  "fieldtype": "Small Text", 
+  "in_list_view": 1, 
+  "label": "Work Done", 
+  "oldfieldname": "work_done", 
+  "oldfieldtype": "Small Text", 
+  "reqd": 1
+ }, 
+ {
+  "doctype": "DocField", 
   "fieldname": "prevdoc_docname", 
   "fieldtype": "Data", 
   "hidden": 0, 
diff --git a/support/doctype/support_ticket/support_ticket.js b/support/doctype/support_ticket/support_ticket.js
index 903f41c..bd7e6cc 100644
--- a/support/doctype/support_ticket/support_ticket.js
+++ b/support/doctype/support_ticket/support_ticket.js
@@ -14,7 +14,8 @@
 // You should have received a copy of the GNU General Public License
 // along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-cur_frm.fields_dict.customer.get_query = erpnext.utils.customer_query;
+cur_frm.fields_dict.customer.get_query = function(doc,cdt,cdn) {
+	return{	query:"controllers.queries.customer_query" } }
 
 wn.provide("erpnext.support");
 // TODO commonify this code
diff --git a/utilities/cleanup_data.py b/utilities/cleanup_data.py
index df7f4be..db6d3ec 100644
--- a/utilities/cleanup_data.py
+++ b/utilities/cleanup_data.py
@@ -42,8 +42,6 @@
 	print "Deleting masters...."
 	masters = {
 		'Workstation': ['Default Workstation'],
-		'Warehouse Type': ['Default Warehouse Type', 'Fixed Asset', 'Rejected', 'Reserved', 
-			'Sample', 'Stores', 'WIP Warehouse'],
 		'Warehouse': ['Default Warehouse'],
 		'UOM': ['Kg', 'Mtr', 'Box', 'Ltr', 'Nos', 'Ft', 'Pair', 'Set'],
 		'Territory': ['All Territories', 'Default Territory'],
@@ -139,7 +137,6 @@
 		'default_item_group': 'Default', 
 		'default_stock_uom': 'Nos', 
 		'default_valuation_method': 'FIFO', 
-		'default_warehouse_type': 'Default Warehouse Type', 
 		'tolerance': None, 
 		'acc_frozen_upto': None, 
 		'bde_auth_role': None, 
diff --git a/utilities/doctype/note_user/note_user.txt b/utilities/doctype/note_user/note_user.txt
index 2d82bb0..fcc1d11 100644
--- a/utilities/doctype/note_user/note_user.txt
+++ b/utilities/doctype/note_user/note_user.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-05-24 14:24:48", 
   "docstatus": 0, 
-  "modified": "2013-05-24 14:24:48", 
+  "modified": "2013-07-10 14:54:11", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -16,6 +16,7 @@
  }, 
  {
   "doctype": "DocField", 
+  "in_list_view": 1, 
   "name": "__common__", 
   "parent": "Note User", 
   "parentfield": "fields", 
diff --git a/utilities/transaction_base.py b/utilities/transaction_base.py
index a268564..db5cc07 100644
--- a/utilities/transaction_base.py
+++ b/utilities/transaction_base.py
@@ -274,24 +274,29 @@
 			
 	def validate_with_previous_doc(self, source_dt, ref):
 		for key, val in ref.items():
+			is_child = val.get("is_child_table")
 			ref_doc = {}
 			for d in self.doclist.get({"doctype": source_dt}):
-				if d.fields.get(val["ref_dn_field"]):
-					ref_doc.setdefault(key, d.fields[val["ref_dn_field"]])
-
-			if val.get("is_child_table"):
-				self.compare_values(ref_doc, val["compare_fields"], d)
-			else:
+				ref_dn = d.fields.get(val["ref_dn_field"])
+				if ref_dn:
+					if is_child:
+						self.compare_values({key: [ref_dn]}, val["compare_fields"], d)
+					elif ref_dn:								
+						ref_doc.setdefault(key, [])
+						if ref_dn not in ref_doc[key]:
+							ref_doc[key].append(ref_dn)
+			if ref_doc:
 				self.compare_values(ref_doc, val["compare_fields"])
 	
 	def compare_values(self, ref_doc, fields, doc=None):
-		for ref_doctype, ref_docname in ref_doc.items():
-			prevdoc_values = webnotes.conn.get_value(ref_doctype, ref_docname, 
-				[d[0] for d in fields], as_dict=1)
-			
-			for field, condition in fields:
-				if prevdoc_values[field] is not None:
-					self.validate_value(field, condition, prevdoc_values[field], doc)
+		for ref_doctype, ref_dn_list in ref_doc.items():
+			for ref_docname in ref_dn_list:
+				prevdoc_values = webnotes.conn.get_value(ref_doctype, ref_docname, 
+					[d[0] for d in fields], as_dict=1)
+
+				for field, condition in fields:
+					if prevdoc_values[field] is not None:
+						self.validate_value(field, condition, prevdoc_values[field], doc)
 
 def get_default_address_and_contact(party_field, party_name, fetch_shipping_address=False):
 	out = {}
diff --git a/website/css/website.css b/website/css/website.css
index 64cff7f..3ced12f 100644
--- a/website/css/website.css
+++ b/website/css/website.css
@@ -41,6 +41,10 @@
 	margin-left: 5px;
 }
 
+div.web-footer {
+	border-top: 1px solid #dddddd;
+	padding-top: 10px;
+}
 
 .web-footer-menu ul {
 	list-style: none;
diff --git a/website/doctype/about_us_team_member/about_us_team_member.txt b/website/doctype/about_us_team_member/about_us_team_member.txt
index b1bf6b3..c5e6d16 100644
--- a/website/doctype/about_us_team_member/about_us_team_member.txt
+++ b/website/doctype/about_us_team_member/about_us_team_member.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-03-07 11:55:11", 
   "docstatus": 0, 
-  "modified": "2013-03-12 13:51:02", 
+  "modified": "2013-07-10 14:54:03", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -14,6 +14,7 @@
  }, 
  {
   "doctype": "DocField", 
+  "in_list_view": 1, 
   "name": "__common__", 
   "parent": "About Us Team Member", 
   "parentfield": "fields", 
diff --git a/website/doctype/company_history/company_history.txt b/website/doctype/company_history/company_history.txt
index 544845d..c0f230c 100644
--- a/website/doctype/company_history/company_history.txt
+++ b/website/doctype/company_history/company_history.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-02-22 01:28:08", 
   "docstatus": 0, 
-  "modified": "2013-03-07 07:03:19", 
+  "modified": "2013-07-10 14:54:06", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -14,6 +14,7 @@
  }, 
  {
   "doctype": "DocField", 
+  "in_list_view": 1, 
   "name": "__common__", 
   "parent": "Company History", 
   "parentfield": "fields", 
diff --git a/website/doctype/shopping_cart_price_list/shopping_cart_price_list.txt b/website/doctype/shopping_cart_price_list/shopping_cart_price_list.txt
index 57ddc21..cdda874 100644
--- a/website/doctype/shopping_cart_price_list/shopping_cart_price_list.txt
+++ b/website/doctype/shopping_cart_price_list/shopping_cart_price_list.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-06-20 16:00:18", 
   "docstatus": 0, 
-  "modified": "2013-06-20 16:01:34", 
+  "modified": "2013-07-10 14:54:23", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -16,6 +16,7 @@
   "doctype": "DocField", 
   "fieldname": "price_list", 
   "fieldtype": "Link", 
+  "in_list_view": 1, 
   "label": "Price List", 
   "name": "__common__", 
   "options": "Price List", 
diff --git a/website/doctype/shopping_cart_shipping_rule/shopping_cart_shipping_rule.txt b/website/doctype/shopping_cart_shipping_rule/shopping_cart_shipping_rule.txt
index caeba3d..302b0ae 100644
--- a/website/doctype/shopping_cart_shipping_rule/shopping_cart_shipping_rule.txt
+++ b/website/doctype/shopping_cart_shipping_rule/shopping_cart_shipping_rule.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-07-03 13:15:34", 
   "docstatus": 0, 
-  "modified": "2013-07-03 13:19:02", 
+  "modified": "2013-07-10 14:54:23", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -16,6 +16,7 @@
   "doctype": "DocField", 
   "fieldname": "shipping_rule", 
   "fieldtype": "Link", 
+  "in_list_view": 1, 
   "label": "Shipping Rule", 
   "name": "__common__", 
   "options": "Shipping Rule", 
diff --git a/website/doctype/shopping_cart_taxes_and_charges_master/shopping_cart_taxes_and_charges_master.txt b/website/doctype/shopping_cart_taxes_and_charges_master/shopping_cart_taxes_and_charges_master.txt
index 6cd9f38..f00a23d 100644
--- a/website/doctype/shopping_cart_taxes_and_charges_master/shopping_cart_taxes_and_charges_master.txt
+++ b/website/doctype/shopping_cart_taxes_and_charges_master/shopping_cart_taxes_and_charges_master.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-06-20 16:57:03", 
   "docstatus": 0, 
-  "modified": "2013-06-20 16:57:03", 
+  "modified": "2013-07-10 14:54:23", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -16,6 +16,7 @@
   "doctype": "DocField", 
   "fieldname": "sales_taxes_and_charges_master", 
   "fieldtype": "Link", 
+  "in_list_view": 1, 
   "label": "Tax Master", 
   "name": "__common__", 
   "options": "Sales Taxes and Charges Master", 
diff --git a/website/doctype/style_settings/custom_template.css b/website/doctype/style_settings/custom_template.css
index 996774e..eb422c9 100644
--- a/website/doctype/style_settings/custom_template.css
+++ b/website/doctype/style_settings/custom_template.css
@@ -9,7 +9,7 @@
 	background-color: #{{ doc.background_color }};
 	background-image: none;
 {% else %}
-	background-color: #edede7;
+	background-color: #ffffff;
 {% endif %}	
 {% if doc.font or doc.google_web_font_for_text %}
 	font-family: '{{ doc.google_web_font_for_text or doc.font }}', 'Helvetica Neue', Arial, Sans !important;
diff --git a/website/doctype/top_bar_item/top_bar_item.txt b/website/doctype/top_bar_item/top_bar_item.txt
index 0076f7f..58d101e 100644
--- a/website/doctype/top_bar_item/top_bar_item.txt
+++ b/website/doctype/top_bar_item/top_bar_item.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-02-22 01:28:08", 
   "docstatus": 0, 
-  "modified": "2013-03-07 07:03:34", 
+  "modified": "2013-07-10 14:54:25", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -14,6 +14,7 @@
  }, 
  {
   "doctype": "DocField", 
+  "in_list_view": 1, 
   "name": "__common__", 
   "parent": "Top Bar Item", 
   "parentfield": "fields", 
diff --git a/website/doctype/website_item_group/website_item_group.txt b/website/doctype/website_item_group/website_item_group.txt
index 0b64306..3d26e85 100644
--- a/website/doctype/website_item_group/website_item_group.txt
+++ b/website/doctype/website_item_group/website_item_group.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-02-22 01:28:09", 
   "docstatus": 0, 
-  "modified": "2013-03-07 07:03:34", 
+  "modified": "2013-07-10 14:54:25", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -18,6 +18,7 @@
   "doctype": "DocField", 
   "fieldname": "item_group", 
   "fieldtype": "Link", 
+  "in_list_view": 1, 
   "label": "Item Group", 
   "name": "__common__", 
   "options": "Item Group", 
diff --git a/website/doctype/website_settings/website_settings.js b/website/doctype/website_settings/website_settings.js
index 57c32e9..2322b7c 100644
--- a/website/doctype/website_settings/website_settings.js
+++ b/website/doctype/website_settings/website_settings.js
@@ -34,7 +34,7 @@
 	
 	url: function(doc, cdt, cdn) {
 		this.label(doc, cdt, cdn);
-	}
+	},
 	
 	set_parent_label_options: function() {
 		wn.meta.get_docfield("Top Bar Item", "parent_label", cur_frm.docname).options = 
diff --git a/website/doctype/website_settings/website_settings.txt b/website/doctype/website_settings/website_settings.txt
index b3828a2..f8ceafe 100644
--- a/website/doctype/website_settings/website_settings.txt
+++ b/website/doctype/website_settings/website_settings.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-04-30 12:58:46", 
   "docstatus": 0, 
-  "modified": "2013-07-05 15:02:50", 
+  "modified": "2013-07-10 20:37:38", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
diff --git a/website/doctype/website_slideshow_item/website_slideshow_item.txt b/website/doctype/website_slideshow_item/website_slideshow_item.txt
index 53aa628..c6fd78c 100644
--- a/website/doctype/website_slideshow_item/website_slideshow_item.txt
+++ b/website/doctype/website_slideshow_item/website_slideshow_item.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-03-07 12:26:33", 
   "docstatus": 0, 
-  "modified": "2013-03-07 07:03:34", 
+  "modified": "2013-07-10 14:54:25", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -16,6 +16,7 @@
  }, 
  {
   "doctype": "DocField", 
+  "in_list_view": 1, 
   "name": "__common__", 
   "parent": "Website Slideshow Item", 
   "parentfield": "fields", 
diff --git a/website/page/website_home/website_home.js b/website/page/website_home/website_home.js
index bdedcc9..11a22d5 100644
--- a/website/page/website_home/website_home.js
+++ b/website/page/website_home/website_home.js
@@ -78,12 +78,6 @@
 		right: true,
 		items: [
 			{
-				"route":"Form/Product Settings",
-				"label":wn._("Product Settings"),
-				"description":wn._("Settings for Product Catalog on the website."),
-				doctype:"Product Settings"
-			},
-			{
 				"route":"Form/About Us Settings",
 				"label":wn._("About Us Settings"),
 				"description":wn._("Settings for About Us Page."),
diff --git a/website/templates/html/navbar.html b/website/templates/html/navbar.html
index 635cf34..11f2fb0 100644
--- a/website/templates/html/navbar.html
+++ b/website/templates/html/navbar.html
@@ -1,4 +1,4 @@
-<div class="navbar navbar-inverse" style="">
+<div class="navbar" style="margin: 0px -15px">
 	{%- if brand_html %}<a class="navbar-brand" href="index">{{ brand_html }}</a>{% endif -%}
 	<div class="container">
 		<button type="button" class="navbar-toggle" data-toggle="collapse"