fixes merge conflict
diff --git a/accounts/doctype/account/account.txt b/accounts/doctype/account/account.txt
index e93631b..f97f9c1 100644
--- a/accounts/doctype/account/account.txt
+++ b/accounts/doctype/account/account.txt
@@ -9,13 +9,13 @@
  {
   "in_create": 1, 
   "allow_rename": 1, 
-  "description": "Heads (or groups) against which Accounting Entries are made and balances are maintained.", 
-  "search_fields": "debit_or_credit, group_or_ledger", 
+  "name": "__common__", 
   "module": "Accounts", 
   "doctype": "DocType", 
   "allow_copy": 1, 
+  "search_fields": "debit_or_credit, group_or_ledger", 
   "document_type": "Master", 
-  "name": "__common__"
+  "description": "Heads (or groups) against which Accounting Entries are made and balances are maintained."
  }, 
  {
   "name": "__common__", 
@@ -27,10 +27,10 @@
  {
   "name": "__common__", 
   "parent": "Account", 
-  "amend": 0, 
-  "doctype": "DocPerm", 
-  "submit": 0, 
   "read": 1, 
+  "submit": 0, 
+  "doctype": "DocPerm", 
+  "amend": 0, 
   "parenttype": "DocType", 
   "parentfield": "permissions"
  }, 
@@ -83,12 +83,12 @@
   "doctype": "DocField", 
   "label": "Group or Ledger", 
   "oldfieldname": "group_or_ledger", 
-  "permlevel": 1, 
+  "options": "\nLedger\nGroup", 
   "fieldname": "group_or_ledger", 
   "fieldtype": "Select", 
   "search_index": 1, 
   "reqd": 1, 
-  "options": "\nLedger\nGroup", 
+  "permlevel": 1, 
   "in_filter": 1
  }, 
  {
@@ -107,11 +107,11 @@
   "doctype": "DocField", 
   "label": "Is PL Account", 
   "oldfieldname": "is_pl_account", 
-  "options": "Yes\nNo", 
+  "permlevel": 1, 
   "fieldname": "is_pl_account", 
   "fieldtype": "Select", 
   "search_index": 1, 
-  "permlevel": 1, 
+  "options": "Yes\nNo", 
   "in_filter": 1
  }, 
  {
@@ -119,12 +119,12 @@
   "doctype": "DocField", 
   "label": "Company", 
   "oldfieldname": "company", 
-  "options": "Company", 
+  "permlevel": 1, 
   "fieldname": "company", 
   "fieldtype": "Link", 
   "search_index": 1, 
   "reqd": 1, 
-  "permlevel": 1, 
+  "options": "Company", 
   "in_filter": 1
  }, 
  {
@@ -139,11 +139,11 @@
   "doctype": "DocField", 
   "label": "Parent Account", 
   "oldfieldname": "parent_account", 
-  "options": "Account", 
+  "permlevel": 0, 
   "fieldname": "parent_account", 
   "fieldtype": "Link", 
   "search_index": 1, 
-  "permlevel": 0
+  "options": "Account"
  }, 
  {
   "description": "Setting Account Type helps in selecting this Account in transactions.", 
@@ -151,11 +151,11 @@
   "doctype": "DocField", 
   "label": "Account Type", 
   "oldfieldname": "account_type", 
-  "options": "\nFixed Asset Account\nBank or Cash\nExpense Account\nTax\nIncome Account\nChargeable", 
+  "permlevel": 0, 
   "fieldname": "account_type", 
   "fieldtype": "Select", 
   "search_index": 0, 
-  "permlevel": 0, 
+  "options": "\nFixed Asset Account\nBank or Cash\nExpense Account\nTax\nIncome Account\nChargeable", 
   "in_filter": 1
  }, 
  {
@@ -176,10 +176,10 @@
   "doctype": "DocField", 
   "label": "Frozen", 
   "oldfieldname": "freeze_account", 
-  "options": "No\nYes", 
+  "permlevel": 2, 
   "fieldname": "freeze_account", 
   "fieldtype": "Select", 
-  "permlevel": 2
+  "options": "No\nYes"
  }, 
  {
   "print_hide": 1, 
@@ -209,20 +209,20 @@
   "doctype": "DocField", 
   "label": "Master Type", 
   "oldfieldname": "master_type", 
-  "options": "\nSupplier\nCustomer\nEmployee", 
+  "permlevel": 0, 
   "fieldname": "master_type", 
   "fieldtype": "Select", 
-  "permlevel": 0
+  "options": "\nSupplier\nCustomer\nEmployee"
  }, 
  {
   "oldfieldtype": "Link", 
   "doctype": "DocField", 
   "label": "Master Name", 
   "oldfieldname": "master_name", 
-  "options": "[Select]", 
+  "permlevel": 0, 
   "fieldname": "master_name", 
   "fieldtype": "Link", 
-  "permlevel": 0
+  "options": "[Select]"
  }, 
  {
   "read_only": 1, 
@@ -258,6 +258,7 @@
   "create": 0, 
   "doctype": "DocPerm", 
   "write": 1, 
+  "report": 1, 
   "role": "Auditor", 
   "cancel": 0, 
   "permlevel": 0
@@ -282,6 +283,7 @@
   "create": 0, 
   "doctype": "DocPerm", 
   "write": 0, 
+  "report": 1, 
   "role": "Sales User", 
   "cancel": 0, 
   "permlevel": 0
@@ -290,6 +292,7 @@
   "create": 0, 
   "doctype": "DocPerm", 
   "write": 0, 
+  "report": 1, 
   "role": "Purchase User", 
   "cancel": 0, 
   "permlevel": 0
@@ -298,6 +301,7 @@
   "create": 0, 
   "doctype": "DocPerm", 
   "write": 1, 
+  "report": 1, 
   "role": "Accounts User", 
   "cancel": 0, 
   "permlevel": 0
@@ -306,6 +310,7 @@
   "create": 1, 
   "doctype": "DocPerm", 
   "write": 1, 
+  "report": 1, 
   "role": "Accounts Manager", 
   "cancel": 1, 
   "permlevel": 0
diff --git a/accounts/doctype/budget_distribution/budget_distribution.txt b/accounts/doctype/budget_distribution/budget_distribution.txt
index c376e5a..c2105c6 100644
--- a/accounts/doctype/budget_distribution/budget_distribution.txt
+++ b/accounts/doctype/budget_distribution/budget_distribution.txt
@@ -11,12 +11,12 @@
   "description": "**Budget Distribution** helps you distribute your budget across months if you have seasonality in your business.\n\nTo distribute a budget using this distribution, set this **Budget Distribution** in the **Cost Center**", 
   "module": "Accounts", 
   "allow_trash": 1, 
-  "server_code_error": " ", 
   "autoname": "field:distribution_id", 
+  "show_in_menu": 0, 
   "name": "__common__", 
   "colour": "White:FFF", 
   "doctype": "DocType", 
-  "show_in_menu": 0, 
+  "server_code_error": " ", 
   "name_case": "Title Case", 
   "version": 1
  }, 
@@ -43,8 +43,9 @@
   "create": 1, 
   "doctype": "DocPerm", 
   "write": 1, 
-  "role": "System Manager", 
   "cancel": 1, 
+  "role": "System Manager", 
+  "report": 1, 
   "permlevel": 0
  }, 
  {
@@ -64,6 +65,7 @@
   "doctype": "DocPerm", 
   "submit": 0, 
   "write": 1, 
+  "report": 1, 
   "role": "Accounts Manager", 
   "cancel": 1, 
   "permlevel": 0
@@ -100,11 +102,11 @@
   "doctype": "DocField", 
   "label": "Fiscal Year", 
   "oldfieldname": "fiscal_year", 
-  "permlevel": 0, 
+  "options": "link:Fiscal Year", 
   "fieldname": "fiscal_year", 
   "fieldtype": "Select", 
   "oldfieldtype": "Select", 
-  "options": "link:Fiscal Year", 
+  "permlevel": 0, 
   "in_filter": 1
  }, 
  {
@@ -112,10 +114,10 @@
   "doctype": "DocField", 
   "label": "Budget Distribution Details", 
   "oldfieldname": "budget_distribution_details", 
-  "permlevel": 0, 
+  "options": "Budget Distribution Detail", 
   "fieldname": "budget_distribution_details", 
   "fieldtype": "Table", 
-  "options": "Budget Distribution Detail"
+  "permlevel": 0
  }, 
  {
   "oldfieldtype": "Small Text", 
diff --git a/accounts/doctype/cost_center/cost_center.txt b/accounts/doctype/cost_center/cost_center.txt
index b145a0c..4b5c6c6 100644
--- a/accounts/doctype/cost_center/cost_center.txt
+++ b/accounts/doctype/cost_center/cost_center.txt
@@ -7,11 +7,11 @@
   "modified": "2012-12-06 12:12:46"
  }, 
  {
-  "in_create": 1, 
+  "description": "Track separate Income and Expense for product verticals or divisions.", 
   "search_fields": "name,parent_cost_center", 
   "module": "Accounts", 
   "document_type": "Master", 
-  "description": "Track separate Income and Expense for product verticals or divisions.", 
+  "in_create": 1, 
   "autoname": "field:cost_center_name", 
   "name": "__common__", 
   "allow_rename": 1, 
@@ -72,12 +72,12 @@
   "doctype": "DocField", 
   "label": "Parent Cost Center", 
   "oldfieldname": "parent_cost_center", 
+  "permlevel": 0, 
   "trigger": "Client", 
   "fieldname": "parent_cost_center", 
   "fieldtype": "Link", 
   "reqd": 1, 
-  "options": "Cost Center", 
-  "permlevel": 0
+  "options": "Cost Center"
  }, 
  {
   "oldfieldtype": "Link", 
@@ -85,12 +85,12 @@
   "doctype": "DocField", 
   "label": "Company", 
   "oldfieldname": "company_name", 
+  "permlevel": 0, 
   "trigger": "Client", 
   "fieldname": "company_name", 
   "fieldtype": "Link", 
   "reqd": 1, 
-  "options": "Company", 
-  "permlevel": 0
+  "options": "Company"
  }, 
  {
   "oldfieldtype": "Data", 
@@ -143,10 +143,10 @@
   "doctype": "DocField", 
   "label": "Distribution Id", 
   "oldfieldname": "distribution_id", 
-  "options": "Budget Distribution", 
+  "permlevel": 0, 
   "fieldname": "distribution_id", 
   "fieldtype": "Link", 
-  "permlevel": 0
+  "options": "Budget Distribution"
  }, 
  {
   "description": "Add rows to set annual budgets on Accounts.", 
@@ -155,10 +155,10 @@
   "doctype": "DocField", 
   "label": "Budget Details", 
   "oldfieldname": "budget_details", 
-  "options": "Budget Detail", 
+  "permlevel": 0, 
   "fieldname": "budget_details", 
   "fieldtype": "Table", 
-  "permlevel": 0
+  "options": "Budget Detail"
  }, 
  {
   "print_hide": 1, 
@@ -198,11 +198,11 @@
   "doctype": "DocField", 
   "label": "old_parent", 
   "oldfieldname": "old_parent", 
-  "permlevel": 0, 
+  "options": "Cost Center", 
   "fieldname": "old_parent", 
   "fieldtype": "Link", 
   "hidden": 1, 
-  "options": "Cost Center", 
+  "permlevel": 0, 
   "report_hide": 1
  }, 
  {
@@ -221,6 +221,7 @@
   "doctype": "DocPerm", 
   "submit": 0, 
   "write": 1, 
+  "report": 1, 
   "role": "Accounts Manager", 
   "cancel": 1, 
   "permlevel": 0
@@ -241,6 +242,7 @@
   "doctype": "DocPerm", 
   "submit": 0, 
   "write": 0, 
+  "report": 1, 
   "role": "Accounts User", 
   "cancel": 0, 
   "permlevel": 0
@@ -249,13 +251,14 @@
   "create": 1, 
   "doctype": "DocPerm", 
   "write": 1, 
-  "role": "System Manager", 
   "cancel": 1, 
+  "role": "System Manager", 
+  "report": 1, 
   "permlevel": 0
  }, 
  {
-  "doctype": "DocPerm", 
   "role": "All", 
-  "permlevel": 1
+  "permlevel": 1, 
+  "doctype": "DocPerm"
  }
 ]
\ No newline at end of file
diff --git a/accounts/doctype/fiscal_year/fiscal_year.txt b/accounts/doctype/fiscal_year/fiscal_year.txt
index c34f8a2..51f3221 100644
--- a/accounts/doctype/fiscal_year/fiscal_year.txt
+++ b/accounts/doctype/fiscal_year/fiscal_year.txt
@@ -10,14 +10,14 @@
   "section_style": "Tabbed", 
   "description": "**Fiscal Year** represents a Financial Year. All accounting entries and other major transactions are tracked against **Fiscal Year**.", 
   "module": "Accounts", 
-  "doctype": "DocType", 
-  "allow_trash": 1, 
   "server_code_error": " ", 
-  "document_type": "Master", 
+  "allow_trash": 1, 
   "autoname": "field:year", 
+  "document_type": "Master", 
+  "_last_update": "1322549700", 
   "name": "__common__", 
   "colour": "White:FFF", 
-  "_last_update": "1322549700", 
+  "doctype": "DocType", 
   "show_in_menu": 0, 
   "version": 1
  }, 
@@ -29,15 +29,16 @@
   "parentfield": "fields"
  }, 
  {
+  "report": 1, 
   "name": "__common__", 
   "parent": "Fiscal Year", 
   "read": 1, 
   "create": 1, 
   "doctype": "DocPerm", 
   "write": 1, 
-  "cancel": 1, 
   "parenttype": "DocType", 
   "role": "System Manager", 
+  "cancel": 1, 
   "permlevel": 0, 
   "parentfield": "permissions"
  }, 
@@ -100,10 +101,10 @@
   "doctype": "DocField", 
   "label": "Year Closed", 
   "oldfieldname": "is_fiscal_year_closed", 
-  "options": "\nNo\nYes", 
+  "permlevel": 0, 
   "fieldname": "is_fiscal_year_closed", 
   "fieldtype": "Select", 
   "reqd": 0, 
-  "permlevel": 0
+  "options": "\nNo\nYes"
  }
 ]
\ No newline at end of file
diff --git a/accounts/doctype/gl_control/gl_control.py b/accounts/doctype/gl_control/gl_control.py
index 53ee9ff..fb7076a 100644
--- a/accounts/doctype/gl_control/gl_control.py
+++ b/accounts/doctype/gl_control/gl_control.py
@@ -23,17 +23,11 @@
 from webnotes.model.code import get_obj
 from webnotes import msgprint
 
-from utilities.transaction_base import TransactionBase
-
 class DocType:
 	def __init__(self,d,dl):
 		self.doc, self.doclist = d, dl
 		self.entries = []
 
-	def get_company_currency(self,arg=''):
-		dcc = TransactionBase().get_company_currency(arg)
-		return dcc
-
 	def get_period_difference(self,arg, cost_center =''):
 		# used in General Ledger Page Report
 		# used for Budget where cost center passed as extra argument
diff --git a/accounts/doctype/gl_entry/gl_entry.txt b/accounts/doctype/gl_entry/gl_entry.txt
index 76fc101..6116187 100644
--- a/accounts/doctype/gl_entry/gl_entry.txt
+++ b/accounts/doctype/gl_entry/gl_entry.txt
@@ -11,12 +11,12 @@
   "in_create": 1, 
   "search_fields": "voucher_no,account,posting_date,against_voucher", 
   "module": "Accounts", 
-  "doctype": "DocType", 
   "server_code_error": " ", 
   "autoname": "GL.#######", 
+  "_last_update": "1319016431", 
   "name": "__common__", 
   "colour": "White:FFF", 
-  "_last_update": "1319016431", 
+  "doctype": "DocType", 
   "show_in_menu": 0, 
   "version": 103
  }, 
@@ -35,6 +35,7 @@
   "create": 0, 
   "doctype": "DocPerm", 
   "write": 0, 
+  "report": 1, 
   "parenttype": "DocType", 
   "parentfield": "permissions"
  }, 
diff --git a/accounts/doctype/journal_voucher/journal_voucher.py b/accounts/doctype/journal_voucher/journal_voucher.py
index 92a416d..79ee19f 100644
--- a/accounts/doctype/journal_voucher/journal_voucher.py
+++ b/accounts/doctype/journal_voucher/journal_voucher.py
@@ -18,15 +18,14 @@
 import webnotes
 
 from webnotes.utils import cint, cstr, flt, fmt_money, formatdate, getdate
-from webnotes.model import db_exists
 from webnotes.model.doc import addchild, make_autoname
-from webnotes.model.wrapper import getlist, copy_doclist
+from webnotes.model.wrapper import getlist
 from webnotes.model.code import get_obj
-from webnotes import form, msgprint
+from webnotes import msgprint
+from setup.utils import get_company_currency
 
 sql = webnotes.conn.sql
 	
-from utilities.transaction_base import TransactionBase
 
 class DocType:
 	def __init__(self,d,dl):
@@ -238,7 +237,7 @@
 					self.doc.pay_to_recd_from = webnotes.conn.get_value(master_type, ' - '.join(d.account.split(' - ')[:-1]), master_type == 'Customer' and 'customer_name' or 'supplier_name')
 			
 			if acc_type == 'Bank or Cash':
-				dcc = TransactionBase().get_company_currency(self.doc.company)
+				dcc = get_company_currency(self.doc.company)
 				amt = cint(d.debit) and d.debit or d.credit	
 				self.doc.total_amount = dcc +' '+ cstr(amt)
 				self.doc.total_amount_in_words = get_obj('Sales Common').get_total_in_words(dcc, cstr(amt))
diff --git a/accounts/doctype/mode_of_payment/mode_of_payment.txt b/accounts/doctype/mode_of_payment/mode_of_payment.txt
index d865080..902ab37 100644
--- a/accounts/doctype/mode_of_payment/mode_of_payment.txt
+++ b/accounts/doctype/mode_of_payment/mode_of_payment.txt
@@ -7,10 +7,10 @@
   "modified": "2012-12-04 16:33:37"
  }, 
  {
-  "autoname": "field:mode_of_payment", 
   "name": "__common__", 
-  "doctype": "DocType", 
+  "autoname": "field:mode_of_payment", 
   "module": "Accounts", 
+  "doctype": "DocType", 
   "document_type": "Master"
  }, 
  {
@@ -24,15 +24,16 @@
  {
   "parent": "Mode of Payment", 
   "read": 1, 
+  "doctype": "DocPerm", 
   "cancel": 1, 
   "name": "__common__", 
   "amend": 0, 
   "create": 1, 
-  "doctype": "DocPerm", 
   "submit": 0, 
   "write": 1, 
   "parenttype": "DocType", 
   "role": "Accounts Manager", 
+  "report": 1, 
   "permlevel": 0, 
   "parentfield": "permissions"
  }, 
diff --git a/accounts/doctype/period_closing_voucher/period_closing_voucher.txt b/accounts/doctype/period_closing_voucher/period_closing_voucher.txt
index 26ce545..9261d8e 100644
--- a/accounts/doctype/period_closing_voucher/period_closing_voucher.txt
+++ b/accounts/doctype/period_closing_voucher/period_closing_voucher.txt
@@ -11,12 +11,12 @@
   "is_submittable": 1, 
   "search_fields": "posting_date, fiscal_year", 
   "module": "Accounts", 
-  "doctype": "DocType", 
   "server_code_error": " ", 
   "autoname": "PCE/.###", 
+  "_last_update": "1311621379", 
   "name": "__common__", 
   "colour": "White:FFF", 
-  "_last_update": "1311621379", 
+  "doctype": "DocType", 
   "show_in_menu": 0, 
   "version": 1
  }, 
@@ -85,6 +85,7 @@
   "doctype": "DocPerm", 
   "submit": 1, 
   "write": 1, 
+  "report": 1, 
   "role": "System Manager", 
   "cancel": 1, 
   "permlevel": 0
@@ -94,8 +95,9 @@
   "doctype": "DocPerm", 
   "submit": 1, 
   "write": 1, 
-  "role": "Accounts Manager", 
   "cancel": 1, 
+  "role": "Accounts Manager", 
+  "report": 1, 
   "permlevel": 0
  }, 
  {
@@ -130,11 +132,11 @@
   "doctype": "DocField", 
   "label": "Closing Fiscal Year", 
   "oldfieldname": "fiscal_year", 
-  "permlevel": 0, 
+  "options": "link:Fiscal Year", 
   "fieldname": "fiscal_year", 
   "fieldtype": "Select", 
   "reqd": 1, 
-  "options": "link:Fiscal Year"
+  "permlevel": 0
  }, 
  {
   "no_copy": 1, 
@@ -161,11 +163,11 @@
   "doctype": "DocField", 
   "label": "Company", 
   "oldfieldname": "company", 
-  "permlevel": 0, 
+  "options": "link:Company", 
   "fieldname": "company", 
   "fieldtype": "Select", 
   "reqd": 1, 
-  "options": "link:Company"
+  "permlevel": 0
  }, 
  {
   "oldfieldtype": "Column Break", 
@@ -180,21 +182,21 @@
   "doctype": "DocField", 
   "label": "Closing Account Head", 
   "oldfieldname": "closing_account_head", 
+  "permlevel": 0, 
   "trigger": "Client", 
   "fieldname": "closing_account_head", 
   "fieldtype": "Link", 
   "reqd": 1, 
-  "options": "Account", 
-  "permlevel": 0
+  "options": "Account"
  }, 
  {
   "oldfieldtype": "HTML", 
   "doctype": "DocField", 
   "label": "CoA Help", 
-  "permlevel": 0, 
+  "options": "<a href=\"#!Accounts Browser/Account\">To manage Account Head, click here</a>", 
   "fieldname": "coa_help", 
   "fieldtype": "HTML", 
-  "options": "<a href=\"#!Accounts Browser/Account\">To manage Account Head, click here</a>"
+  "permlevel": 0
  }, 
  {
   "oldfieldtype": "Small Text", 
diff --git a/accounts/doctype/pos_setting/pos_setting.txt b/accounts/doctype/pos_setting/pos_setting.txt
index b50ff81..b4b946f 100755
--- a/accounts/doctype/pos_setting/pos_setting.txt
+++ b/accounts/doctype/pos_setting/pos_setting.txt
@@ -10,12 +10,12 @@
   "section_style": "Simple", 
   "module": "Accounts", 
   "doctype": "DocType", 
+  "server_code_error": " ", 
   "autoname": "POS/.####", 
-  "show_in_menu": 0, 
   "name": "__common__", 
   "colour": "White:FFF", 
   "_last_update": "1322549700", 
-  "server_code_error": " ", 
+  "show_in_menu": 0, 
   "version": 1
  }, 
  {
@@ -32,6 +32,7 @@
   "read": 1, 
   "doctype": "DocPerm", 
   "parenttype": "DocType", 
+  "report": 1, 
   "permlevel": 0, 
   "parentfield": "permissions"
  }, 
diff --git a/accounts/doctype/purchase_invoice/purchase_invoice.js b/accounts/doctype/purchase_invoice/purchase_invoice.js
index 528ac85..bfcf0a4 100644
--- a/accounts/doctype/purchase_invoice/purchase_invoice.js
+++ b/accounts/doctype/purchase_invoice/purchase_invoice.js
@@ -20,41 +20,42 @@
 wn.require('app/accounts/doctype/purchase_taxes_and_charges_master/purchase_taxes_and_charges_master.js');
 wn.require('app/buying/doctype/purchase_common/purchase_common.js');
 
+erpnext.buying.PurchaseInvoiceController = erpnext.buying.BuyingController.extend({
+	refresh: function(doc) {
+		this._super();
+		
+		// Show / Hide button
+		if(doc.docstatus==1 && doc.outstanding_amount > 0)
+			cur_frm.add_custom_button('Make Payment Entry', cur_frm.cscript.make_bank_voucher);
+
+		if(doc.docstatus==1) { 
+			cur_frm.add_custom_button('View Ledger', cur_frm.cscript.view_ledger_entry);
+		}
+		
+		cur_frm.cscript.is_opening(doc);
+	}
+});
+
+var new_cscript = new erpnext.buying.PurchaseInvoiceController({frm: cur_frm});
+
+// for backward compatibility: combine new and previous states
+$.extend(cur_frm.cscript, new_cscript);
+
+
 cur_frm.cscript.onload = function(doc,dt,dn) {
 	if(!doc.posting_date) set_multiple(dt,dn,{posting_date:get_today()});
 }
 
 cur_frm.cscript.onload_post_render = function(doc, dt, dn) {
 	var callback = function(doc, dt, dn) {
-		var callback1 = function(doc, dt, dn) {
-			if(doc.__islocal && doc.supplier) cur_frm.cscript.supplier(doc,dt,dn);
-		}
-	
-		// defined in purchase_common.js
-		cur_frm.cscript.update_item_details(doc, dt, dn, callback1);
+		if(doc.__islocal && doc.supplier) cur_frm.cscript.supplier(doc,dt,dn);
 	}
-	cur_frm.cscript.dynamic_label(doc, dt, dn, callback);
-}
 
-cur_frm.cscript.refresh = function(doc, dt, dn) {
+	// defined in purchase_common.js
+	cur_frm.cscript.update_item_details(doc, dt, dn, callback);
 	
-	cur_frm.clear_custom_buttons();
-	erpnext.hide_naming_series();
-
-	if (!cur_frm.cscript.is_onload) cur_frm.cscript.dynamic_label(doc, dt, dn);
-
-
-	// Show / Hide button
-	if(doc.docstatus==1 && doc.outstanding_amount > 0)
-		cur_frm.add_custom_button('Make Payment Entry', cur_frm.cscript.make_bank_voucher);
-	
-	if(doc.docstatus==1) { 
-		cur_frm.add_custom_button('View Ledger', cur_frm.cscript.view_ledger_entry);
-	}	
-	cur_frm.cscript.is_opening(doc, dt, dn);
 }
 
-
 cur_frm.cscript.supplier = function(doc,dt,dn) {
 	var callback = function(r,rt) {
 			var doc = locals[cur_frm.doctype][cur_frm.docname];		
@@ -162,13 +163,6 @@
 	$c_obj(make_doclist(dt,dn),'pull_details','',callback);
 }
 
-cur_frm.cscript.item_code = function(doc,cdt,cdn){
-	var d = locals[cdt][cdn];
-	if(d.item_code){
-		get_server_fields('get_item_details',d.item_code,'entries',doc,cdt,cdn,1);
-	}
-}
-
 cur_frm.cscript.allocated_amount = function(doc,cdt,cdn) {
 	calc_total_advance(doc, cdt, cdn);
 }
diff --git a/accounts/doctype/purchase_invoice/purchase_invoice.py b/accounts/doctype/purchase_invoice/purchase_invoice.py
index dc17071..82261ed 100644
--- a/accounts/doctype/purchase_invoice/purchase_invoice.py
+++ b/accounts/doctype/purchase_invoice/purchase_invoice.py
@@ -18,28 +18,20 @@
 import webnotes
 
 from webnotes.utils import add_days, cint, cstr, flt, formatdate, get_defaults
-from webnotes.model import db_exists
-from webnotes.model.doc import Document, make_autoname
-from webnotes.model.wrapper import getlist, copy_doclist
+from webnotes.model.wrapper import getlist
 from webnotes.model.code import get_obj
-from webnotes import form, msgprint
+from webnotes import msgprint
+from setup.utils import get_company_currency
 
 sql = webnotes.conn.sql
 	
-
-from utilities.transaction_base import TransactionBase
-
-class DocType(TransactionBase):
+from controllers.buying_controller import BuyingController
+class DocType(BuyingController):
 	def __init__(self,d,dl):
 		self.doc, self.doclist = d, dl 
 		self.tname = 'Purchase Invoice Item'
 		self.fname = 'entries'
 
-	# Autoname
-	# ---------
-	def autoname(self):
-		self.doc.name = make_autoname(self.doc.naming_series+'.####')
-
 
 # ************************** Trigger Functions ****************************
 
@@ -106,64 +98,7 @@
 				item = webnotes.conn.sql("select purchase_account, cost_center from tabItem where name = '%s'" %(d.item_code), as_dict=1)
 				d.expense_head = item and item[0]['purchase_account'] or ''
 				d.cost_center = item and item[0]['cost_center'] or ''
-			
 
-	# Get Item Details
-	# -----------------		
-	def get_item_details(self, arg=None):
-		if arg:
-			return self.get_pv_details(arg)
-		else:
-			for doc in self.doclist:
-				if doc.fields.get('item_code'):
-					ret = self.get_pv_details(doc.item_code)
-					for r in ret:
-						if not doc.fields.get(r):
-							doc.fields[r] = ret[r]
-
-
-	def get_pv_details(self, arg):
-		import json
-		item_det = sql("select item_name, brand, description, item_group, purchase_account, cost_center, stock_uom from tabItem where name=%s",arg,as_dict=1)
-		
-		tax = sql("select tax_type, tax_rate from `tabItem Tax` where parent = %s" , arg)
-		t = {}
-		for x in tax: t[x[0]] = flt(x[1])
-		ret = {
-			'item_name': item_det and item_det[0]['item_name'] or '',
-			'brand': item_det and item_det[0]['brand'] or '',
-			'description': item_det and item_det[0]['description'] or '',
-			'item_group': item_det and item_det[0]['item_group'] or '',
-			'rate': 0.00,
-			'purchase_ref_rate': 0.00,
-			'import_ref_rate': 0.00,
-			'import_rate': 0.00,
-			'qty': 0.00,
-			'amount': 0.00,
-			'discount_rate': 0.00,
-			'expense_head': item_det and item_det[0]['purchase_account'] or '',
-			'cost_center': item_det and item_det[0]['cost_center'] or '',
-			'item_tax_rate': json.dumps(t),
-			'uom': item_det and item_det[0]['stock_uom'] or ''
-		}
-		
-		# get last purchase rate
-		last_purchase_details, last_purchase_date = get_obj('Purchase Common').get_last_purchase_details(arg, self.doc.name)
-		if last_purchase_details:
-			purchase_ref_rate = last_purchase_details['purchase_ref_rate']
-			purchase_rate = last_purchase_details['purchase_rate']
-			conversion_rate = self.doc.conversion_rate or 1.0
-			ret.update({
-				'purchase_ref_rate': purchase_ref_rate,
-				'discount_rate': last_purchase_details['discount_rate'],
-				'rate': purchase_rate,
-				'import_ref_rate': purchase_ref_rate / conversion_rate,
-				'import_rate': purchase_rate / conversion_rate,
-			})	
-
-		return ret
-
-		
 	# Advance Allocation
 	# -------------------
 	def get_advances(self):
@@ -225,7 +160,7 @@
 	# Check Conversion Rate
 	# ----------------------
 	def check_conversion_rate(self):
-		default_currency = TransactionBase().get_company_currency(self.doc.company)		
+		default_currency = get_company_currency(self.doc.company)		
 		if not default_currency:
 			msgprint('Message: Please enter default currency in Company Master')
 			raise Exception
@@ -394,6 +329,8 @@
 	# VALIDATE
 	# ====================================================================================
 	def validate(self):
+		super(DocType, self).validate()
+		
 		self.po_required()
 		self.pr_required()
 		self.check_active_purchase_items()
@@ -434,7 +371,7 @@
 		pc_obj = get_obj(dt='Purchase Common')
 		
 		 # get total in words
-		dcc = TransactionBase().get_company_currency(self.doc.company)
+		dcc = get_company_currency(self.doc.company)
 		self.doc.in_words = pc_obj.get_total_in_words(dcc, self.doc.grand_total)
 		self.doc.in_words_import = pc_obj.get_total_in_words(self.doc.currency,
 		 	self.doc.grand_total_import)
diff --git a/accounts/doctype/purchase_invoice/purchase_invoice.txt b/accounts/doctype/purchase_invoice/purchase_invoice.txt
index 988dd5f..1952fa2 100755
--- a/accounts/doctype/purchase_invoice/purchase_invoice.txt
+++ b/accounts/doctype/purchase_invoice/purchase_invoice.txt
@@ -2,18 +2,18 @@
  {
   "owner": "Administrator", 
   "docstatus": 0, 
-  "creation": "2012-12-03 17:26:39", 
+  "creation": "2013-01-18 12:46:57", 
   "modified_by": "Administrator", 
-  "modified": "2012-12-04 17:15:28"
+  "modified": "2013-01-18 13:25:16"
  }, 
  {
   "is_submittable": 1, 
-  "autoname": "naming_series:", 
   "allow_attach": 1, 
-  "search_fields": "posting_date, credit_to, fiscal_year, bill_no, grand_total, outstanding_amount", 
+  "autoname": "naming_series:", 
   "module": "Accounts", 
   "doctype": "DocType", 
   "read_only_onload": 1, 
+  "search_fields": "posting_date, credit_to, fiscal_year, bill_no, grand_total, outstanding_amount", 
   "name": "__common__"
  }, 
  {
@@ -48,7 +48,6 @@
   "description": "To manage multiple series please go to Setup > Manage Series", 
   "no_copy": 1, 
   "oldfieldtype": "Select", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Series", 
   "oldfieldname": "naming_series", 
@@ -67,13 +66,12 @@
   "label": "Credit To", 
   "oldfieldname": "credit_to", 
   "permlevel": 0, 
-  "trigger": "Client", 
   "fieldname": "credit_to", 
   "fieldtype": "Link", 
   "search_index": 1, 
   "reqd": 1, 
-  "in_filter": 1, 
-  "options": "Account"
+  "options": "Account", 
+  "in_filter": 1
  }, 
  {
   "oldfieldtype": "Data", 
@@ -130,18 +128,18 @@
  {
   "print_hide": 1, 
   "description": "The date at which current entry will get or has actually executed.", 
-  "default": "Today", 
+  "no_copy": 0, 
   "oldfieldtype": "Date", 
   "doctype": "DocField", 
   "label": "Posting Date", 
   "oldfieldname": "posting_date", 
-  "no_copy": 0, 
+  "default": "Today", 
   "fieldname": "posting_date", 
   "fieldtype": "Date", 
   "search_index": 1, 
   "reqd": 1, 
-  "in_filter": 1, 
-  "permlevel": 0
+  "permlevel": 0, 
+  "in_filter": 1
  }, 
  {
   "print_hide": 1, 
@@ -154,8 +152,8 @@
   "fieldtype": "Data", 
   "search_index": 1, 
   "reqd": 1, 
-  "in_filter": 1, 
-  "permlevel": 0
+  "permlevel": 0, 
+  "in_filter": 1
  }, 
  {
   "print_hide": 1, 
@@ -184,10 +182,10 @@
   "doctype": "DocField", 
   "label": "Entries", 
   "oldfieldname": "entries", 
-  "options": "Purchase Invoice Item", 
+  "permlevel": 0, 
   "fieldname": "entries", 
   "fieldtype": "Table", 
-  "permlevel": 0
+  "options": "Purchase Invoice Item"
  }, 
  {
   "doctype": "DocField", 
@@ -196,33 +194,81 @@
   "permlevel": 0
  }, 
  {
-  "print_hide": 1, 
-  "description": "Will be calculated automatically when you enter the details", 
-  "oldfieldtype": "Currency", 
+  "oldfieldtype": "Button", 
   "doctype": "DocField", 
-  "label": "Net Total", 
-  "oldfieldname": "net_total", 
-  "fieldname": "net_total", 
-  "fieldtype": "Currency", 
-  "permlevel": 1
+  "label": "Recalculate", 
+  "fieldname": "recalculate", 
+  "fieldtype": "Button", 
+  "permlevel": 0
+ }, 
+ {
+  "doctype": "DocField", 
+  "permlevel": 0, 
+  "fieldname": "section_break_17", 
+  "fieldtype": "Section Break", 
+  "options": "Simple"
  }, 
  {
   "print_hide": 1, 
-  "oldfieldtype": "Currency", 
+  "description": "Select Items from Purchase Order", 
+  "oldfieldtype": "Link", 
   "doctype": "DocField", 
-  "label": "Net Total (Import)", 
-  "oldfieldname": "net_total_import", 
-  "fieldname": "net_total_import", 
-  "fieldtype": "Currency", 
-  "permlevel": 1
+  "label": "Purchase Order", 
+  "oldfieldname": "purchase_order_main", 
+  "permlevel": 0, 
+  "fieldname": "purchase_order_main", 
+  "fieldtype": "Link", 
+  "options": "Purchase Order"
+ }, 
+ {
+  "print_hide": 1, 
+  "description": "Select Items from Purchase Receipt", 
+  "oldfieldtype": "Link", 
+  "doctype": "DocField", 
+  "label": "Purchase Receipt", 
+  "oldfieldname": "purchase_receipt_main", 
+  "permlevel": 0, 
+  "fieldname": "purchase_receipt_main", 
+  "fieldtype": "Link", 
+  "options": "Purchase Receipt"
  }, 
  {
   "oldfieldtype": "Button", 
   "doctype": "DocField", 
-  "label": "Recalculate", 
-  "trigger": "Client", 
-  "fieldname": "recalculate", 
+  "label": "Get Items", 
+  "permlevel": 0, 
+  "fieldname": "get_items", 
   "fieldtype": "Button", 
+  "options": "pull_details"
+ }, 
+ {
+  "doctype": "DocField", 
+  "label": "Currency & Price List", 
+  "fieldname": "currency_price_list", 
+  "fieldtype": "Section Break", 
+  "permlevel": 0
+ }, 
+ {
+  "print_hide": 1, 
+  "oldfieldtype": "Select", 
+  "doctype": "DocField", 
+  "label": "Currency", 
+  "oldfieldname": "currency", 
+  "permlevel": 0, 
+  "fieldname": "currency", 
+  "fieldtype": "Select", 
+  "options": "link:Currency"
+ }, 
+ {
+  "print_hide": 1, 
+  "description": "The rate at which Bill Currency is converted into company's base currency", 
+  "default": "1", 
+  "oldfieldtype": "Currency", 
+  "doctype": "DocField", 
+  "label": "Exchange Rate", 
+  "oldfieldname": "conversion_rate", 
+  "fieldname": "conversion_rate", 
+  "fieldtype": "Float", 
   "permlevel": 0
  }, 
  {
@@ -233,70 +279,36 @@
  }, 
  {
   "print_hide": 1, 
-  "description": "The rate at which Bill Currency is converted into company's base currency", 
-  "default": "1", 
-  "oldfieldtype": "Currency", 
-  "colour": "White:FFF", 
+  "description": "Consider this Price List for fetching rate. (only which have \"For Buying\" as checked)", 
   "doctype": "DocField", 
-  "label": "Bill Conversion Rate", 
-  "oldfieldname": "conversion_rate", 
-  "fieldname": "conversion_rate", 
+  "label": "Price List", 
+  "permlevel": 0, 
+  "fieldname": "price_list_name", 
+  "fieldtype": "Link", 
+  "options": "Price List"
+ }, 
+ {
+  "print_hide": 1, 
+  "depends_on": "price_list_name", 
+  "doctype": "DocField", 
+  "label": "Price List Currency", 
+  "permlevel": 0, 
+  "fieldname": "price_list_currency", 
+  "fieldtype": "Link", 
+  "options": "Currency"
+ }, 
+ {
+  "print_hide": 1, 
+  "depends_on": "price_list_name", 
+  "doctype": "DocField", 
+  "label": "Price List Exchange Rate", 
+  "fieldname": "plc_conversion_rate", 
   "fieldtype": "Float", 
   "permlevel": 0
  }, 
  {
-  "print_hide": 1, 
-  "oldfieldtype": "Select", 
-  "doctype": "DocField", 
-  "label": "Bill Currency", 
-  "oldfieldname": "currency", 
-  "options": "link:Currency", 
-  "fieldname": "currency", 
-  "fieldtype": "Select", 
-  "permlevel": 0
- }, 
- {
-  "print_hide": 1, 
-  "description": "Select Items from Purchase Order", 
-  "oldfieldtype": "Link", 
-  "colour": "White:FFF", 
-  "doctype": "DocField", 
-  "label": "Purchase Order", 
-  "oldfieldname": "purchase_order_main", 
-  "permlevel": 0, 
-  "trigger": "Client", 
-  "fieldname": "purchase_order_main", 
-  "fieldtype": "Link", 
-  "options": "Purchase Order"
- }, 
- {
-  "print_hide": 1, 
-  "description": "Select Items from Purchase Receipt", 
-  "oldfieldtype": "Link", 
-  "colour": "White:FFF", 
-  "doctype": "DocField", 
-  "label": "Purchase Receipt", 
-  "oldfieldname": "purchase_receipt_main", 
-  "permlevel": 0, 
-  "trigger": "Client", 
-  "fieldname": "purchase_receipt_main", 
-  "fieldtype": "Link", 
-  "options": "Purchase Receipt"
- }, 
- {
-  "oldfieldtype": "Button", 
-  "colour": "White:FFF", 
-  "doctype": "DocField", 
-  "label": "Get Items", 
-  "options": "pull_details", 
-  "fieldname": "get_items", 
-  "fieldtype": "Button", 
-  "permlevel": 0
- }, 
- {
   "description": "Add / Edit Taxes and Charges", 
   "oldfieldtype": "Section Break", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Taxes", 
   "fieldname": "taxes", 
@@ -309,37 +321,36 @@
   "doctype": "DocField", 
   "label": "Purchase Taxes and Charges", 
   "oldfieldname": "purchase_other_charges", 
-  "options": "Purchase Taxes and Charges Master", 
+  "permlevel": 0, 
   "fieldname": "purchase_other_charges", 
   "fieldtype": "Link", 
-  "permlevel": 0
+  "options": "Purchase Taxes and Charges Master"
  }, 
  {
   "print_hide": 1, 
   "oldfieldtype": "Button", 
   "doctype": "DocField", 
   "label": "Get Tax Detail", 
-  "options": "get_purchase_tax_details", 
+  "permlevel": 0, 
   "fieldname": "get_tax_detail", 
   "fieldtype": "Button", 
-  "permlevel": 0
+  "options": "get_purchase_tax_details"
  }, 
  {
   "oldfieldtype": "Table", 
   "doctype": "DocField", 
   "label": "Purchase Taxes and Charges", 
   "oldfieldname": "purchase_tax_details", 
-  "options": "Purchase Taxes and Charges", 
+  "permlevel": 0, 
   "fieldname": "purchase_tax_details", 
   "fieldtype": "Table", 
-  "permlevel": 0
+  "options": "Purchase Taxes and Charges"
  }, 
  {
   "print_hide": 1, 
   "oldfieldtype": "Button", 
   "doctype": "DocField", 
   "label": "Calculate Tax", 
-  "trigger": "Client", 
   "fieldname": "calculate_tax", 
   "fieldtype": "Button", 
   "permlevel": 0
@@ -373,12 +384,10 @@
  {
   "print_hide": 1, 
   "oldfieldtype": "Link", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Supplier", 
   "oldfieldname": "supplier", 
   "permlevel": 0, 
-  "trigger": "Client", 
   "fieldname": "supplier", 
   "fieldtype": "Link", 
   "hidden": 0, 
@@ -386,13 +395,12 @@
  }, 
  {
   "depends_on": "eval:doc.supplier", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Supplier Address", 
-  "options": "Address", 
+  "permlevel": 0, 
   "fieldname": "supplier_address", 
   "fieldtype": "Link", 
-  "permlevel": 0
+  "options": "Address"
  }, 
  {
   "doctype": "DocField", 
@@ -404,213 +412,12 @@
  {
   "print_hide": 1, 
   "depends_on": "eval:doc.supplier", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Contact Person", 
-  "options": "Contact", 
+  "permlevel": 0, 
   "fieldname": "contact_person", 
   "fieldtype": "Link", 
-  "permlevel": 0
- }, 
- {
-  "print_hide": 1, 
-  "oldfieldtype": "Section Break", 
-  "doctype": "DocField", 
-  "label": "More Info", 
-  "fieldname": "more_info", 
-  "fieldtype": "Section Break", 
-  "permlevel": 0
- }, 
- {
-  "print_hide": 1, 
-  "oldfieldtype": "Column Break", 
-  "doctype": "DocField", 
-  "width": "50%", 
-  "fieldname": "column_break3", 
-  "fieldtype": "Column Break", 
-  "permlevel": 0
- }, 
- {
-  "print_hide": 1, 
-  "default": "No", 
-  "oldfieldtype": "Select", 
-  "colour": "White:FFF", 
-  "doctype": "DocField", 
-  "label": "Is Opening", 
-  "oldfieldname": "is_opening", 
-  "permlevel": 0, 
-  "trigger": "Client", 
-  "fieldname": "is_opening", 
-  "fieldtype": "Select", 
-  "search_index": 1, 
-  "options": "No\nYes", 
-  "in_filter": 1
- }, 
- {
-  "print_hide": 1, 
-  "oldfieldtype": "Date", 
-  "doctype": "DocField", 
-  "label": "Aging Date", 
-  "oldfieldname": "aging_date", 
-  "fieldname": "aging_date", 
-  "fieldtype": "Date", 
-  "search_index": 0, 
-  "permlevel": 0
- }, 
- {
-  "print_hide": 1, 
-  "no_copy": 1, 
-  "oldfieldtype": "Link", 
-  "doctype": "DocField", 
-  "label": "Amended From", 
-  "oldfieldname": "amended_from", 
-  "options": "Purchase Invoice", 
-  "fieldname": "amended_from", 
-  "fieldtype": "Link", 
-  "permlevel": 1
- }, 
- {
-  "print_hide": 1, 
-  "description": "The date at which current entry is corrected in the system.", 
-  "no_copy": 1, 
-  "oldfieldtype": "Date", 
-  "doctype": "DocField", 
-  "label": "Amendment Date", 
-  "oldfieldname": "amendment_date", 
-  "fieldname": "amendment_date", 
-  "fieldtype": "Date", 
-  "permlevel": 0
- }, 
- {
-  "print_hide": 1, 
-  "no_copy": 1, 
-  "oldfieldtype": "Link", 
-  "colour": "White:FFF", 
-  "allow_on_submit": 1, 
-  "doctype": "DocField", 
-  "label": "Select Print Heading", 
-  "oldfieldname": "select_print_heading", 
-  "permlevel": 0, 
-  "trigger": "Client", 
-  "fieldname": "select_print_heading", 
-  "fieldtype": "Link", 
-  "options": "Print Heading", 
-  "report_hide": 1
- }, 
- {
-  "print_hide": 0, 
-  "no_copy": 0, 
-  "oldfieldtype": "Date", 
-  "doctype": "DocField", 
-  "label": "Due Date", 
-  "oldfieldname": "due_date", 
-  "fieldname": "due_date", 
-  "fieldtype": "Date", 
-  "search_index": 1, 
-  "permlevel": 0, 
-  "in_filter": 1
- }, 
- {
-  "oldfieldtype": "Select", 
-  "doctype": "DocField", 
-  "label": "Mode of Payment", 
-  "oldfieldname": "mode_of_payment", 
-  "options": "link:Mode of Payment", 
-  "fieldname": "mode_of_payment", 
-  "fieldtype": "Select", 
-  "permlevel": 0
- }, 
- {
-  "print_hide": 1, 
-  "oldfieldtype": "Column Break", 
-  "doctype": "DocField", 
-  "width": "50%", 
-  "fieldname": "column_break4", 
-  "fieldtype": "Column Break", 
-  "permlevel": 0
- }, 
- {
-  "print_hide": 1, 
-  "oldfieldtype": "Link", 
-  "doctype": "DocField", 
-  "label": "Company", 
-  "oldfieldname": "company", 
-  "options": "Company", 
-  "fieldname": "company", 
-  "fieldtype": "Link", 
-  "search_index": 1, 
-  "permlevel": 0, 
-  "in_filter": 1
- }, 
- {
-  "print_hide": 1, 
-  "oldfieldtype": "Select", 
-  "doctype": "DocField", 
-  "label": "Fiscal Year", 
-  "oldfieldname": "fiscal_year", 
-  "options": "link:Fiscal Year", 
-  "fieldname": "fiscal_year", 
-  "fieldtype": "Select", 
-  "search_index": 1, 
-  "permlevel": 0, 
-  "in_filter": 1
- }, 
- {
-  "print_hide": 1, 
-  "no_copy": 1, 
-  "oldfieldtype": "Data", 
-  "colour": "White:FFF", 
-  "doctype": "DocField", 
-  "label": "Cancel Reason", 
-  "oldfieldname": "cancel_reason", 
-  "fieldname": "cancel_reason", 
-  "fieldtype": "Data", 
-  "depends_on": "eval:!doc.__islocal", 
-  "permlevel": 1
- }, 
- {
-  "print_hide": 1, 
-  "no_copy": 1, 
-  "oldfieldtype": "Text", 
-  "doctype": "DocField", 
-  "label": "Remarks", 
-  "oldfieldname": "remarks", 
-  "fieldname": "remarks", 
-  "fieldtype": "Small Text", 
-  "reqd": 0, 
-  "permlevel": 0
- }, 
- {
-  "print_hide": 1, 
-  "oldfieldtype": "Section Break", 
-  "doctype": "DocField", 
-  "label": "Advances", 
-  "fieldname": "advances", 
-  "fieldtype": "Section Break", 
-  "permlevel": 0
- }, 
- {
-  "print_hide": 1, 
-  "oldfieldtype": "Button", 
-  "doctype": "DocField", 
-  "label": "Get Advances Paid", 
-  "options": "get_advances", 
-  "fieldname": "get_advances_paid", 
-  "fieldtype": "Button", 
-  "permlevel": 0
- }, 
- {
-  "print_hide": 1, 
-  "no_copy": 1, 
-  "oldfieldtype": "Table", 
-  "colour": "White:FFF", 
-  "doctype": "DocField", 
-  "label": "Purchase Invoice Advances", 
-  "oldfieldname": "advance_allocation_details", 
-  "options": "Purchase Invoice Advance", 
-  "fieldname": "advance_allocation_details", 
-  "fieldtype": "Table", 
-  "permlevel": 0
+  "options": "Contact"
  }, 
  {
   "oldfieldtype": "Section Break", 
@@ -622,20 +429,11 @@
  }, 
  {
   "print_hide": 1, 
-  "oldfieldtype": "Column Break", 
-  "doctype": "DocField", 
-  "width": "50%", 
-  "fieldname": "column_break7", 
-  "fieldtype": "Column Break", 
-  "permlevel": 0
- }, 
- {
-  "print_hide": 1, 
   "oldfieldtype": "Currency", 
   "doctype": "DocField", 
-  "label": "Taxes and Charges Added", 
-  "oldfieldname": "other_charges_added", 
-  "fieldname": "other_charges_added", 
+  "label": "Net Total (Import)", 
+  "oldfieldname": "net_total_import", 
+  "fieldname": "net_total_import", 
   "fieldtype": "Currency", 
   "permlevel": 1
  }, 
@@ -643,9 +441,9 @@
   "print_hide": 1, 
   "oldfieldtype": "Currency", 
   "doctype": "DocField", 
-  "label": "Taxes and Charges Deducted", 
-  "oldfieldname": "other_charges_deducted", 
-  "fieldname": "other_charges_deducted", 
+  "label": "Taxes and Charges Added (Import)", 
+  "oldfieldname": "other_charges_added_import", 
+  "fieldname": "other_charges_added_import", 
   "fieldtype": "Currency", 
   "permlevel": 1
  }, 
@@ -653,35 +451,34 @@
   "print_hide": 1, 
   "oldfieldtype": "Currency", 
   "doctype": "DocField", 
-  "label": "Grand Total", 
-  "oldfieldname": "grand_total", 
-  "fieldname": "grand_total", 
+  "label": "Taxes and Charges Deducted (Import)", 
+  "oldfieldname": "other_charges_deducted_import", 
+  "fieldname": "other_charges_deducted_import", 
   "fieldtype": "Currency", 
   "permlevel": 1
  }, 
  {
   "print_hide": 1, 
-  "description": "In Words will be visible once you save the Purchase Invoice.", 
+  "oldfieldtype": "Currency", 
+  "doctype": "DocField", 
+  "label": "Grand Total (Import)", 
+  "oldfieldname": "grand_total_import", 
+  "fieldname": "grand_total_import", 
+  "fieldtype": "Currency", 
+  "permlevel": 1
+ }, 
+ {
+  "print_hide": 1, 
   "oldfieldtype": "Data", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
-  "label": "In Words", 
-  "oldfieldname": "in_words", 
-  "fieldname": "in_words", 
+  "label": "In Words (Import)", 
+  "oldfieldname": "in_words_import", 
+  "fieldname": "in_words_import", 
   "fieldtype": "Data", 
   "permlevel": 1
  }, 
  {
   "print_hide": 1, 
-  "oldfieldtype": "Column Break", 
-  "doctype": "DocField", 
-  "width": "50%", 
-  "fieldname": "column_break8", 
-  "fieldtype": "Column Break", 
-  "permlevel": 0
- }, 
- {
-  "print_hide": 1, 
   "no_copy": 1, 
   "oldfieldtype": "Currency", 
   "doctype": "DocField", 
@@ -718,6 +515,67 @@
  }, 
  {
   "print_hide": 1, 
+  "oldfieldtype": "Column Break", 
+  "doctype": "DocField", 
+  "width": "50%", 
+  "fieldname": "column_break8", 
+  "fieldtype": "Column Break", 
+  "permlevel": 0
+ }, 
+ {
+  "print_hide": 1, 
+  "description": "Will be calculated automatically when you enter the details", 
+  "oldfieldtype": "Currency", 
+  "doctype": "DocField", 
+  "label": "Net Total", 
+  "oldfieldname": "net_total", 
+  "fieldname": "net_total", 
+  "fieldtype": "Currency", 
+  "permlevel": 1
+ }, 
+ {
+  "print_hide": 1, 
+  "oldfieldtype": "Currency", 
+  "doctype": "DocField", 
+  "label": "Taxes and Charges Added", 
+  "oldfieldname": "other_charges_added", 
+  "fieldname": "other_charges_added", 
+  "fieldtype": "Currency", 
+  "permlevel": 1
+ }, 
+ {
+  "print_hide": 1, 
+  "oldfieldtype": "Currency", 
+  "doctype": "DocField", 
+  "label": "Taxes and Charges Deducted", 
+  "oldfieldname": "other_charges_deducted", 
+  "fieldname": "other_charges_deducted", 
+  "fieldtype": "Currency", 
+  "permlevel": 1
+ }, 
+ {
+  "print_hide": 1, 
+  "oldfieldtype": "Currency", 
+  "doctype": "DocField", 
+  "label": "Grand Total", 
+  "oldfieldname": "grand_total", 
+  "fieldname": "grand_total", 
+  "fieldtype": "Currency", 
+  "permlevel": 1
+ }, 
+ {
+  "print_hide": 1, 
+  "description": "In Words will be visible once you save the Purchase Invoice.", 
+  "oldfieldtype": "Data", 
+  "doctype": "DocField", 
+  "label": "In Words", 
+  "oldfieldname": "in_words", 
+  "fieldname": "in_words", 
+  "fieldtype": "Data", 
+  "permlevel": 1
+ }, 
+ {
+  "print_hide": 1, 
   "no_copy": 1, 
   "doctype": "DocField", 
   "label": "Write Off Amount", 
@@ -729,66 +587,23 @@
   "print_hide": 1, 
   "no_copy": 1, 
   "depends_on": "eval:flt(doc.write_off_amount)!=0", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Write Off Account", 
-  "options": "Account", 
+  "permlevel": 0, 
   "fieldname": "write_off_account", 
   "fieldtype": "Link", 
-  "permlevel": 0
+  "options": "Account"
  }, 
  {
   "print_hide": 1, 
   "no_copy": 1, 
   "depends_on": "eval:flt(doc.write_off_amount)!=0", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Write Off Cost Center", 
-  "options": "Account", 
+  "permlevel": 0, 
   "fieldname": "write_off_cost_center", 
   "fieldtype": "Link", 
-  "permlevel": 0
- }, 
- {
-  "print_hide": 1, 
-  "oldfieldtype": "Currency", 
-  "doctype": "DocField", 
-  "label": "Taxes and Charges Added (Import)", 
-  "oldfieldname": "other_charges_added_import", 
-  "fieldname": "other_charges_added_import", 
-  "fieldtype": "Currency", 
-  "permlevel": 1
- }, 
- {
-  "print_hide": 1, 
-  "oldfieldtype": "Currency", 
-  "doctype": "DocField", 
-  "label": "Taxes and Charges Deducted (Import)", 
-  "oldfieldname": "other_charges_deducted_import", 
-  "fieldname": "other_charges_deducted_import", 
-  "fieldtype": "Currency", 
-  "permlevel": 1
- }, 
- {
-  "print_hide": 1, 
-  "oldfieldtype": "Currency", 
-  "doctype": "DocField", 
-  "label": "Grand Total (Import)", 
-  "oldfieldname": "grand_total_import", 
-  "fieldname": "grand_total_import", 
-  "fieldtype": "Currency", 
-  "permlevel": 1
- }, 
- {
-  "print_hide": 1, 
-  "oldfieldtype": "Data", 
-  "colour": "White:FFF", 
-  "doctype": "DocField", 
-  "label": "In Words (Import)", 
-  "oldfieldname": "in_words_import", 
-  "fieldname": "in_words_import", 
-  "fieldtype": "Data", 
-  "permlevel": 1
+  "options": "Account"
  }, 
  {
   "print_hide": 1, 
@@ -805,6 +620,176 @@
  }, 
  {
   "print_hide": 1, 
+  "oldfieldtype": "Section Break", 
+  "doctype": "DocField", 
+  "label": "Advances", 
+  "fieldname": "advances", 
+  "fieldtype": "Section Break", 
+  "permlevel": 0
+ }, 
+ {
+  "print_hide": 1, 
+  "oldfieldtype": "Button", 
+  "doctype": "DocField", 
+  "label": "Get Advances Paid", 
+  "permlevel": 0, 
+  "fieldname": "get_advances_paid", 
+  "fieldtype": "Button", 
+  "options": "get_advances"
+ }, 
+ {
+  "print_hide": 1, 
+  "no_copy": 1, 
+  "oldfieldtype": "Table", 
+  "doctype": "DocField", 
+  "label": "Purchase Invoice Advances", 
+  "oldfieldname": "advance_allocation_details", 
+  "permlevel": 0, 
+  "fieldname": "advance_allocation_details", 
+  "fieldtype": "Table", 
+  "options": "Purchase Invoice Advance"
+ }, 
+ {
+  "print_hide": 1, 
+  "oldfieldtype": "Section Break", 
+  "doctype": "DocField", 
+  "label": "More Info", 
+  "fieldname": "more_info", 
+  "fieldtype": "Section Break", 
+  "permlevel": 0
+ }, 
+ {
+  "print_hide": 1, 
+  "default": "No", 
+  "oldfieldtype": "Select", 
+  "doctype": "DocField", 
+  "label": "Is Opening", 
+  "oldfieldname": "is_opening", 
+  "options": "No\nYes", 
+  "fieldname": "is_opening", 
+  "fieldtype": "Select", 
+  "search_index": 1, 
+  "permlevel": 0, 
+  "in_filter": 1
+ }, 
+ {
+  "print_hide": 1, 
+  "oldfieldtype": "Date", 
+  "doctype": "DocField", 
+  "label": "Aging Date", 
+  "oldfieldname": "aging_date", 
+  "fieldname": "aging_date", 
+  "fieldtype": "Date", 
+  "search_index": 0, 
+  "permlevel": 0
+ }, 
+ {
+  "print_hide": 1, 
+  "no_copy": 1, 
+  "oldfieldtype": "Link", 
+  "doctype": "DocField", 
+  "label": "Amended From", 
+  "oldfieldname": "amended_from", 
+  "permlevel": 1, 
+  "fieldname": "amended_from", 
+  "fieldtype": "Link", 
+  "options": "Purchase Invoice"
+ }, 
+ {
+  "print_hide": 1, 
+  "no_copy": 1, 
+  "oldfieldtype": "Link", 
+  "allow_on_submit": 1, 
+  "doctype": "DocField", 
+  "label": "Select Print Heading", 
+  "oldfieldname": "select_print_heading", 
+  "options": "Print Heading", 
+  "fieldname": "select_print_heading", 
+  "fieldtype": "Link", 
+  "permlevel": 0, 
+  "report_hide": 1
+ }, 
+ {
+  "print_hide": 0, 
+  "no_copy": 0, 
+  "oldfieldtype": "Date", 
+  "doctype": "DocField", 
+  "label": "Due Date", 
+  "oldfieldname": "due_date", 
+  "fieldname": "due_date", 
+  "fieldtype": "Date", 
+  "search_index": 1, 
+  "permlevel": 0, 
+  "in_filter": 1
+ }, 
+ {
+  "oldfieldtype": "Select", 
+  "doctype": "DocField", 
+  "label": "Mode of Payment", 
+  "oldfieldname": "mode_of_payment", 
+  "permlevel": 0, 
+  "fieldname": "mode_of_payment", 
+  "fieldtype": "Select", 
+  "options": "link:Mode of Payment"
+ }, 
+ {
+  "doctype": "DocField", 
+  "fieldname": "column_break_63", 
+  "fieldtype": "Column Break", 
+  "permlevel": 0
+ }, 
+ {
+  "print_hide": 1, 
+  "oldfieldtype": "Link", 
+  "doctype": "DocField", 
+  "label": "Company", 
+  "oldfieldname": "company", 
+  "permlevel": 0, 
+  "fieldname": "company", 
+  "fieldtype": "Link", 
+  "search_index": 1, 
+  "options": "Company", 
+  "in_filter": 1
+ }, 
+ {
+  "print_hide": 1, 
+  "oldfieldtype": "Select", 
+  "doctype": "DocField", 
+  "label": "Fiscal Year", 
+  "oldfieldname": "fiscal_year", 
+  "permlevel": 0, 
+  "fieldname": "fiscal_year", 
+  "fieldtype": "Select", 
+  "search_index": 1, 
+  "options": "link:Fiscal Year", 
+  "in_filter": 1
+ }, 
+ {
+  "print_hide": 1, 
+  "no_copy": 1, 
+  "oldfieldtype": "Data", 
+  "doctype": "DocField", 
+  "label": "Cancel Reason", 
+  "oldfieldname": "cancel_reason", 
+  "fieldname": "cancel_reason", 
+  "fieldtype": "Data", 
+  "depends_on": "eval:!doc.__islocal", 
+  "permlevel": 1
+ }, 
+ {
+  "print_hide": 1, 
+  "no_copy": 1, 
+  "oldfieldtype": "Text", 
+  "doctype": "DocField", 
+  "label": "Remarks", 
+  "oldfieldname": "remarks", 
+  "fieldname": "remarks", 
+  "fieldtype": "Small Text", 
+  "reqd": 0, 
+  "permlevel": 0
+ }, 
+ {
+  "print_hide": 1, 
   "no_copy": 1, 
   "doctype": "DocField", 
   "label": "File List", 
@@ -819,8 +804,9 @@
   "doctype": "DocPerm", 
   "submit": 1, 
   "write": 1, 
-  "cancel": 1, 
+  "report": 1, 
   "role": "Accounts User", 
+  "cancel": 1, 
   "permlevel": 0
  }, 
  {
@@ -829,8 +815,8 @@
   "doctype": "DocPerm", 
   "submit": 0, 
   "write": 0, 
-  "cancel": 0, 
   "role": "Purchase User", 
+  "cancel": 0, 
   "permlevel": 1
  }, 
  {
@@ -839,8 +825,9 @@
   "doctype": "DocPerm", 
   "submit": 0, 
   "write": 1, 
-  "cancel": 0, 
+  "report": 1, 
   "role": "Purchase User", 
+  "cancel": 0, 
   "permlevel": 0
  }, 
  {
@@ -851,6 +838,7 @@
   "write": 0, 
   "cancel": 0, 
   "role": "Supplier", 
+  "report": 1, 
   "permlevel": 0, 
   "match": "supplier"
  }, 
@@ -860,8 +848,8 @@
   "doctype": "DocPerm", 
   "submit": 0, 
   "write": 0, 
-  "cancel": 0, 
   "role": "Accounts Manager", 
+  "cancel": 0, 
   "permlevel": 1
  }, 
  {
@@ -870,8 +858,9 @@
   "doctype": "DocPerm", 
   "submit": 1, 
   "write": 1, 
-  "cancel": 1, 
+  "report": 1, 
   "role": "Accounts Manager", 
+  "cancel": 1, 
   "permlevel": 0
  }, 
  {
@@ -880,8 +869,8 @@
   "doctype": "DocPerm", 
   "submit": 0, 
   "write": 0, 
-  "cancel": 0, 
   "role": "Accounts User", 
+  "cancel": 0, 
   "permlevel": 1
  }, 
  {
@@ -890,8 +879,8 @@
   "doctype": "DocPerm", 
   "submit": 0, 
   "write": 0, 
-  "cancel": 0, 
   "role": "Auditor", 
+  "cancel": 0, 
   "permlevel": 1
  }, 
  {
@@ -900,8 +889,9 @@
   "doctype": "DocPerm", 
   "submit": 0, 
   "write": 0, 
-  "cancel": 0, 
+  "report": 1, 
   "role": "Auditor", 
+  "cancel": 0, 
   "permlevel": 0
  }
 ]
\ No newline at end of file
diff --git a/accounts/doctype/purchase_taxes_and_charges_master/purchase_taxes_and_charges_master.txt b/accounts/doctype/purchase_taxes_and_charges_master/purchase_taxes_and_charges_master.txt
index da33cb2..6285602 100644
--- a/accounts/doctype/purchase_taxes_and_charges_master/purchase_taxes_and_charges_master.txt
+++ b/accounts/doctype/purchase_taxes_and_charges_master/purchase_taxes_and_charges_master.txt
@@ -10,14 +10,14 @@
   "section_style": "Simple", 
   "description": "Standard tax template that can be applied to all Purchase Transactions. This template can contain list of tax heads and also other expense heads like \"Shipping\", \"Insurance\", \"Handling\" etc.\n\n#### Note\n\nThe tax rate you define here will be the standard tax rate for all **Items**. If there are **Items** that have different rates, they must be added in the **Item Tax** table in the **Item** master.\n\n#### Description of Columns\n\n1. Calculation Type: \n    - This can be on **Net Total** (that is the sum of basic amount).\n    - **On Previous Row Total / Amount** (for cumulative taxes or charges). If you select this option, the tax will be applied as a percentage of the previous row (in the tax table) amount or total.\n    - **Actual** (as mentioned).\n2. Account Head: The Account ledger under which this tax will be booked\n3. Cost Center: If the tax / charge is an income (like shipping) or expense it needs to be booked against a Cost Center.\n4. Description: Description of the tax (that will be printed in invoices / quotes).\n5. Rate: Tax rate.\n6. Amount: Tax amount.\n7. Total: Cumulative total to this point.\n8. Enter Row: If based on \"Previous Row Total\" you can select the row number which will be taken as a base for this calculation (default is the previous row).\n9. Consider Tax or Charge for: In this section you can specify if the tax / charge is only for valuation (not a part of total) or only for total (does not add value to the item) or for both.\n10. Add or Deduct: Whether you want to add or deduct the tax.", 
   "module": "Accounts", 
-  "doctype": "DocType", 
-  "allow_trash": 1, 
   "server_code_error": " ", 
-  "document_type": "Master", 
+  "allow_trash": 1, 
   "autoname": "field:title", 
+  "document_type": "Master", 
+  "_last_update": "1325570646", 
   "name": "__common__", 
   "colour": "White:FFF", 
-  "_last_update": "1325570646", 
+  "doctype": "DocType", 
   "show_in_menu": 0, 
   "version": 1
  }, 
@@ -52,6 +52,7 @@
   "doctype": "DocPerm", 
   "submit": 0, 
   "write": 0, 
+  "report": 1, 
   "role": "Purchase Manager", 
   "cancel": 0, 
   "permlevel": 0
@@ -60,8 +61,9 @@
   "create": 1, 
   "doctype": "DocPerm", 
   "write": 1, 
-  "role": "System Manager", 
   "cancel": 1, 
+  "role": "System Manager", 
+  "report": 1, 
   "permlevel": 0
  }, 
  {
@@ -69,8 +71,9 @@
   "doctype": "DocPerm", 
   "submit": 0, 
   "write": 1, 
-  "role": "Purchase Master Manager", 
   "cancel": 1, 
+  "role": "Purchase Master Manager", 
+  "report": 1, 
   "permlevel": 0
  }, 
  {
diff --git a/accounts/doctype/sales_invoice/sales_invoice.py b/accounts/doctype/sales_invoice/sales_invoice.py
index 5042f53..2e48f91 100644
--- a/accounts/doctype/sales_invoice/sales_invoice.py
+++ b/accounts/doctype/sales_invoice/sales_invoice.py
@@ -26,6 +26,7 @@
 from webnotes.model.wrapper import getlist, copy_doclist
 from webnotes.model.code import get_obj
 from webnotes import session, form, msgprint
+from setup.utils import get_company_currency
 
 session = webnotes.session
 
@@ -412,7 +413,7 @@
 
 
 	def set_in_words(self):
-		dcc = TransactionBase().get_company_currency(self.doc.company)
+		dcc = get_company_currency(self.doc.company)
 		self.doc.in_words = get_obj('Sales Common').get_total_in_words(dcc, self.doc.rounded_total)
 		self.doc.in_words_export = get_obj('Sales Common').get_total_in_words(self.doc.currency, self.doc.rounded_total_export)
 
@@ -503,7 +504,7 @@
 				d.actual_qty = bin and flt(bin[0]['actual_qty']) or 0
 
 		for d in getlist(self.doclist, 'packing_details'):
-			bin = sql("select actual_qty, projected_qty from `tabBin` where item_code =	%s and warehouse = %s", (d.item_code, d.warehouse), as_dict = 1)
+			bin = webnotes.conn.sql("select actual_qty, projected_qty from `tabBin` where item_code =	%s and warehouse = %s", (d.item_code, d.warehouse), as_dict = 1)
 			d.actual_qty = bin and flt(bin[0]['actual_qty']) or 0
 			d.projected_qty = bin and flt(bin[0]['projected_qty']) or 0
 	 
diff --git a/accounts/doctype/sales_invoice/sales_invoice.txt b/accounts/doctype/sales_invoice/sales_invoice.txt
index 95156b16..1c9e2e7 100644
--- a/accounts/doctype/sales_invoice/sales_invoice.txt
+++ b/accounts/doctype/sales_invoice/sales_invoice.txt
@@ -8,12 +8,12 @@
  }, 
  {
   "is_submittable": 1, 
-  "autoname": "naming_series:", 
   "allow_attach": 1, 
-  "search_fields": "posting_date, due_date, debit_to, fiscal_year, grand_total, outstanding_amount", 
+  "autoname": "naming_series:", 
   "module": "Accounts", 
   "doctype": "DocType", 
   "read_only_onload": 1, 
+  "search_fields": "posting_date, due_date, debit_to, fiscal_year, grand_total, outstanding_amount", 
   "name": "__common__"
  }, 
  {
@@ -104,8 +104,8 @@
   "fieldtype": "Link", 
   "search_index": 1, 
   "reqd": 1, 
-  "in_filter": 1, 
-  "options": "Account"
+  "options": "Account", 
+  "in_filter": 1
  }, 
  {
   "print_hide": 1, 
@@ -176,45 +176,45 @@
  {
   "print_hide": 0, 
   "description": "The date at which current entry will get or has actually executed.", 
-  "default": "Today", 
+  "no_copy": 1, 
   "oldfieldtype": "Date", 
   "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Posting Date", 
   "oldfieldname": "posting_date", 
-  "no_copy": 1, 
+  "default": "Today", 
   "fieldname": "posting_date", 
   "fieldtype": "Date", 
   "search_index": 1, 
   "reqd": 1, 
-  "in_filter": 1, 
-  "permlevel": 0
+  "permlevel": 0, 
+  "in_filter": 1
  }, 
  {
   "description": "Enter the date by which payments from customer is expected against this invoice.", 
-  "default": "Today", 
+  "no_copy": 1, 
   "oldfieldtype": "Date", 
   "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Due Date", 
   "oldfieldname": "due_date", 
-  "no_copy": 1, 
+  "default": "Today", 
   "fieldname": "due_date", 
   "fieldtype": "Date", 
   "search_index": 0, 
   "reqd": 1, 
-  "in_filter": 1, 
-  "permlevel": 0
+  "permlevel": 0, 
+  "in_filter": 1
  }, 
  {
   "oldfieldtype": "Select", 
   "doctype": "DocField", 
   "label": "Mode of Payment", 
   "oldfieldname": "mode_of_payment", 
-  "options": "link:Mode of Payment", 
+  "permlevel": 0, 
   "fieldname": "mode_of_payment", 
   "fieldtype": "Select", 
-  "permlevel": 0
+  "options": "link:Mode of Payment"
  }, 
  {
   "oldfieldtype": "Section Break", 
@@ -232,10 +232,10 @@
   "doctype": "DocField", 
   "label": "Entries", 
   "oldfieldname": "entries", 
-  "options": "Sales Invoice Item", 
+  "permlevel": 0, 
   "fieldname": "entries", 
   "fieldtype": "Table", 
-  "permlevel": 0
+  "options": "Sales Invoice Item"
  }, 
  {
   "print_hide": 1, 
@@ -247,10 +247,10 @@
  }, 
  {
   "doctype": "DocField", 
-  "options": "Simple", 
+  "permlevel": 0, 
   "fieldname": "section_break0", 
   "fieldtype": "Section Break", 
-  "permlevel": 0
+  "options": "Simple"
  }, 
  {
   "doctype": "DocField", 
@@ -297,10 +297,10 @@
   "doctype": "DocField", 
   "label": "Sales Order", 
   "oldfieldname": "sales_order_main", 
-  "options": "Sales Order", 
+  "permlevel": 0, 
   "fieldname": "sales_order_main", 
   "fieldtype": "Link", 
-  "permlevel": 0
+  "options": "Sales Order"
  }, 
  {
   "print_hide": 1, 
@@ -310,10 +310,10 @@
   "doctype": "DocField", 
   "label": "Delivery Note", 
   "oldfieldname": "delivery_note_main", 
-  "options": "Delivery Note", 
+  "permlevel": 0, 
   "fieldname": "delivery_note_main", 
   "fieldtype": "Link", 
-  "permlevel": 0
+  "options": "Delivery Note"
  }, 
  {
   "print_hide": 1, 
@@ -345,11 +345,11 @@
   "doctype": "DocField", 
   "label": "Price List", 
   "oldfieldname": "price_list_name", 
-  "options": "link:Price List", 
+  "permlevel": 0, 
   "fieldname": "price_list_name", 
   "fieldtype": "Select", 
   "reqd": 1, 
-  "permlevel": 0
+  "options": "link:Price List"
  }, 
  {
   "print_hide": 1, 
@@ -357,11 +357,11 @@
   "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Price List Currency", 
-  "options": "link:Currency", 
+  "permlevel": 0, 
   "fieldname": "price_list_currency", 
   "fieldtype": "Select", 
   "reqd": 1, 
-  "permlevel": 0
+  "options": "link:Currency"
  }, 
  {
   "print_hide": 1, 
@@ -387,11 +387,11 @@
   "doctype": "DocField", 
   "label": "Currency", 
   "oldfieldname": "currency", 
-  "options": "link:Currency", 
+  "permlevel": 0, 
   "fieldname": "currency", 
   "fieldtype": "Select", 
   "reqd": 1, 
-  "permlevel": 0
+  "options": "link:Currency"
  }, 
  {
   "print_hide": 1, 
@@ -421,10 +421,10 @@
   "doctype": "DocField", 
   "label": "Taxes and Charges", 
   "oldfieldname": "charge", 
-  "options": "Sales Taxes and Charges Master", 
+  "permlevel": 0, 
   "fieldname": "charge", 
   "fieldtype": "Link", 
-  "permlevel": 0
+  "options": "Sales Taxes and Charges Master"
  }, 
  {
   "print_hide": 1, 
@@ -443,10 +443,10 @@
   "doctype": "DocField", 
   "label": "Taxes and Charges1", 
   "oldfieldname": "other_charges", 
-  "options": "Sales Taxes and Charges", 
+  "permlevel": 0, 
   "fieldname": "other_charges", 
   "fieldtype": "Table", 
-  "permlevel": 0
+  "options": "Sales Taxes and Charges"
  }, 
  {
   "print_hide": 1, 
@@ -652,10 +652,10 @@
   "doctype": "DocField", 
   "label": "Cash/Bank Account", 
   "oldfieldname": "cash_bank_account", 
-  "options": "Account", 
+  "permlevel": 0, 
   "fieldname": "cash_bank_account", 
   "fieldtype": "Link", 
-  "permlevel": 0
+  "options": "Account"
  }, 
  {
   "colour": "White:FFF", 
@@ -688,20 +688,20 @@
   "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Write Off Account", 
-  "options": "Account", 
+  "permlevel": 0, 
   "fieldname": "write_off_account", 
   "fieldtype": "Link", 
-  "permlevel": 0
+  "options": "Account"
  }, 
  {
   "print_hide": 1, 
   "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Write Off Cost Center", 
-  "options": "Cost Center", 
+  "permlevel": 0, 
   "fieldname": "write_off_cost_center", 
   "fieldtype": "Link", 
-  "permlevel": 0
+  "options": "Cost Center"
  }, 
  {
   "oldfieldtype": "Section Break", 
@@ -718,10 +718,10 @@
   "doctype": "DocField", 
   "label": "Select Terms and Conditions", 
   "oldfieldname": "tc_name", 
-  "options": "Terms and Conditions", 
+  "permlevel": 0, 
   "fieldname": "tc_name", 
   "fieldtype": "Link", 
-  "permlevel": 0
+  "options": "Terms and Conditions"
  }, 
  {
   "print_hide": 1, 
@@ -729,11 +729,11 @@
   "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Get Terms and Conditions", 
+  "permlevel": 0, 
   "trigger": "Server", 
   "fieldname": "get_terms", 
   "fieldtype": "Button", 
-  "options": "get_tc_details", 
-  "permlevel": 0
+  "options": "get_tc_details"
  }, 
  {
   "print_hide": 1, 
@@ -741,10 +741,10 @@
   "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Terms and Conditions HTML", 
-  "options": "You can add Terms and Notes that will be printed in the Transaction", 
+  "permlevel": 0, 
   "fieldname": "terms_html", 
   "fieldtype": "HTML", 
-  "permlevel": 0
+  "options": "You can add Terms and Notes that will be printed in the Transaction"
  }, 
  {
   "oldfieldtype": "Text Editor", 
@@ -773,19 +773,19 @@
   "print_hide": 1, 
   "doctype": "DocField", 
   "label": "Customer Address", 
-  "options": "Address", 
+  "permlevel": 0, 
   "fieldname": "customer_address", 
   "fieldtype": "Link", 
-  "permlevel": 0
+  "options": "Address"
  }, 
  {
   "print_hide": 1, 
   "doctype": "DocField", 
   "label": "Contact Person", 
-  "options": "Contact", 
+  "permlevel": 0, 
   "fieldname": "contact_person", 
   "fieldtype": "Link", 
-  "permlevel": 0
+  "options": "Contact"
  }, 
  {
   "doctype": "DocField", 
@@ -799,11 +799,11 @@
   "search_index": 0, 
   "doctype": "DocField", 
   "label": "Territory", 
-  "options": "Territory", 
+  "permlevel": 0, 
   "fieldname": "territory", 
   "fieldtype": "Link", 
   "reqd": 1, 
-  "permlevel": 0, 
+  "options": "Territory", 
   "in_filter": 1
  }, 
  {
@@ -811,10 +811,10 @@
   "search_index": 0, 
   "doctype": "DocField", 
   "label": "Customer Group", 
-  "options": "Customer Group", 
+  "permlevel": 0, 
   "fieldname": "customer_group", 
   "fieldtype": "Link", 
-  "permlevel": 0, 
+  "options": "Customer Group", 
   "in_filter": 1
  }, 
  {
@@ -882,20 +882,20 @@
   "doctype": "DocField", 
   "label": "Letter Head", 
   "oldfieldname": "letter_head", 
-  "options": "link:Letter Head", 
+  "permlevel": 0, 
   "fieldname": "letter_head", 
   "fieldtype": "Select", 
-  "permlevel": 0
+  "options": "link:Letter Head"
  }, 
  {
   "print_hide": 1, 
   "no_copy": 1, 
   "doctype": "DocField", 
   "label": "C-Form Applicable", 
-  "options": "No\nYes", 
+  "permlevel": 0, 
   "fieldname": "c_form_applicable", 
   "fieldtype": "Select", 
-  "permlevel": 0, 
+  "options": "No\nYes", 
   "report_hide": 0
  }, 
  {
@@ -903,10 +903,10 @@
   "no_copy": 1, 
   "doctype": "DocField", 
   "label": "C-Form No", 
-  "options": "C-Form", 
+  "permlevel": 1, 
   "fieldname": "c_form_no", 
   "fieldtype": "Link", 
-  "permlevel": 1
+  "options": "C-Form"
  }, 
  {
   "print_hide": 1, 
@@ -915,11 +915,11 @@
   "doctype": "DocField", 
   "label": "Campaign", 
   "oldfieldname": "campaign", 
-  "options": "Campaign", 
+  "permlevel": 0, 
   "fieldname": "campaign", 
   "fieldtype": "Link", 
   "depends_on": "eval:doc.source == 'Campaign'", 
-  "permlevel": 0
+  "options": "Campaign"
  }, 
  {
   "description": "Track this Sales Invoice against any Project", 
@@ -933,8 +933,8 @@
   "fieldname": "project_name", 
   "fieldtype": "Link", 
   "search_index": 1, 
-  "in_filter": 1, 
-  "options": "Project"
+  "options": "Project", 
+  "in_filter": 1
  }, 
  {
   "print_hide": 1, 
@@ -967,10 +967,10 @@
   "doctype": "DocField", 
   "label": "Source", 
   "oldfieldname": "source", 
-  "options": "\nExisting Customer\nReference\nAdvertisement\nCold Calling\nExhibition\nSupplier Reference\nMass Mailing\nCustomer's Vendor\nCampaign", 
+  "permlevel": 0, 
   "fieldname": "source", 
   "fieldtype": "Select", 
-  "permlevel": 0
+  "options": "\nExisting Customer\nReference\nAdvertisement\nCold Calling\nExhibition\nSupplier Reference\nMass Mailing\nCustomer's Vendor\nCampaign"
  }, 
  {
   "print_hide": 1, 
@@ -978,12 +978,12 @@
   "doctype": "DocField", 
   "label": "Company", 
   "oldfieldname": "company", 
-  "permlevel": 0, 
+  "options": "Company", 
   "fieldname": "company", 
   "fieldtype": "Link", 
   "search_index": 0, 
   "reqd": 1, 
-  "options": "Company", 
+  "permlevel": 0, 
   "in_filter": 1
  }, 
  {
@@ -1008,10 +1008,10 @@
   "doctype": "DocField", 
   "label": "Amended From", 
   "oldfieldname": "amended_from", 
-  "options": "Sales Invoice", 
+  "permlevel": 1, 
   "fieldname": "amended_from", 
   "fieldtype": "Link", 
-  "permlevel": 1
+  "options": "Sales Invoice"
  }, 
  {
   "print_hide": 1, 
@@ -1064,10 +1064,10 @@
   "oldfieldtype": "Button", 
   "doctype": "DocField", 
   "label": "Get Advances Received", 
-  "options": "get_advances", 
+  "permlevel": 0, 
   "fieldname": "get_advances_received", 
   "fieldtype": "Button", 
-  "permlevel": 0
+  "options": "get_advances"
  }, 
  {
   "print_hide": 1, 
@@ -1075,10 +1075,10 @@
   "doctype": "DocField", 
   "label": "Sales Invoice Advance", 
   "oldfieldname": "advance_adjustment_details", 
-  "options": "Sales Invoice Advance", 
+  "permlevel": 0, 
   "fieldname": "advance_adjustment_details", 
   "fieldtype": "Table", 
-  "permlevel": 0
+  "options": "Sales Invoice Advance"
  }, 
  {
   "print_hide": 1, 
@@ -1092,10 +1092,10 @@
   "print_hide": 1, 
   "doctype": "DocField", 
   "label": "Packing Details", 
-  "options": "Delivery Note Packing Item", 
+  "permlevel": 0, 
   "fieldname": "packing_details", 
   "fieldtype": "Table", 
-  "permlevel": 0
+  "options": "Delivery Note Packing Item"
  }, 
  {
   "print_hide": 1, 
@@ -1122,11 +1122,11 @@
   "doctype": "DocField", 
   "label": "Sales Partner", 
   "oldfieldname": "sales_partner", 
+  "permlevel": 0, 
   "trigger": "Client", 
   "fieldname": "sales_partner", 
   "fieldtype": "Link", 
   "options": "Sales Partner", 
-  "permlevel": 0, 
   "in_filter": 1
  }, 
  {
@@ -1176,10 +1176,10 @@
   "doctype": "DocField", 
   "label": "Sales Team1", 
   "oldfieldname": "sales_team", 
-  "options": "Sales Team", 
+  "permlevel": 0, 
   "fieldname": "sales_team", 
   "fieldtype": "Table", 
-  "permlevel": 0
+  "options": "Sales Team"
  }, 
  {
   "print_hide": 1, 
@@ -1222,10 +1222,10 @@
   "allow_on_submit": 1, 
   "doctype": "DocField", 
   "label": "Recurring Type", 
-  "permlevel": 0, 
+  "options": "Monthly\nQuarterly\nHalf-yearly\nYearly", 
   "fieldname": "recurring_type", 
   "fieldtype": "Select", 
-  "options": "Monthly\nQuarterly\nHalf-yearly\nYearly"
+  "permlevel": 0
  }, 
  {
   "print_hide": 1, 
@@ -1346,9 +1346,9 @@
   "permlevel": 0
  }, 
  {
-  "doctype": "DocPerm", 
   "role": "Material Manager", 
-  "permlevel": 0
+  "permlevel": 0, 
+  "doctype": "DocPerm"
  }, 
  {
   "amend": 1, 
@@ -1358,6 +1358,7 @@
   "write": 1, 
   "read": 1, 
   "role": "Accounts User", 
+  "report": 1, 
   "permlevel": 0, 
   "cancel": 1
  }, 
@@ -1369,13 +1370,14 @@
   "write": 0, 
   "read": 1, 
   "role": "Accounts User", 
-  "permlevel": 1, 
-  "cancel": 0
+  "cancel": 0, 
+  "permlevel": 1
  }, 
  {
   "read": 1, 
   "doctype": "DocPerm", 
   "role": "Customer", 
+  "report": 1, 
   "permlevel": 0, 
   "match": "customer"
  }, 
@@ -1387,8 +1389,8 @@
   "write": 0, 
   "read": 1, 
   "role": "Accounts Manager", 
-  "permlevel": 1, 
-  "cancel": 0
+  "cancel": 0, 
+  "permlevel": 1
  }, 
  {
   "amend": 1, 
@@ -1398,6 +1400,7 @@
   "write": 1, 
   "read": 1, 
   "role": "Accounts Manager", 
+  "report": 1, 
   "permlevel": 0, 
   "cancel": 1
  }
diff --git a/accounts/doctype/sales_taxes_and_charges_master/sales_taxes_and_charges_master.txt b/accounts/doctype/sales_taxes_and_charges_master/sales_taxes_and_charges_master.txt
index d789d85..a2e44b4 100644
--- a/accounts/doctype/sales_taxes_and_charges_master/sales_taxes_and_charges_master.txt
+++ b/accounts/doctype/sales_taxes_and_charges_master/sales_taxes_and_charges_master.txt
@@ -10,14 +10,14 @@
   "section_style": "Tabbed", 
   "description": "Standard tax template that can be applied to all Sales Transactions. This template can contain list of tax heads and also other expense / income heads like \"Shipping\", \"Insurance\", \"Handling\" etc.\n\n#### Note\n\nThe tax rate you define here will be the standard tax rate for all **Items**. If there are **Items** that have different rates, they must be added in the **Item Tax** table in the **Item** master.\n\n#### Description of Columns\n\n1. Calculation Type: \n    - This can be on **Net Total** (that is the sum of basic amount).\n    - **On Previous Row Total / Amount** (for cumulative taxes or charges). If you select this option, the tax will be applied as a percentage of the previous row (in the tax table) amount or total.\n    - **Actual** (as mentioned).\n2. Account Head: The Account ledger under which this tax will be booked\n3. Cost Center: If the tax / charge is an income (like shipping) or expense it needs to be booked against a Cost Center.\n4. Description: Description of the tax (that will be printed in invoices / quotes).\n5. Rate: Tax rate.\n6. Amount: Tax amount.\n7. Total: Cumulative total to this point.\n8. Enter Row: If based on \"Previous Row Total\" you can select the row number which will be taken as a base for this calculation (default is the previous row).\n9. Is this Tax included in Basic Rate?: If you check this, it means that this tax will not be shown below the item table, but will be included in the Basic Rate in your main item table. This is useful where you want give a flat price (inclusive of all taxes) price to customers.", 
   "module": "Accounts", 
-  "doctype": "DocType", 
-  "allow_trash": 1, 
   "server_code_error": " ", 
-  "document_type": "Master", 
+  "allow_trash": 1, 
   "autoname": "field:title", 
+  "document_type": "Master", 
+  "_last_update": "1322549700", 
   "name": "__common__", 
   "colour": "White:FFF", 
-  "_last_update": "1322549700", 
+  "doctype": "DocType", 
   "show_in_menu": 0, 
   "version": 1
  }, 
@@ -67,6 +67,7 @@
   "doctype": "DocPerm", 
   "submit": 0, 
   "write": 0, 
+  "report": 1, 
   "role": "Sales User", 
   "cancel": 0, 
   "permlevel": 0
@@ -77,6 +78,7 @@
   "doctype": "DocPerm", 
   "submit": 0, 
   "write": 1, 
+  "report": 1, 
   "role": "Accounts Manager", 
   "cancel": 1, 
   "permlevel": 0
@@ -85,8 +87,9 @@
   "create": 1, 
   "doctype": "DocPerm", 
   "write": 1, 
-  "role": "System Manager", 
   "cancel": 1, 
+  "role": "System Manager", 
+  "report": 1, 
   "permlevel": 0
  }, 
  {
@@ -95,6 +98,7 @@
   "doctype": "DocPerm", 
   "submit": 0, 
   "write": 1, 
+  "report": 1, 
   "role": "Sales Master Manager", 
   "cancel": 1, 
   "permlevel": 0
diff --git a/buying/doctype/purchase_common/purchase_common.js b/buying/doctype/purchase_common/purchase_common.js
index fa7c91f..549ec48 100644
--- a/buying/doctype/purchase_common/purchase_common.js
+++ b/buying/doctype/purchase_common/purchase_common.js
@@ -18,6 +18,245 @@
 // ------
 // cur_frm.cscript.tname - Details table name
 // cur_frm.cscript.fname - Details fieldname
+
+wn.provide("erpnext.buying");
+
+erpnext.buying.BuyingController = erpnext.utils.Controller.extend({
+	setup: function() {
+		var me = this;
+		
+		if(this.frm.fields_dict.price_list_name) {
+			this.frm.fields_dict.price_list_name.get_query = function() {
+				return repl("select distinct price_list_name from `tabItem Price` \
+					where buying = 1 and price_list_name like \"%s%%\"");
+			};
+		}
+		
+		if(this.frm.fields_dict.price_list_currency) {
+			this.frm.fields_dict.price_list_currency.get_query = function() {
+				return repl("select distinct ref_currency from `tabItem Price` \
+					where price_list_name=\"%(price_list_name)s\" and buying = 1 \
+					and ref_currency like \"%s%%\"", 
+					{price_list_name: me.frm.doc.price_list_name});
+			};
+		}
+	},
+	
+	refresh: function() {
+		this.frm.clear_custom_buttons();
+		erpnext.hide_naming_series();
+		
+		if(this.frm.fields_dict.supplier)
+			this.frm.toggle_display("contact_section", this.frm.doc.supplier);
+		
+		if(this.frm.fields_dict.currency)
+			this.set_dynamic_labels();
+		
+		// TODO: improve this
+		if(this.frm.doc.__islocal && this.frm.fields_dict.price_list_name 
+				&& this.frm.doc.price_list_name && this.frm.doc.price_list_currency) {
+			this.price_list_name();
+		}
+	},
+	
+	price_list_name: function() {
+		this.frm.toggle_reqd(["price_list_currency", "plc_conversion_rate"],
+			!!(this.frm.doc.price_list_name));
+		
+		var me = this;
+		
+		if(this.frm.doc.price_list_name) {
+			// set price list currency
+			this.frm.call({
+				method: "setup.utils.get_price_list_currency",
+				args: {args: {
+					price_list_name: this.frm.doc.price_list_name,
+					use_for: "buying"
+				}},
+				callback: function(r) {
+					if(!r.exc) {
+						// for now, setting it as 1.0
+						if(me.frm.doc.price_list_currency === me.get_company_currency())
+							me.frm.set_value("plc_conversion_rate", 1.0);
+						else if(me.frm.doc.price_list_currency === me.frm.doc.currency)
+							me.frm.set_value("plc_conversion_rate", me.frm.doc.conversion_rate);
+						
+						if(r.message.price_list_currency)
+							me.price_list_currency();
+					}
+				}
+			});
+		}
+	},
+	
+	item_code: function(doc, cdt, cdn) {
+		var me = this;
+		var item = locals[cdt][cdn];
+		if(item.item_code) {
+			this.frm.call({
+				method: "buying.utils.get_item_details",
+				child: item,
+				args: {
+					args: {
+						doctype: me.frm.doc.doctype,
+						docname: me.frm.doc.name,
+						item_code: item.item_code,
+						warehouse: item.warehouse,
+						supplier: me.frm.doc.supplier,
+						conversion_rate: me.frm.doc.conversion_rate,
+						price_list_name: me.frm.doc.price_list_name,
+						price_list_currency: me.frm.doc.price_list_currency,
+						plc_conversion_rate: me.frm.doc.plc_conversion_rate
+					}
+				},
+			});
+		}
+	},
+	
+	update_item_details: function(doc, dt, dn, callback) {
+		if(!this.frm.doc.__islocal) return;
+		
+		var me = this;
+		var children = getchildren(this.tname, this.frm.doc.name, this.fname);
+		if(children && children.length) {
+			this.frm.call({
+				doc: me.frm.doc,
+				method: "update_item_details",
+				callback: function(r) {
+					if(!r.exc) {
+						refresh_field(me.fname);
+						me.load_defaults(me.frm.doc, dt, dn, callback);
+					}
+				}
+			})
+		} else {
+			this.load_taxes(doc, dt, dn, callback);
+		}
+	},
+	
+	currency: function() {
+		this.set_dynamic_labels();
+	},
+	
+	company: function() {
+		this.set_dynamic_labels();
+	},
+	
+	price_list_currency: function() {
+		this.set_dynamic_labels();
+		
+		if(this.frm.doc.price_list_currency === this.get_company_currency()) {
+			this.frm.set_value("plc_conversion_rate", 1.0);
+		}
+	},
+	
+	set_dynamic_labels: function(doc, dt, dn) {
+		var company_currency = this.get_company_currency();
+		
+		this.change_form_labels(company_currency);
+		this.change_grid_labels(company_currency);
+	},
+	
+	change_form_labels: function(company_currency) {
+		var me = this;
+		var field_label_map = {};
+		
+		var setup_field_label_map = function(fields_list, currency) {
+			$.each(fields_list, function(i, fname) {
+				var docfield = wn.meta.get_docfield(me.frm.doc.doctype, fname);
+				if(docfield) {
+					var label = wn._((docfield.label || "")).replace(/\([^\)]*\)/g, "");
+					field_label_map[fname] = label.trim() + " (" + currency + ")";
+				}
+			});
+		}
+		
+		setup_field_label_map(["net_total", "total_tax", "grand_total", "in_words",
+			"other_charges_added", "other_charges_deducted", 
+			"outstanding_amount", "total_advance", "total_amount_to_pay", "rounded_total"],
+			company_currency);
+		
+		setup_field_label_map(["net_total_import", "grand_total_import", "in_words_import",
+			"other_charges_added_import", "other_charges_deducted_import"], this.frm.doc.currency);
+		
+		setup_field_label_map(["conversion_rate"], 	"1 " + this.frm.doc.currency 
+			+ " = [?] " + company_currency);
+		
+		if(this.frm.doc.price_list_currency && this.frm.doc.price_list_currency!=company_currency) {
+			setup_field_label_map(["plc_conversion_rate"], 	"1 " + this.frm.doc.price_list_currency 
+				+ " = [?] " + company_currency);
+		}
+		
+		// toggle fields
+		this.frm.toggle_display(["conversion_rate", "net_total", "grand_total", 
+			"in_words", "other_charges_added", "other_charges_deducted"],
+			this.frm.doc.currency != company_currency);
+		
+		// set labels
+		$.each(field_label_map, function(fname, label) {
+			me.frm.fields_dict[fname].set_label(label);
+		});
+	},
+	
+	change_grid_labels: function(company_currency) {
+		var me = this;
+		var field_label_map = {};
+		
+		var setup_field_label_map = function(fields_list, currency, parentfield) {
+			var grid_doctype = me.frm.fields_dict[parentfield].grid.doctype;
+			$.each(fields_list, function(i, fname) {
+				var docfield = wn.meta.get_docfield(grid_doctype, fname);
+				if(docfield) {
+					field_label_map[grid_doctype + "-" + fname] = 
+						docfield.label + " (" + currency + ")";
+				}
+			});
+		}
+		
+		setup_field_label_map(["purchase_rate", "purchase_ref_rate", "amount", "rate"],
+			company_currency, this.fname);
+		
+		setup_field_label_map(["import_rate", "import_ref_rate", "import_amount"],
+			this.frm.doc.currency, this.fname);
+		
+		setup_field_label_map(["tax_amount", "total"], company_currency, this.other_fname);
+		
+		if(this.frm.fields_dict["advance_allocation_details"]) {
+			setup_field_label_map(["advance_amount", "allocated_amount"], company_currency,
+				"advance_allocation_details");
+		}
+		
+		// toggle columns
+		var item_grid = this.frm.fields_dict[this.fname].grid;
+		var hide = this.frm.doc.currency == company_currency;
+		$.each(["purchase_rate", "purchase_ref_rate", "amount", "rate"], function(i, fname) {
+			if(wn.meta.get_docfield(item_grid.doctype, fname))
+				item_grid.set_column_disp(fname, hide);
+		});
+		
+		// set labels
+		var $wrapper = $(this.frm.wrapper);
+		$.each(field_label_map, function(fname, label) {
+			$wrapper.find('[data-grid-fieldname="'+fname+'"]').text(label);
+		});
+	},
+	
+	get_company_currency: function() {
+		return (wn.boot.company[this.frm.doc.company].default_currency ||
+			sys_defaults['currency']);
+	}
+});
+
+// to save previous state of cur_frm.cscript
+var prev_cscript = {};
+$.extend(prev_cscript, cur_frm.cscript);
+
+cur_frm.cscript = new erpnext.buying.BuyingController({frm: cur_frm});
+
+// for backward compatibility: combine new and previous states
+$.extend(cur_frm.cscript, prev_cscript);
+
+
 var tname = cur_frm.cscript.tname;
 var fname = cur_frm.cscript.fname;
 
@@ -64,100 +303,6 @@
 	cur_frm.cscript.load_taxes(doc, dt, dn, callback);
 }
 
-// Update existing item details
-cur_frm.cscript.update_item_details = function(doc, dt, dn, callback) {
-	if(!cur_frm.doc.__islocal) { return; }
-	var children = getchildren(cur_frm.cscript.tname, doc.name, cur_frm.cscript.fname);
-	if(children) {
-		$c_obj(make_doclist(doc.doctype, doc.name), 'get_item_details', '',
-		function(r, rt) {
-			if(!r.exc) {
-				refresh_field(cur_frm.cscript.fname);
-				doc = locals[doc.doctype][doc.name];
-				cur_frm.cscript.load_defaults(doc, dt, dn, callback);
-			}
-		});
-	} else {
-		cur_frm.cscript.load_taxes(doc, dt, dn, callback);
-	}
-}
-
-var set_dynamic_label_par = function(doc, cdt, cdn, base_curr) {
-	//parent flds
-	par_cols_base = {'net_total': 'Net Total', 'total_tax': 'Total Tax', 'grand_total':	'Grand Total', /*'rounded_total': 'Rounded Total',*/
-		'in_words': 'In Words', 'other_charges_added': 'Taxes and Charges Added', 'other_charges_deducted': 'Taxes and Charges Deducted'}
-	par_cols_import = {'net_total_import': 'Net Total', 'grand_total_import': 'Grand Total', 'in_words_import':	'In Words', 
-		'other_charges_added_import': 'Taxes and Charges Added', 'other_charges_deducted_import': 'Taxes and Charges Deducted'};
-
-	for (d in par_cols_base) cur_frm.fields_dict[d].label_area.innerHTML = par_cols_base[d]+' (' + base_curr + ')';
-	for (d in par_cols_import) cur_frm.fields_dict[d].label_area.innerHTML = par_cols_import[d]+' (' + doc.currency + ')';
-	cur_frm.fields_dict['conversion_rate'].label_area.innerHTML = "Conversion Rate (" + doc.currency +' -> '+ base_curr + ')';
-
-	if (doc.doctype == 'Purchase Invoice') {
-		cur_frm.fields_dict['outstanding_amount'].label_area.innerHTML = 'Outstanding Amount (' + base_curr + ')';
-		cur_frm.fields_dict['total_advance'].label_area.innerHTML = 'Total Advance (Incl. TDS) (' + base_curr + ')';
-		cur_frm.fields_dict['total_amount_to_pay'].label_area.innerHTML = 'Total Amount To Pay (' + base_curr + ')';
-	} else cur_frm.fields_dict['rounded_total'].label_area.innerHTML = 'Rounded Total (' + base_curr + ')';
-
-}
-
-
-var set_dynamic_label_child = function(doc, cdt, cdn, base_curr) {
-	// item table flds
-	item_cols_base = {'purchase_ref_rate': 'Ref Rate', 'amount': 'Amount'};
-	item_cols_import = {'import_rate': 'Rate', 'import_ref_rate': 'Ref Rate', 'import_amount': 'Amount'};
-		
-	for (d in item_cols_base) $('[data-grid-fieldname="'+cur_frm.cscript.tname+'-'+d+'"]').html(item_cols_base[d]+' ('+base_curr+')');
-	for (d in item_cols_import) $('[data-grid-fieldname="'+cur_frm.cscript.tname+'-'+d+'"]').html(item_cols_import[d]+' ('+doc.currency+')');
-		
-	var hide = (doc.currency == sys_defaults['currency']) ? false : true;
-	for (f in item_cols_base) {
-		cur_frm.fields_dict[cur_frm.cscript.fname].grid.set_column_disp(f, hide);
-	}
-	if (doc.doctype == 'Purchase Invoice') {
-		$('[data-grid-fieldname="'+cur_frm.cscript.tname+'-rate"]').html('Rate ('+base_curr+')');
-		cur_frm.fields_dict[cur_frm.cscript.fname].grid.set_column_disp('rate', hide);
-		// advance table flds
-		adv_cols = {'advance_amount': 'Advance Amount', 'allocated_amount': 'Allocated Amount'}
-		for (d in adv_cols) $('[data-grid-fieldname="Purchase Invoice Advance-'+d+'"]').html(adv_cols[d]+' ('+base_curr+')');	
-	}
-	else {
-		$('[data-grid-fieldname="'+cur_frm.cscript.tname+'-purchase_rate"]').html('Rate ('+base_curr+')');
-		cur_frm.fields_dict[cur_frm.cscript.fname].grid.set_column_disp('purchase_rate', hide);
-	}
-
-	//tax table flds
-	tax_cols = {'tax_amount': 'Amount', 'total': 'Aggregate Total'};
-	for (d in tax_cols) $('[data-grid-fieldname="Purchase Taxes and Charges-'+d+'"]').html(tax_cols[d]+' ('+base_curr+')');	
-}
-
-// Change label dynamically based on currency
-//------------------------------------------------------------------
-
-cur_frm.cscript.dynamic_label = function(doc, cdt, cdn, callback1) {
-	var base_currency = wn.boot.company[doc.company].default_currency || sys_defaults['currency'];
-	if (doc.currency === base_currency) {
-		set_multiple(cdt, cdn, {conversion_rate:1});
-		hide_field(['conversion_rate', 'net_total_import','grand_total_import',
-			'in_words_import', 'other_charges_added_import', 'other_charges_deducted_import']);
-	} else {
-		unhide_field(['conversion_rate', 'net_total_import','grand_total_import',
-			'in_words_import', 'other_charges_added_import', 'other_charges_deducted_import']);
-	}
-	
-	set_dynamic_label_par(doc, cdt, cdn, base_currency);
-	set_dynamic_label_child(doc, cdt, cdn, base_currency);
-	
-	if (callback1) callback1(doc, cdt, cdn);
-}
-
-cur_frm.cscript.currency = function(doc, cdt, cdn) {
-	cur_frm.cscript.dynamic_label(doc, cdt, cdn);
-}
-
-cur_frm.cscript.company = cur_frm.cscript.currency;
-
-
 // ======================== Conversion Rate ==========================================
 cur_frm.cscript.conversion_rate = function(doc,cdt,cdn) {
 	cur_frm.cscript.calc_amount( doc, 1);
@@ -177,18 +322,6 @@
 	}
 }
 
-//==================== Get Item Code Details =====================================================
-cur_frm.cscript.item_code = function(doc,cdt,cdn) {
-	var d = locals[cdt][cdn];
-	if (d.item_code) {
-		temp = {
-			item_code: d.item_code || '',
-			warehouse: d.warehouse || ''
-		}
-		get_server_fields('get_item_details', JSON.stringify(temp), fname, doc, cdt, cdn, 1);
-	}
-}
-
 //==================== Update Stock Qty ==========================================================
 cur_frm.cscript.update_stock_qty = function(doc,cdt,cdn){
 	d = locals[cdt][cdn]
@@ -651,10 +784,6 @@
 }
 
 
-cur_frm.cscript.toggle_contact_section = function(doc) {
-	cur_frm.toggle_display("contact_section", doc.supplier);
-}
-
 cur_frm.cscript.project_name = function(doc, cdt, cdn) {
 	var item_doc = locals[cdt][cdn];
 	if (item_doc.project_name) {
diff --git a/buying/doctype/purchase_common/purchase_common.py b/buying/doctype/purchase_common/purchase_common.py
index f48e469..615c453 100644
--- a/buying/doctype/purchase_common/purchase_common.py
+++ b/buying/doctype/purchase_common/purchase_common.py
@@ -23,11 +23,12 @@
 from webnotes.model.code import get_obj
 from webnotes import msgprint, _
 
+from buying.utils import get_last_purchase_details
+
 sql = webnotes.conn.sql
 	
-from utilities.transaction_base import TransactionBase
-
-class DocType(TransactionBase):
+from controllers.buying_controller import BuyingController
+class DocType(BuyingController):
 	def __init__(self, doc, doclist=None):
 		self.doc = doc
 		self.doclist = doclist
@@ -104,80 +105,6 @@
 		r = sql("select terms from `tabTerms and Conditions` where name = %s", obj.doc.tc_name)
 		if r: obj.doc.terms = r[0][0]
 
-	# Get Item Details
-	def get_item_details(self, obj, arg =''):
-		import json
-		arg = json.loads(arg)
-		item = sql("select item_name,item_group, brand, description, min_order_qty, stock_uom, default_warehouse,lead_time_days from `tabItem` where name = %s and (ifnull(end_of_life,'')='' or end_of_life = '0000-00-00' or end_of_life >	now())", (arg['item_code']), as_dict = 1)
-		tax = sql("select tax_type, tax_rate from `tabItem Tax` where parent = %s" , arg['item_code'])
-		t = {}
-		for x in tax: t[x[0]] = flt(x[1])
-		# get warehouse 
-		if arg['warehouse']:
-			wh = arg['warehouse']
-		else:
-			wh = item and item[0]['default_warehouse'] or ''
-			
-		ret = {
-			'item_name': item and item[0]['item_name'] or '',
-			'item_group': item and item[0]['item_group'] or '',
-			'brand': item and item[0]['brand'] or '',
-			'description': item and item[0]['description'] or '',
-			'qty': 0,
-			'uom': item and item[0]['stock_uom'] or '',
-			'stock_uom': item and item[0]['stock_uom'] or '',
-			'conversion_factor': '1',
-			'warehouse': wh,
-			'item_tax_rate': json.dumps(t),
-			'batch_no': '',
-			'discount_rate': 0
-		}
-		
-		# get min_order_qty from item
-		if obj.doc.doctype == 'Purchase Request':
-			ret['min_order_qty'] = item and flt(item[0]['min_order_qty']) or 0
-		
-		# get projected qty from bin
-		if ret['warehouse']:
-			bin = sql("select projected_qty from `tabBin` where item_code = %s and warehouse = %s", (arg['item_code'], ret['warehouse']), as_dict=1)
-			ret['projected_qty'] = bin and flt(bin[0]['projected_qty']) or 0
-
-		# get schedule date, lead time date
-		if obj.doc.transaction_date and item and item[0]['lead_time_days']:
-			ret['schedule_date'] =	cstr(add_days(obj.doc.transaction_date, cint(item[0]['lead_time_days'])))
-			ret['lead_time_date'] = cstr(add_days(obj.doc.transaction_date, cint(item[0]['lead_time_days'])))
-		
-		# get last purchase rate as per stock uom and default currency for following list of doctypes
-		if obj.doc.doctype in ['Purchase Order', 'Purchase Receipt']:
-			last_purchase_details, last_purchase_date = self.get_last_purchase_details(arg['item_code'], obj.doc.name)
-
-			if last_purchase_details:
-				# updates ret with purchase_ref_rate, discount_rate, purchase_rate
-				conversion_rate = flt(obj.doc.fields.get('conversion_rate'))
-				ret.update(last_purchase_details)
-				ret.update({
-					'import_ref_rate': flt(last_purchase_details['purchase_ref_rate']) / conversion_rate,
-					'import_rate': flt(last_purchase_details['purchase_rate']) / conversion_rate,
-				})
-			else:
-				# set these values as blank in the form
-				ret.update({
-					'purchase_ref_rate': 0,
-					'discount_rate': 0,
-					'purchase_rate': 0,
-					'import_ref_rate': 0,
-					'import_rate': 0,
-				})
-		
-		if obj.doc.doctype == 'Purchase Order':
-			supplier_part_no = webnotes.conn.sql("""\
-				select supplier_part_no from `tabItem Supplier`
-				where parent = %s and parenttype = 'Item' and
-				supplier = %s""", (arg['item_code'], obj.doc.supplier))
-			if supplier_part_no and supplier_part_no[0][0]:
-				ret['supplier_part_no'] = supplier_part_no[0][0]
-		
-		return ret
 
 	# Get Available Qty at Warehouse
 	def get_bin_details( self, arg = ''):
@@ -193,14 +120,15 @@
 		
 		import webnotes.utils
 		this_purchase_date = webnotes.utils.getdate(obj.doc.fields.get('posting_date') or obj.doc.fields.get('transaction_date'))
-
+		
 		for d in getlist(obj.doclist,obj.fname):
 			# get last purchase details
-			last_purchase_details, last_purchase_date = self.get_last_purchase_details(d.item_code, obj.doc.name)
+			last_purchase_details = get_last_purchase_details(d.item_code, obj.doc.name)
 
 			# compare last purchase date and this transaction's date
 			last_purchase_rate = None
-			if last_purchase_date > this_purchase_date:
+			if last_purchase_details and \
+					(last_purchase_details.purchase_date > this_purchase_date):
 				last_purchase_rate = last_purchase_details['purchase_rate']
 			elif is_submit == 1:
 				# even if this transaction is the latest one, it should be submitted
@@ -219,7 +147,7 @@
 		
 		for d in getlist(obj.doclist, obj.fname):
 			if d.item_code:
-				last_purchase_details, last_purchase_date = self.get_last_purchase_details(d.item_code, doc_name)
+				last_purchase_details = get_last_purchase_details(d.item_code, doc_name)
 
 				if last_purchase_details:
 					d.purchase_ref_rate = last_purchase_details['purchase_ref_rate'] * (flt(d.conversion_factor) or 1.0)
@@ -237,58 +165,6 @@
 						d.purchase_ref_rate = d.purchase_rate = d.import_ref_rate \
 							= d.import_rate = item_last_purchase_rate
 			
-	def get_last_purchase_details(self, item_code, doc_name):
-		import webnotes
-		import webnotes.utils
-
-		# get last purchase order item details
-		last_po_item = webnotes.conn.sql("""\
-			select po.name, po.transaction_date, po_item.conversion_factor, po_item.purchase_ref_rate, 
-				po_item.discount_rate, po_item.purchase_rate
-			from `tabPurchase Order` po, `tabPurchase Order Item` po_item
-			where po.docstatus = 1 and po_item.item_code = %s and po.name != %s and 
-				po.name = po_item.parent
-			order by po.transaction_date desc, po.name desc
-			limit 1""", (item_code, doc_name), as_dict=1)
-		
-		# get last purchase receipt item details		
-		last_pr_item = webnotes.conn.sql("""\
-			select pr.name, pr.posting_date, pr.posting_time, pr_item.conversion_factor,
-				pr_item.purchase_ref_rate, pr_item.discount_rate, pr_item.purchase_rate
-			from `tabPurchase Receipt` pr, `tabPurchase Receipt Item` pr_item
-			where pr.docstatus = 1 and pr_item.item_code = %s and pr.name != %s and
-				pr.name = pr_item.parent
-			order by pr.posting_date desc, pr.posting_time desc, pr.name desc
-			limit 1""", (item_code, doc_name), as_dict=1)
-
-		# get the latest of the two
-		po_date_obj = webnotes.utils.getdate(last_po_item and last_po_item[0]['transaction_date'] or '2000-01-01')
-		pr_date_obj = webnotes.utils.getdate(last_pr_item and last_pr_item[0]['posting_date'] or '2000-01-01')
-		
-		# if both exists, return true
-		both_exists = last_po_item and last_pr_item
-		
-		# get the last purchased item, by comparing dates		
-		if (both_exists and po_date_obj > pr_date_obj) or (not both_exists and last_po_item):
-			last_purchase_item = last_po_item[0]
-			last_purchase_date = po_date_obj
-		elif both_exists or (not both_exists and last_pr_item):
-			last_purchase_item = last_pr_item[0]
-			last_purchase_date = pr_date_obj
-		else:
-			# if none exists
-			return None, webnotes.utils.getdate('2000-01-01')
-			
-		# prepare last purchase details, dividing by conversion factor
-		conversion_factor = flt(last_purchase_item['conversion_factor'])
-		last_purchase_details = {
-			'purchase_ref_rate': flt(last_purchase_item['purchase_ref_rate']) / conversion_factor,
-			'purchase_rate': flt(last_purchase_item['purchase_rate']) / conversion_factor,
-			'discount_rate': flt(last_purchase_item['discount_rate']),
-		}
-		
-		return last_purchase_details, last_purchase_date	
-
 	# validation
 	# -------------------------------------------------------------------------------------------------------
 	
@@ -380,74 +256,6 @@
 				else:
 					chk_dupl_itm.append(f)
 
-	# validate conversion rate
-	def validate_conversion_rate(self, obj):
-		default_currency = TransactionBase().get_company_currency(obj.doc.company)			
-		if not default_currency:
-			msgprint('Message: Please enter default currency in Company Master')
-			raise Exception
-			
-		if obj.doc.conversion_rate == 0:
-			msgprint('Conversion Rate cannot be 0', raise_exception=1)
-		elif not obj.doc.conversion_rate:
-			msgprint('Please specify Conversion Rate', raise_exception=1)
-		elif obj.doc.currency == default_currency and \
-				flt(obj.doc.conversion_rate) != 1.00:
-			msgprint("""Conversion Rate should be equal to 1.00, \
-						since the specified Currency and the company's currency \
-						are same""", raise_exception=1)
-		elif obj.doc.currency != default_currency and \
-				flt(obj.doc.conversion_rate) == 1.00:
-			msgprint("""Conversion Rate should not be equal to 1.00, \
-						since the specified Currency and the company's currency \
-						are different""", raise_exception=1)
-
-	def validate_doc(self, obj, prevdoc_doctype, prevdoc_docname):
-		if prevdoc_docname :
-			get_name = sql("select name from `tab%s` where name = '%s'" % 
-				(prevdoc_doctype, prevdoc_docname))
-			name = get_name and get_name[0][0] or ''
-			if name:	#check for incorrect docname
-				dt = sql("select company, docstatus from `tab%s` where name = '%s'" %
-				 	(prevdoc_doctype, name))
-				company_name = dt and cstr(dt[0][0]) or ''
-				docstatus = dt and dt[0][1] or 0
-				
-				# check for docstatus 
-				if (docstatus != 1):
-					msgprint(cstr(prevdoc_doctype) + ": " + cstr(prevdoc_docname) + 
-						" is not Submitted Document.")
-					raise Exception
-
-				# check for company
-				if (company_name != obj.doc.company):
-					msgprint(cstr(prevdoc_doctype) + ": " + cstr(prevdoc_docname) + 
-						" does not belong to the Company: " + cstr(obj.doc.company))
-					raise Exception
-
-				if prevdoc_doctype in ['Purchase Order', 'Purchase Receipt']:
-					dt = sql("select supplier, currency from `tab%s` where name = '%s'" %
-					 	(prevdoc_doctype, name))
-					supplier = dt and dt[0][0] or ''
-					currency = dt and dt[0][1] or ''
-						
-					# check for supplier
-					if (supplier != obj.doc.supplier):
-						msgprint("Purchase Order: " + cstr(prevdoc_docname) + " supplier :" + 
-						 	cstr(supplier) + " does not match with supplier of current document.")
-						raise Exception
-					 
-					# check for curency
-					if (currency != obj.doc.currency):
-						msgprint("Purchase Order: " + cstr(prevdoc_docname) + " currency :" + 
-						 	cstr(currency) + " does not match with currency of current document.")
-						raise Exception
-
-			else: # if not name than
-				msgprint(cstr(prevdoc_doctype) + ": " + cstr(prevdoc_docname) + 
-					" is not a valid " + cstr(prevdoc_doctype))
-				raise Exception
-				
 	def validate_reference_value(self, obj):
 		ref_doc = []
 		for d in getlist(obj.doclist, obj.fname):
diff --git a/buying/doctype/purchase_order/purchase_order.js b/buying/doctype/purchase_order/purchase_order.js
index b5a7405..fa37704 100644
--- a/buying/doctype/purchase_order/purchase_order.js
+++ b/buying/doctype/purchase_order/purchase_order.js
@@ -14,6 +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/>.
 
+wn.provide("erpnext.buying");
+
 cur_frm.cscript.tname = "Purchase Order Item";
 cur_frm.cscript.fname = "po_details";
 cur_frm.cscript.other_fname = "purchase_tax_details";
@@ -22,6 +24,35 @@
 wn.require('app/buying/doctype/purchase_common/purchase_common.js');
 wn.require('app/utilities/doctype/sms_control/sms_control.js');
 
+erpnext.buying.PurchaseOrderController = erpnext.buying.BuyingController.extend({
+	refresh: function(doc, cdt, cdn) {
+		this._super();
+		
+		if(doc.docstatus == 1 && doc.status != 'Stopped'){
+			cur_frm.add_custom_button('Send SMS', cur_frm.cscript['Send SMS']);
+			if(flt(doc.per_received, 2) < 100) cur_frm.add_custom_button('Make Purchase Receipt', cur_frm.cscript['Make Purchase Receipt']);	
+			if(flt(doc.per_billed, 2) < 100) cur_frm.add_custom_button('Make Invoice', cur_frm.cscript['Make Purchase Invoice']);
+			if(flt(doc.per_billed, 2) < 100 || doc.per_received < 100) cur_frm.add_custom_button('Stop', cur_frm.cscript['Stop Purchase Order']);
+		}
+
+		if(doc.docstatus == 1 && doc.status == 'Stopped')
+			cur_frm.add_custom_button('Unstop Purchase Order', cur_frm.cscript['Unstop Purchase Order']);
+			
+	},
+	
+	onload_post_render: function(doc, dt, dn) {
+		var callback = function(doc, dt, dn) {
+			if(doc.__islocal) cur_frm.cscript.get_default_schedule_date(doc);
+		}
+		this.update_item_details(doc, dt, dn, callback);
+	}
+});
+
+var new_cscript = new erpnext.buying.PurchaseOrderController({frm: cur_frm});
+
+// for backward compatibility: combine new and previous states
+$.extend(cur_frm.cscript, new_cscript);
+
 cur_frm.cscript.onload = function(doc, cdt, cdn) {
 	// set missing values in parent doc
 	set_missing_values(doc, {
@@ -34,32 +65,6 @@
 	});
 }
 
-cur_frm.cscript.onload_post_render = function(doc, dt, dn) {
-	var callback = function(doc, dt, dn) {
-		if(doc.__islocal) cur_frm.cscript.get_default_schedule_date(doc);
-	}
-	cur_frm.cscript.update_item_details(doc, dt, dn, callback);
-}
-
-cur_frm.cscript.refresh = function(doc, cdt, cdn) { 
-	cur_frm.clear_custom_buttons();
-	erpnext.hide_naming_series();
-
-	cur_frm.cscript.dynamic_label(doc, cdt, cdn);
-
-	if(doc.docstatus == 1 && doc.status != 'Stopped'){
-		cur_frm.add_custom_button('Send SMS', cur_frm.cscript['Send SMS']);
-		if(flt(doc.per_received, 2) < 100) cur_frm.add_custom_button('Make Purchase Receipt', cur_frm.cscript['Make Purchase Receipt']);	
-		if(flt(doc.per_billed, 2) < 100) cur_frm.add_custom_button('Make Invoice', cur_frm.cscript['Make Purchase Invoice']);
-		if(flt(doc.per_billed, 2) < 100 || doc.per_received < 100) cur_frm.add_custom_button('Stop', cur_frm.cscript['Stop Purchase Order']);
-	}
-		
-	if(doc.docstatus == 1 && doc.status == 'Stopped')
-		cur_frm.add_custom_button('Unstop Purchase Order', cur_frm.cscript['Unstop Purchase Order']);
-	
-	cur_frm.cscript.toggle_contact_section(doc);
-}
-
 cur_frm.cscript.supplier = function(doc,dt,dn) {
 	if (doc.supplier) {
 		get_server_fields('get_default_supplier_address',
diff --git a/buying/doctype/purchase_order/purchase_order.py b/buying/doctype/purchase_order/purchase_order.py
index f589b67..f08a319 100644
--- a/buying/doctype/purchase_order/purchase_order.py
+++ b/buying/doctype/purchase_order/purchase_order.py
@@ -17,30 +17,60 @@
 from __future__ import unicode_literals
 import webnotes
 
-from webnotes.utils import cstr, date_diff, flt, get_defaults, now
-from webnotes.model import db_exists
-from webnotes.model.doc import addchild, make_autoname
-from webnotes.model.wrapper import getlist, copy_doclist
+from webnotes.utils import cstr, flt, get_defaults
+from webnotes.model.doc import addchild
+from webnotes.model.wrapper import getlist
 from webnotes.model.code import get_obj
 from webnotes import msgprint
+from buying.utils import get_last_purchase_details
+from setup.utils import get_company_currency
 
 sql = webnotes.conn.sql
 	
-
-from utilities.transaction_base import TransactionBase
-
-class DocType(TransactionBase):
+from controllers.buying_controller import BuyingController
+class DocType(BuyingController):
 	def __init__(self, doc, doclist=[]):
 		self.doc = doc
 		self.doclist = doclist
 		self.defaults = get_defaults()
 		self.tname = 'Purchase Order Item'
 		self.fname = 'po_details'
+		
+		# Validate
+	def validate(self):
+		super(DocType, self).validate()
+		
+		self.validate_fiscal_year()
 
-	# Autoname
-	# ---------
-	def autoname(self):
-		self.doc.name = make_autoname(self.doc.naming_series+'.#####')
+		if not self.doc.status:
+			self.doc.status = "Draft"
+
+		import utilities
+		utilities.validate_status(self.doc.status, ["Draft", "Submitted", "Stopped", 
+			"Cancelled"])
+
+		# Step 2:=> get Purchase Common Obj
+		pc_obj = get_obj(dt='Purchase Common')
+		
+		# Step 3:=> validate mandatory
+		pc_obj.validate_mandatory(self)
+
+		# Step 4:=> validate for items
+		pc_obj.validate_for_items(self)
+
+		# Get po date
+		pc_obj.get_prevdoc_date(self)
+		
+		# validate_doc
+		self.validate_doc(pc_obj)
+		
+		# Check for stopped status
+		self.check_for_stopped_status(pc_obj)
+		
+		 # get total in words
+		dcc = get_company_currency(self.doc.company)
+		self.doc.in_words = pc_obj.get_total_in_words(dcc, self.doc.grand_total)
+		self.doc.in_words_import = pc_obj.get_total_in_words(self.doc.currency, self.doc.grand_total_import)
 
 	def get_default_schedule_date(self):
 		get_obj(dt = 'Purchase Common').get_default_schedule_date(self)
@@ -48,27 +78,6 @@
 	def validate_fiscal_year(self):
 		get_obj(dt = 'Purchase Common').validate_fiscal_year(self.doc.fiscal_year,self.doc.transaction_date,'PO Date')
 
-
-	# Get Item Details
-	def get_item_details(self, arg =''):
-		import json
-		if arg:
-			return get_obj(dt='Purchase Common').get_item_details(self,arg)
-		else:
-			obj = get_obj('Purchase Common')
-			for doc in self.doclist:
-				if doc.fields.get('item_code'):
-					temp = {
-						'item_code': doc.fields.get('item_code'),
-						'warehouse': doc.fields.get('warehouse')
-					}
-					ret = obj.get_item_details(self, json.dumps(temp))
-					for r in ret:
-						if not doc.fields.get(r):
-							doc.fields[r] = ret[r]
-
-
-
 	# get available qty at warehouse
 	def get_bin_details(self, arg = ''):
 		return get_obj(dt='Purchase Common').get_bin_details(arg)
@@ -80,7 +89,7 @@
 			pcomm = get_obj('Purchase Common')
 			for d in getlist(self.doclist, 'po_details'):
 				if d.item_code and not d.purchase_rate:
-					last_purchase_details, last_purchase_date = pcomm.get_last_purchase_details(d.item_code, self.doc.name)
+					last_purchase_details = get_last_purchase_details(d.item_code, self.doc.name)
 					if last_purchase_details:
 						conversion_factor = d.conversion_factor or 1.0
 						conversion_rate = self.doc.fields.get('conversion_rate') or 1.0
@@ -125,44 +134,6 @@
 				pc_obj.check_for_stopped_status( d.prevdoc_doctype, d.prevdoc_docname)
 
 		
-	# Validate
-	def validate(self):
-		self.validate_fiscal_year()
-
-		if not self.doc.status:
-			self.doc.status = "Draft"
-
-		import utilities
-		utilities.validate_status(self.doc.status, ["Draft", "Submitted", "Stopped", 
-			"Cancelled"])
-
-		# Step 2:=> get Purchase Common Obj
-		pc_obj = get_obj(dt='Purchase Common')
-		
-		# Step 3:=> validate mandatory
-		pc_obj.validate_mandatory(self)
-
-		# Step 4:=> validate for items
-		pc_obj.validate_for_items(self)
-
-		# Step 5:=> validate conversion rate
-		pc_obj.validate_conversion_rate(self)
-		
-		# Get po date
-		pc_obj.get_prevdoc_date(self)
-		
-		# validate_doc
-		self.validate_doc(pc_obj)
-		
-		# Check for stopped status
-		self.check_for_stopped_status(pc_obj)
-		
-		 # get total in words
-		dcc = TransactionBase().get_company_currency(self.doc.company)
-		self.doc.in_words = pc_obj.get_total_in_words(dcc, self.doc.grand_total)
-		self.doc.in_words_import = pc_obj.get_total_in_words(self.doc.currency, self.doc.grand_total_import)
-	
-
 	def update_bin(self, is_submit, is_stopped = 0):
 		pc_obj = get_obj('Purchase Common')
 		for d in getlist(self.doclist, 'po_details'):
@@ -237,10 +208,6 @@
 		# Step 3 :=> Check For Approval Authority
 		get_obj('Authorization Control').validate_approving_authority(self.doc.doctype, self.doc.company, self.doc.grand_total)
 		
-		# Step 4 :=> Update Current PO No. in Supplier as last_purchase_order.
-		update_supplier = webnotes.conn.set_value("Supplier", self.doc.supplier,
-			"last_purchase_order", self.doc.name)
-
 		# Step 5 :=> Update last purchase rate
 		purchase_controller.update_last_purchase_rate(self, is_submit = 1)
 
diff --git a/buying/doctype/purchase_order/purchase_order.txt b/buying/doctype/purchase_order/purchase_order.txt
index 3a08bee..3c75008 100644
--- a/buying/doctype/purchase_order/purchase_order.txt
+++ b/buying/doctype/purchase_order/purchase_order.txt
@@ -2,18 +2,19 @@
  {
   "owner": "Administrator", 
   "docstatus": 0, 
-  "creation": "2012-08-06 20:00:37", 
+  "creation": "2013-01-18 12:46:59", 
   "modified_by": "Administrator", 
-  "modified": "2012-12-03 17:10:41"
+  "modified": "2013-01-18 13:24:20"
  }, 
  {
+  "document_type": "Transaction", 
   "is_submittable": 1, 
   "allow_attach": 1, 
-  "search_fields": "status, transaction_date, supplier,grand_total", 
+  "autoname": "naming_series:", 
   "module": "Buying", 
   "doctype": "DocType", 
   "read_only_onload": 1, 
-  "document_type": "Transaction", 
+  "search_fields": "status, transaction_date, supplier,grand_total", 
   "name": "__common__"
  }, 
  {
@@ -36,44 +37,33 @@
   "doctype": "DocType"
  }, 
  {
-  "oldfieldtype": "Column Break", 
-  "doctype": "DocField", 
-  "width": "50%", 
-  "fieldname": "column_break0", 
-  "fieldtype": "Column Break", 
-  "permlevel": 0
- }, 
- {
   "print_hide": 1, 
   "description": "To manage multiple series please go to Setup > Manage Series", 
   "no_copy": 1, 
   "oldfieldtype": "Select", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Series", 
   "oldfieldname": "naming_series", 
-  "permlevel": 0, 
+  "options": "\nPO", 
   "fieldname": "naming_series", 
   "fieldtype": "Select", 
   "reqd": 1, 
-  "options": "\nPO"
+  "permlevel": 0
  }, 
  {
   "print_hide": 1, 
   "description": "Supplier (vendor) name as entered in supplier master", 
   "oldfieldtype": "Link", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Supplier", 
   "oldfieldname": "supplier", 
   "permlevel": 0, 
-  "trigger": "Client", 
   "fieldname": "supplier", 
   "fieldtype": "Link", 
   "search_index": 1, 
   "reqd": 1, 
-  "in_filter": 1, 
-  "options": "Supplier"
+  "options": "Supplier", 
+  "in_filter": 1
  }, 
  {
   "doctype": "DocField", 
@@ -118,6 +108,7 @@
  }, 
  {
   "print_hide": 0, 
+  "print_width": "50%", 
   "oldfieldtype": "Column Break", 
   "doctype": "DocField", 
   "width": "50%", 
@@ -128,21 +119,18 @@
  {
   "description": "The date at which current entry is made in system.", 
   "oldfieldtype": "Date", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Purchase Order Date", 
   "oldfieldname": "transaction_date", 
-  "trigger": "Client", 
   "fieldname": "transaction_date", 
   "fieldtype": "Date", 
   "search_index": 1, 
   "reqd": 1, 
-  "in_filter": 1, 
-  "permlevel": 0
+  "permlevel": 0, 
+  "in_filter": 1
  }, 
  {
   "oldfieldtype": "Section Break", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Items", 
   "fieldname": "items", 
@@ -156,19 +144,29 @@
   "doctype": "DocField", 
   "label": "Purchase Order Items", 
   "oldfieldname": "po_details", 
-  "options": "Purchase Order Item", 
+  "permlevel": 0, 
   "fieldname": "po_details", 
   "fieldtype": "Table", 
-  "permlevel": 0
+  "options": "Purchase Order Item"
  }, 
  {
   "doctype": "DocField", 
-  "options": "Simple", 
-  "fieldname": "section_break0", 
+  "permlevel": 0, 
+  "fieldname": "sb_last_purchase", 
   "fieldtype": "Section Break", 
+  "options": "Simple"
+ }, 
+ {
+  "print_hide": 0, 
+  "oldfieldtype": "Button", 
+  "doctype": "DocField", 
+  "label": "Get Last Purchase Rate", 
+  "fieldname": "get_last_purchase_rate", 
+  "fieldtype": "Button", 
   "permlevel": 0
  }, 
  {
+  "print_width": "50%", 
   "doctype": "DocField", 
   "width": "50%", 
   "fieldname": "column_break2", 
@@ -176,50 +174,48 @@
   "permlevel": 0
  }, 
  {
-  "print_hide": 1, 
-  "no_copy": 1, 
-  "oldfieldtype": "Currency", 
-  "doctype": "DocField", 
-  "label": "Net Total*", 
-  "oldfieldname": "net_total", 
-  "fieldname": "net_total", 
-  "fieldtype": "Currency", 
-  "reqd": 0, 
-  "permlevel": 1
- }, 
- {
-  "print_hide": 1, 
-  "no_copy": 0, 
-  "oldfieldtype": "Currency", 
-  "doctype": "DocField", 
-  "label": "Net Total (Import)", 
-  "oldfieldname": "net_total_import", 
-  "fieldname": "net_total_import", 
-  "fieldtype": "Currency", 
-  "permlevel": 1
- }, 
- {
-  "print_hide": 0, 
-  "oldfieldtype": "Button", 
-  "colour": "White:FFF", 
-  "doctype": "DocField", 
-  "label": "Get Last Purchase Rate", 
-  "trigger": "Client", 
-  "fieldname": "get_last_purchase_rate", 
-  "fieldtype": "Button", 
-  "permlevel": 0
- }, 
- {
   "oldfieldtype": "Button", 
   "doctype": "DocField", 
   "label": "Re-Calculate Values", 
-  "trigger": "Client", 
   "fieldname": "recalculate_values", 
   "fieldtype": "Button", 
   "permlevel": 0
  }, 
  {
   "doctype": "DocField", 
+  "fieldname": "section_break0", 
+  "fieldtype": "Section Break", 
+  "permlevel": 0
+ }, 
+ {
+  "print_hide": 1, 
+  "description": "You can make a purchase order from multiple Purchase Requests. Select Purchase Requests one by one and click on the button below.", 
+  "no_copy": 1, 
+  "oldfieldtype": "Link", 
+  "doctype": "DocField", 
+  "label": "Select Purchase Request", 
+  "oldfieldname": "indent_no", 
+  "options": "Purchase Request", 
+  "fieldname": "indent_no", 
+  "fieldtype": "Link", 
+  "hidden": 0, 
+  "permlevel": 0
+ }, 
+ {
+  "print_hide": 1, 
+  "no_copy": 0, 
+  "oldfieldtype": "Button", 
+  "doctype": "DocField", 
+  "label": "Get Items", 
+  "permlevel": 0, 
+  "fieldname": "get_items", 
+  "fieldtype": "Button", 
+  "hidden": 0, 
+  "options": "get_indent_details"
+ }, 
+ {
+  "print_width": "50%", 
+  "doctype": "DocField", 
   "width": "50%", 
   "fieldname": "column_break3", 
   "fieldtype": "Column Break", 
@@ -227,30 +223,60 @@
  }, 
  {
   "print_hide": 1, 
+  "description": "You can make a purchase order from multiple Supplier Quotations. Select Supplier Quotations one by one and click on the button below.", 
+  "no_copy": 1, 
+  "doctype": "DocField", 
+  "label": "Select Supplier Quotation", 
+  "permlevel": 0, 
+  "fieldname": "supplier_quotation", 
+  "fieldtype": "Link", 
+  "options": "Supplier Quotation"
+ }, 
+ {
+  "print_hide": 1, 
+  "doctype": "DocField", 
+  "label": "Get Items", 
+  "permlevel": 0, 
+  "fieldname": "get_supplier_quotation_items", 
+  "fieldtype": "Button", 
+  "options": "get_supplier_quotation_items"
+ }, 
+ {
+  "doctype": "DocField", 
+  "label": "Currency & Price List", 
+  "fieldname": "price_list_and_currency", 
+  "fieldtype": "Section Break", 
+  "permlevel": 0
+ }, 
+ {
+  "doctype": "DocField", 
+  "fieldname": "cb_currency", 
+  "fieldtype": "Column Break", 
+  "permlevel": 0
+ }, 
+ {
+  "print_hide": 1, 
   "description": "Supplier's currency", 
   "no_copy": 0, 
   "oldfieldtype": "Select", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Currency", 
   "oldfieldname": "currency", 
-  "permlevel": 0, 
+  "options": "link:Currency", 
   "fieldname": "currency", 
   "fieldtype": "Select", 
   "reqd": 1, 
-  "options": "link:Currency"
+  "permlevel": 0
  }, 
  {
   "print_hide": 1, 
   "description": "Rate at which supplier's currency is converted to company's base currency", 
   "no_copy": 1, 
   "oldfieldtype": "Currency", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
-  "label": "Conversion Rate", 
+  "label": "Exchange Rate", 
   "oldfieldname": "conversion_rate", 
   "default": "1", 
-  "trigger": "Client", 
   "fieldname": "conversion_rate", 
   "fieldtype": "Float", 
   "reqd": 1, 
@@ -258,56 +284,43 @@
   "permlevel": 0
  }, 
  {
-  "print_hide": 1, 
-  "description": "You can make a purchase order from multiple Purchase Requests. Select Purchase Requests one by one and click on the button below.", 
-  "no_copy": 1, 
-  "oldfieldtype": "Link", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
-  "label": "Select Purchase Request", 
-  "oldfieldname": "indent_no", 
+  "fieldname": "cb_price_list", 
+  "fieldtype": "Column Break", 
+  "permlevel": 0
+ }, 
+ {
+  "print_hide": 1, 
+  "description": "Consider this Price List for fetching rate. (only which have \"For Buying\" as checked)", 
+  "doctype": "DocField", 
+  "label": "Price List", 
   "permlevel": 0, 
-  "fieldname": "indent_no", 
+  "fieldname": "price_list_name", 
   "fieldtype": "Link", 
-  "hidden": 0, 
-  "options": "Purchase Request"
+  "options": "Price List"
  }, 
  {
   "print_hide": 1, 
-  "no_copy": 0, 
-  "oldfieldtype": "Button", 
+  "depends_on": "price_list_name", 
   "doctype": "DocField", 
-  "label": "Get Items", 
-  "options": "get_indent_details", 
-  "fieldname": "get_items", 
-  "fieldtype": "Button", 
-  "hidden": 0, 
-  "permlevel": 0
- }, 
- {
-  "print_hide": 1, 
-  "description": "You can make a purchase order from multiple Supplier Quotations. Select Supplier Quotations one by one and click on the button below.", 
-  "no_copy": 1, 
-  "doctype": "DocField", 
-  "label": "Select Supplier Quotation", 
-  "options": "Supplier Quotation", 
-  "fieldname": "supplier_quotation", 
+  "label": "Price List Currency", 
+  "permlevel": 0, 
+  "fieldname": "price_list_currency", 
   "fieldtype": "Link", 
-  "permlevel": 0
+  "options": "Currency"
  }, 
  {
   "print_hide": 1, 
+  "depends_on": "price_list_name", 
   "doctype": "DocField", 
-  "label": "Get Items", 
-  "options": "get_supplier_quotation_items", 
-  "fieldname": "get_supplier_quotation_items", 
-  "fieldtype": "Button", 
+  "label": "Price List Exchange Rate", 
+  "fieldname": "plc_conversion_rate", 
+  "fieldtype": "Float", 
   "permlevel": 0
  }, 
  {
   "print_hide": 0, 
   "oldfieldtype": "Section Break", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Taxes", 
   "fieldname": "taxes", 
@@ -319,7 +332,6 @@
   "description": "If you have created a standard template in Purchase Taxes and Charges Master, select one and click on the button below.", 
   "no_copy": 1, 
   "oldfieldtype": "Link", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Purchase Taxes and Charges", 
   "oldfieldname": "purchase_other_charges", 
@@ -333,10 +345,10 @@
   "oldfieldtype": "Button", 
   "doctype": "DocField", 
   "label": "Get Tax Detail", 
-  "options": "get_purchase_tax_details", 
+  "permlevel": 0, 
   "fieldname": "get_tax_detail", 
   "fieldtype": "Button", 
-  "permlevel": 0
+  "options": "get_purchase_tax_details"
  }, 
  {
   "no_copy": 0, 
@@ -344,17 +356,16 @@
   "doctype": "DocField", 
   "label": "Purchase Taxes and Charges", 
   "oldfieldname": "purchase_tax_details", 
-  "options": "Purchase Taxes and Charges", 
+  "permlevel": 0, 
   "fieldname": "purchase_tax_details", 
   "fieldtype": "Table", 
-  "permlevel": 0
+  "options": "Purchase Taxes and Charges"
  }, 
  {
   "print_hide": 1, 
   "oldfieldtype": "Button", 
   "doctype": "DocField", 
   "label": "Calculate Tax", 
-  "trigger": "Client", 
   "fieldname": "calculate_tax", 
   "fieldtype": "Button", 
   "permlevel": 0
@@ -370,19 +381,7 @@
   "permlevel": 0
  }, 
  {
-  "print_hide": 1, 
-  "no_copy": 1, 
-  "oldfieldtype": "Currency", 
-  "doctype": "DocField", 
-  "label": "Total Tax*", 
-  "oldfieldname": "total_tax", 
-  "fieldname": "total_tax", 
-  "fieldtype": "Currency", 
-  "permlevel": 1
- }, 
- {
   "oldfieldtype": "Section Break", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Totals", 
   "fieldname": "totals", 
@@ -391,45 +390,12 @@
  }, 
  {
   "print_hide": 1, 
-  "no_copy": 1, 
-  "oldfieldtype": "Currency", 
-  "doctype": "DocField", 
-  "label": "Grand Total", 
-  "oldfieldname": "grand_total", 
-  "fieldname": "grand_total", 
-  "fieldtype": "Currency", 
-  "permlevel": 1
- }, 
- {
-  "print_hide": 1, 
-  "oldfieldtype": "Currency", 
-  "doctype": "DocField", 
-  "label": "Rounded Total", 
-  "oldfieldname": "rounded_total", 
-  "fieldname": "rounded_total", 
-  "fieldtype": "Currency", 
-  "permlevel": 1
- }, 
- {
-  "print_hide": 1, 
-  "description": "In Words will be visible once you save the Purchase Order.", 
-  "oldfieldtype": "Data", 
-  "colour": "White:FFF", 
-  "doctype": "DocField", 
-  "label": "In Words", 
-  "oldfieldname": "in_words", 
-  "fieldname": "in_words", 
-  "fieldtype": "Data", 
-  "permlevel": 1
- }, 
- {
-  "print_hide": 1, 
   "no_copy": 0, 
   "oldfieldtype": "Currency", 
   "doctype": "DocField", 
-  "label": "Taxes and Charges Added", 
-  "oldfieldname": "other_charges_added", 
-  "fieldname": "other_charges_added", 
+  "label": "Net Total (Import)", 
+  "oldfieldname": "net_total_import", 
+  "fieldname": "net_total_import", 
   "fieldtype": "Currency", 
   "permlevel": 1
  }, 
@@ -438,48 +404,6 @@
   "no_copy": 0, 
   "oldfieldtype": "Currency", 
   "doctype": "DocField", 
-  "label": "Taxes and Charges Deducted", 
-  "oldfieldname": "other_charges_deducted", 
-  "fieldname": "other_charges_deducted", 
-  "fieldtype": "Currency", 
-  "permlevel": 1
- }, 
- {
-  "print_hide": 0, 
-  "oldfieldtype": "Column Break", 
-  "doctype": "DocField", 
-  "fieldname": "column_break4", 
-  "fieldtype": "Column Break", 
-  "permlevel": 0
- }, 
- {
-  "print_hide": 1, 
-  "no_copy": 0, 
-  "oldfieldtype": "Currency", 
-  "doctype": "DocField", 
-  "label": "Grand Total (Import)", 
-  "oldfieldname": "grand_total_import", 
-  "fieldname": "grand_total_import", 
-  "fieldtype": "Currency", 
-  "permlevel": 1, 
-  "report_hide": 0
- }, 
- {
-  "print_hide": 1, 
-  "oldfieldtype": "Data", 
-  "colour": "White:FFF", 
-  "doctype": "DocField", 
-  "label": "In Words(Import)", 
-  "oldfieldname": "in_words_import", 
-  "fieldname": "in_words_import", 
-  "fieldtype": "Data", 
-  "permlevel": 1
- }, 
- {
-  "print_hide": 1, 
-  "no_copy": 0, 
-  "oldfieldtype": "Currency", 
-  "doctype": "DocField", 
   "label": "Taxes and Charges Added (Import)", 
   "oldfieldname": "other_charges_added_import", 
   "fieldname": "other_charges_added_import", 
@@ -500,6 +424,113 @@
   "report_hide": 0
  }, 
  {
+  "print_hide": 1, 
+  "no_copy": 0, 
+  "oldfieldtype": "Currency", 
+  "doctype": "DocField", 
+  "label": "Grand Total (Import)", 
+  "oldfieldname": "grand_total_import", 
+  "fieldname": "grand_total_import", 
+  "fieldtype": "Currency", 
+  "permlevel": 1, 
+  "report_hide": 0
+ }, 
+ {
+  "print_hide": 1, 
+  "oldfieldtype": "Data", 
+  "doctype": "DocField", 
+  "label": "In Words(Import)", 
+  "oldfieldname": "in_words_import", 
+  "fieldname": "in_words_import", 
+  "fieldtype": "Data", 
+  "permlevel": 1
+ }, 
+ {
+  "print_hide": 0, 
+  "oldfieldtype": "Column Break", 
+  "doctype": "DocField", 
+  "fieldname": "column_break4", 
+  "fieldtype": "Column Break", 
+  "permlevel": 0
+ }, 
+ {
+  "print_hide": 1, 
+  "no_copy": 1, 
+  "oldfieldtype": "Currency", 
+  "doctype": "DocField", 
+  "label": "Net Total*", 
+  "oldfieldname": "net_total", 
+  "fieldname": "net_total", 
+  "fieldtype": "Currency", 
+  "reqd": 0, 
+  "permlevel": 1
+ }, 
+ {
+  "print_hide": 1, 
+  "no_copy": 0, 
+  "oldfieldtype": "Currency", 
+  "doctype": "DocField", 
+  "label": "Taxes and Charges Added", 
+  "oldfieldname": "other_charges_added", 
+  "fieldname": "other_charges_added", 
+  "fieldtype": "Currency", 
+  "permlevel": 1
+ }, 
+ {
+  "print_hide": 1, 
+  "no_copy": 0, 
+  "oldfieldtype": "Currency", 
+  "doctype": "DocField", 
+  "label": "Taxes and Charges Deducted", 
+  "oldfieldname": "other_charges_deducted", 
+  "fieldname": "other_charges_deducted", 
+  "fieldtype": "Currency", 
+  "permlevel": 1
+ }, 
+ {
+  "print_hide": 1, 
+  "no_copy": 1, 
+  "oldfieldtype": "Currency", 
+  "doctype": "DocField", 
+  "label": "Total Tax*", 
+  "oldfieldname": "total_tax", 
+  "fieldname": "total_tax", 
+  "fieldtype": "Currency", 
+  "permlevel": 1
+ }, 
+ {
+  "print_hide": 1, 
+  "no_copy": 1, 
+  "oldfieldtype": "Currency", 
+  "doctype": "DocField", 
+  "label": "Grand Total", 
+  "oldfieldname": "grand_total", 
+  "fieldname": "grand_total", 
+  "fieldtype": "Currency", 
+  "permlevel": 1
+ }, 
+ {
+  "print_hide": 1, 
+  "oldfieldtype": "Currency", 
+  "doctype": "DocField", 
+  "label": "Rounded Total", 
+  "oldfieldname": "rounded_total", 
+  "fieldname": "rounded_total", 
+  "fieldtype": "Currency", 
+  "permlevel": 1
+ }, 
+ {
+  "print_hide": 1, 
+  "description": "In Words will be visible once you save the Purchase Order.", 
+  "oldfieldtype": "Data", 
+  "doctype": "DocField", 
+  "label": "In Words", 
+  "oldfieldname": "in_words", 
+  "fieldname": "in_words", 
+  "fieldtype": "Data", 
+  "permlevel": 1
+ }, 
+ {
   "oldfieldtype": "Section Break", 
   "doctype": "DocField", 
   "label": "Terms and Conditions", 
@@ -509,45 +540,33 @@
  }, 
  {
   "print_hide": 1, 
-  "oldfieldtype": "Select", 
-  "allow_on_submit": 1, 
-  "doctype": "DocField", 
-  "label": "Letter Head", 
-  "oldfieldname": "letter_head", 
-  "options": "link:Letter Head", 
-  "fieldname": "letter_head", 
-  "fieldtype": "Select", 
-  "permlevel": 0
- }, 
- {
-  "print_hide": 1, 
   "oldfieldtype": "Link", 
   "doctype": "DocField", 
   "label": "Select Terms and Conditions", 
   "oldfieldname": "tc_name", 
-  "options": "Terms and Conditions", 
+  "permlevel": 0, 
   "fieldname": "tc_name", 
   "fieldtype": "Link", 
-  "permlevel": 0
+  "options": "Terms and Conditions"
  }, 
  {
   "oldfieldtype": "Button", 
   "doctype": "DocField", 
   "label": "Get Terms and Conditions", 
-  "options": "get_tc_details", 
+  "permlevel": 0, 
   "fieldname": "get_terms", 
   "fieldtype": "Button", 
-  "permlevel": 0
+  "options": "get_tc_details"
  }, 
  {
   "print_hide": 1, 
   "oldfieldtype": "HTML", 
   "doctype": "DocField", 
   "label": "Terms and Conditions HTML", 
-  "options": "You can add Terms and Notes that will be printed in the Transaction", 
+  "permlevel": 0, 
   "fieldname": "terms_html", 
   "fieldtype": "HTML", 
-  "permlevel": 0
+  "options": "You can add Terms and Notes that will be printed in the Transaction"
  }, 
  {
   "oldfieldtype": "Text Editor", 
@@ -569,20 +588,26 @@
   "print_hide": 1, 
   "doctype": "DocField", 
   "label": "Supplier Address", 
-  "options": "Address", 
+  "permlevel": 0, 
   "fieldname": "supplier_address", 
   "fieldtype": "Link", 
-  "permlevel": 0, 
+  "options": "Address", 
   "in_filter": 1
  }, 
  {
+  "doctype": "DocField", 
+  "fieldname": "cb_contact", 
+  "fieldtype": "Column Break", 
+  "permlevel": 0
+ }, 
+ {
   "print_hide": 1, 
   "doctype": "DocField", 
   "label": "Contact Person", 
-  "options": "Contact", 
+  "permlevel": 0, 
   "fieldname": "contact_person", 
   "fieldtype": "Link", 
-  "permlevel": 0, 
+  "options": "Contact", 
   "in_filter": 1
  }, 
  {
@@ -597,7 +622,6 @@
   "print_hide": 1, 
   "no_copy": 1, 
   "oldfieldtype": "Select", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Status", 
   "oldfieldname": "status", 
@@ -614,10 +638,10 @@
   "default": "No", 
   "doctype": "DocField", 
   "label": "Is Subcontracted", 
-  "options": "\nYes\nNo", 
+  "permlevel": 0, 
   "fieldname": "is_subcontracted", 
   "fieldtype": "Select", 
-  "permlevel": 0
+  "options": "\nYes\nNo"
  }, 
  {
   "print_hide": 1, 
@@ -633,6 +657,18 @@
  }, 
  {
   "print_hide": 1, 
+  "oldfieldtype": "Select", 
+  "allow_on_submit": 1, 
+  "doctype": "DocField", 
+  "label": "Letter Head", 
+  "oldfieldname": "letter_head", 
+  "permlevel": 0, 
+  "fieldname": "letter_head", 
+  "fieldtype": "Select", 
+  "options": "link:Letter Head"
+ }, 
+ {
+  "print_hide": 1, 
   "no_copy": 1, 
   "oldfieldtype": "Data", 
   "doctype": "DocField", 
@@ -662,7 +698,6 @@
   "description": "Select the relevant company name if you have multiple companies", 
   "no_copy": 0, 
   "oldfieldtype": "Link", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Company", 
   "oldfieldname": "company", 
@@ -671,8 +706,8 @@
   "fieldtype": "Link", 
   "search_index": 1, 
   "reqd": 1, 
-  "in_filter": 1, 
-  "options": "Company"
+  "options": "Company", 
+  "in_filter": 1
  }, 
  {
   "print_hide": 1, 
@@ -693,15 +728,14 @@
   "print_hide": 1, 
   "no_copy": 1, 
   "oldfieldtype": "Link", 
-  "colour": "White:FFF", 
   "allow_on_submit": 1, 
   "doctype": "DocField", 
   "label": "Select Print Heading", 
   "oldfieldname": "select_print_heading", 
-  "permlevel": 0, 
+  "options": "Print Heading", 
   "fieldname": "select_print_heading", 
   "fieldtype": "Link", 
-  "options": "Print Heading", 
+  "permlevel": 0, 
   "report_hide": 1
  }, 
  {
@@ -715,6 +749,7 @@
  }, 
  {
   "print_hide": 1, 
+  "print_width": "50%", 
   "oldfieldtype": "Column Break", 
   "doctype": "DocField", 
   "width": "50%", 
@@ -727,7 +762,6 @@
   "description": "% of materials received against this Purchase Order", 
   "no_copy": 1, 
   "oldfieldtype": "Currency", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "% Received", 
   "oldfieldname": "per_received", 
@@ -741,7 +775,6 @@
   "description": "% of materials billed against this Purchase Order.", 
   "no_copy": 1, 
   "oldfieldtype": "Currency", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "% Billed", 
   "oldfieldname": "per_billed", 
@@ -754,7 +787,6 @@
   "print_hide": 0, 
   "no_copy": 1, 
   "oldfieldtype": "Text", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Payment Terms", 
   "oldfieldname": "payment_terms", 
@@ -777,7 +809,6 @@
   "print_hide": 1, 
   "no_copy": 1, 
   "oldfieldtype": "Data", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Cancel Reason", 
   "oldfieldname": "cancel_reason", 
@@ -791,7 +822,6 @@
   "print_hide": 1, 
   "description": "Required raw materials issued to the supplier for producing a sub - contracted item.", 
   "oldfieldtype": "Section Break", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Raw Material Details", 
   "fieldname": "raw_material_details", 
@@ -806,10 +836,10 @@
   "doctype": "DocField", 
   "label": "Purchase Order Items Supplied", 
   "oldfieldname": "po_raw_material_details", 
-  "options": "Purchase Order Item Supplied", 
+  "permlevel": 1, 
   "fieldname": "po_raw_material_details", 
   "fieldtype": "Table", 
-  "permlevel": 1
+  "options": "Purchase Order Item Supplied"
  }, 
  {
   "print_hide": 1, 
@@ -827,26 +857,28 @@
   "doctype": "DocPerm", 
   "submit": 1, 
   "write": 1, 
+  "report": 1, 
   "role": "Purchase User", 
   "cancel": 1, 
   "permlevel": 0
  }, 
  {
-  "doctype": "DocPerm", 
   "role": "All", 
-  "permlevel": 1
+  "permlevel": 1, 
+  "doctype": "DocPerm"
  }, 
  {
   "doctype": "DocPerm", 
   "role": "Supplier", 
+  "report": 1, 
   "permlevel": 0, 
   "match": "supplier"
  }, 
  {
-  "doctype": "DocPerm", 
   "write": 1, 
   "role": "All", 
-  "permlevel": 2
+  "permlevel": 2, 
+  "doctype": "DocPerm"
  }, 
  {
   "amend": 0, 
@@ -864,6 +896,7 @@
   "doctype": "DocPerm", 
   "submit": 1, 
   "write": 1, 
+  "report": 1, 
   "role": "Purchase Manager", 
   "cancel": 1, 
   "permlevel": 0
@@ -884,6 +917,7 @@
   "doctype": "DocPerm", 
   "submit": 0, 
   "write": 0, 
+  "report": 1, 
   "role": "Material User", 
   "cancel": 0, 
   "permlevel": 0
diff --git a/buying/doctype/purchase_request/purchase_request.js b/buying/doctype/purchase_request/purchase_request.js
index f46518f..fdbb9c0 100644
--- a/buying/doctype/purchase_request/purchase_request.js
+++ b/buying/doctype/purchase_request/purchase_request.js
@@ -19,6 +19,31 @@
 
 wn.require('app/buying/doctype/purchase_common/purchase_common.js');
 wn.require('app/utilities/doctype/sms_control/sms_control.js');
+
+erpnext.buying.PurchaseRequestController = erpnext.buying.BuyingController.extend({
+	refresh: function(doc) {
+		this._super();
+		
+		if(doc.docstatus == 1 && doc.status != 'Stopped'){
+			cur_frm.add_custom_button("Make Supplier Quotation", cur_frm.cscript.make_supplier_quotation);
+			if(flt(doc.per_ordered, 2) < 100) {
+				cur_frm.add_custom_button('Make Purchase Order', cur_frm.cscript['Make Purchase Order']);
+				cur_frm.add_custom_button('Stop Purchase Request', cur_frm.cscript['Stop Purchase Request']);
+			}
+			cur_frm.add_custom_button('Send SMS', cur_frm.cscript.send_sms);
+
+		}
+
+		if(doc.docstatus == 1 && doc.status == 'Stopped')
+			cur_frm.add_custom_button('Unstop Purchase Request', cur_frm.cscript['Unstop Purchase Request'])
+	}
+});
+
+var new_cscript = new erpnext.buying.PurchaseRequestController({frm: cur_frm});
+
+// for backward compatibility: combine new and previous states
+$.extend(cur_frm.cscript, new_cscript);
+
 	
 //========================== On Load =================================================
 cur_frm.cscript.onload = function(doc, cdt, cdn) {
@@ -43,26 +68,6 @@
 		}
 }
 
-
-//======================= Refresh =====================================
-cur_frm.cscript.refresh = function(doc, cdt, cdn) { 
-	cur_frm.clear_custom_buttons();
-	erpnext.hide_naming_series();
-
-	if(doc.docstatus == 1 && doc.status != 'Stopped'){
-		cur_frm.add_custom_button("Make Supplier Quotation", cur_frm.cscript.make_supplier_quotation);
-		if(flt(doc.per_ordered, 2) < 100) {
-			cur_frm.add_custom_button('Make Purchase Order', cur_frm.cscript['Make Purchase Order']);
-			cur_frm.add_custom_button('Stop Purchase Request', cur_frm.cscript['Stop Purchase Request']);
-		}
-		cur_frm.add_custom_button('Send SMS', cur_frm.cscript.send_sms);
-		
-	}
- 
-	if(doc.docstatus == 1 && doc.status == 'Stopped')
-		cur_frm.add_custom_button('Unstop Purchase Request', cur_frm.cscript['Unstop Purchase Request'])
-}
-
 //======================= transaction date =============================
 cur_frm.cscript.transaction_date = function(doc,cdt,cdn){
 	if(doc.__islocal){ 
diff --git a/buying/doctype/purchase_request/purchase_request.py b/buying/doctype/purchase_request/purchase_request.py
index 0a7ae19..9fc4dc8 100644
--- a/buying/doctype/purchase_request/purchase_request.py
+++ b/buying/doctype/purchase_request/purchase_request.py
@@ -17,18 +17,16 @@
 from __future__ import unicode_literals
 import webnotes
 
-from webnotes.utils import cstr, date_diff, flt, get_defaults, now
-from webnotes.model import db_exists
-from webnotes.model.doc import make_autoname
-from webnotes.model.wrapper import getlist, copy_doclist
+from webnotes.utils import cstr, flt, get_defaults
+from webnotes.model.wrapper import getlist
 from webnotes.model.code import get_obj
 from webnotes import msgprint
 
 sql = webnotes.conn.sql
 	
 
-
-class DocType:
+from controllers.buying_controller import BuyingController
+class DocType(BuyingController):
 	def __init__(self, doc, doclist=[]):
 		self.doc = doc
 		self.doclist = doclist
@@ -36,12 +34,6 @@
 		self.tname = 'Purchase Request Item'
 		self.fname = 'indent_details'
 
-	# Autoname
-	# ---------
-	def autoname(self):
-		self.doc.name = make_autoname(self.doc.naming_series+'.#####')
-
-
 	def get_default_schedule_date(self):
 		get_obj(dt = 'Purchase Common').get_default_schedule_date(self)
 	
@@ -102,25 +94,6 @@
 	def validate_fiscal_year(self):
 		get_obj(dt = 'Purchase Common').validate_fiscal_year(self.doc.fiscal_year,self.doc.transaction_date,'Purchase Request Date')
 
-	# get item details
-	# ---------------------------------
-	def get_item_details(self, arg =''):
-		if arg:
-			return get_obj(dt='Purchase Common').get_item_details(self,arg)
-		else:
-			obj = get_obj('Purchase Common')
-			for doc in self.doclist:
-				if doc.fields.get('item_code'):
-					temp = {
-						'item_code': doc.fields.get('item_code'),
-						'warehouse': doc.fields.get('warehouse')
-					}
-					ret = obj.get_item_details(self, json.dumps(temp))
-					for r in ret:
-						if not doc.fields.get(r):
-							doc.fields[r] = ret[r]
-
-
 	# GET TERMS & CONDITIONS
 	#-----------------------------
 	def get_tc_details(self):
@@ -138,6 +111,8 @@
 	# Validate
 	# ---------------------
 	def validate(self):
+		super(DocType, self).validate()
+		
 		self.validate_schedule_date()
 		self.validate_fiscal_year()
 		
diff --git a/buying/doctype/purchase_request/purchase_request.txt b/buying/doctype/purchase_request/purchase_request.txt
index b64ee0a..acfae49 100644
--- a/buying/doctype/purchase_request/purchase_request.txt
+++ b/buying/doctype/purchase_request/purchase_request.txt
@@ -2,13 +2,14 @@
  {
   "owner": "Administrator", 
   "docstatus": 0, 
-  "creation": "2012-07-03 13:29:58", 
+  "creation": "2012-12-03 17:56:31", 
   "modified_by": "Administrator", 
-  "modified": "2012-12-03 17:10:41"
+  "modified": "2013-01-15 15:34:47"
  }, 
  {
-  "is_submittable": 1, 
+  "autoname": "naming_series:", 
   "allow_attach": 1, 
+  "is_submittable": 1, 
   "allow_print": 0, 
   "search_fields": "status,transaction_date,sales_order_no", 
   "module": "Buying", 
@@ -28,6 +29,7 @@
   "parent": "Purchase Request", 
   "read": 1, 
   "doctype": "DocPerm", 
+  "report": 1, 
   "parenttype": "DocType", 
   "parentfield": "permissions"
  }, 
@@ -40,7 +42,6 @@
   "description": "To manage multiple series please go to Setup > Manage Series", 
   "no_copy": 1, 
   "oldfieldtype": "Select", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Series", 
   "oldfieldname": "naming_series", 
@@ -52,14 +53,13 @@
  }, 
  {
   "description": "The date at which current entry is made in system.", 
+  "print_width": "100px", 
   "no_copy": 1, 
   "oldfieldtype": "Date", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Transaction Date", 
   "oldfieldname": "transaction_date", 
   "width": "100px", 
-  "trigger": "Client", 
   "fieldname": "transaction_date", 
   "fieldtype": "Date", 
   "search_index": 1, 
@@ -69,7 +69,6 @@
  }, 
  {
   "oldfieldtype": "Section Break", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Items", 
   "fieldname": "items", 
@@ -79,7 +78,6 @@
  {
   "no_copy": 0, 
   "oldfieldtype": "Table", 
-  "colour": "White:FFF", 
   "allow_on_submit": 1, 
   "doctype": "DocField", 
   "label": "Purchase Requisition Details", 
@@ -97,6 +95,7 @@
   "permlevel": 0
  }, 
  {
+  "print_width": "50%", 
   "doctype": "DocField", 
   "width": "50%", 
   "fieldname": "column_break4", 
@@ -106,9 +105,9 @@
  {
   "permlevel": 0, 
   "description": "One or multiple Sales Order no which generated this Purchase Requisition", 
+  "print_width": "100px", 
   "no_copy": 1, 
   "oldfieldtype": "Data", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Sales Order No", 
   "oldfieldname": "sales_order_no", 
@@ -118,6 +117,7 @@
   "options": "Sales Order"
  }, 
  {
+  "print_width": "50%", 
   "doctype": "DocField", 
   "width": "50%", 
   "fieldname": "column_break5", 
@@ -136,7 +136,6 @@
   "description": "Filing in Additional Information about the Purchase Requisition will help you analyze your data better.", 
   "default": "Give additional details about the indent.", 
   "oldfieldtype": "Section Break", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "More Info", 
   "fieldname": "more_info", 
@@ -144,6 +143,7 @@
   "permlevel": 0
  }, 
  {
+  "print_width": "50%", 
   "oldfieldtype": "Column Break", 
   "doctype": "DocField", 
   "width": "50%", 
@@ -154,9 +154,9 @@
  {
   "print_hide": 1, 
   "description": "Select the relevant company name if you have multiple companies", 
+  "print_width": "150px", 
   "permlevel": 0, 
   "oldfieldtype": "Link", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Company", 
   "oldfieldname": "company", 
@@ -170,9 +170,9 @@
  }, 
  {
   "print_hide": 1, 
+  "print_width": "150px", 
   "permlevel": 0, 
   "oldfieldtype": "Select", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Fiscal Year", 
   "oldfieldname": "fiscal_year", 
@@ -186,9 +186,9 @@
  }, 
  {
   "description": "Name of the entity who has requested for the Purchase Requisition", 
+  "print_width": "100px", 
   "no_copy": 1, 
   "oldfieldtype": "Data", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Requested By", 
   "oldfieldname": "requested_by", 
@@ -202,7 +202,6 @@
   "description": "After cancelling the Purchase Requisition, a dialog box will ask you reason for cancellation which will be reflected in this field", 
   "no_copy": 1, 
   "oldfieldtype": "Data", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Cancel Reason", 
   "oldfieldname": "cancel_reason", 
@@ -211,6 +210,7 @@
   "permlevel": 1
  }, 
  {
+  "print_width": "50%", 
   "oldfieldtype": "Column Break", 
   "doctype": "DocField", 
   "width": "50%", 
@@ -220,8 +220,8 @@
  }, 
  {
   "print_hide": 1, 
-  "oldfieldtype": "Select", 
   "allow_on_submit": 1, 
+  "oldfieldtype": "Select", 
   "doctype": "DocField", 
   "label": "Letter Head", 
   "oldfieldname": "letter_head", 
@@ -233,9 +233,9 @@
  {
   "print_hide": 1, 
   "permlevel": 1, 
+  "print_width": "100px", 
   "no_copy": 1, 
   "oldfieldtype": "Select", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Status", 
   "oldfieldname": "status", 
@@ -252,7 +252,6 @@
   "description": "% of materials ordered against this Purchase Requisition", 
   "no_copy": 1, 
   "oldfieldtype": "Currency", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "% Ordered", 
   "oldfieldname": "per_ordered", 
@@ -262,6 +261,7 @@
  }, 
  {
   "print_hide": 1, 
+  "print_width": "150px", 
   "no_copy": 1, 
   "oldfieldtype": "Data", 
   "doctype": "DocField", 
@@ -275,6 +275,7 @@
  {
   "print_hide": 1, 
   "description": "The date at which current entry is corrected in the system.", 
+  "print_width": "100px", 
   "no_copy": 1, 
   "oldfieldtype": "Date", 
   "doctype": "DocField", 
@@ -287,6 +288,7 @@
  }, 
  {
   "print_hide": 0, 
+  "print_width": "150px", 
   "no_copy": 1, 
   "oldfieldtype": "Small Text", 
   "doctype": "DocField", 
@@ -347,22 +349,6 @@
   "permlevel": 0
  }, 
  {
-  "amend": 1, 
-  "create": 1, 
-  "doctype": "DocPerm", 
-  "submit": 1, 
-  "write": 1, 
-  "role": "Purchase User", 
-  "cancel": 1, 
-  "permlevel": 0, 
-  "match": ""
- }, 
- {
-  "doctype": "DocPerm", 
-  "role": "Purchase User", 
-  "permlevel": 1
- }, 
- {
   "amend": 0, 
   "create": 0, 
   "doctype": "DocPerm", 
@@ -421,5 +407,24 @@
   "role": "Material User", 
   "cancel": 1, 
   "permlevel": 0
+ }, 
+ {
+  "amend": 1, 
+  "create": 1, 
+  "doctype": "DocPerm", 
+  "submit": 1, 
+  "write": 1, 
+  "role": "Purchase User", 
+  "cancel": 1, 
+  "permlevel": 0
+ }, 
+ {
+  "amend": 0, 
+  "create": 0, 
+  "doctype": "DocPerm", 
+  "submit": 0, 
+  "role": "Purchase User", 
+  "cancel": 0, 
+  "permlevel": 1
  }
 ]
\ No newline at end of file
diff --git a/buying/doctype/quality_inspection/quality_inspection.txt b/buying/doctype/quality_inspection/quality_inspection.txt
index 64bc087..0a76f27 100644
--- a/buying/doctype/quality_inspection/quality_inspection.txt
+++ b/buying/doctype/quality_inspection/quality_inspection.txt
@@ -9,15 +9,15 @@
  {
   "section_style": "Simple", 
   "is_submittable": 1, 
+  "doctype": "DocType", 
   "search_fields": "item_code, report_date, purchase_receipt_no, delivery_note_no", 
   "module": "Buying", 
-  "_last_update": "1317365120", 
   "server_code_error": " ", 
   "print_outline": "Yes", 
   "autoname": "QAI/.######", 
   "name": "__common__", 
   "colour": "White:FFF", 
-  "doctype": "DocType", 
+  "_last_update": "1317365120", 
   "show_in_menu": 0, 
   "version": 38
  }, 
@@ -51,6 +51,7 @@
   "doctype": "DocPerm", 
   "submit": 1, 
   "write": 1, 
+  "report": 1, 
   "cancel": 1, 
   "permlevel": 0
  }, 
@@ -75,11 +76,11 @@
   "no_copy": 1, 
   "doctype": "DocField", 
   "label": "Naming Series", 
-  "permlevel": 0, 
+  "options": "\nQAI/11-12/", 
   "fieldname": "naming_series", 
   "fieldtype": "Select", 
   "reqd": 1, 
-  "options": "\nQAI/11-12/"
+  "permlevel": 0
  }, 
  {
   "oldfieldtype": "Select", 
@@ -87,12 +88,12 @@
   "doctype": "DocField", 
   "label": "Inspection Type", 
   "oldfieldname": "inspection_type", 
+  "permlevel": 0, 
   "trigger": "Client", 
   "fieldname": "inspection_type", 
   "fieldtype": "Select", 
   "reqd": 1, 
   "options": "\nIncoming\nOutgoing\nIn Process", 
-  "permlevel": 0, 
   "in_filter": 1
  }, 
  {
@@ -161,21 +162,21 @@
   "doctype": "DocField", 
   "label": "Item Serial No", 
   "oldfieldname": "item_serial_no", 
-  "permlevel": 0, 
+  "options": "Serial No", 
   "fieldname": "item_serial_no", 
   "fieldtype": "Link", 
   "hidden": 0, 
-  "options": "Serial No"
+  "permlevel": 0
  }, 
  {
   "oldfieldtype": "Link", 
   "doctype": "DocField", 
   "label": "Batch No", 
   "oldfieldname": "batch_no", 
-  "permlevel": 0, 
+  "options": "Batch", 
   "fieldname": "batch_no", 
   "fieldtype": "Link", 
-  "options": "Batch"
+  "permlevel": 0
  }, 
  {
   "oldfieldtype": "Link", 
@@ -262,10 +263,10 @@
   "oldfieldtype": "Section Break", 
   "doctype": "DocField", 
   "label": "Specification Details", 
-  "permlevel": 0, 
+  "options": "Simple", 
   "fieldname": "specification_details", 
   "fieldtype": "Section Break", 
-  "options": "Simple"
+  "permlevel": 0
  }, 
  {
   "doctype": "DocField", 
@@ -280,9 +281,9 @@
   "doctype": "DocField", 
   "label": "Quality Inspection Readings", 
   "oldfieldname": "qa_specification_details", 
-  "permlevel": 0, 
+  "options": "Quality Inspection Reading", 
   "fieldname": "qa_specification_details", 
   "fieldtype": "Table", 
-  "options": "Quality Inspection Reading"
+  "permlevel": 0
  }
 ]
\ No newline at end of file
diff --git a/buying/doctype/supplier/supplier.py b/buying/doctype/supplier/supplier.py
index 75031c9..2255cfd 100644
--- a/buying/doctype/supplier/supplier.py
+++ b/buying/doctype/supplier/supplier.py
@@ -62,11 +62,6 @@
 		if not self.doc.naming_series:
 			self.doc.naming_series = ''
 
-		# create address
-		addr_flds = [self.doc.address_line1, self.doc.address_line2, self.doc.city, self.doc.state, self.doc.country, self.doc.pincode]
-		address_line = "\n".join(filter(lambda x : (x!='' and x!=None),addr_flds))
-		webnotes.conn.set(self.doc,'address', address_line)
-
 		# create account head
 		self.create_account_head()
 
@@ -124,7 +119,16 @@
 			if not sql("select name from tabAccount where name=%s", (self.doc.name + " - " + abbr)):
 				parent_account = self.get_parent_account(abbr)
 				
-				arg = {'account_name':self.doc.name,'parent_account': parent_account, 'group_or_ledger':'Ledger', 'company':self.doc.company,'account_type':'','tax_rate':'0','master_type':'Supplier','master_name':self.doc.name,'address':self.doc.address}
+				arg = {
+					'account_name': self.doc.name,
+					'parent_account': parent_account,
+					'group_or_ledger':'Ledger',
+					'company': self.doc.company,
+					'account_type': '',
+					'tax_rate': '0',
+					'master_type': 'Supplier',
+					'master_name': self.doc.name,
+				}
 				# create
 				ac = get_obj('GL Control').add_ac(cstr(arg))
 				msgprint("Created Account Head: "+ac)
diff --git a/buying/doctype/supplier/supplier.txt b/buying/doctype/supplier/supplier.txt
index b1ab5b4..b27c297 100644
--- a/buying/doctype/supplier/supplier.txt
+++ b/buying/doctype/supplier/supplier.txt
@@ -7,13 +7,13 @@
   "modified": "2012-12-27 14:02:18"
  }, 
  {
-  "autoname": "naming_series:", 
+  "document_type": "Master", 
   "description": "Supplier of Goods or Services.", 
+  "autoname": "naming_series:", 
   "allow_rename": 1, 
-  "search_fields": "supplier_name,supplier_type", 
   "module": "Buying", 
   "doctype": "DocType", 
-  "document_type": "Master", 
+  "search_fields": "supplier_name,supplier_type", 
   "name": "__common__"
  }, 
  {
@@ -60,11 +60,11 @@
   "doctype": "DocField", 
   "label": "Supplier Type", 
   "oldfieldname": "supplier_type", 
-  "options": "Supplier Type", 
+  "permlevel": 0, 
   "fieldname": "supplier_type", 
   "fieldtype": "Link", 
   "reqd": 1, 
-  "permlevel": 0
+  "options": "Supplier Type"
  }, 
  {
   "doctype": "DocField", 
@@ -79,10 +79,10 @@
   "doctype": "DocField", 
   "label": "Series", 
   "oldfieldname": "naming_series", 
-  "options": "\nSUPP\nSUPP/10-11/", 
+  "permlevel": 0, 
   "fieldname": "naming_series", 
   "fieldtype": "Select", 
-  "permlevel": 0
+  "options": "\nSUPP\nSUPP/10-11/"
  }, 
  {
   "oldfieldtype": "Column Break", 
@@ -96,10 +96,10 @@
   "depends_on": "eval:doc.__islocal", 
   "doctype": "DocField", 
   "label": "Address Desc", 
-  "options": "<em>Addresses will appear only when you save the supplier</em>", 
+  "permlevel": 0, 
   "fieldname": "address_desc", 
   "fieldtype": "HTML", 
-  "permlevel": 0
+  "options": "<em>Addresses will appear only when you save the supplier</em>"
  }, 
  {
   "doctype": "DocField", 
@@ -119,10 +119,10 @@
   "depends_on": "eval:doc.__islocal", 
   "doctype": "DocField", 
   "label": "Contact Desc", 
-  "options": "<em>Contact Details will appear only when you save the supplier</em>", 
+  "permlevel": 0, 
   "fieldname": "contact_desc", 
   "fieldtype": "HTML", 
-  "permlevel": 0
+  "options": "<em>Contact Details will appear only when you save the supplier</em>"
  }, 
  {
   "doctype": "DocField", 
@@ -158,23 +158,23 @@
   "doctype": "DocField", 
   "label": "Company", 
   "oldfieldname": "company", 
-  "permlevel": 0, 
+  "options": "Company", 
   "fieldname": "company", 
   "fieldtype": "Link", 
   "search_index": 0, 
   "reqd": 1, 
-  "in_filter": 1, 
-  "options": "Company"
+  "permlevel": 0, 
+  "in_filter": 1
  }, 
  {
   "description": "This currency will get fetched in Purchase transactions of this supplier", 
   "no_copy": 1, 
   "doctype": "DocField", 
   "label": "Default Currency", 
-  "options": "link:Currency", 
+  "permlevel": 0, 
   "fieldname": "default_currency", 
   "fieldtype": "Select", 
-  "permlevel": 0
+  "options": "link:Currency"
  }, 
  {
   "description": "Statutory info and other general information about your Supplier", 
@@ -225,14 +225,15 @@
   "doctype": "DocPerm", 
   "submit": 0, 
   "write": 0, 
+  "report": 1, 
   "role": "Purchase Manager", 
   "cancel": 0, 
   "permlevel": 0
  }, 
  {
-  "doctype": "DocPerm", 
   "role": "Purchase Master Manager", 
-  "permlevel": 1
+  "permlevel": 1, 
+  "doctype": "DocPerm"
  }, 
  {
   "amend": 0, 
@@ -240,6 +241,7 @@
   "doctype": "DocPerm", 
   "submit": 0, 
   "write": 1, 
+  "report": 1, 
   "role": "Purchase Master Manager", 
   "cancel": 1, 
   "permlevel": 0
diff --git a/buying/doctype/supplier_quotation/supplier_quotation.js b/buying/doctype/supplier_quotation/supplier_quotation.js
index 37bb625..87bf63c 100644
--- a/buying/doctype/supplier_quotation/supplier_quotation.js
+++ b/buying/doctype/supplier_quotation/supplier_quotation.js
@@ -23,6 +23,24 @@
 wn.require('app/accounts/doctype/purchase_taxes_and_charges_master/purchase_taxes_and_charges_master.js');
 wn.require('app/buying/doctype/purchase_common/purchase_common.js');
 
+erpnext.buying.SupplierQuotationController = erpnext.buying.BuyingController.extend({
+	refresh: function() {
+		this._super();
+		
+		cur_frm.cscript.load_taxes(this.frm.doc);
+
+		if (this.frm.doc.docstatus === 1) {
+			cur_frm.add_custom_button("Make Purchase Order", cur_frm.cscript.make_purchase_order);
+		}
+	}
+});
+
+var new_cscript = new erpnext.buying.SupplierQuotationController({frm: cur_frm});
+
+// for backward compatibility: combine new and previous states
+$.extend(cur_frm.cscript, new_cscript);
+
+
 cur_frm.cscript.onload = function(doc, dt, dn) {
 	// set missing values in parent doc
 	set_missing_values(doc, {
@@ -35,19 +53,6 @@
 	});
 }
 
-cur_frm.cscript.refresh = function(doc, dt, dn) {
-	erpnext.hide_naming_series();
-	cur_frm.cscript.dynamic_label(doc, dt, dn);
-	cur_frm.cscript.load_taxes(doc, dt, dn);
-	
-	cur_frm.cscript.toggle_contact_section(doc);
-	
-	cur_frm.clear_custom_buttons();
-	if (doc.docstatus === 1) {
-		cur_frm.add_custom_button("Make Purchase Order", cur_frm.cscript.make_purchase_order);
-	}
-}
-
 cur_frm.cscript.make_purchase_order = function() {
 	var new_po_name = wn.model.make_new_doc_and_get_name("Purchase Order");
 	$c("dt_map", {
diff --git a/buying/doctype/supplier_quotation/supplier_quotation.py b/buying/doctype/supplier_quotation/supplier_quotation.py
index 9e62e13..4f28ecf 100644
--- a/buying/doctype/supplier_quotation/supplier_quotation.py
+++ b/buying/doctype/supplier_quotation/supplier_quotation.py
@@ -17,19 +17,17 @@
 from __future__ import unicode_literals
 import webnotes
 from webnotes.model.code import get_obj
-from utilities.transaction_base import TransactionBase
+from setup.utils import get_company_currency
 
-class DocType(TransactionBase):
+from controllers.buying_controller import BuyingController
+class DocType(BuyingController):
 	def __init__(self, doc, doclist=None):
 		self.doc, self.doclist = doc, doclist or []
 		self.tname, self.fname = "Supplier Quotation Item", "quotation_items"
-
-	def autoname(self):
-		"""autoname based on naming series value"""
-		from webnotes.model.doc import make_autoname
-		self.doc.name = make_autoname(self.doc.naming_series + ".#####")
 		
 	def validate(self):
+		super(DocType, self).validate()
+		
 		if not self.doc.status:
 			self.doc.status = "Draft"
 
@@ -53,22 +51,6 @@
 	def on_trash(self):
 		pass
 		
-	def get_item_details(self, args=None):
-		if args:
-			return get_obj(dt='Purchase Common').get_item_details(self, args)
-		else:
-			obj = get_obj('Purchase Common')
-			for doc in self.doclist:
-				if doc.fields.get('item_code'):
-					temp = {
-						'item_code': doc.fields.get('item_code'),
-						'warehouse': doc.fields.get('warehouse')
-					}
-					ret = obj.get_item_details(self, json.dumps(temp))
-					for r in ret:
-						if not doc.fields.get(r):
-							doc.fields[r] = ret[r]
-
 	def get_indent_details(self):
 		if self.doc.indent_no:
 			mapper = get_obj("DocType Mapper", "Purchase Request-Supplier Quotation")
@@ -96,12 +78,11 @@
 		pc = get_obj('Purchase Common')
 		pc.validate_mandatory(self)
 		pc.validate_for_items(self)
-		pc.validate_conversion_rate(self)
 		pc.get_prevdoc_date(self)
 		pc.validate_reference_value(self)
 		
 	def set_in_words(self):
 		pc = get_obj('Purchase Common')
-		company_currency = TransactionBase().get_company_currency(self.doc.company)
+		company_currency = get_company_currency(self.doc.company)
 		self.doc.in_words = pc.get_total_in_words(company_currency, self.doc.grand_total)
 		self.doc.in_words_import = pc.get_total_in_words(self.doc.currency, self.doc.grand_total_import)
diff --git a/buying/doctype/supplier_quotation/supplier_quotation.txt b/buying/doctype/supplier_quotation/supplier_quotation.txt
index db2abfa..140d5b1 100644
--- a/buying/doctype/supplier_quotation/supplier_quotation.txt
+++ b/buying/doctype/supplier_quotation/supplier_quotation.txt
@@ -2,18 +2,19 @@
  {
   "owner": "Administrator", 
   "docstatus": 0, 
-  "creation": "2012-08-06 11:15:46", 
+  "creation": "2013-01-18 12:47:01", 
   "modified_by": "Administrator", 
-  "modified": "2012-12-10 18:30:00"
+  "modified": "2013-01-18 13:25:50"
  }, 
  {
+  "document_type": "Transaction", 
   "is_submittable": 1, 
   "allow_attach": 1, 
-  "search_fields": "status, transaction_date, supplier,grand_total", 
+  "autoname": "naming_series:", 
   "module": "Buying", 
   "doctype": "DocType", 
   "read_only_onload": 1, 
-  "document_type": "Transaction", 
+  "search_fields": "status, transaction_date, supplier,grand_total", 
   "name": "__common__"
  }, 
  {
@@ -36,44 +37,33 @@
   "doctype": "DocType"
  }, 
  {
-  "oldfieldtype": "Column Break", 
-  "doctype": "DocField", 
-  "width": "50%", 
-  "fieldname": "column_break0", 
-  "fieldtype": "Column Break", 
-  "permlevel": 0
- }, 
- {
   "print_hide": 1, 
   "description": "To manage multiple series please go to Setup > Manage Series", 
   "no_copy": 1, 
   "oldfieldtype": "Select", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Series", 
   "oldfieldname": "naming_series", 
-  "permlevel": 0, 
+  "options": "SQTN", 
   "fieldname": "naming_series", 
   "fieldtype": "Select", 
   "reqd": 1, 
-  "options": "SQTN"
+  "permlevel": 0
  }, 
  {
   "print_hide": 1, 
   "description": "Supplier (vendor) name as entered in supplier master", 
   "oldfieldtype": "Link", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Supplier", 
   "oldfieldname": "supplier", 
   "permlevel": 0, 
-  "trigger": "Client", 
   "fieldname": "supplier", 
   "fieldtype": "Link", 
   "search_index": 1, 
   "reqd": 1, 
-  "in_filter": 1, 
-  "options": "Supplier"
+  "options": "Supplier", 
+  "in_filter": 1
  }, 
  {
   "doctype": "DocField", 
@@ -118,6 +108,7 @@
  }, 
  {
   "print_hide": 0, 
+  "print_width": "50%", 
   "oldfieldtype": "Column Break", 
   "doctype": "DocField", 
   "width": "50%", 
@@ -128,21 +119,18 @@
  {
   "description": "The date at which current entry is made in system.", 
   "oldfieldtype": "Date", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Quotation Date", 
   "oldfieldname": "transaction_date", 
-  "trigger": "Client", 
   "fieldname": "transaction_date", 
   "fieldtype": "Date", 
   "search_index": 1, 
   "reqd": 1, 
-  "in_filter": 1, 
-  "permlevel": 0
+  "permlevel": 0, 
+  "in_filter": 1
  }, 
  {
   "oldfieldtype": "Section Break", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Items", 
   "fieldname": "items", 
@@ -156,62 +144,62 @@
   "doctype": "DocField", 
   "label": "Quotation Items", 
   "oldfieldname": "po_details", 
-  "options": "Supplier Quotation Item", 
+  "permlevel": 0, 
   "fieldname": "quotation_items", 
   "fieldtype": "Table", 
-  "permlevel": 0
+  "options": "Supplier Quotation Item"
  }, 
  {
   "doctype": "DocField", 
-  "options": "Simple", 
+  "permlevel": 0, 
   "fieldname": "section_break0", 
   "fieldtype": "Section Break", 
-  "permlevel": 0
- }, 
- {
-  "doctype": "DocField", 
-  "width": "50%", 
-  "fieldname": "column_break2", 
-  "fieldtype": "Column Break", 
-  "permlevel": 0
- }, 
- {
-  "print_hide": 1, 
-  "no_copy": 1, 
-  "oldfieldtype": "Currency", 
-  "doctype": "DocField", 
-  "label": "Net Total*", 
-  "oldfieldname": "net_total", 
-  "fieldname": "net_total", 
-  "fieldtype": "Currency", 
-  "reqd": 0, 
-  "permlevel": 1
- }, 
- {
-  "print_hide": 1, 
-  "no_copy": 0, 
-  "oldfieldtype": "Currency", 
-  "doctype": "DocField", 
-  "label": "Net Total (Import)", 
-  "oldfieldname": "net_total_import", 
-  "fieldname": "net_total_import", 
-  "fieldtype": "Currency", 
-  "permlevel": 1
+  "options": "Simple"
  }, 
  {
   "oldfieldtype": "Button", 
   "doctype": "DocField", 
   "label": "Re-Calculate Values", 
-  "trigger": "Client", 
   "fieldname": "recalculate_values", 
   "fieldtype": "Button", 
   "permlevel": 0
  }, 
  {
   "doctype": "DocField", 
-  "width": "50%", 
-  "fieldname": "column_break3", 
-  "fieldtype": "Column Break", 
+  "permlevel": 0, 
+  "fieldname": "section_break_14", 
+  "fieldtype": "Section Break", 
+  "options": "Simple"
+ }, 
+ {
+  "print_hide": 1, 
+  "description": "You can make a purchase order from multiple Purchase Requests. Select Purchase Requests one by one and click on the button below.", 
+  "no_copy": 1, 
+  "oldfieldtype": "Link", 
+  "doctype": "DocField", 
+  "label": "Select Purchase Request", 
+  "oldfieldname": "indent_no", 
+  "options": "Purchase Request", 
+  "fieldname": "indent_no", 
+  "fieldtype": "Link", 
+  "hidden": 0, 
+  "permlevel": 0
+ }, 
+ {
+  "oldfieldtype": "Button", 
+  "doctype": "DocField", 
+  "label": "Get Items", 
+  "permlevel": 0, 
+  "fieldname": "get_items", 
+  "fieldtype": "Button", 
+  "hidden": 0, 
+  "options": "get_indent_details"
+ }, 
+ {
+  "doctype": "DocField", 
+  "label": "Currency & Price List", 
+  "fieldname": "currency_price_list", 
+  "fieldtype": "Section Break", 
   "permlevel": 0
  }, 
  {
@@ -219,27 +207,24 @@
   "description": "Supplier's currency", 
   "no_copy": 0, 
   "oldfieldtype": "Select", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Currency", 
   "oldfieldname": "currency", 
-  "permlevel": 0, 
+  "options": "link:Currency", 
   "fieldname": "currency", 
   "fieldtype": "Select", 
   "reqd": 1, 
-  "options": "link:Currency"
+  "permlevel": 0
  }, 
  {
   "print_hide": 1, 
   "description": "Rate at which supplier's currency is converted to company's base currency", 
   "no_copy": 1, 
   "oldfieldtype": "Currency", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
-  "label": "Conversion Rate", 
+  "label": "Exchange Rate", 
   "oldfieldname": "conversion_rate", 
   "default": "1", 
-  "trigger": "Client", 
   "fieldname": "conversion_rate", 
   "fieldtype": "Currency", 
   "reqd": 1, 
@@ -247,33 +232,44 @@
   "permlevel": 0
  }, 
  {
-  "print_hide": 1, 
-  "description": "You can make a purchase order from multiple Purchase Requests. Select Purchase Requests one by one and click on the button below.", 
-  "no_copy": 1, 
-  "oldfieldtype": "Link", 
-  "colour": "White:FFF", 
+  "print_width": "50%", 
   "doctype": "DocField", 
-  "label": "Select Purchase Request", 
-  "oldfieldname": "indent_no", 
-  "permlevel": 0, 
-  "fieldname": "indent_no", 
-  "fieldtype": "Link", 
-  "hidden": 0, 
-  "options": "Purchase Request"
+  "width": "50%", 
+  "fieldname": "cb_price_list", 
+  "fieldtype": "Column Break", 
+  "permlevel": 0
  }, 
  {
-  "oldfieldtype": "Button", 
+  "print_hide": 1, 
+  "description": "Consider this Price List for fetching rate. (only which have \"For Buying\" as checked)", 
   "doctype": "DocField", 
-  "label": "Get Items", 
-  "options": "get_indent_details", 
-  "fieldname": "get_items", 
-  "fieldtype": "Button", 
-  "hidden": 0, 
+  "label": "Price List", 
+  "permlevel": 0, 
+  "fieldname": "price_list_name", 
+  "fieldtype": "Link", 
+  "options": "Price List"
+ }, 
+ {
+  "print_hide": 1, 
+  "depends_on": "price_list_name", 
+  "doctype": "DocField", 
+  "label": "Price List Currency", 
+  "permlevel": 0, 
+  "fieldname": "price_list_currency", 
+  "fieldtype": "Link", 
+  "options": "Currency"
+ }, 
+ {
+  "print_hide": 1, 
+  "depends_on": "price_list_name", 
+  "doctype": "DocField", 
+  "label": "Price List Exchange Rate", 
+  "fieldname": "plc_conversion_rate", 
+  "fieldtype": "Float", 
   "permlevel": 0
  }, 
  {
   "oldfieldtype": "Section Break", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Taxes", 
   "fieldname": "taxes", 
@@ -285,7 +281,6 @@
   "description": "If you have created a standard template in Purchase Taxes and Charges Master, select one and click on the button below.", 
   "no_copy": 1, 
   "oldfieldtype": "Link", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Purchase Taxes and Charges", 
   "oldfieldname": "purchase_other_charges", 
@@ -299,10 +294,10 @@
   "oldfieldtype": "Button", 
   "doctype": "DocField", 
   "label": "Get Tax Detail", 
-  "options": "get_purchase_tax_details", 
+  "permlevel": 0, 
   "fieldname": "get_tax_detail", 
   "fieldtype": "Button", 
-  "permlevel": 0
+  "options": "get_purchase_tax_details"
  }, 
  {
   "no_copy": 0, 
@@ -310,17 +305,16 @@
   "doctype": "DocField", 
   "label": "Purchase Taxes and Charges", 
   "oldfieldname": "purchase_tax_details", 
-  "options": "Purchase Taxes and Charges", 
+  "permlevel": 0, 
   "fieldname": "purchase_tax_details", 
   "fieldtype": "Table", 
-  "permlevel": 0
+  "options": "Purchase Taxes and Charges"
  }, 
  {
   "print_hide": 1, 
   "oldfieldtype": "Button", 
   "doctype": "DocField", 
   "label": "Calculate Tax", 
-  "trigger": "Client", 
   "fieldname": "calculate_tax", 
   "fieldtype": "Button", 
   "permlevel": 0
@@ -336,19 +330,7 @@
   "permlevel": 0
  }, 
  {
-  "print_hide": 1, 
-  "no_copy": 1, 
-  "oldfieldtype": "Currency", 
-  "doctype": "DocField", 
-  "label": "Total Tax*", 
-  "oldfieldname": "total_tax", 
-  "fieldname": "total_tax", 
-  "fieldtype": "Currency", 
-  "permlevel": 1
- }, 
- {
   "oldfieldtype": "Section Break", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Totals", 
   "fieldname": "totals", 
@@ -357,45 +339,12 @@
  }, 
  {
   "print_hide": 1, 
-  "no_copy": 1, 
-  "oldfieldtype": "Currency", 
-  "doctype": "DocField", 
-  "label": "Grand Total", 
-  "oldfieldname": "grand_total", 
-  "fieldname": "grand_total", 
-  "fieldtype": "Currency", 
-  "permlevel": 1
- }, 
- {
-  "print_hide": 1, 
-  "oldfieldtype": "Currency", 
-  "doctype": "DocField", 
-  "label": "Rounded Total", 
-  "oldfieldname": "rounded_total", 
-  "fieldname": "rounded_total", 
-  "fieldtype": "Currency", 
-  "permlevel": 1
- }, 
- {
-  "print_hide": 1, 
-  "description": "In Words will be visible once you save the Purchase Order.", 
-  "oldfieldtype": "Data", 
-  "colour": "White:FFF", 
-  "doctype": "DocField", 
-  "label": "In Words", 
-  "oldfieldname": "in_words", 
-  "fieldname": "in_words", 
-  "fieldtype": "Data", 
-  "permlevel": 1
- }, 
- {
-  "print_hide": 1, 
   "no_copy": 0, 
   "oldfieldtype": "Currency", 
   "doctype": "DocField", 
-  "label": "Taxes and Charges Added", 
-  "oldfieldname": "other_charges_added", 
-  "fieldname": "other_charges_added", 
+  "label": "Net Total (Import)", 
+  "oldfieldname": "net_total_import", 
+  "fieldname": "net_total_import", 
   "fieldtype": "Currency", 
   "permlevel": 1
  }, 
@@ -404,48 +353,6 @@
   "no_copy": 0, 
   "oldfieldtype": "Currency", 
   "doctype": "DocField", 
-  "label": "Taxes and Charges Deducted", 
-  "oldfieldname": "other_charges_deducted", 
-  "fieldname": "other_charges_deducted", 
-  "fieldtype": "Currency", 
-  "permlevel": 1
- }, 
- {
-  "print_hide": 0, 
-  "oldfieldtype": "Column Break", 
-  "doctype": "DocField", 
-  "fieldname": "column_break4", 
-  "fieldtype": "Column Break", 
-  "permlevel": 0
- }, 
- {
-  "print_hide": 1, 
-  "no_copy": 0, 
-  "oldfieldtype": "Currency", 
-  "doctype": "DocField", 
-  "label": "Grand Total (Import)", 
-  "oldfieldname": "grand_total_import", 
-  "fieldname": "grand_total_import", 
-  "fieldtype": "Currency", 
-  "permlevel": 1, 
-  "report_hide": 0
- }, 
- {
-  "print_hide": 1, 
-  "oldfieldtype": "Data", 
-  "colour": "White:FFF", 
-  "doctype": "DocField", 
-  "label": "In Words(Import)", 
-  "oldfieldname": "in_words_import", 
-  "fieldname": "in_words_import", 
-  "fieldtype": "Data", 
-  "permlevel": 1
- }, 
- {
-  "print_hide": 1, 
-  "no_copy": 0, 
-  "oldfieldtype": "Currency", 
-  "doctype": "DocField", 
   "label": "Taxes and Charges Added (Import)", 
   "oldfieldname": "other_charges_added_import", 
   "fieldname": "other_charges_added_import", 
@@ -466,6 +373,113 @@
   "report_hide": 0
  }, 
  {
+  "print_hide": 1, 
+  "no_copy": 0, 
+  "oldfieldtype": "Currency", 
+  "doctype": "DocField", 
+  "label": "Grand Total (Import)", 
+  "oldfieldname": "grand_total_import", 
+  "fieldname": "grand_total_import", 
+  "fieldtype": "Currency", 
+  "permlevel": 1, 
+  "report_hide": 0
+ }, 
+ {
+  "print_hide": 1, 
+  "oldfieldtype": "Data", 
+  "doctype": "DocField", 
+  "label": "In Words(Import)", 
+  "oldfieldname": "in_words_import", 
+  "fieldname": "in_words_import", 
+  "fieldtype": "Data", 
+  "permlevel": 1
+ }, 
+ {
+  "print_hide": 0, 
+  "oldfieldtype": "Column Break", 
+  "doctype": "DocField", 
+  "fieldname": "column_break4", 
+  "fieldtype": "Column Break", 
+  "permlevel": 0
+ }, 
+ {
+  "print_hide": 1, 
+  "no_copy": 1, 
+  "oldfieldtype": "Currency", 
+  "doctype": "DocField", 
+  "label": "Net Total*", 
+  "oldfieldname": "net_total", 
+  "fieldname": "net_total", 
+  "fieldtype": "Currency", 
+  "reqd": 0, 
+  "permlevel": 1
+ }, 
+ {
+  "print_hide": 1, 
+  "no_copy": 0, 
+  "oldfieldtype": "Currency", 
+  "doctype": "DocField", 
+  "label": "Taxes and Charges Added", 
+  "oldfieldname": "other_charges_added", 
+  "fieldname": "other_charges_added", 
+  "fieldtype": "Currency", 
+  "permlevel": 1
+ }, 
+ {
+  "print_hide": 1, 
+  "no_copy": 0, 
+  "oldfieldtype": "Currency", 
+  "doctype": "DocField", 
+  "label": "Taxes and Charges Deducted", 
+  "oldfieldname": "other_charges_deducted", 
+  "fieldname": "other_charges_deducted", 
+  "fieldtype": "Currency", 
+  "permlevel": 1
+ }, 
+ {
+  "print_hide": 1, 
+  "no_copy": 1, 
+  "oldfieldtype": "Currency", 
+  "doctype": "DocField", 
+  "label": "Total Tax*", 
+  "oldfieldname": "total_tax", 
+  "fieldname": "total_tax", 
+  "fieldtype": "Currency", 
+  "permlevel": 1
+ }, 
+ {
+  "print_hide": 1, 
+  "no_copy": 1, 
+  "oldfieldtype": "Currency", 
+  "doctype": "DocField", 
+  "label": "Grand Total", 
+  "oldfieldname": "grand_total", 
+  "fieldname": "grand_total", 
+  "fieldtype": "Currency", 
+  "permlevel": 1
+ }, 
+ {
+  "print_hide": 1, 
+  "oldfieldtype": "Currency", 
+  "doctype": "DocField", 
+  "label": "Rounded Total", 
+  "oldfieldname": "rounded_total", 
+  "fieldname": "rounded_total", 
+  "fieldtype": "Currency", 
+  "permlevel": 1
+ }, 
+ {
+  "print_hide": 1, 
+  "description": "In Words will be visible once you save the Purchase Order.", 
+  "oldfieldtype": "Data", 
+  "doctype": "DocField", 
+  "label": "In Words", 
+  "oldfieldname": "in_words", 
+  "fieldname": "in_words", 
+  "fieldtype": "Data", 
+  "permlevel": 1
+ }, 
+ {
   "oldfieldtype": "Section Break", 
   "doctype": "DocField", 
   "label": "Terms and Conditions", 
@@ -475,15 +489,15 @@
  }, 
  {
   "print_hide": 1, 
-  "allow_on_submit": 1, 
   "oldfieldtype": "Select", 
+  "allow_on_submit": 1, 
   "doctype": "DocField", 
   "label": "Letter Head", 
   "oldfieldname": "letter_head", 
-  "options": "link:Letter Head", 
+  "permlevel": 0, 
   "fieldname": "letter_head", 
   "fieldtype": "Select", 
-  "permlevel": 0
+  "options": "link:Letter Head"
  }, 
  {
   "print_hide": 1, 
@@ -491,29 +505,29 @@
   "doctype": "DocField", 
   "label": "Select Terms and Conditions", 
   "oldfieldname": "tc_name", 
-  "options": "Terms and Conditions", 
+  "permlevel": 0, 
   "fieldname": "tc_name", 
   "fieldtype": "Link", 
-  "permlevel": 0
+  "options": "Terms and Conditions"
  }, 
  {
   "oldfieldtype": "Button", 
   "doctype": "DocField", 
   "label": "Get Terms and Conditions", 
-  "options": "get_tc_details", 
+  "permlevel": 0, 
   "fieldname": "get_terms", 
   "fieldtype": "Button", 
-  "permlevel": 0
+  "options": "get_tc_details"
  }, 
  {
   "print_hide": 1, 
   "oldfieldtype": "HTML", 
   "doctype": "DocField", 
   "label": "Terms and Conditions HTML", 
-  "options": "You can add Terms and Notes that will be printed in the Transaction", 
+  "permlevel": 0, 
   "fieldname": "terms_html", 
   "fieldtype": "HTML", 
-  "permlevel": 0
+  "options": "You can add Terms and Notes that will be printed in the Transaction"
  }, 
  {
   "oldfieldtype": "Text Editor", 
@@ -535,20 +549,20 @@
   "print_hide": 1, 
   "doctype": "DocField", 
   "label": "Supplier Address", 
-  "options": "Address", 
+  "permlevel": 0, 
   "fieldname": "supplier_address", 
   "fieldtype": "Link", 
-  "permlevel": 0, 
+  "options": "Address", 
   "in_filter": 1
  }, 
  {
   "print_hide": 1, 
   "doctype": "DocField", 
   "label": "Contact Person", 
-  "options": "Contact", 
+  "permlevel": 0, 
   "fieldname": "contact_person", 
   "fieldtype": "Link", 
-  "permlevel": 0, 
+  "options": "Contact", 
   "in_filter": 1
  }, 
  {
@@ -563,7 +577,6 @@
   "print_hide": 1, 
   "no_copy": 1, 
   "oldfieldtype": "Select", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Status", 
   "oldfieldname": "status", 
@@ -580,10 +593,10 @@
   "default": "No", 
   "doctype": "DocField", 
   "label": "Is Subcontracted", 
-  "options": "\nYes\nNo", 
+  "permlevel": 0, 
   "fieldname": "is_subcontracted", 
   "fieldtype": "Select", 
-  "permlevel": 0
+  "options": "\nYes\nNo"
  }, 
  {
   "print_hide": 1, 
@@ -616,7 +629,6 @@
   "description": "Select the relevant company name if you have multiple companies", 
   "no_copy": 0, 
   "oldfieldtype": "Link", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Company", 
   "oldfieldname": "company", 
@@ -625,8 +637,8 @@
   "fieldtype": "Link", 
   "search_index": 1, 
   "reqd": 1, 
-  "in_filter": 1, 
-  "options": "Company"
+  "options": "Company", 
+  "in_filter": 1
  }, 
  {
   "print_hide": 1, 
@@ -647,19 +659,19 @@
   "print_hide": 1, 
   "no_copy": 1, 
   "oldfieldtype": "Link", 
-  "colour": "White:FFF", 
   "allow_on_submit": 1, 
   "doctype": "DocField", 
   "label": "Select Print Heading", 
   "oldfieldname": "select_print_heading", 
-  "permlevel": 0, 
+  "options": "Print Heading", 
   "fieldname": "select_print_heading", 
   "fieldtype": "Link", 
-  "options": "Print Heading", 
+  "permlevel": 0, 
   "report_hide": 1
  }, 
  {
   "print_hide": 1, 
+  "print_width": "50%", 
   "oldfieldtype": "Column Break", 
   "doctype": "DocField", 
   "width": "50%", 
@@ -671,7 +683,6 @@
   "print_hide": 1, 
   "no_copy": 1, 
   "oldfieldtype": "Data", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Cancel Reason", 
   "oldfieldname": "cancel_reason", 
@@ -697,6 +708,7 @@
   "doctype": "DocPerm", 
   "submit": 1, 
   "write": 1, 
+  "report": 1, 
   "role": "Manufacturing Manager", 
   "cancel": 1, 
   "permlevel": 0
@@ -707,6 +719,7 @@
   "doctype": "DocPerm", 
   "submit": 1, 
   "write": 1, 
+  "report": 1, 
   "role": "Purchase Manager", 
   "cancel": 1, 
   "permlevel": 0
@@ -717,6 +730,7 @@
   "doctype": "DocPerm", 
   "submit": 0, 
   "write": 1, 
+  "report": 1, 
   "role": "Purchase User", 
   "cancel": 0, 
   "permlevel": 0
@@ -727,6 +741,7 @@
   "doctype": "DocPerm", 
   "submit": 0, 
   "write": 0, 
+  "report": 1, 
   "role": "Material User", 
   "cancel": 0, 
   "permlevel": 0
@@ -737,6 +752,7 @@
   "doctype": "DocPerm", 
   "submit": 0, 
   "write": 0, 
+  "report": 1, 
   "role": "Supplier", 
   "cancel": 0, 
   "permlevel": 0
diff --git a/buying/utils.py b/buying/utils.py
new file mode 100644
index 0000000..d623020
--- /dev/null
+++ b/buying/utils.py
@@ -0,0 +1,180 @@
+# 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 getdate, flt, add_days
+import json
+
+@webnotes.whitelist()
+def get_item_details(args):
+	"""
+		args = {
+			"doctype": "",
+			"docname": "",
+			"item_code": "",
+			"warehouse": None,
+			"supplier": None,
+			"transaction_date": None,
+			"conversion_rate": 1.0
+		}
+	"""
+	if isinstance(args, basestring):
+		args = json.loads(args)
+		
+	args = webnotes._dict(args)
+	
+	item_wrapper = webnotes.model_wrapper("Item", args.item_code)
+	item = item_wrapper.doc
+	
+	from stock.utils import validate_end_of_life
+	validate_end_of_life(item.name, item.end_of_life)
+	
+	# fetch basic values
+	out = webnotes._dict()
+	out.update({
+		"item_name": item.item_name,
+		"item_group": item.item_group,
+		"brand": item.brand,
+		"description": item.description,
+		"qty": 0,
+		"stock_uom": item.stock_uom,
+		"uom": item.stock_uom,
+		"conversion_factor": 1,
+		"warehouse": args.warehouse or item.default_warehouse,
+		"item_tax_rate": json.dumps(dict(([d.tax_type, d.tax_rate] for d in 
+			item_wrapper.doclist.get({"parentfield": "ref_rate_details"})))),
+		"batch_no": None,
+		"expense_head": item.purchase_account,
+		"cost_center": item.cost_center
+	})
+	
+	if args.supplier:
+		item_supplier = item_wrapper.doclist.get({"parentfield": "item_supplier_details",
+			"supplier": args.supplier})
+		if item_supplier:
+			out["supplier_part_no"] = item_supplier[0].supplier_part_no
+	
+	if out.warehouse:
+		out.projected_qty = webnotes.conn.get_value("Bin", {"item_code": item.name, 
+			"warehouse": out.warehouse}, "projected_qty")
+	
+	if args.transaction_date and item.lead_time_days:
+		out.schedule_date = out.lead_time_date = add_days(args.transaction_date,
+			item.lead_time_days)
+			
+	# set zero
+	out.purchase_ref_rate = out.discount_rate = out.purchase_rate = \
+		out.import_ref_rate = out.import_rate = 0.0
+	
+	if args.doctype in ["Purchase Order", "Purchase Invoice", "Purchase Receipt", 
+			"Supplier Quotation"]:
+		# try fetching from price list
+		if args.price_list_name and args.price_list_currency:
+			rates_as_per_price_list = get_rates_as_per_price_list(args, item_wrapper.doclist)
+			if rates_as_per_price_list:
+				out.update(rates_as_per_price_list)
+		
+		# if not found, fetch from last purchase transaction
+		if not out.purchase_rate:
+			last_purchase = get_last_purchase_details(item.name, args.docname, args.conversion_rate)
+			if last_purchase:
+				out.update(last_purchase)
+			
+	return out
+
+def get_rates_as_per_price_list(args, item_doclist=None):
+	if not item_doclist:
+		item_doclist = webnotes.model_wrapper("Item", args.item_code).doclist
+	
+	result = item_doclist.get({"parentfield": "ref_rate_details", 
+		"price_list_name": args.price_list_name, "ref_currency": args.price_list_currency,
+		"buying": 1})
+		
+	if result:
+		purchase_ref_rate = flt(result[0].ref_rate) * flt(args.plc_conversion_rate)
+		conversion_rate = flt(args.conversion_rate) or 1.0
+		return webnotes._dict({
+			"purchase_ref_rate": purchase_ref_rate,
+			"purchase_rate": purchase_ref_rate,
+			"rate": purchase_ref_rate,
+			"discount_rate": 0,
+			"import_ref_rate": purchase_ref_rate / conversion_rate,
+			"import_rate": purchase_ref_rate / conversion_rate
+		})
+	else:
+		return webnotes._dict()
+
+def get_last_purchase_details(item_code, doc_name, conversion_rate=1.0):
+	"""returns last purchase details in stock uom"""
+	# get last purchase order item details
+	last_purchase_order = webnotes.conn.sql("""\
+		select po.name, po.transaction_date, po.conversion_rate,
+			po_item.conversion_factor, po_item.purchase_ref_rate, 
+			po_item.discount_rate, po_item.purchase_rate
+		from `tabPurchase Order` po, `tabPurchase Order Item` po_item
+		where po.docstatus = 1 and po_item.item_code = %s and po.name != %s and 
+			po.name = po_item.parent
+		order by po.transaction_date desc, po.name desc
+		limit 1""", (item_code, doc_name), as_dict=1)
+
+	# get last purchase receipt item details		
+	last_purchase_receipt = webnotes.conn.sql("""\
+		select pr.name, pr.posting_date, pr.posting_time, pr.conversion_rate,
+			pr_item.conversion_factor, pr_item.purchase_ref_rate, pr_item.discount_rate,
+			pr_item.purchase_rate
+		from `tabPurchase Receipt` pr, `tabPurchase Receipt Item` pr_item
+		where pr.docstatus = 1 and pr_item.item_code = %s and pr.name != %s and
+			pr.name = pr_item.parent
+		order by pr.posting_date desc, pr.posting_time desc, pr.name desc
+		limit 1""", (item_code, doc_name), as_dict=1)
+
+	purchase_order_date = getdate(last_purchase_order and last_purchase_order[0].transaction_date \
+		or "1900-01-01")
+	purchase_receipt_date = getdate(last_purchase_receipt and \
+		last_purchase_receipt[0].posting_date or "1900-01-01")
+
+	if (purchase_order_date > purchase_receipt_date) or \
+			(last_purchase_order and not last_purchase_receipt):
+		# use purchase order
+		last_purchase = last_purchase_order[0]
+		purchase_date = purchase_order_date
+		
+	elif (purchase_receipt_date > purchase_order_date) or \
+			(last_purchase_receipt and not last_purchase_order):
+		# use purchase receipt
+		last_purchase = last_purchase_receipt[0]
+		purchase_date = purchase_receipt_date
+		
+	else:
+		return webnotes._dict()
+	
+	conversion_factor = flt(last_purchase.conversion_factor)
+	out = webnotes._dict({
+		"purchase_ref_rate": flt(last_purchase.purchase_ref_rate) / conversion_factor,
+		"purchase_rate": flt(last_purchase.purchase_rate) / conversion_factor,
+		"discount_rate": flt(last_purchase.discount_rate),
+		"purchase_date": purchase_date
+	})
+
+	conversion_rate = flt(conversion_rate) or 1.0
+	out.update({
+		"import_ref_rate": out.purchase_ref_rate / conversion_rate,
+		"import_rate": out.purchase_rate / conversion_rate,
+		"rate": out.purchase_rate
+	})
+	
+	return out
\ No newline at end of file
diff --git a/controllers/buying_controller.py b/controllers/buying_controller.py
new file mode 100644
index 0000000..d7a2964
--- /dev/null
+++ b/controllers/buying_controller.py
@@ -0,0 +1,70 @@
+# 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 import _, msgprint
+from webnotes.utils import flt
+
+from buying.utils import get_item_details
+from setup.utils import get_company_currency
+
+from utilities.transaction_base import TransactionBase
+class BuyingController(TransactionBase):
+	def validate(self):
+		if self.meta.get_field("currency"):
+			self.company_currency = get_company_currency(self.doc.company)
+			self.validate_conversion_rate("currency", "conversion_rate")
+			
+			if self.doc.price_list_name and self.doc.price_list_currency:
+				self.validate_conversion_rate("price_list_currency", "plc_conversion_rate")
+		
+	def update_item_details(self):
+		for item in self.doclist.get({"parentfield": self.fname}):
+			ret = get_item_details({
+				"doctype": self.doc.doctype,
+				"docname": self.doc.name,
+				"item_code": item.item_code,
+				"warehouse": item.warehouse,
+				"supplier": self.doc.supplier,
+				"transaction_date": self.doc.posting_date,
+				"conversion_rate": self.doc.conversion_rate
+			})
+			for r in ret:
+				if not item.fields.get(r):
+					item.fields[r] = ret[r]
+	
+	def validate_conversion_rate(self, currency_field, conversion_rate_field):
+		"""common validation for currency and price list currency"""
+		
+		currency = self.doc.fields.get(currency_field)
+		conversion_rate = flt(self.doc.fields.get(conversion_rate_field))
+		conversion_rate_label = self.meta.get_label(conversion_rate_field)
+		
+		if conversion_rate == 0:
+			msgprint(conversion_rate_label + _(' cannot be 0'), raise_exception=True)
+		
+		# parenthesis for 'OR' are necessary as we want it to evaluate as 
+		# mandatory valid condition and (1st optional valid condition 
+		# 	or 2nd optional valid condition)
+		valid_conversion_rate = (conversion_rate and 
+			((currency == self.company_currency and conversion_rate == 1.00)
+				or (currency != self.company_currency and conversion_rate != 1.00)))
+
+		if not valid_conversion_rate:
+			msgprint(_('Please enter valid ') + conversion_rate_label + (': ') 
+				+ ("1 %s = [?] %s" % (currency, self.company_currency)),
+				raise_exception=True)
diff --git a/home/doctype/feed/feed.txt b/home/doctype/feed/feed.txt
index dc22829..4383bd7 100644
--- a/home/doctype/feed/feed.txt
+++ b/home/doctype/feed/feed.txt
@@ -9,11 +9,11 @@
  {
   "section_style": "Simple", 
   "name": "__common__", 
+  "autoname": "_FEED.#####", 
   "colour": "White:FFF", 
   "module": "Home", 
   "doctype": "DocType", 
   "version": 1, 
-  "autoname": "_FEED.#####", 
   "show_in_menu": 0
  }, 
  {
@@ -29,6 +29,7 @@
   "read": 1, 
   "name": "__common__", 
   "doctype": "DocPerm", 
+  "report": 1, 
   "parenttype": "DocType", 
   "role": "System Manager", 
   "permlevel": 0, 
diff --git a/home/page/latest_updates/latest_updates.js b/home/page/latest_updates/latest_updates.js
index e5b0547..26ffe2f 100644
--- a/home/page/latest_updates/latest_updates.js
+++ b/home/page/latest_updates/latest_updates.js
@@ -1,4 +1,10 @@
 erpnext.updates = [
+	["21st January, 2013", [
+		"Number Formatting: Added Number Format to Global Defaults & Currency",
+	]],
+	["18th January, 2013", [
+		"Buying: Added Price List to purchase cycle",
+	]],
 	["16th January, 2013", [
 		"Job Applicant: Track Job Applicants and extract them from a mailbox like 'jobs@example.com'. See <a href='#Form/Jobs Email Settings'>Jobs Email Settings</a>.",
 		"Extract leads: Extract Leads from a mailbox like 'sales@example.com'. See <a href='#Form/Sales Email Settings'>Sales Email Settings</a>.",
diff --git a/hr/doctype/appraisal/appraisal.txt b/hr/doctype/appraisal/appraisal.txt
index 8005a2c..b0b201e 100644
--- a/hr/doctype/appraisal/appraisal.txt
+++ b/hr/doctype/appraisal/appraisal.txt
@@ -11,12 +11,12 @@
   "is_submittable": 1, 
   "search_fields": "status, employee, employee_name", 
   "module": "HR", 
-  "doctype": "DocType", 
   "server_code_error": " ", 
   "autoname": "APRSL.#####", 
+  "_last_update": "1316075905", 
   "name": "__common__", 
   "colour": "White:FFF", 
-  "_last_update": "1316075905", 
+  "doctype": "DocType", 
   "show_in_menu": 0, 
   "version": 1
  }, 
@@ -54,11 +54,11 @@
   "doctype": "DocField", 
   "label": "Appraisal Template", 
   "oldfieldname": "kra_template", 
-  "options": "Appraisal Template", 
+  "permlevel": 0, 
   "fieldname": "kra_template", 
   "fieldtype": "Link", 
   "reqd": 1, 
-  "permlevel": 0
+  "options": "Appraisal Template"
  }, 
  {
   "doctype": "DocField", 
@@ -99,17 +99,17 @@
  }, 
  {
   "permlevel": 1, 
-  "depends_on": "kra_template", 
+  "doctype": "DocField", 
   "no_copy": 1, 
   "search_index": 1, 
   "colour": "White:FFF", 
-  "doctype": "DocField", 
+  "oldfieldtype": "Select", 
   "label": "Status", 
   "oldfieldname": "status", 
   "default": "Draft", 
   "fieldname": "status", 
   "fieldtype": "Select", 
-  "oldfieldtype": "Select", 
+  "depends_on": "kra_template", 
   "reqd": 1, 
   "options": "\nDraft\nSubmitted\nCompleted\nCancelled", 
   "in_filter": 1
@@ -142,11 +142,11 @@
   "oldfieldtype": "Section Break", 
   "doctype": "DocField", 
   "label": "Goals", 
-  "permlevel": 0, 
+  "options": "Simple", 
   "fieldname": "section_break0", 
   "fieldtype": "Section Break", 
   "depends_on": "kra_template", 
-  "options": "Simple"
+  "permlevel": 0
  }, 
  {
   "oldfieldtype": "Table", 
@@ -155,20 +155,20 @@
   "doctype": "DocField", 
   "label": "Appraisal Goals", 
   "oldfieldname": "appraisal_details", 
-  "permlevel": 0, 
+  "options": "Appraisal Goal", 
   "fieldname": "appraisal_details", 
   "fieldtype": "Table", 
-  "options": "Appraisal Goal"
+  "permlevel": 0
  }, 
  {
   "oldfieldtype": "Button", 
   "allow_on_submit": 0, 
   "doctype": "DocField", 
   "label": "Calculate Total Score", 
-  "permlevel": 0, 
+  "options": "calculate_total", 
   "fieldname": "calculate_total_score", 
   "fieldtype": "Button", 
-  "options": "calculate_total"
+  "permlevel": 0
  }, 
  {
   "no_copy": 1, 
@@ -209,11 +209,11 @@
   "doctype": "DocField", 
   "label": "Company", 
   "oldfieldname": "company", 
-  "permlevel": 0, 
+  "options": "link:Company", 
   "fieldname": "company", 
   "fieldtype": "Select", 
   "reqd": 1, 
-  "options": "link:Company", 
+  "permlevel": 0, 
   "in_filter": 1
  }, 
  {
@@ -221,11 +221,11 @@
   "doctype": "DocField", 
   "label": "Fiscal Year", 
   "oldfieldname": "fiscal_year", 
-  "permlevel": 0, 
+  "options": "link:Fiscal Year", 
   "fieldname": "fiscal_year", 
   "fieldtype": "Select", 
   "reqd": 1, 
-  "options": "link:Fiscal Year", 
+  "permlevel": 0, 
   "in_filter": 1
  }, 
  {
@@ -262,6 +262,7 @@
   "submit": 0, 
   "write": 1, 
   "role": "Employee", 
+  "report": 1, 
   "permlevel": 0, 
   "match": "owner"
  }, 
@@ -271,6 +272,7 @@
   "doctype": "DocPerm", 
   "submit": 1, 
   "write": 1, 
+  "report": 1, 
   "role": "System Manager", 
   "cancel": 1, 
   "permlevel": 0
@@ -281,6 +283,7 @@
   "doctype": "DocPerm", 
   "submit": 1, 
   "write": 1, 
+  "report": 1, 
   "role": "HR User", 
   "cancel": 1, 
   "permlevel": 0
diff --git a/hr/doctype/appraisal_template/appraisal_template.txt b/hr/doctype/appraisal_template/appraisal_template.txt
index 2a66bd3..c208ea6 100644
--- a/hr/doctype/appraisal_template/appraisal_template.txt
+++ b/hr/doctype/appraisal_template/appraisal_template.txt
@@ -7,10 +7,10 @@
   "modified": "2013-01-07 17:16:25"
  }, 
  {
-  "autoname": "field:kra_title", 
   "name": "__common__", 
-  "doctype": "DocType", 
+  "autoname": "field:kra_title", 
   "module": "HR", 
+  "doctype": "DocType", 
   "document_type": "Master"
  }, 
  {
@@ -24,6 +24,7 @@
  {
   "parent": "Appraisal Template", 
   "read": 1, 
+  "report": 1, 
   "name": "__common__", 
   "create": 1, 
   "doctype": "DocPerm", 
@@ -67,9 +68,9 @@
  }, 
  {
   "doctype": "DocField", 
-  "label": "Total Points", 
   "fieldname": "total_points", 
-  "fieldtype": "Int"
+  "fieldtype": "Int", 
+  "label": "Total Points"
  }, 
  {
   "doctype": "DocPerm"
diff --git a/hr/doctype/attendance/attendance.txt b/hr/doctype/attendance/attendance.txt
index bd8b2a3..11dfd09 100644
--- a/hr/doctype/attendance/attendance.txt
+++ b/hr/doctype/attendance/attendance.txt
@@ -7,13 +7,13 @@
   "modified": "2012-12-23 09:42:45"
  }, 
  {
+  "document_type": "Master", 
   "is_submittable": 1, 
-  "autoname": "naming_series:", 
   "name": "__common__", 
-  "search_fields": "employee, employee_name, att_date, status", 
+  "autoname": "naming_series:", 
   "module": "HR", 
   "doctype": "DocType", 
-  "document_type": "Master"
+  "search_fields": "employee, employee_name, att_date, status"
  }, 
  {
   "name": "__common__", 
@@ -31,8 +31,9 @@
   "doctype": "DocPerm", 
   "write": 1, 
   "parenttype": "DocType", 
-  "cancel": 1, 
+  "report": 1, 
   "permlevel": 0, 
+  "cancel": 1, 
   "parentfield": "permissions"
  }, 
  {
@@ -43,10 +44,10 @@
   "oldfieldtype": "Section Break", 
   "doctype": "DocField", 
   "label": "Attendance Details", 
-  "options": "Simple", 
+  "permlevel": 0, 
   "fieldname": "attendance_details", 
   "fieldtype": "Section Break", 
-  "permlevel": 0
+  "options": "Simple"
  }, 
  {
   "no_copy": 1, 
@@ -54,23 +55,23 @@
   "doctype": "DocField", 
   "label": "Naming Series", 
   "oldfieldname": "naming_series", 
-  "options": "ATT", 
+  "permlevel": 0, 
   "fieldname": "naming_series", 
   "fieldtype": "Select", 
   "reqd": 1, 
-  "permlevel": 0
+  "options": "ATT"
  }, 
  {
   "oldfieldtype": "Link", 
   "doctype": "DocField", 
   "label": "Employee", 
   "oldfieldname": "employee", 
-  "options": "Employee", 
+  "permlevel": 0, 
   "fieldname": "employee", 
   "fieldtype": "Link", 
   "search_index": 1, 
   "reqd": 1, 
-  "permlevel": 0, 
+  "options": "Employee", 
   "in_filter": 1
  }, 
  {
@@ -88,12 +89,12 @@
   "doctype": "DocField", 
   "label": "Status", 
   "oldfieldname": "status", 
-  "permlevel": 0, 
+  "options": "\nPresent\nAbsent\nHalf Day", 
   "fieldname": "status", 
   "fieldtype": "Select", 
   "search_index": 1, 
   "reqd": 1, 
-  "options": "\nPresent\nAbsent\nHalf Day", 
+  "permlevel": 0, 
   "in_filter": 1
  }, 
  {
@@ -102,11 +103,11 @@
   "doctype": "DocField", 
   "label": "Leave Type", 
   "oldfieldname": "leave_type", 
-  "options": "Leave Type", 
+  "permlevel": 0, 
   "fieldname": "leave_type", 
   "fieldtype": "Link", 
   "hidden": 1, 
-  "permlevel": 0, 
+  "options": "Leave Type", 
   "report_hide": 1
  }, 
  {
@@ -134,11 +135,11 @@
   "doctype": "DocField", 
   "label": "Fiscal Year", 
   "oldfieldname": "fiscal_year", 
-  "options": "link:Fiscal Year", 
+  "permlevel": 0, 
   "fieldname": "fiscal_year", 
   "fieldtype": "Select", 
   "reqd": 1, 
-  "permlevel": 0, 
+  "options": "link:Fiscal Year", 
   "in_filter": 1
  }, 
  {
@@ -146,11 +147,11 @@
   "doctype": "DocField", 
   "label": "Company", 
   "oldfieldname": "company", 
-  "options": "link:Company", 
+  "permlevel": 0, 
   "fieldname": "company", 
   "fieldtype": "Select", 
   "reqd": 1, 
-  "permlevel": 0, 
+  "options": "link:Company", 
   "in_filter": 1
  }, 
  {
@@ -169,10 +170,10 @@
   "no_copy": 1, 
   "doctype": "DocField", 
   "label": "Amended From", 
-  "options": "Attendance", 
+  "permlevel": 1, 
   "fieldname": "amended_from", 
   "fieldtype": "Link", 
-  "permlevel": 1
+  "options": "Attendance"
  }, 
  {
   "role": "System Manager", 
diff --git a/hr/doctype/branch/branch.txt b/hr/doctype/branch/branch.txt
index d49e5bb..4683b04 100644
--- a/hr/doctype/branch/branch.txt
+++ b/hr/doctype/branch/branch.txt
@@ -9,13 +9,13 @@
  {
   "section_style": "Simple", 
   "module": "HR", 
-  "server_code_error": " ", 
-  "allow_trash": 1, 
   "doctype": "DocType", 
-  "autoname": "field:branch", 
+  "allow_trash": 1, 
   "document_type": "Master", 
+  "autoname": "field:branch", 
   "name": "__common__", 
   "colour": "White:FFF", 
+  "server_code_error": " ", 
   "show_in_menu": 0, 
   "version": 11
  }, 
@@ -27,14 +27,15 @@
   "parentfield": "fields"
  }, 
  {
+  "report": 1, 
   "name": "__common__", 
   "parent": "Branch", 
   "read": 1, 
   "create": 1, 
   "doctype": "DocPerm", 
   "write": 1, 
-  "parenttype": "DocType", 
   "cancel": 1, 
+  "parenttype": "DocType", 
   "permlevel": 0, 
   "parentfield": "permissions"
  }, 
diff --git a/hr/doctype/deduction_type/deduction_type.txt b/hr/doctype/deduction_type/deduction_type.txt
index 43a8d62..d7c9f7f 100644
--- a/hr/doctype/deduction_type/deduction_type.txt
+++ b/hr/doctype/deduction_type/deduction_type.txt
@@ -9,13 +9,13 @@
  {
   "section_style": "Simple", 
   "module": "HR", 
-  "server_code_error": " ", 
-  "allow_trash": 1, 
   "doctype": "DocType", 
-  "autoname": "field:deduction_name", 
+  "allow_trash": 1, 
   "document_type": "Master", 
+  "autoname": "field:deduction_name", 
   "name": "__common__", 
   "colour": "White:FFF", 
+  "server_code_error": " ", 
   "show_in_menu": 0, 
   "version": 10
  }, 
@@ -27,14 +27,15 @@
   "parentfield": "fields"
  }, 
  {
+  "report": 1, 
   "name": "__common__", 
   "parent": "Deduction Type", 
   "read": 1, 
   "create": 1, 
   "doctype": "DocPerm", 
   "write": 1, 
-  "parenttype": "DocType", 
   "cancel": 1, 
+  "parenttype": "DocType", 
   "permlevel": 0, 
   "parentfield": "permissions"
  }, 
diff --git a/hr/doctype/department/department.txt b/hr/doctype/department/department.txt
index 981efd9..192d0d7 100644
--- a/hr/doctype/department/department.txt
+++ b/hr/doctype/department/department.txt
@@ -9,13 +9,13 @@
  {
   "section_style": "Simple", 
   "module": "HR", 
-  "server_code_error": " ", 
-  "allow_trash": 1, 
   "doctype": "DocType", 
-  "autoname": "field:department_name", 
+  "allow_trash": 1, 
   "document_type": "Master", 
+  "autoname": "field:department_name", 
   "name": "__common__", 
   "colour": "White:FFF", 
+  "server_code_error": " ", 
   "show_in_menu": 0, 
   "version": 7
  }, 
@@ -27,14 +27,15 @@
   "parentfield": "fields"
  }, 
  {
+  "report": 1, 
   "name": "__common__", 
   "parent": "Department", 
   "read": 1, 
   "create": 1, 
   "doctype": "DocPerm", 
   "write": 1, 
-  "parenttype": "DocType", 
   "cancel": 1, 
+  "parenttype": "DocType", 
   "permlevel": 0, 
   "parentfield": "permissions"
  }, 
diff --git a/hr/doctype/designation/designation.txt b/hr/doctype/designation/designation.txt
index 3a3de37..314dc19 100644
--- a/hr/doctype/designation/designation.txt
+++ b/hr/doctype/designation/designation.txt
@@ -9,13 +9,13 @@
  {
   "section_style": "Simple", 
   "module": "HR", 
-  "server_code_error": " ", 
-  "allow_trash": 1, 
   "doctype": "DocType", 
-  "autoname": "field:designation_name", 
+  "allow_trash": 1, 
   "document_type": "Master", 
+  "autoname": "field:designation_name", 
   "name": "__common__", 
   "colour": "White:FFF", 
+  "server_code_error": " ", 
   "show_in_menu": 0, 
   "version": 7
  }, 
@@ -27,14 +27,15 @@
   "parentfield": "fields"
  }, 
  {
+  "report": 1, 
   "name": "__common__", 
   "parent": "Designation", 
   "read": 1, 
   "create": 1, 
   "doctype": "DocPerm", 
   "write": 1, 
-  "parenttype": "DocType", 
   "cancel": 1, 
+  "parenttype": "DocType", 
   "permlevel": 0, 
   "parentfield": "permissions"
  }, 
diff --git a/hr/doctype/earning_type/earning_type.txt b/hr/doctype/earning_type/earning_type.txt
index fa89b68..77039b1 100644
--- a/hr/doctype/earning_type/earning_type.txt
+++ b/hr/doctype/earning_type/earning_type.txt
@@ -9,13 +9,13 @@
  {
   "section_style": "Simple", 
   "module": "HR", 
-  "server_code_error": " ", 
-  "allow_trash": 1, 
   "doctype": "DocType", 
-  "autoname": "field:earning_name", 
+  "allow_trash": 1, 
   "document_type": "Master", 
+  "autoname": "field:earning_name", 
   "name": "__common__", 
   "colour": "White:FFF", 
+  "server_code_error": " ", 
   "show_in_menu": 0, 
   "version": 13
  }, 
@@ -27,14 +27,15 @@
   "parentfield": "fields"
  }, 
  {
+  "report": 1, 
   "name": "__common__", 
   "parent": "Earning Type", 
   "read": 1, 
   "create": 1, 
   "doctype": "DocPerm", 
   "write": 1, 
-  "parenttype": "DocType", 
   "cancel": 1, 
+  "parenttype": "DocType", 
   "permlevel": 0, 
   "parentfield": "permissions"
  }, 
@@ -90,12 +91,12 @@
   "doctype": "DocField", 
   "label": "Taxable", 
   "oldfieldname": "taxable", 
+  "permlevel": 0, 
   "trigger": "Client", 
   "fieldname": "taxable", 
   "fieldtype": "Select", 
   "reqd": 1, 
-  "options": "\nYes\nNo", 
-  "permlevel": 0
+  "options": "\nYes\nNo"
  }, 
  {
   "oldfieldtype": "Currency", 
diff --git a/hr/doctype/employee/employee.txt b/hr/doctype/employee/employee.txt
index 6e3e828..b03ae25 100644
--- a/hr/doctype/employee/employee.txt
+++ b/hr/doctype/employee/employee.txt
@@ -7,12 +7,12 @@
   "modified": "2013-01-09 14:46:42"
  }, 
  {
-  "autoname": "naming_series:", 
+  "document_type": "Master", 
   "allow_attach": 1, 
-  "search_fields": "employee_name", 
+  "autoname": "naming_series:", 
   "module": "HR", 
   "doctype": "DocType", 
-  "document_type": "Master", 
+  "search_fields": "employee_name", 
   "name": "__common__"
  }, 
  {
@@ -53,10 +53,10 @@
  }, 
  {
   "doctype": "DocField", 
-  "label": "Image View", 
   "options": "image", 
   "fieldname": "image_view", 
   "fieldtype": "Image", 
+  "label": "Image View", 
   "permlevel": 0
  }, 
  {
@@ -77,22 +77,22 @@
   "doctype": "DocField", 
   "label": "Naming Series", 
   "oldfieldname": "naming_series", 
-  "options": "EMP/", 
+  "permlevel": 0, 
   "fieldname": "naming_series", 
   "fieldtype": "Select", 
   "reqd": 0, 
-  "permlevel": 0
+  "options": "EMP/"
  }, 
  {
   "oldfieldtype": "Select", 
   "doctype": "DocField", 
   "label": "Salutation", 
   "oldfieldname": "salutation", 
-  "options": "\nMr\nMs", 
+  "permlevel": 0, 
   "fieldname": "salutation", 
   "fieldtype": "Select", 
   "search_index": 0, 
-  "permlevel": 0
+  "options": "\nMr\nMs"
  }, 
  {
   "oldfieldtype": "Data", 
@@ -106,10 +106,10 @@
  }, 
  {
   "doctype": "DocField", 
-  "label": "Image", 
   "options": "attach_files:", 
   "fieldname": "image", 
   "fieldtype": "Select", 
+  "label": "Image", 
   "permlevel": 0
  }, 
  {
@@ -123,10 +123,10 @@
   "description": "System User (login) ID. If set, it will become default for all HR forms.", 
   "doctype": "DocField", 
   "label": "User ID", 
-  "options": "Profile", 
+  "permlevel": 0, 
   "fieldname": "user_id", 
   "fieldtype": "Link", 
-  "permlevel": 0
+  "options": "Profile"
  }, 
  {
   "oldfieldtype": "Data", 
@@ -167,23 +167,23 @@
   "doctype": "DocField", 
   "label": "Gender", 
   "oldfieldname": "gender", 
-  "options": "\nMale\nFemale", 
+  "permlevel": 0, 
   "fieldname": "gender", 
   "fieldtype": "Select", 
   "search_index": 0, 
   "reqd": 1, 
-  "permlevel": 0, 
+  "options": "\nMale\nFemale", 
   "in_filter": 1
  }, 
  {
   "print_hide": 1, 
   "doctype": "DocField", 
   "label": "Company", 
-  "options": "link:Company", 
+  "permlevel": 0, 
   "fieldname": "company", 
   "fieldtype": "Select", 
   "reqd": 1, 
-  "permlevel": 0, 
+  "options": "link:Company", 
   "in_filter": 1
  }, 
  {
@@ -205,12 +205,12 @@
   "doctype": "DocField", 
   "label": "Status", 
   "oldfieldname": "status", 
-  "permlevel": 0, 
+  "options": "\nActive\nLeft", 
   "fieldname": "status", 
   "fieldtype": "Select", 
   "search_index": 1, 
   "reqd": 1, 
-  "options": "\nActive\nLeft", 
+  "permlevel": 0, 
   "in_filter": 1
  }, 
  {
@@ -218,11 +218,11 @@
   "doctype": "DocField", 
   "label": "Employment Type", 
   "oldfieldname": "employment_type", 
-  "options": "Employment Type", 
+  "permlevel": 0, 
   "fieldname": "employment_type", 
   "fieldtype": "Link", 
   "search_index": 0, 
-  "permlevel": 0, 
+  "options": "Employment Type", 
   "in_filter": 1
  }, 
  {
@@ -231,10 +231,10 @@
   "doctype": "DocField", 
   "label": "Holiday List", 
   "oldfieldname": "holiday_list", 
-  "options": "Holiday List", 
+  "permlevel": 0, 
   "fieldname": "holiday_list", 
   "fieldtype": "Link", 
-  "permlevel": 0
+  "options": "Holiday List"
  }, 
  {
   "doctype": "DocField", 
@@ -302,11 +302,11 @@
   "doctype": "DocField", 
   "label": "Branch", 
   "oldfieldname": "branch", 
-  "options": "Branch", 
+  "permlevel": 0, 
   "fieldname": "branch", 
   "fieldtype": "Link", 
   "reqd": 0, 
-  "permlevel": 0, 
+  "options": "Branch", 
   "in_filter": 1
  }, 
  {
@@ -314,11 +314,11 @@
   "doctype": "DocField", 
   "label": "Department", 
   "oldfieldname": "department", 
-  "options": "Department", 
+  "permlevel": 0, 
   "fieldname": "department", 
   "fieldtype": "Link", 
   "reqd": 0, 
-  "permlevel": 0, 
+  "options": "Department", 
   "in_filter": 1
  }, 
  {
@@ -326,12 +326,12 @@
   "doctype": "DocField", 
   "label": "Designation", 
   "oldfieldname": "designation", 
-  "options": "Designation", 
+  "permlevel": 0, 
   "fieldname": "designation", 
   "fieldtype": "Link", 
   "search_index": 1, 
   "reqd": 0, 
-  "permlevel": 0, 
+  "options": "Designation", 
   "in_filter": 1
  }, 
  {
@@ -339,11 +339,11 @@
   "doctype": "DocField", 
   "label": "Grade", 
   "oldfieldname": "grade", 
-  "options": "Grade", 
+  "permlevel": 0, 
   "fieldname": "grade", 
   "fieldtype": "Link", 
   "reqd": 0, 
-  "permlevel": 0, 
+  "options": "Grade", 
   "in_filter": 1
  }, 
  {
@@ -351,10 +351,10 @@
   "doctype": "DocField", 
   "label": "Reports to", 
   "oldfieldname": "reports_to", 
-  "options": "Employee", 
+  "permlevel": 0, 
   "fieldname": "reports_to", 
   "fieldtype": "Link", 
-  "permlevel": 0
+  "options": "Employee"
  }, 
  {
   "description": "Provide email id registered in company", 
@@ -382,22 +382,22 @@
   "doctype": "DocField", 
   "label": "Salary Mode", 
   "oldfieldname": "salary_mode", 
-  "options": "\nBank\nCash\nCheque", 
+  "permlevel": 0, 
   "fieldname": "salary_mode", 
   "fieldtype": "Select", 
-  "permlevel": 0
+  "options": "\nBank\nCash\nCheque"
  }, 
  {
   "oldfieldtype": "Link", 
   "doctype": "DocField", 
   "label": "Bank Name", 
   "oldfieldname": "bank_name", 
-  "options": "Suggest", 
+  "permlevel": 0, 
   "fieldname": "bank_name", 
   "fieldtype": "Data", 
   "depends_on": "eval:doc.salary_mode == 'Bank'", 
   "hidden": 0, 
-  "permlevel": 0, 
+  "options": "Suggest", 
   "in_filter": 1
  }, 
  {
@@ -477,10 +477,10 @@
  }, 
  {
   "doctype": "DocField", 
-  "label": "Emergency Contact Details", 
   "options": "<b>Emergency Contact Details</b>", 
   "fieldname": "emergency_contact_details", 
   "fieldtype": "HTML", 
+  "label": "Emergency Contact Details", 
   "permlevel": 0
  }, 
  {
@@ -513,10 +513,10 @@
  }, 
  {
   "doctype": "DocField", 
-  "label": "Permanent Accommodation Type", 
   "options": "\nRented\nOwned", 
   "fieldname": "permanent_accommodation_type", 
   "fieldtype": "Select", 
+  "label": "Permanent Accommodation Type", 
   "permlevel": 0
  }, 
  {
@@ -528,10 +528,10 @@
  }, 
  {
   "doctype": "DocField", 
-  "label": "Current Accommodation Type", 
   "options": "\nRented\nOwned", 
   "fieldname": "current_accommodation_type", 
   "fieldtype": "Select", 
+  "label": "Current Accommodation Type", 
   "permlevel": 0
  }, 
  {
@@ -616,18 +616,18 @@
  }, 
  {
   "doctype": "DocField", 
-  "label": "Marital Status", 
   "options": "\nSingle\nMarried\nDivorced\nWidowed", 
   "fieldname": "marital_status", 
   "fieldtype": "Select", 
+  "label": "Marital Status", 
   "permlevel": 0
  }, 
  {
   "doctype": "DocField", 
-  "label": "Blood Group", 
   "options": "\nA+\nA-\nB+\nB-\nAB+\nAB-\nO+\nO-", 
   "fieldname": "blood_group", 
   "fieldtype": "Select", 
+  "label": "Blood Group", 
   "permlevel": 0
  }, 
  {
@@ -662,10 +662,10 @@
  }, 
  {
   "doctype": "DocField", 
-  "label": "Educational Qualification Details", 
   "options": "Employee Education", 
   "fieldname": "educational_qualification_details", 
   "fieldtype": "Table", 
+  "label": "Educational Qualification Details", 
   "permlevel": 0
  }, 
  {
@@ -677,34 +677,34 @@
  }, 
  {
   "doctype": "DocField", 
-  "label": "Previous Work Experience", 
   "options": "Simple", 
   "fieldname": "previous_work_experience", 
   "fieldtype": "Section Break", 
+  "label": "Previous Work Experience", 
   "permlevel": 0
  }, 
  {
   "doctype": "DocField", 
-  "label": "Employee External Work History", 
   "options": "Employee External Work History", 
   "fieldname": "previous_experience_details", 
   "fieldtype": "Table", 
+  "label": "Employee External Work History", 
   "permlevel": 0
  }, 
  {
   "doctype": "DocField", 
-  "label": "History In Company", 
   "options": "Simple", 
   "fieldname": "history_in_company", 
   "fieldtype": "Section Break", 
+  "label": "History In Company", 
   "permlevel": 0
  }, 
  {
   "doctype": "DocField", 
-  "label": "Employee Internal Work Historys", 
   "options": "Employee Internal Work History", 
   "fieldname": "experience_in_company_details", 
   "fieldtype": "Table", 
+  "label": "Employee Internal Work Historys", 
   "permlevel": 0
  }, 
  {
@@ -755,10 +755,10 @@
   "doctype": "DocField", 
   "label": "Leave Encashed?", 
   "oldfieldname": "leave_encashed", 
-  "options": "\nYes\nNo", 
+  "permlevel": 0, 
   "fieldname": "leave_encashed", 
   "fieldtype": "Select", 
-  "permlevel": 0
+  "options": "\nYes\nNo"
  }, 
  {
   "oldfieldtype": "Date", 
@@ -793,10 +793,10 @@
   "doctype": "DocField", 
   "label": "Reason for Resignation", 
   "oldfieldname": "reason_for_resignation", 
-  "options": "\nBetter Prospects\nHealth Concerns", 
+  "permlevel": 0, 
   "fieldname": "reason_for_resignation", 
   "fieldtype": "Select", 
-  "permlevel": 0
+  "options": "\nBetter Prospects\nHealth Concerns"
  }, 
  {
   "oldfieldtype": "Data", 
@@ -838,8 +838,9 @@
   "create": 0, 
   "doctype": "DocPerm", 
   "write": 0, 
-  "role": "Employee", 
   "cancel": 0, 
+  "role": "Employee", 
+  "report": 1, 
   "permlevel": 0, 
   "match": "employee"
  }, 
@@ -855,8 +856,9 @@
   "create": 1, 
   "doctype": "DocPerm", 
   "write": 1, 
-  "role": "HR User", 
   "cancel": 1, 
+  "role": "HR User", 
+  "report": 1, 
   "permlevel": 0, 
   "match": "company"
  }, 
@@ -864,6 +866,7 @@
   "create": 1, 
   "doctype": "DocPerm", 
   "write": 1, 
+  "report": 1, 
   "role": "HR Manager", 
   "cancel": 1, 
   "permlevel": 0
diff --git a/hr/doctype/employment_type/employment_type.txt b/hr/doctype/employment_type/employment_type.txt
index 137ca06..0fc5a0f 100644
--- a/hr/doctype/employment_type/employment_type.txt
+++ b/hr/doctype/employment_type/employment_type.txt
@@ -9,13 +9,13 @@
  {
   "section_style": "Simple", 
   "module": "HR", 
-  "server_code_error": " ", 
-  "allow_trash": 1, 
   "doctype": "DocType", 
-  "autoname": "field:employee_type_name", 
+  "allow_trash": 1, 
   "document_type": "Master", 
+  "autoname": "field:employee_type_name", 
   "name": "__common__", 
   "colour": "White:FFF", 
+  "server_code_error": " ", 
   "show_in_menu": 0, 
   "version": 16
  }, 
@@ -27,14 +27,15 @@
   "parentfield": "fields"
  }, 
  {
+  "report": 1, 
   "name": "__common__", 
   "parent": "Employment Type", 
   "read": 1, 
   "create": 1, 
   "doctype": "DocPerm", 
   "write": 1, 
-  "parenttype": "DocType", 
   "cancel": 1, 
+  "parenttype": "DocType", 
   "permlevel": 0, 
   "parentfield": "permissions"
  }, 
diff --git a/hr/doctype/expense_claim/expense_claim.txt b/hr/doctype/expense_claim/expense_claim.txt
index a5a0860..569ea41 100644
--- a/hr/doctype/expense_claim/expense_claim.txt
+++ b/hr/doctype/expense_claim/expense_claim.txt
@@ -8,11 +8,11 @@
  }, 
  {
   "is_submittable": 1, 
-  "autoname": "EXP.######", 
   "name": "__common__", 
-  "search_fields": "approval_status,employee,employee_name", 
+  "autoname": "EXP.######", 
   "module": "HR", 
-  "doctype": "DocType"
+  "doctype": "DocType", 
+  "search_fields": "approval_status,employee,employee_name"
  }, 
  {
   "name": "__common__", 
@@ -67,7 +67,6 @@
   "permlevel": 0
  }, 
  {
-  "reqd": 0, 
   "no_copy": 1, 
   "oldfieldtype": "Currency", 
   "colour": "White:FFF", 
@@ -77,6 +76,7 @@
   "width": "160px", 
   "fieldname": "total_claimed_amount", 
   "fieldtype": "Currency", 
+  "reqd": 0, 
   "permlevel": 1, 
   "in_filter": 0
  }, 
@@ -107,30 +107,30 @@
   "doctype": "DocField", 
   "label": "Expense Claim Details", 
   "oldfieldname": "expense_voucher_details", 
-  "options": "Expense Claim Detail", 
+  "permlevel": 0, 
   "fieldname": "expense_voucher_details", 
   "fieldtype": "Table", 
-  "permlevel": 0
+  "options": "Expense Claim Detail"
  }, 
  {
   "doctype": "DocField", 
-  "options": "Simple", 
+  "permlevel": 0, 
   "fieldname": "sb1", 
   "fieldtype": "Section Break", 
-  "permlevel": 0
+  "options": "Simple"
  }, 
  {
-  "permlevel": 0, 
   "oldfieldtype": "Link", 
   "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "From Employee", 
   "oldfieldname": "employee", 
-  "reqd": 1, 
+  "permlevel": 0, 
   "trigger": "Client", 
   "fieldname": "employee", 
   "fieldtype": "Link", 
   "search_index": 1, 
+  "reqd": 1, 
   "options": "Employee", 
   "in_filter": 1
  }, 
@@ -151,11 +151,11 @@
   "doctype": "DocField", 
   "label": "Fiscal Year", 
   "oldfieldname": "fiscal_year", 
-  "options": "link:Fiscal Year", 
+  "permlevel": 0, 
   "fieldname": "fiscal_year", 
   "fieldtype": "Select", 
   "reqd": 1, 
-  "permlevel": 0, 
+  "options": "link:Fiscal Year", 
   "in_filter": 1
  }, 
  {
@@ -163,11 +163,11 @@
   "doctype": "DocField", 
   "label": "Company", 
   "oldfieldname": "company", 
-  "options": "link:Company", 
+  "permlevel": 0, 
   "fieldname": "company", 
   "fieldtype": "Select", 
   "reqd": 1, 
-  "permlevel": 0, 
+  "options": "link:Company", 
   "in_filter": 1
  }, 
  {
@@ -188,10 +188,10 @@
   "in_filter": 1
  }, 
  {
-  "allow_on_submit": 0, 
   "no_copy": 1, 
   "oldfieldtype": "Small Text", 
   "colour": "White:FFF", 
+  "allow_on_submit": 0, 
   "doctype": "DocField", 
   "label": "Remark", 
   "oldfieldname": "remark", 
@@ -243,6 +243,7 @@
   "doctype": "DocPerm", 
   "write": 1, 
   "role": "Employee", 
+  "report": 1, 
   "permlevel": 0, 
   "match": "owner"
  }, 
@@ -252,8 +253,9 @@
   "doctype": "DocPerm", 
   "submit": 1, 
   "write": 1, 
-  "role": "Expense Approver", 
   "cancel": 1, 
+  "role": "Expense Approver", 
+  "report": 1, 
   "permlevel": 0, 
   "match": "exp_approver:user"
  }, 
@@ -263,13 +265,14 @@
   "doctype": "DocPerm", 
   "submit": 1, 
   "write": 1, 
+  "report": 1, 
   "role": "HR User", 
   "cancel": 1, 
   "permlevel": 0
  }, 
  {
-  "doctype": "DocPerm", 
   "role": "All", 
-  "permlevel": 1
+  "permlevel": 1, 
+  "doctype": "DocPerm"
  }
 ]
\ No newline at end of file
diff --git a/hr/doctype/expense_claim_type/expense_claim_type.txt b/hr/doctype/expense_claim_type/expense_claim_type.txt
index 72825da..9a0236f 100644
--- a/hr/doctype/expense_claim_type/expense_claim_type.txt
+++ b/hr/doctype/expense_claim_type/expense_claim_type.txt
@@ -9,12 +9,12 @@
  {
   "section_style": "Simple", 
   "name": "__common__", 
+  "autoname": "field:expense_type", 
   "colour": "White:FFF", 
   "module": "HR", 
   "server_code_error": " ", 
   "version": 5, 
   "doctype": "DocType", 
-  "autoname": "field:expense_type", 
   "document_type": "Master"
  }, 
  {
@@ -32,6 +32,7 @@
   "create": 1, 
   "doctype": "DocPerm", 
   "write": 1, 
+  "report": 1, 
   "parenttype": "DocType", 
   "permlevel": 0, 
   "parentfield": "permissions"
diff --git a/hr/doctype/grade/grade.txt b/hr/doctype/grade/grade.txt
index df4a28b..339db8b 100644
--- a/hr/doctype/grade/grade.txt
+++ b/hr/doctype/grade/grade.txt
@@ -9,13 +9,13 @@
  {
   "section_style": "Simple", 
   "module": "HR", 
-  "server_code_error": " ", 
-  "allow_trash": 1, 
   "doctype": "DocType", 
-  "autoname": "field:grade_name", 
+  "allow_trash": 1, 
   "document_type": "Master", 
+  "autoname": "field:grade_name", 
   "name": "__common__", 
   "colour": "White:FFF", 
+  "server_code_error": " ", 
   "show_in_menu": 0, 
   "version": 7
  }, 
@@ -27,14 +27,15 @@
   "parentfield": "fields"
  }, 
  {
+  "report": 1, 
   "name": "__common__", 
   "parent": "Grade", 
   "read": 1, 
   "create": 1, 
   "doctype": "DocPerm", 
   "write": 1, 
-  "parenttype": "DocType", 
   "cancel": 1, 
+  "parenttype": "DocType", 
   "permlevel": 0, 
   "parentfield": "permissions"
  }, 
diff --git a/hr/doctype/holiday_list/holiday_list.txt b/hr/doctype/holiday_list/holiday_list.txt
index a4060fa..ef83520 100644
--- a/hr/doctype/holiday_list/holiday_list.txt
+++ b/hr/doctype/holiday_list/holiday_list.txt
@@ -9,12 +9,12 @@
  {
   "section_style": "Simple", 
   "module": "HR", 
-  "server_code_error": " ", 
-  "allow_trash": 1, 
   "doctype": "DocType", 
+  "allow_trash": 1, 
   "document_type": "Master", 
   "name": "__common__", 
   "colour": "White:FFF", 
+  "server_code_error": " ", 
   "show_in_menu": 0, 
   "version": 17
  }, 
@@ -28,10 +28,11 @@
  {
   "parent": "Holiday List", 
   "read": 1, 
-  "doctype": "DocPerm", 
+  "report": 1, 
   "cancel": 1, 
   "name": "__common__", 
   "create": 1, 
+  "doctype": "DocPerm", 
   "write": 1, 
   "parenttype": "DocType", 
   "role": "HR Manager", 
@@ -76,11 +77,11 @@
   "doctype": "DocField", 
   "label": "Fiscal Year", 
   "oldfieldname": "fiscal_year", 
-  "permlevel": 0, 
+  "options": "link:Fiscal Year", 
   "fieldname": "fiscal_year", 
   "fieldtype": "Select", 
   "reqd": 1, 
-  "options": "link:Fiscal Year", 
+  "permlevel": 0, 
   "in_filter": 1
  }, 
  {
@@ -88,10 +89,10 @@
   "no_copy": 1, 
   "doctype": "DocField", 
   "label": "Weekly Off", 
-  "permlevel": 0, 
+  "options": "\nSunday\nMonday\nTuesday\nWednesday\nThursday\nFriday\nSaturday", 
   "fieldname": "weekly_off", 
   "fieldtype": "Select", 
-  "options": "\nSunday\nMonday\nTuesday\nWednesday\nThursday\nFriday\nSaturday", 
+  "permlevel": 0, 
   "report_hide": 1
  }, 
  {
@@ -107,11 +108,11 @@
   "doctype": "DocField", 
   "label": "Holidays", 
   "oldfieldname": "holiday_list_details", 
-  "permlevel": 0, 
+  "options": "Holiday", 
   "fieldname": "holiday_list_details", 
   "fieldtype": "Table", 
   "reqd": 0, 
-  "options": "Holiday"
+  "permlevel": 0
  }, 
  {
   "doctype": "DocField", 
diff --git a/hr/doctype/leave_allocation/leave_allocation.txt b/hr/doctype/leave_allocation/leave_allocation.txt
index 3846354..ed94520 100644
--- a/hr/doctype/leave_allocation/leave_allocation.txt
+++ b/hr/doctype/leave_allocation/leave_allocation.txt
@@ -11,12 +11,12 @@
   "is_submittable": 1, 
   "search_fields": "employee,employee_name,leave_type,total_leaves_allocated,fiscal_year", 
   "module": "HR", 
-  "doctype": "DocType", 
   "server_code_error": " ", 
   "autoname": "LAL/.#####", 
+  "_last_update": "1317365120", 
   "name": "__common__", 
   "colour": "White:FFF", 
-  "_last_update": "1317365120", 
+  "doctype": "DocType", 
   "show_in_menu": 0, 
   "version": 1
  }, 
@@ -198,8 +198,9 @@
   "doctype": "DocPerm", 
   "submit": 1, 
   "write": 1, 
-  "role": "HR User", 
   "cancel": 1, 
+  "role": "HR User", 
+  "report": 1, 
   "permlevel": 0, 
   "match": "owner"
  }, 
@@ -209,6 +210,7 @@
   "doctype": "DocPerm", 
   "submit": 1, 
   "write": 1, 
+  "report": 1, 
   "role": "HR Manager", 
   "cancel": 1, 
   "permlevel": 0
diff --git a/hr/doctype/leave_application/leave_application.txt b/hr/doctype/leave_application/leave_application.txt
index 6af6529..033728c 100644
--- a/hr/doctype/leave_application/leave_application.txt
+++ b/hr/doctype/leave_application/leave_application.txt
@@ -7,13 +7,13 @@
   "modified": "2013-01-01 15:13:51"
  }, 
  {
+  "document_type": "Transaction", 
   "is_submittable": 1, 
-  "autoname": "LAP/.#####", 
   "description": "Apply / Approve Leaves", 
-  "search_fields": "employee,employee_name,leave_type,from_date,to_date,total_leave_days,fiscal_year", 
+  "autoname": "LAP/.#####", 
   "module": "HR", 
   "doctype": "DocType", 
-  "document_type": "Transaction", 
+  "search_fields": "employee,employee_name,leave_type,from_date,to_date,total_leave_days,fiscal_year", 
   "name": "__common__"
  }, 
  {
@@ -37,33 +37,33 @@
   "doctype": "DocType"
  }, 
  {
+  "permlevel": 2, 
   "default": "Open", 
   "doctype": "DocField", 
   "label": "Status", 
   "no_copy": 1, 
-  "options": "Open\nApproved\nRejected", 
   "fieldname": "status", 
   "fieldtype": "Select", 
-  "permlevel": 2
+  "options": "Open\nApproved\nRejected"
  }, 
  {
   "description": "Leave can be approved by users with Role, \"Leave Approver\"", 
   "doctype": "DocField", 
   "label": "Leave Approver", 
-  "options": "link:Profile", 
+  "permlevel": 0, 
   "fieldname": "leave_approver", 
   "fieldtype": "Select", 
-  "permlevel": 0
+  "options": "link:Profile"
  }, 
  {
   "search_index": 1, 
   "doctype": "DocField", 
   "label": "Leave Type", 
-  "options": "link:Leave Type", 
+  "permlevel": 0, 
   "fieldname": "leave_type", 
   "fieldtype": "Select", 
   "reqd": 1, 
-  "permlevel": 0, 
+  "options": "link:Leave Type", 
   "in_filter": 1
  }, 
  {
@@ -110,11 +110,11 @@
   "search_index": 1, 
   "doctype": "DocField", 
   "label": "Employee", 
-  "options": "Employee", 
+  "permlevel": 0, 
   "fieldname": "employee", 
   "fieldtype": "Link", 
   "reqd": 1, 
-  "permlevel": 0, 
+  "options": "Employee", 
   "in_filter": 1
  }, 
  {
@@ -167,11 +167,11 @@
   "search_index": 0, 
   "doctype": "DocField", 
   "label": "Fiscal Year", 
-  "options": "link:Fiscal Year", 
+  "permlevel": 2, 
   "fieldname": "fiscal_year", 
   "fieldtype": "Select", 
   "reqd": 1, 
-  "permlevel": 2, 
+  "options": "link:Fiscal Year", 
   "in_filter": 1
  }, 
  {
@@ -179,25 +179,26 @@
   "print_hide": 1, 
   "doctype": "DocField", 
   "label": "Letter Head", 
-  "options": "Letter Head", 
+  "permlevel": 2, 
   "fieldname": "letter_head", 
   "fieldtype": "Link", 
-  "permlevel": 2
+  "options": "Letter Head"
  }, 
  {
   "print_hide": 1, 
   "no_copy": 1, 
   "doctype": "DocField", 
   "label": "Amended From", 
-  "options": "Sales Invoice", 
+  "permlevel": 1, 
   "fieldname": "amended_from", 
   "fieldtype": "Link", 
-  "permlevel": 1
+  "options": "Sales Invoice"
  }, 
  {
   "create": 1, 
   "doctype": "DocPerm", 
   "role": "Employee", 
+  "report": 1, 
   "permlevel": 0, 
   "match": "employee"
  }, 
@@ -206,6 +207,7 @@
   "create": 1, 
   "doctype": "DocPerm", 
   "submit": 1, 
+  "report": 1, 
   "role": "HR User", 
   "cancel": 1, 
   "permlevel": 0
@@ -215,15 +217,16 @@
   "create": 1, 
   "doctype": "DocPerm", 
   "submit": 1, 
-  "role": "Leave Approver", 
   "cancel": 1, 
+  "role": "Leave Approver", 
+  "report": 1, 
   "permlevel": 0, 
   "match": "leave_approver:user"
  }, 
  {
-  "doctype": "DocPerm", 
   "role": "HR User", 
-  "permlevel": 2
+  "permlevel": 2, 
+  "doctype": "DocPerm"
  }, 
  {
   "amend": 0, 
diff --git a/hr/doctype/leave_type/leave_type.txt b/hr/doctype/leave_type/leave_type.txt
index a2988e6..d993760 100644
--- a/hr/doctype/leave_type/leave_type.txt
+++ b/hr/doctype/leave_type/leave_type.txt
@@ -9,13 +9,13 @@
  {
   "section_style": "Simple", 
   "module": "HR", 
-  "server_code_error": " ", 
-  "allow_trash": 1, 
   "doctype": "DocType", 
-  "autoname": "field:leave_type_name", 
+  "allow_trash": 1, 
   "document_type": "Master", 
+  "autoname": "field:leave_type_name", 
   "name": "__common__", 
   "colour": "White:FFF", 
+  "server_code_error": " ", 
   "show_in_menu": 0, 
   "version": 23
  }, 
@@ -27,14 +27,15 @@
   "parentfield": "fields"
  }, 
  {
+  "report": 1, 
   "name": "__common__", 
   "parent": "Leave Type", 
   "read": 1, 
   "create": 1, 
   "doctype": "DocPerm", 
   "write": 1, 
-  "parenttype": "DocType", 
   "cancel": 1, 
+  "parenttype": "DocType", 
   "permlevel": 0, 
   "parentfield": "permissions"
  }, 
diff --git a/hr/doctype/other_income_detail/other_income_detail.txt b/hr/doctype/other_income_detail/other_income_detail.txt
index f5afa9f..6da3363 100644
--- a/hr/doctype/other_income_detail/other_income_detail.txt
+++ b/hr/doctype/other_income_detail/other_income_detail.txt
@@ -12,10 +12,10 @@
   "name": "__common__", 
   "colour": "White:FFF", 
   "module": "HR", 
-  "show_in_menu": 0, 
-  "version": 6, 
   "server_code_error": " ", 
-  "doctype": "DocType"
+  "version": 6, 
+  "doctype": "DocType", 
+  "show_in_menu": 0
  }, 
  {
   "name": "__common__", 
@@ -39,6 +39,7 @@
  }, 
  {
   "write": 1, 
+  "report": 1, 
   "permlevel": 0, 
   "doctype": "DocPerm"
  }, 
diff --git a/hr/doctype/salary_slip/salary_slip.py b/hr/doctype/salary_slip/salary_slip.py
index 7886281..651cc77 100644
--- a/hr/doctype/salary_slip/salary_slip.py
+++ b/hr/doctype/salary_slip/salary_slip.py
@@ -18,11 +18,11 @@
 import webnotes
 
 from webnotes.utils import add_days, cint, cstr, flt, getdate
-from webnotes.model import db_exists
 from webnotes.model.doc import make_autoname
-from webnotes.model.wrapper import getlist, copy_doclist
+from webnotes.model.wrapper import getlist
 from webnotes.model.code import get_obj
 from webnotes import msgprint
+from setup.utils import get_company_currency
 
 sql = webnotes.conn.sql
 	
@@ -137,7 +137,7 @@
 
 	def validate(self):
 		self.check_existing()
-		dcc = TransactionBase().get_company_currency(self.doc.company)
+		dcc = get_company_currency(self.doc.company)
 		self.doc.total_in_words	= get_obj('Sales Common').get_total_in_words(dcc, self.doc.rounded_total)
 
 
diff --git a/hr/doctype/salary_slip/salary_slip.txt b/hr/doctype/salary_slip/salary_slip.txt
index ecab74f..c03f84c 100644
--- a/hr/doctype/salary_slip/salary_slip.txt
+++ b/hr/doctype/salary_slip/salary_slip.txt
@@ -9,8 +9,8 @@
  {
   "is_submittable": 1, 
   "name": "__common__", 
-  "doctype": "DocType", 
-  "module": "HR"
+  "module": "HR", 
+  "doctype": "DocType"
  }, 
  {
   "name": "__common__", 
@@ -45,12 +45,12 @@
   "doctype": "DocField", 
   "label": "Employee", 
   "oldfieldname": "employee", 
-  "permlevel": 0, 
+  "options": "Employee", 
   "fieldname": "employee", 
   "fieldtype": "Link", 
   "search_index": 1, 
   "reqd": 1, 
-  "options": "Employee", 
+  "permlevel": 0, 
   "in_filter": 1
  }, 
  {
@@ -69,12 +69,12 @@
   "doctype": "DocField", 
   "label": "Department", 
   "oldfieldname": "department", 
-  "options": "Department", 
+  "permlevel": 1, 
   "fieldname": "department", 
   "fieldtype": "Link", 
   "search_index": 0, 
   "reqd": 0, 
-  "permlevel": 1, 
+  "options": "Department", 
   "in_filter": 1
  }, 
  {
@@ -82,11 +82,11 @@
   "doctype": "DocField", 
   "label": "Designation", 
   "oldfieldname": "designation", 
-  "options": "Designation", 
+  "permlevel": 1, 
   "fieldname": "designation", 
   "fieldtype": "Link", 
   "search_index": 0, 
-  "permlevel": 1, 
+  "options": "Designation", 
   "in_filter": 1
  }, 
  {
@@ -94,11 +94,11 @@
   "doctype": "DocField", 
   "label": "Branch", 
   "oldfieldname": "branch", 
-  "options": "Branch", 
+  "permlevel": 1, 
   "fieldname": "branch", 
   "fieldtype": "Link", 
   "search_index": 0, 
-  "permlevel": 1, 
+  "options": "Branch", 
   "in_filter": 1
  }, 
  {
@@ -106,11 +106,11 @@
   "doctype": "DocField", 
   "label": "Grade", 
   "oldfieldname": "grade", 
-  "options": "Grade", 
+  "permlevel": 1, 
   "fieldname": "grade", 
   "fieldtype": "Link", 
   "search_index": 0, 
-  "permlevel": 1, 
+  "options": "Grade", 
   "in_filter": 1
  }, 
  {
@@ -133,10 +133,10 @@
  }, 
  {
   "doctype": "DocField", 
-  "label": "Letter Head", 
   "options": "Letter Head", 
   "fieldname": "letter_head", 
   "fieldtype": "Link", 
+  "label": "Letter Head", 
   "permlevel": 0
  }, 
  {
@@ -153,22 +153,22 @@
   "doctype": "DocField", 
   "label": "Fiscal Year", 
   "oldfieldname": "fiscal_year", 
-  "permlevel": 0, 
+  "options": "Fiscal Year", 
   "fieldname": "fiscal_year", 
   "fieldtype": "Link", 
   "search_index": 0, 
   "reqd": 1, 
-  "options": "Fiscal Year", 
+  "permlevel": 0, 
   "in_filter": 1
  }, 
  {
   "doctype": "DocField", 
   "label": "Company", 
-  "options": "link:Company", 
+  "permlevel": 0, 
   "fieldname": "company", 
   "fieldtype": "Select", 
   "reqd": 1, 
-  "permlevel": 0, 
+  "options": "link:Company", 
   "in_filter": 1
  }, 
  {
@@ -300,10 +300,10 @@
   "doctype": "DocField", 
   "label": "Salary Structure Earnings", 
   "oldfieldname": "earning_details", 
-  "options": "Salary Slip Earning", 
+  "permlevel": 0, 
   "fieldname": "earning_details", 
   "fieldtype": "Table", 
-  "permlevel": 0
+  "options": "Salary Slip Earning"
  }, 
  {
   "oldfieldtype": "Column Break", 
@@ -320,10 +320,10 @@
   "doctype": "DocField", 
   "label": "Deductions", 
   "oldfieldname": "deduction_details", 
-  "options": "Salary Slip Deduction", 
+  "permlevel": 0, 
   "fieldname": "deduction_details", 
   "fieldtype": "Table", 
-  "permlevel": 0
+  "options": "Salary Slip Deduction"
  }, 
  {
   "oldfieldtype": "Section Break", 
@@ -421,6 +421,7 @@
   "submit": 1, 
   "write": 1, 
   "role": "HR User", 
+  "report": 1, 
   "permlevel": 0
  }, 
  {
@@ -429,18 +430,19 @@
   "doctype": "DocPerm", 
   "submit": 1, 
   "write": 1, 
+  "report": 1, 
   "role": "HR Manager", 
   "cancel": 1, 
   "permlevel": 0
  }, 
  {
-  "doctype": "DocPerm", 
   "role": "HR User", 
-  "permlevel": 1
+  "permlevel": 1, 
+  "doctype": "DocPerm"
  }, 
  {
-  "doctype": "DocPerm", 
   "role": "HR Manager", 
-  "permlevel": 1
+  "permlevel": 1, 
+  "doctype": "DocPerm"
  }
 ]
\ No newline at end of file
diff --git a/hr/doctype/salary_slip_deduction/salary_slip_deduction.txt b/hr/doctype/salary_slip_deduction/salary_slip_deduction.txt
index 2272aea..0388ba9 100644
--- a/hr/doctype/salary_slip_deduction/salary_slip_deduction.txt
+++ b/hr/doctype/salary_slip_deduction/salary_slip_deduction.txt
@@ -12,10 +12,10 @@
   "name": "__common__", 
   "colour": "White:FFF", 
   "module": "HR", 
-  "show_in_menu": 0, 
-  "version": 9, 
   "server_code_error": " ", 
-  "doctype": "DocType"
+  "version": 9, 
+  "doctype": "DocType", 
+  "show_in_menu": 0
  }, 
  {
   "name": "__common__", 
@@ -28,6 +28,7 @@
  {
   "parent": "Salary Slip Deduction", 
   "read": 1, 
+  "report": 1, 
   "name": "__common__", 
   "create": 1, 
   "doctype": "DocPerm", 
@@ -45,15 +46,15 @@
   "doctype": "DocPerm"
  }, 
  {
-  "permlevel": 0, 
   "oldfieldtype": "Data", 
   "doctype": "DocField", 
   "label": "Type", 
   "oldfieldname": "d_type", 
   "width": "200px", 
+  "options": "Deduction Type", 
   "fieldname": "d_type", 
   "fieldtype": "Link", 
-  "options": "Deduction Type"
+  "permlevel": 0
  }, 
  {
   "oldfieldtype": "Currency", 
diff --git a/hr/doctype/salary_slip_earning/salary_slip_earning.txt b/hr/doctype/salary_slip_earning/salary_slip_earning.txt
index b8ad596..6283d3d 100644
--- a/hr/doctype/salary_slip_earning/salary_slip_earning.txt
+++ b/hr/doctype/salary_slip_earning/salary_slip_earning.txt
@@ -12,10 +12,10 @@
   "name": "__common__", 
   "colour": "White:FFF", 
   "module": "HR", 
-  "show_in_menu": 0, 
-  "version": 7, 
   "server_code_error": " ", 
-  "doctype": "DocType"
+  "version": 7, 
+  "doctype": "DocType", 
+  "show_in_menu": 0
  }, 
  {
   "name": "__common__", 
@@ -27,6 +27,7 @@
  {
   "parent": "Salary Slip Earning", 
   "read": 1, 
+  "report": 1, 
   "name": "__common__", 
   "create": 1, 
   "doctype": "DocPerm", 
@@ -44,15 +45,15 @@
   "doctype": "DocPerm"
  }, 
  {
-  "permlevel": 0, 
   "oldfieldtype": "Data", 
   "doctype": "DocField", 
   "label": "Type", 
   "oldfieldname": "e_type", 
   "width": "200px", 
+  "options": "Earning Type", 
   "fieldname": "e_type", 
   "fieldtype": "Link", 
-  "options": "Earning Type"
+  "permlevel": 0
  }, 
  {
   "oldfieldtype": "Currency", 
diff --git a/hr/doctype/salary_structure/salary_structure.txt b/hr/doctype/salary_structure/salary_structure.txt
index f45d873..1a104ad 100644
--- a/hr/doctype/salary_structure/salary_structure.txt
+++ b/hr/doctype/salary_structure/salary_structure.txt
@@ -8,8 +8,8 @@
  }, 
  {
   "name": "__common__", 
-  "doctype": "DocType", 
-  "module": "HR"
+  "module": "HR", 
+  "doctype": "DocType"
  }, 
  {
   "name": "__common__", 
@@ -44,12 +44,12 @@
   "doctype": "DocField", 
   "label": "Employee", 
   "oldfieldname": "employee", 
-  "permlevel": 0, 
   "trigger": "Client", 
   "fieldname": "employee", 
   "fieldtype": "Link", 
   "reqd": 1, 
   "options": "Employee", 
+  "permlevel": 0, 
   "in_filter": 1
  }, 
  {
@@ -67,11 +67,11 @@
   "doctype": "DocField", 
   "label": "Branch", 
   "oldfieldname": "branch", 
-  "options": "link:Branch", 
+  "permlevel": 1, 
   "fieldname": "branch", 
   "fieldtype": "Select", 
   "reqd": 0, 
-  "permlevel": 1, 
+  "options": "link:Branch", 
   "in_filter": 1
  }, 
  {
@@ -80,11 +80,11 @@
   "doctype": "DocField", 
   "label": "Designation", 
   "oldfieldname": "designation", 
-  "options": "link:Designation", 
+  "permlevel": 1, 
   "fieldname": "designation", 
   "fieldtype": "Select", 
   "reqd": 0, 
-  "permlevel": 1, 
+  "options": "link:Designation", 
   "in_filter": 1
  }, 
  {
@@ -93,11 +93,11 @@
   "doctype": "DocField", 
   "label": "Department", 
   "oldfieldname": "department", 
-  "options": "link:Department", 
+  "permlevel": 1, 
   "fieldname": "department", 
   "fieldtype": "Select", 
   "reqd": 0, 
-  "permlevel": 1, 
+  "options": "link:Department", 
   "in_filter": 1
  }, 
  {
@@ -106,11 +106,11 @@
   "doctype": "DocField", 
   "label": "Grade", 
   "oldfieldname": "grade", 
-  "options": "link:Grade", 
+  "permlevel": 1, 
   "fieldname": "grade", 
   "fieldtype": "Select", 
   "reqd": 0, 
-  "permlevel": 1, 
+  "options": "link:Grade", 
   "in_filter": 1
  }, 
  {
@@ -127,11 +127,11 @@
   "doctype": "DocField", 
   "label": "Is Active", 
   "oldfieldname": "is_active", 
-  "permlevel": 0, 
+  "options": "\nYes\nNo", 
   "fieldname": "is_active", 
   "fieldtype": "Select", 
   "reqd": 1, 
-  "options": "\nYes\nNo", 
+  "permlevel": 0, 
   "in_filter": 1
  }, 
  {
@@ -169,11 +169,11 @@
  {
   "doctype": "DocField", 
   "label": "Company", 
-  "options": "link:Company", 
+  "permlevel": 0, 
   "fieldname": "company", 
   "fieldtype": "Select", 
   "reqd": 1, 
-  "permlevel": 0, 
+  "options": "link:Company", 
   "in_filter": 1
  }, 
  {
@@ -204,11 +204,11 @@
   "doctype": "DocField", 
   "label": "Earning1", 
   "oldfieldname": "earning_details", 
-  "options": "Salary Structure Earning", 
+  "permlevel": 0, 
   "fieldname": "earning_details", 
   "fieldtype": "Table", 
   "hidden": 0, 
-  "permlevel": 0
+  "options": "Salary Structure Earning"
  }, 
  {
   "oldfieldtype": "Column Break", 
@@ -228,18 +228,18 @@
   "doctype": "DocField", 
   "label": "Deduction1", 
   "oldfieldname": "deduction_details", 
-  "options": "Salary Structure Deduction", 
+  "permlevel": 0, 
   "fieldname": "deduction_details", 
   "fieldtype": "Table", 
   "hidden": 0, 
-  "permlevel": 0
+  "options": "Salary Structure Deduction"
  }, 
  {
   "doctype": "DocField", 
-  "options": "Simple", 
+  "permlevel": 0, 
   "fieldname": "section_break0", 
   "fieldtype": "Section Break", 
-  "permlevel": 0
+  "options": "Simple"
  }, 
  {
   "doctype": "DocField", 
@@ -281,16 +281,17 @@
   "permlevel": 1
  }, 
  {
-  "doctype": "DocPerm", 
   "write": 0, 
   "role": "All", 
-  "permlevel": 1
+  "permlevel": 1, 
+  "doctype": "DocPerm"
  }, 
  {
   "create": 1, 
   "doctype": "DocPerm", 
   "write": 1, 
   "role": "HR User", 
+  "report": 1, 
   "permlevel": 0
  }, 
  {
@@ -298,16 +299,17 @@
   "doctype": "DocPerm", 
   "write": 1, 
   "role": "HR Manager", 
+  "report": 1, 
   "permlevel": 0
  }, 
  {
-  "doctype": "DocPerm", 
   "role": "HR Manager", 
-  "permlevel": 1
+  "permlevel": 1, 
+  "doctype": "DocPerm"
  }, 
  {
-  "doctype": "DocPerm", 
   "role": "HR User", 
-  "permlevel": 1
+  "permlevel": 1, 
+  "doctype": "DocPerm"
  }
 ]
\ No newline at end of file
diff --git a/manufacturing/doctype/bom/bom.txt b/manufacturing/doctype/bom/bom.txt
index cd4916f..aa37782 100644
--- a/manufacturing/doctype/bom/bom.txt
+++ b/manufacturing/doctype/bom/bom.txt
@@ -12,15 +12,15 @@
   "allow_print": 0, 
   "search_fields": "item", 
   "module": "Manufacturing", 
+  "doctype": "DocType", 
+  "issingle": 0, 
   "document_type": "Master", 
   "allow_attach": 0, 
   "read_only": 0, 
   "allow_email": 0, 
   "hide_heading": 0, 
-  "issingle": 0, 
   "name": "__common__", 
   "allow_rename": 0, 
-  "doctype": "DocType", 
   "is_submittable": 1, 
   "hide_toolbar": 0, 
   "allow_copy": 0
@@ -50,13 +50,13 @@
   "doctype": "DocField", 
   "label": "Item", 
   "oldfieldname": "item", 
-  "permlevel": 0, 
+  "options": "Item", 
   "fieldname": "item", 
   "fieldtype": "Link", 
   "search_index": 1, 
   "reqd": 1, 
-  "in_filter": 1, 
-  "options": "Item"
+  "permlevel": 0, 
+  "in_filter": 1
  }, 
  {
   "doctype": "DocField", 
@@ -101,21 +101,21 @@
   "oldfieldtype": "Section Break", 
   "doctype": "DocField", 
   "label": "Operations", 
-  "options": "Specify the operations, operating cost and give a unique Operation no to your operations.", 
+  "permlevel": 0, 
   "fieldname": "operations", 
   "fieldtype": "Section Break", 
   "depends_on": "with_operations", 
-  "permlevel": 0
+  "options": "Specify the operations, operating cost and give a unique Operation no to your operations."
  }, 
  {
   "oldfieldtype": "Table", 
   "doctype": "DocField", 
   "label": "BOM Operations", 
   "oldfieldname": "bom_operations", 
-  "options": "BOM Operation", 
+  "permlevel": 0, 
   "fieldname": "bom_operations", 
   "fieldtype": "Table", 
-  "permlevel": 0
+  "options": "BOM Operation"
  }, 
  {
   "oldfieldtype": "Section Break", 
@@ -130,10 +130,10 @@
   "doctype": "DocField", 
   "label": "BOM Item", 
   "oldfieldname": "bom_materials", 
-  "options": "BOM Item", 
+  "permlevel": 0, 
   "fieldname": "bom_materials", 
   "fieldtype": "Table", 
-  "permlevel": 0
+  "options": "BOM Item"
  }, 
  {
   "oldfieldtype": "Section Break", 
@@ -145,10 +145,10 @@
  }, 
  {
   "doctype": "DocField", 
-  "label": "Rate Of Materials Based On", 
   "options": "Valuation Rate\nLast Purchase Rate", 
   "fieldname": "rm_cost_as_per", 
   "fieldtype": "Select", 
+  "label": "Rate Of Materials Based On", 
   "permlevel": 0
  }, 
  {
@@ -199,10 +199,10 @@
  }, 
  {
   "doctype": "DocField", 
-  "label": "Item UOM", 
   "options": "link:UOM", 
   "fieldname": "uom", 
   "fieldtype": "Select", 
+  "label": "Item UOM", 
   "permlevel": 1
  }, 
  {
@@ -216,10 +216,10 @@
   "doctype": "DocField", 
   "label": "Project Name", 
   "oldfieldname": "project_name", 
-  "options": "Project", 
+  "permlevel": 0, 
   "fieldname": "project_name", 
   "fieldtype": "Link", 
-  "permlevel": 0, 
+  "options": "Project", 
   "in_filter": 1
  }, 
  {
@@ -234,10 +234,10 @@
   "no_copy": 1, 
   "doctype": "DocField", 
   "label": "Amended From", 
-  "options": "BOM", 
+  "permlevel": 1, 
   "fieldname": "amended_from", 
   "fieldtype": "Link", 
-  "permlevel": 1
+  "options": "BOM"
  }, 
  {
   "print_hide": 0, 
@@ -251,58 +251,61 @@
  }, 
  {
   "print_hide": 1, 
-  "permlevel": 1, 
   "no_copy": 1, 
   "oldfieldtype": "Table", 
   "doctype": "DocField", 
   "label": "Materials Required (Exploded)", 
   "oldfieldname": "flat_bom_details", 
   "default": "No Toolbar", 
+  "options": "BOM Explosion Item", 
   "fieldname": "flat_bom_details", 
   "fieldtype": "Table", 
   "hidden": 0, 
-  "options": "BOM Explosion Item"
+  "permlevel": 1
  }, 
  {
   "create": 1, 
   "doctype": "DocPerm", 
   "submit": 1, 
   "write": 1, 
+  "cancel": 1, 
   "role": "System Manager", 
-  "cancel": 1, 
+  "report": 1, 
   "permlevel": 0
  }, 
  {
-  "doctype": "DocPerm", 
   "role": "System Manager", 
-  "permlevel": 1
+  "permlevel": 1, 
+  "doctype": "DocPerm"
  }, 
  {
   "create": 1, 
   "doctype": "DocPerm", 
   "submit": 1, 
   "write": 1, 
-  "role": "Manufacturing Manager", 
   "cancel": 1, 
+  "role": "Manufacturing Manager", 
+  "report": 1, 
   "permlevel": 0
  }, 
  {
-  "doctype": "DocPerm", 
   "role": "Manufacturing Manager", 
-  "permlevel": 1
+  "permlevel": 1, 
+  "doctype": "DocPerm"
  }, 
  {
   "create": 1, 
   "doctype": "DocPerm", 
   "submit": 1, 
   "write": 1, 
-  "role": "Manufacturing User", 
   "cancel": 1, 
+  "role": "Manufacturing User", 
+  "report": 1, 
   "permlevel": 0
  }, 
  {
-  "doctype": "DocPerm", 
   "role": "Manufacturing User", 
-  "permlevel": 1
+  "permlevel": 1, 
+  "doctype": "DocPerm"
  }
 ]
\ No newline at end of file
diff --git a/manufacturing/doctype/bom_item/bom_item.txt b/manufacturing/doctype/bom_item/bom_item.txt
index e9f9bd6..8a9dd18 100644
--- a/manufacturing/doctype/bom_item/bom_item.txt
+++ b/manufacturing/doctype/bom_item/bom_item.txt
@@ -9,8 +9,8 @@
  {
   "istable": 1, 
   "name": "__common__", 
-  "doctype": "DocType", 
-  "module": "Manufacturing"
+  "module": "Manufacturing", 
+  "doctype": "DocType"
  }, 
  {
   "name": "__common__", 
@@ -47,26 +47,26 @@
   "doctype": "DocField", 
   "label": "Item Code", 
   "oldfieldname": "item_code", 
-  "options": "Item", 
+  "permlevel": 0, 
   "fieldname": "item_code", 
   "fieldtype": "Link", 
   "search_index": 1, 
   "reqd": 1, 
-  "permlevel": 0, 
+  "options": "Item", 
   "in_filter": 1
  }, 
  {
-  "permlevel": 0, 
   "oldfieldtype": "Link", 
   "doctype": "DocField", 
   "label": "BOM No", 
   "oldfieldname": "bom_no", 
   "width": "150px", 
+  "options": "BOM", 
   "fieldname": "bom_no", 
   "fieldtype": "Link", 
   "search_index": 1, 
   "reqd": 0, 
-  "options": "BOM", 
+  "permlevel": 0, 
   "in_filter": 1
  }, 
  {
@@ -140,11 +140,12 @@
  }, 
  {
   "write": 1, 
-  "doctype": "DocPerm", 
-  "permlevel": 0
+  "report": 1, 
+  "permlevel": 0, 
+  "doctype": "DocPerm"
  }, 
  {
-  "doctype": "DocPerm", 
-  "permlevel": 1
+  "permlevel": 1, 
+  "doctype": "DocPerm"
  }
 ]
\ No newline at end of file
diff --git a/manufacturing/doctype/bom_operation/bom_operation.txt b/manufacturing/doctype/bom_operation/bom_operation.txt
index 6333dc5..d072ec3 100644
--- a/manufacturing/doctype/bom_operation/bom_operation.txt
+++ b/manufacturing/doctype/bom_operation/bom_operation.txt
@@ -9,8 +9,8 @@
  {
   "istable": 1, 
   "name": "__common__", 
-  "doctype": "DocType", 
-  "module": "Manufacturing"
+  "module": "Manufacturing", 
+  "doctype": "DocType"
  }, 
  {
   "name": "__common__", 
@@ -91,11 +91,12 @@
  }, 
  {
   "write": 1, 
-  "doctype": "DocPerm", 
-  "permlevel": 0
+  "report": 1, 
+  "permlevel": 0, 
+  "doctype": "DocPerm"
  }, 
  {
-  "doctype": "DocPerm", 
-  "permlevel": 1
+  "permlevel": 1, 
+  "doctype": "DocPerm"
  }
 ]
\ No newline at end of file
diff --git a/manufacturing/doctype/production_order/production_order.txt b/manufacturing/doctype/production_order/production_order.txt
index 9266084..188622f 100644
--- a/manufacturing/doctype/production_order/production_order.txt
+++ b/manufacturing/doctype/production_order/production_order.txt
@@ -8,10 +8,10 @@
  }, 
  {
   "is_submittable": 1, 
-  "autoname": "naming_series:", 
   "in_create": 0, 
-  "doctype": "DocType", 
+  "autoname": "naming_series:", 
   "module": "Manufacturing", 
+  "doctype": "DocType", 
   "name": "__common__"
  }, 
  {
@@ -25,15 +25,16 @@
  {
   "parent": "Production Order", 
   "read": 1, 
+  "doctype": "DocPerm", 
   "cancel": 1, 
   "name": "__common__", 
   "amend": 1, 
   "create": 1, 
-  "doctype": "DocPerm", 
   "submit": 1, 
   "write": 1, 
   "parenttype": "DocType", 
   "role": "Manufacturing User", 
+  "report": 1, 
   "permlevel": 0, 
   "parentfield": "permissions"
  }, 
@@ -52,15 +53,15 @@
  }, 
  {
   "read_only": 1, 
-  "depends_on": "eval:!doc.__islocal", 
+  "doctype": "DocField", 
   "no_copy": 1, 
   "search_index": 1, 
-  "doctype": "DocField", 
+  "oldfieldtype": "Select", 
   "label": "Status", 
   "oldfieldname": "status", 
   "fieldname": "status", 
   "fieldtype": "Select", 
-  "oldfieldtype": "Select", 
+  "depends_on": "eval:!doc.__islocal", 
   "reqd": 1, 
   "options": "\nDraft\nSubmitted\nStopped\nIn Process\nCompleted\nCancelled", 
   "in_filter": 1
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 8834180..9b32691 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
@@ -8,10 +8,10 @@
  }, 
  {
   "istable": 1, 
-  "autoname": "PP/.SO/.#####", 
   "name": "__common__", 
-  "doctype": "DocType", 
-  "module": "Manufacturing"
+  "autoname": "PP/.SO/.#####", 
+  "module": "Manufacturing", 
+  "doctype": "DocType"
  }, 
  {
   "name": "__common__", 
@@ -73,11 +73,12 @@
  }, 
  {
   "write": 1, 
-  "doctype": "DocPerm", 
-  "permlevel": 0
+  "report": 1, 
+  "permlevel": 0, 
+  "doctype": "DocPerm"
  }, 
  {
-  "doctype": "DocPerm", 
-  "permlevel": 1
+  "permlevel": 1, 
+  "doctype": "DocPerm"
  }
 ]
\ No newline at end of file
diff --git a/manufacturing/doctype/workstation/workstation.txt b/manufacturing/doctype/workstation/workstation.txt
index 873bf30..4f967f1 100644
--- a/manufacturing/doctype/workstation/workstation.txt
+++ b/manufacturing/doctype/workstation/workstation.txt
@@ -8,13 +8,13 @@
  }, 
  {
   "section_style": "Simple", 
-  "module": "Manufacturing", 
   "doctype": "DocType", 
-  "allow_trash": 1, 
+  "module": "Manufacturing", 
   "server_code_error": " ", 
+  "allow_trash": 1, 
+  "autoname": "field:workstation_name", 
   "document_type": "Master", 
   "allow_email": 0, 
-  "autoname": "field:workstation_name", 
   "name": "__common__", 
   "colour": "White:FFF", 
   "_last_update": "1322125389", 
@@ -44,8 +44,9 @@
   "create": 1, 
   "doctype": "DocPerm", 
   "write": 1, 
-  "role": "System Manager", 
   "cancel": 1, 
+  "role": "System Manager", 
+  "report": 1, 
   "permlevel": 0
  }, 
  {
@@ -57,16 +58,18 @@
   "create": 1, 
   "doctype": "DocPerm", 
   "write": 1, 
-  "role": "Manufacturing User", 
   "cancel": 1, 
+  "role": "Manufacturing User", 
+  "report": 1, 
   "permlevel": 0
  }, 
  {
   "create": 1, 
   "doctype": "DocPerm", 
   "write": 1, 
-  "role": "Manufacturing User", 
   "cancel": 1, 
+  "role": "Manufacturing User", 
+  "report": 1, 
   "permlevel": 0
  }, 
  {
@@ -103,11 +106,11 @@
   "doctype": "DocField", 
   "label": "Warehouse", 
   "oldfieldname": "warehouse", 
-  "permlevel": 0, 
+  "options": "Warehouse", 
   "fieldname": "warehouse", 
   "fieldtype": "Link", 
   "reqd": 1, 
-  "options": "Warehouse"
+  "permlevel": 0
  }, 
  {
   "oldfieldtype": "Text", 
@@ -135,12 +138,12 @@
   "doctype": "DocField", 
   "label": "Capacity Units", 
   "oldfieldname": "capacity_units", 
-  "permlevel": 0, 
+  "options": "\nUnits/Shifts\nUnits/Hour", 
   "fieldname": "capacity_units", 
   "fieldtype": "Select", 
   "reqd": 0, 
   "hidden": 1, 
-  "options": "\nUnits/Shifts\nUnits/Hour"
+  "permlevel": 0
  }, 
  {
   "oldfieldtype": "Currency", 
diff --git a/patches/january_2013/purchase_price_list.py b/patches/january_2013/purchase_price_list.py
new file mode 100644
index 0000000..02c260e
--- /dev/null
+++ b/patches/january_2013/purchase_price_list.py
@@ -0,0 +1,9 @@
+import webnotes
+
+def execute():
+	webnotes.reload_doc("stock", "doctype", "item_price")
+	
+	# check for selling
+	webnotes.conn.sql("""update `tabItem Price` set selling=1
+		where ifnull(selling, 0)=0 and ifnull(buying, 0)=0""")
+	
\ No newline at end of file
diff --git a/patches/patch_list.py b/patches/patch_list.py
index cf9e97f..2788093 100644
--- a/patches/patch_list.py
+++ b/patches/patch_list.py
@@ -152,4 +152,5 @@
 	"patches.january_2013.update_country_info",
 	"patches.january_2013.remove_tds_entry_from_gl_mapper",
 	"patches.january_2013.update_number_format",
+	"patches.january_2013.purchase_price_list",
 ]
\ No newline at end of file
diff --git a/projects/doctype/activity_type/activity_type.txt b/projects/doctype/activity_type/activity_type.txt
index decb90d..3bde647 100644
--- a/projects/doctype/activity_type/activity_type.txt
+++ b/projects/doctype/activity_type/activity_type.txt
@@ -9,23 +9,23 @@
  {
   "section_style": "Simple", 
   "module": "Projects", 
+  "server_code_error": " ", 
   "in_dialog": 1, 
-  "autoname": "field:activity_type", 
   "document_type": "Master", 
+  "autoname": "field:activity_type", 
   "name": "__common__", 
   "colour": "White:FFF", 
   "doctype": "DocType", 
-  "server_code_error": " ", 
   "version": 1
  }, 
  {
   "parent": "Activity Type", 
   "name": "__common__", 
   "doctype": "DocField", 
+  "reqd": 1, 
   "parenttype": "DocType", 
   "fieldname": "activity_type", 
   "fieldtype": "Data", 
-  "reqd": 1, 
   "label": "Activity Type", 
   "permlevel": 0, 
   "parentfield": "fields"
@@ -38,6 +38,7 @@
   "doctype": "DocPerm", 
   "write": 1, 
   "parenttype": "DocType", 
+  "report": 1, 
   "permlevel": 0, 
   "parentfield": "permissions"
  }, 
diff --git a/projects/doctype/project/project.txt b/projects/doctype/project/project.txt
index 3c58f1a..f822213 100644
--- a/projects/doctype/project/project.txt
+++ b/projects/doctype/project/project.txt
@@ -7,13 +7,13 @@
   "modified": "2012-12-03 17:10:41"
  }, 
  {
-  "autoname": "field:project_name", 
+  "document_type": "Master", 
   "allow_attach": 1, 
-  "search_fields": "customer, status, priority, is_active", 
+  "autoname": "field:project_name", 
   "module": "Projects", 
   "doctype": "DocType", 
   "max_attachments": 4, 
-  "document_type": "Master", 
+  "search_fields": "customer, status, priority, is_active", 
   "name": "__common__"
  }, 
  {
@@ -76,11 +76,11 @@
   "doctype": "DocField", 
   "label": "Is Active", 
   "oldfieldname": "is_active", 
-  "options": "Yes\nNo", 
+  "permlevel": 0, 
   "fieldname": "is_active", 
   "fieldtype": "Select", 
   "search_index": 0, 
-  "permlevel": 0
+  "options": "Yes\nNo"
  }, 
  {
   "no_copy": 0, 
@@ -88,11 +88,11 @@
   "doctype": "DocField", 
   "label": "Priority", 
   "oldfieldname": "priority", 
-  "options": "Medium\nLow\nHigh", 
+  "permlevel": 0, 
   "fieldname": "priority", 
   "fieldtype": "Select", 
   "search_index": 0, 
-  "permlevel": 0
+  "options": "Medium\nLow\nHigh"
  }, 
  {
   "doctype": "DocField", 
@@ -141,11 +141,11 @@
   "doctype": "DocField", 
   "label": "Project Type", 
   "oldfieldname": "project_type", 
-  "options": "Internal\nExternal\nOther", 
+  "permlevel": 0, 
   "fieldname": "project_type", 
   "fieldtype": "Select", 
   "search_index": 0, 
-  "permlevel": 0
+  "options": "Internal\nExternal\nOther"
  }, 
  {
   "description": "Important dates and commitments in your project life cycle", 
@@ -165,11 +165,11 @@
   "doctype": "DocField", 
   "label": "Project Milestones", 
   "oldfieldname": "project_milestones", 
-  "permlevel": 0, 
+  "options": "Project Milestone", 
   "fieldname": "project_milestones", 
   "fieldtype": "Table", 
   "search_index": 0, 
-  "options": "Project Milestone"
+  "permlevel": 0
  }, 
  {
   "description": "Tasks belonging to this Project.", 
@@ -191,10 +191,10 @@
   "oldfieldtype": "Section Break", 
   "doctype": "DocField", 
   "label": "Project Details", 
-  "options": "Simple", 
+  "permlevel": 0, 
   "fieldname": "section_break0", 
   "fieldtype": "Section Break", 
-  "permlevel": 0
+  "options": "Simple"
  }, 
  {
   "no_copy": 0, 
@@ -211,10 +211,10 @@
   "oldfieldtype": "Section Break", 
   "doctype": "DocField", 
   "label": "Project Costing", 
-  "options": "Simple", 
+  "permlevel": 0, 
   "fieldname": "project_details", 
   "fieldtype": "Section Break", 
-  "permlevel": 0
+  "options": "Simple"
  }, 
  {
   "no_copy": 0, 
@@ -297,8 +297,8 @@
   "fieldtype": "Link", 
   "search_index": 1, 
   "reqd": 0, 
-  "in_filter": 1, 
-  "options": "Customer"
+  "options": "Customer", 
+  "in_filter": 1
  }, 
  {
   "no_copy": 0, 
@@ -382,11 +382,11 @@
   "doctype": "DocField", 
   "label": "Customer Group", 
   "oldfieldname": "customer_group", 
-  "options": "Customer Group", 
+  "permlevel": 1, 
   "fieldname": "customer_group", 
   "fieldtype": "Link", 
   "search_index": 0, 
-  "permlevel": 1
+  "options": "Customer Group"
  }, 
  {
   "print_hide": 1, 
@@ -419,13 +419,14 @@
   "doctype": "DocPerm", 
   "submit": 0, 
   "write": 1, 
+  "report": 1, 
   "role": "Projects User", 
   "cancel": 1, 
   "permlevel": 0
  }, 
  {
-  "doctype": "DocPerm", 
   "role": "All", 
-  "permlevel": 1
+  "permlevel": 1, 
+  "doctype": "DocPerm"
  }
 ]
\ No newline at end of file
diff --git a/projects/doctype/timesheet/timesheet.txt b/projects/doctype/timesheet/timesheet.txt
index 3e3e185..d9b65ba 100644
--- a/projects/doctype/timesheet/timesheet.txt
+++ b/projects/doctype/timesheet/timesheet.txt
@@ -11,13 +11,13 @@
   "is_submittable": 1, 
   "search_fields": "status, owner, timesheet_date", 
   "module": "Projects", 
-  "server_code_error": " ", 
-  "subject": "%(owner)s", 
   "autoname": "TimeSheet.#####", 
+  "show_in_menu": 0, 
+  "subject": "%(owner)s", 
   "name": "__common__", 
   "colour": "White:FFF", 
   "doctype": "DocType", 
-  "show_in_menu": 0, 
+  "server_code_error": " ", 
   "version": 69
  }, 
  {
@@ -45,6 +45,7 @@
   "doctype": "DocPerm", 
   "submit": 1, 
   "write": 1, 
+  "report": 1, 
   "role": "Projects User", 
   "cancel": 1, 
   "permlevel": 0
@@ -60,6 +61,7 @@
   "doctype": "DocPerm", 
   "submit": 1, 
   "write": 1, 
+  "report": 1, 
   "role": "System Manager", 
   "cancel": 1, 
   "permlevel": 0
@@ -110,12 +112,12 @@
   "doctype": "DocField", 
   "label": "Timesheet By", 
   "oldfieldname": "owner", 
-  "options": "Profile", 
+  "permlevel": 0, 
   "fieldname": "owner", 
   "fieldtype": "Link", 
   "oldfieldtype": "Link", 
   "reqd": 1, 
-  "permlevel": 0, 
+  "options": "Profile", 
   "in_filter": 1
  }, 
  {
@@ -155,19 +157,19 @@
  }, 
  {
   "doctype": "DocField", 
-  "permlevel": 0, 
+  "options": "Simple", 
   "fieldname": "section_break0", 
   "fieldtype": "Section Break", 
-  "options": "Simple"
+  "permlevel": 0
  }, 
  {
   "oldfieldtype": "Table", 
   "doctype": "DocField", 
   "label": "Timesheet Details", 
   "oldfieldname": "timesheet_details", 
-  "permlevel": 0, 
+  "options": "Timesheet Detail", 
   "fieldname": "timesheet_details", 
   "fieldtype": "Table", 
-  "options": "Timesheet Detail"
+  "permlevel": 0
  }
 ]
\ No newline at end of file
diff --git a/public/js/stock_controller.js b/public/js/controllers/stock_controller.js
similarity index 100%
rename from public/js/stock_controller.js
rename to public/js/controllers/stock_controller.js
diff --git a/selling/doctype/campaign/campaign.txt b/selling/doctype/campaign/campaign.txt
index e6e8ed8..c457928 100644
--- a/selling/doctype/campaign/campaign.txt
+++ b/selling/doctype/campaign/campaign.txt
@@ -10,14 +10,14 @@
   "section_style": "Simple", 
   "description": "Keep Track of Sales Campaigns. Keep track of Leads, Quotations, Sales Order etc from Campaigns to gauge Return on Investment. ", 
   "module": "Selling", 
-  "doctype": "DocType", 
-  "allow_trash": 1, 
   "server_code_error": " ", 
-  "document_type": "Master", 
+  "allow_trash": 1, 
   "autoname": "field:campaign_name", 
+  "document_type": "Master", 
+  "_last_update": "1326102553", 
   "name": "__common__", 
   "colour": "White:FFF", 
-  "_last_update": "1326102553", 
+  "doctype": "DocType", 
   "show_in_menu": 0, 
   "version": 1
  }, 
@@ -32,8 +32,8 @@
   "name": "__common__", 
   "parent": "Campaign", 
   "amend": 0, 
-  "doctype": "DocPerm", 
   "submit": 0, 
+  "doctype": "DocPerm", 
   "read": 1, 
   "parenttype": "DocType", 
   "parentfield": "permissions"
@@ -54,6 +54,7 @@
   "create": 0, 
   "doctype": "DocPerm", 
   "write": 0, 
+  "report": 1, 
   "role": "Sales Manager", 
   "cancel": 0, 
   "permlevel": 0
@@ -78,6 +79,7 @@
   "create": 0, 
   "doctype": "DocPerm", 
   "write": 0, 
+  "report": 1, 
   "role": "Sales User", 
   "cancel": 0, 
   "permlevel": 0
@@ -86,6 +88,7 @@
   "create": 1, 
   "doctype": "DocPerm", 
   "write": 1, 
+  "report": 1, 
   "role": "Sales Master Manager", 
   "cancel": 1, 
   "permlevel": 0
diff --git a/selling/doctype/customer/customer.txt b/selling/doctype/customer/customer.txt
index 600693d..2365045 100644
--- a/selling/doctype/customer/customer.txt
+++ b/selling/doctype/customer/customer.txt
@@ -7,14 +7,14 @@
   "modified": "2012-12-27 14:02:01"
  }, 
  {
-  "autoname": "naming_series:", 
+  "document_type": "Master", 
   "description": "Buyer of Goods and Services.", 
+  "autoname": "naming_series:", 
   "allow_rename": 1, 
   "allow_print": 0, 
-  "search_fields": "customer_name,customer_group,country,territory", 
   "module": "Selling", 
   "doctype": "DocType", 
-  "document_type": "Master", 
+  "search_fields": "customer_name,customer_group,country,territory", 
   "name": "__common__"
  }, 
  {
@@ -67,21 +67,21 @@
   "doctype": "DocField", 
   "label": "Customer Type", 
   "oldfieldname": "customer_type", 
-  "options": "\nCompany\nIndividual", 
+  "permlevel": 0, 
   "fieldname": "customer_type", 
   "fieldtype": "Select", 
   "reqd": 1, 
-  "permlevel": 0
+  "options": "\nCompany\nIndividual"
  }, 
  {
   "print_hide": 0, 
   "no_copy": 1, 
   "doctype": "DocField", 
   "label": "Series", 
-  "options": "\nCUST\nCUSTMUM", 
+  "permlevel": 0, 
   "fieldname": "naming_series", 
   "fieldtype": "Select", 
-  "permlevel": 0
+  "options": "\nCUST\nCUSTMUM"
  }, 
  {
   "print_hide": 1, 
@@ -95,9 +95,9 @@
   "fieldname": "lead_name", 
   "fieldtype": "Link", 
   "hidden": 0, 
-  "in_filter": 1, 
   "options": "Lead", 
-  "report_hide": 1
+  "report_hide": 1, 
+  "in_filter": 1
  }, 
  {
   "doctype": "DocField", 
@@ -119,8 +119,8 @@
   "search_index": 1, 
   "reqd": 1, 
   "hidden": 0, 
-  "in_filter": 1, 
-  "options": "Customer Group"
+  "options": "Customer Group", 
+  "in_filter": 1
  }, 
  {
   "print_hide": 1, 
@@ -129,11 +129,11 @@
   "doctype": "DocField", 
   "label": "Territory", 
   "oldfieldname": "territory", 
-  "options": "Territory", 
+  "permlevel": 0, 
   "fieldname": "territory", 
   "fieldtype": "Link", 
   "reqd": 1, 
-  "permlevel": 0
+  "options": "Territory"
  }, 
  {
   "doctype": "DocField", 
@@ -146,10 +146,10 @@
   "depends_on": "eval:doc.__islocal", 
   "doctype": "DocField", 
   "label": "Address Desc", 
-  "options": "<em>Addresses will appear only when you save the customer</em>", 
+  "permlevel": 0, 
   "fieldname": "address_desc", 
   "fieldtype": "HTML", 
-  "permlevel": 0
+  "options": "<em>Addresses will appear only when you save the customer</em>"
  }, 
  {
   "doctype": "DocField", 
@@ -169,10 +169,10 @@
   "depends_on": "eval:doc.__islocal", 
   "doctype": "DocField", 
   "label": "Contact Desc", 
-  "options": "<em>Contact Details will appear only when you save the customer</em>", 
+  "permlevel": 0, 
   "fieldname": "contact_desc", 
   "fieldtype": "HTML", 
-  "permlevel": 0
+  "options": "<em>Contact Details will appear only when you save the customer</em>"
  }, 
  {
   "oldfieldtype": "HTML", 
@@ -216,20 +216,20 @@
   "doctype": "DocField", 
   "label": "Company", 
   "oldfieldname": "company", 
-  "permlevel": 0, 
+  "options": "Company", 
   "fieldname": "company", 
   "fieldtype": "Link", 
   "search_index": 1, 
   "reqd": 1, 
-  "in_filter": 1, 
-  "options": "Company"
+  "permlevel": 0, 
+  "in_filter": 1
  }, 
  {
   "doctype": "DocField", 
-  "label": "Default Price List", 
   "options": "Price List", 
   "fieldname": "default_price_list", 
   "fieldtype": "Link", 
+  "label": "Default Price List", 
   "permlevel": 0
  }, 
  {
@@ -237,10 +237,10 @@
   "no_copy": 1, 
   "doctype": "DocField", 
   "label": "Default Currency", 
-  "options": "link:Currency", 
+  "permlevel": 0, 
   "fieldname": "default_currency", 
   "fieldtype": "Select", 
-  "permlevel": 0
+  "options": "link:Currency"
  }, 
  {
   "description": "Your Customer's TAX registration numbers (if applicable) or any general information", 
@@ -297,10 +297,10 @@
   "doctype": "DocField", 
   "label": "Default Sales Partner", 
   "oldfieldname": "default_sales_partner", 
-  "options": "Sales Partner", 
+  "permlevel": 0, 
   "fieldname": "default_sales_partner", 
   "fieldtype": "Link", 
-  "permlevel": 0
+  "options": "Sales Partner"
  }, 
  {
   "oldfieldtype": "Currency", 
@@ -316,10 +316,10 @@
   "doctype": "DocField", 
   "label": "Sales Team Details", 
   "oldfieldname": "sales_team", 
-  "options": "Sales Team", 
+  "permlevel": 0, 
   "fieldname": "sales_team", 
   "fieldtype": "Table", 
-  "permlevel": 0
+  "options": "Sales Team"
  }, 
  {
   "amend": 0, 
@@ -327,8 +327,8 @@
   "doctype": "DocPerm", 
   "submit": 0, 
   "write": 0, 
-  "cancel": 0, 
   "role": "Sales Manager", 
+  "cancel": 0, 
   "permlevel": 1
  }, 
  {
@@ -337,8 +337,9 @@
   "doctype": "DocPerm", 
   "submit": 0, 
   "write": 0, 
-  "cancel": 0, 
+  "report": 1, 
   "role": "Sales Manager", 
+  "cancel": 0, 
   "permlevel": 0
  }, 
  {
@@ -347,8 +348,8 @@
   "doctype": "DocPerm", 
   "submit": 0, 
   "write": 0, 
-  "cancel": 0, 
   "role": "Sales User", 
+  "cancel": 0, 
   "permlevel": 1
  }, 
  {
@@ -357,8 +358,9 @@
   "doctype": "DocPerm", 
   "submit": 0, 
   "write": 0, 
-  "cancel": 0, 
+  "report": 1, 
   "role": "Sales User", 
+  "cancel": 0, 
   "permlevel": 0
  }, 
  {
@@ -367,8 +369,9 @@
   "doctype": "DocPerm", 
   "submit": 0, 
   "write": 1, 
+  "report": 1, 
+  "role": "Sales Master Manager", 
   "cancel": 1, 
-  "role": "Sales Master Manager", 
   "permlevel": 0
  }, 
  {
@@ -377,8 +380,8 @@
   "doctype": "DocPerm", 
   "submit": 0, 
   "write": 0, 
-  "cancel": 0, 
   "role": "Sales Master Manager", 
+  "cancel": 0, 
   "permlevel": 1
  }, 
  {
@@ -387,8 +390,9 @@
   "doctype": "DocPerm", 
   "submit": 0, 
   "write": 1, 
-  "cancel": 0, 
+  "report": 1, 
   "role": "Purchase User", 
+  "cancel": 0, 
   "permlevel": 0
  }, 
  {
@@ -419,8 +423,9 @@
   "create": 1, 
   "doctype": "DocPerm", 
   "write": 1, 
-  "role": "Accounts Manager", 
   "cancel": 1, 
+  "role": "Accounts Manager", 
+  "report": 1, 
   "permlevel": 0
  }, 
  {
diff --git a/selling/doctype/industry_type/industry_type.txt b/selling/doctype/industry_type/industry_type.txt
index 81dd84a..39534d1 100644
--- a/selling/doctype/industry_type/industry_type.txt
+++ b/selling/doctype/industry_type/industry_type.txt
@@ -9,21 +9,21 @@
  {
   "section_style": "Simple", 
   "name": "__common__", 
+  "autoname": "field:industry", 
   "colour": "White:FFF", 
   "module": "Selling", 
   "server_code_error": " ", 
   "version": 4, 
   "doctype": "DocType", 
-  "autoname": "field:industry", 
   "document_type": "Master"
  }, 
  {
   "parent": "Industry Type", 
   "oldfieldtype": "Data", 
+  "doctype": "DocField", 
   "oldfieldname": "industry", 
   "reqd": 1, 
   "name": "__common__", 
-  "doctype": "DocField", 
   "label": "Industry", 
   "parenttype": "DocType", 
   "fieldname": "industry", 
@@ -36,6 +36,7 @@
   "parent": "Industry Type", 
   "read": 1, 
   "doctype": "DocPerm", 
+  "report": 1, 
   "parenttype": "DocType", 
   "permlevel": 0, 
   "parentfield": "permissions"
diff --git a/selling/doctype/installation_note/installation_note.txt b/selling/doctype/installation_note/installation_note.txt
index 0ab9bc5..1a69087 100644
--- a/selling/doctype/installation_note/installation_note.txt
+++ b/selling/doctype/installation_note/installation_note.txt
@@ -10,13 +10,13 @@
   "section_style": "Simple", 
   "is_submittable": 1, 
   "module": "Selling", 
-  "doctype": "DocType", 
   "server_code_error": " ", 
-  "subject": "At %(customer_name)s on %(inst_date)s", 
   "autoname": "IN/.####", 
+  "subject": "At %(customer_name)s on %(inst_date)s", 
+  "_last_update": "1306480044", 
   "name": "__common__", 
   "colour": "White:FFF", 
-  "_last_update": "1306480044", 
+  "doctype": "DocType", 
   "show_in_menu": 0, 
   "version": 98
  }, 
@@ -45,6 +45,7 @@
   "doctype": "DocPerm", 
   "submit": 1, 
   "write": 1, 
+  "report": 1, 
   "role": "System Manager", 
   "cancel": 1, 
   "permlevel": 0
@@ -60,6 +61,7 @@
   "doctype": "DocPerm", 
   "submit": 1, 
   "write": 1, 
+  "report": 1, 
   "role": "Sales User", 
   "cancel": 1, 
   "permlevel": 0
@@ -70,6 +72,7 @@
   "doctype": "DocPerm", 
   "submit": 1, 
   "write": 1, 
+  "report": 1, 
   "role": "Sales Manager", 
   "cancel": 1, 
   "permlevel": 0
@@ -106,11 +109,11 @@
   "doctype": "DocField", 
   "label": "Series", 
   "oldfieldname": "naming_series", 
-  "permlevel": 0, 
+  "options": "\nIN", 
   "fieldname": "naming_series", 
   "fieldtype": "Select", 
   "reqd": 1, 
-  "options": "\nIN"
+  "permlevel": 0
  }, 
  {
   "print_hide": 1, 
@@ -118,31 +121,31 @@
   "doctype": "DocField", 
   "label": "Customer", 
   "oldfieldname": "customer", 
+  "permlevel": 0, 
   "trigger": "Client", 
   "fieldname": "customer", 
   "fieldtype": "Link", 
   "oldfieldtype": "Link", 
   "reqd": 1, 
-  "options": "Customer", 
-  "permlevel": 0
+  "options": "Customer"
  }, 
  {
   "print_hide": 1, 
   "doctype": "DocField", 
   "label": "Customer Address", 
-  "options": "Address", 
+  "permlevel": 0, 
   "fieldname": "customer_address", 
   "fieldtype": "Link", 
-  "permlevel": 0
+  "options": "Address"
  }, 
  {
   "print_hide": 1, 
   "doctype": "DocField", 
   "label": "Contact Person", 
-  "options": "Contact", 
+  "permlevel": 0, 
   "fieldname": "contact_person", 
   "fieldtype": "Link", 
-  "permlevel": 0
+  "options": "Contact"
  }, 
  {
   "search_index": 0, 
@@ -190,21 +193,21 @@
   "search_index": 1, 
   "doctype": "DocField", 
   "label": "Territory", 
-  "permlevel": 0, 
+  "options": "Territory", 
   "fieldname": "territory", 
   "fieldtype": "Link", 
   "reqd": 1, 
-  "options": "Territory", 
+  "permlevel": 0, 
   "in_filter": 1
  }, 
  {
   "print_hide": 1, 
   "doctype": "DocField", 
   "label": "Customer Group", 
-  "options": "Customer Group", 
+  "permlevel": 0, 
   "fieldname": "customer_group", 
   "fieldtype": "Link", 
-  "permlevel": 0
+  "options": "Customer Group"
  }, 
  {
   "oldfieldtype": "Column Break", 
@@ -236,17 +239,17 @@
  }, 
  {
   "print_hide": 1, 
+  "permlevel": 1, 
   "default": "Draft", 
   "oldfieldtype": "Select", 
   "doctype": "DocField", 
   "label": "Status", 
   "oldfieldname": "status", 
   "no_copy": 1, 
-  "options": "Draft\nSubmitted\nCancelled", 
   "fieldname": "status", 
   "fieldtype": "Select", 
   "reqd": 1, 
-  "permlevel": 1
+  "options": "Draft\nSubmitted\nCancelled"
  }, 
  {
   "print_hide": 1, 
@@ -271,11 +274,11 @@
   "doctype": "DocField", 
   "label": "Fiscal Year", 
   "oldfieldname": "fiscal_year", 
-  "options": "link:Fiscal Year", 
+  "permlevel": 0, 
   "fieldname": "fiscal_year", 
   "fieldtype": "Select", 
   "reqd": 1, 
-  "permlevel": 0, 
+  "options": "link:Fiscal Year", 
   "in_filter": 1
  }, 
  {
@@ -330,10 +333,10 @@
   "oldfieldtype": "Section Break", 
   "doctype": "DocField", 
   "label": "Item Details", 
-  "permlevel": 0, 
+  "options": "Simple", 
   "fieldname": "item_details", 
   "fieldtype": "Section Break", 
-  "options": "Simple"
+  "permlevel": 0
  }, 
  {
   "print_hide": 0, 
@@ -356,20 +359,20 @@
   "oldfieldtype": "Button", 
   "doctype": "DocField", 
   "label": "Get Items", 
-  "permlevel": 0, 
+  "options": "pull_delivery_note_details", 
   "fieldname": "get_items", 
   "fieldtype": "Button", 
   "hidden": 0, 
-  "options": "pull_delivery_note_details"
+  "permlevel": 0
  }, 
  {
   "oldfieldtype": "Table", 
   "doctype": "DocField", 
   "label": "Installation Note Item", 
   "oldfieldname": "installed_item_details", 
-  "permlevel": 0, 
+  "options": "Installation Note Item", 
   "fieldname": "installed_item_details", 
   "fieldtype": "Table", 
-  "options": "Installation Note Item"
+  "permlevel": 0
  }
 ]
\ No newline at end of file
diff --git a/selling/doctype/opportunity/opportunity.txt b/selling/doctype/opportunity/opportunity.txt
index eafeff0..afa6fa8 100644
--- a/selling/doctype/opportunity/opportunity.txt
+++ b/selling/doctype/opportunity/opportunity.txt
@@ -7,13 +7,13 @@
   "modified": "2012-12-03 17:10:41"
  }, 
  {
+  "document_type": "Transaction", 
   "is_submittable": 1, 
-  "autoname": "naming_series:", 
   "description": "Potential Sales Deal", 
-  "search_fields": "status,transaction_date,customer,lead,enquiry_type,territory,company", 
+  "autoname": "naming_series:", 
   "module": "Selling", 
   "doctype": "DocType", 
-  "document_type": "Transaction", 
+  "search_fields": "status,transaction_date,customer,lead,enquiry_type,territory,company", 
   "name": "__common__"
  }, 
  {
@@ -43,11 +43,11 @@
   "doctype": "DocField", 
   "label": "Naming Series", 
   "oldfieldname": "naming_series", 
-  "permlevel": 0, 
+  "options": "ENQUIRY\nENQ", 
   "fieldname": "naming_series", 
   "fieldtype": "Select", 
   "reqd": 1, 
-  "options": "ENQUIRY\nENQ"
+  "permlevel": 0
  }, 
  {
   "print_hide": 1, 
@@ -87,12 +87,12 @@
   "doctype": "DocField", 
   "label": "Lead", 
   "oldfieldname": "lead", 
-  "permlevel": 0, 
   "trigger": "Client", 
   "fieldname": "lead", 
   "fieldtype": "Link", 
   "hidden": 0, 
   "options": "Lead", 
+  "permlevel": 0, 
   "in_filter": 1
  }, 
  {
@@ -104,7 +104,6 @@
   "permlevel": 0
  }, 
  {
-  "permlevel": 1, 
   "no_copy": 1, 
   "oldfieldtype": "Select", 
   "colour": "White:FFF", 
@@ -112,10 +111,11 @@
   "label": "Status", 
   "oldfieldname": "status", 
   "default": "Draft", 
+  "options": "\nDraft\nSubmitted\nQuotation Sent\nOrder Confirmed\nOpportunity Lost\nCancelled", 
   "fieldname": "status", 
   "fieldtype": "Select", 
   "reqd": 1, 
-  "options": "\nDraft\nSubmitted\nQuotation Sent\nOrder Confirmed\nOpportunity Lost\nCancelled"
+  "permlevel": 1
  }, 
  {
   "oldfieldtype": "Select", 
@@ -123,11 +123,11 @@
   "doctype": "DocField", 
   "label": "Opportunity Type", 
   "oldfieldname": "enquiry_type", 
-  "options": "\nSales\nMaintenance", 
+  "permlevel": 0, 
   "fieldname": "enquiry_type", 
   "fieldtype": "Select", 
   "reqd": 1, 
-  "permlevel": 0
+  "options": "\nSales\nMaintenance"
  }, 
  {
   "oldfieldtype": "Section Break", 
@@ -145,10 +145,10 @@
   "doctype": "DocField", 
   "label": "Opportunity Items", 
   "oldfieldname": "enquiry_details", 
-  "options": "Opportunity Item", 
+  "permlevel": 0, 
   "fieldname": "enquiry_details", 
   "fieldtype": "Table", 
-  "permlevel": 0
+  "options": "Opportunity Item"
  }, 
  {
   "description": "Keep a track of communication related to this enquiry which will help for future reference.", 
@@ -181,22 +181,22 @@
   "print_hide": 1, 
   "doctype": "DocField", 
   "label": "Contact Person", 
+  "permlevel": 0, 
   "trigger": "Client", 
   "fieldname": "contact_person", 
   "fieldtype": "Link", 
   "options": "Contact", 
-  "permlevel": 0, 
   "in_filter": 1
  }, 
  {
   "print_hide": 1, 
   "doctype": "DocField", 
   "label": "Customer Address", 
+  "permlevel": 0, 
   "trigger": "Client", 
   "fieldname": "customer_address", 
   "fieldtype": "Link", 
   "options": "Address", 
-  "permlevel": 0, 
   "in_filter": 1
  }, 
  {
@@ -256,22 +256,22 @@
  }, 
  {
   "print_hide": 1, 
-  "depends_on": "eval:doc.enquiry_from==\"Customer\"", 
+  "doctype": "DocField", 
   "description": "<a href=\"#Sales Browser/Customer Group\">To manage Territory, click here</a>", 
   "search_index": 1, 
   "colour": "White:FFF", 
-  "doctype": "DocField", 
+  "oldfieldtype": "Link", 
   "label": "Customer Group", 
   "oldfieldname": "customer_group", 
   "permlevel": 0, 
   "trigger": "Client", 
   "fieldname": "customer_group", 
   "fieldtype": "Link", 
-  "oldfieldtype": "Link", 
+  "depends_on": "eval:doc.enquiry_from==\"Customer\"", 
   "reqd": 0, 
   "hidden": 0, 
-  "in_filter": 1, 
-  "options": "Customer Group"
+  "options": "Customer Group", 
+  "in_filter": 1
  }, 
  {
   "print_hide": 1, 
@@ -285,8 +285,8 @@
   "fieldname": "territory", 
   "fieldtype": "Link", 
   "reqd": 0, 
-  "in_filter": 1, 
-  "options": "Territory"
+  "options": "Territory", 
+  "in_filter": 1
  }, 
  {
   "description": "Filing in Additional Information about the Opportunity will help you analyze your data better.", 
@@ -325,12 +325,12 @@
   "doctype": "DocField", 
   "label": "Fiscal Year", 
   "oldfieldname": "fiscal_year", 
-  "permlevel": 0, 
+  "options": "link:Fiscal Year", 
   "fieldname": "fiscal_year", 
   "fieldtype": "Select", 
   "search_index": 1, 
   "reqd": 1, 
-  "options": "link:Fiscal Year", 
+  "permlevel": 0, 
   "in_filter": 1
  }, 
  {
@@ -338,10 +338,10 @@
   "doctype": "DocField", 
   "label": "Source", 
   "oldfieldname": "source", 
-  "options": "\nExisting Customer\nReference\nAdvertisement\nCold Calling\nExhibition\nSupplier Reference\nMass Mailing\nCustomer's Vendor\nCampaign\nWalk In", 
+  "permlevel": 0, 
   "fieldname": "source", 
   "fieldtype": "Select", 
-  "permlevel": 0
+  "options": "\nExisting Customer\nReference\nAdvertisement\nCold Calling\nExhibition\nSupplier Reference\nMass Mailing\nCustomer's Vendor\nCampaign\nWalk In"
  }, 
  {
   "description": "Enter name of campaign if source of enquiry is campaign", 
@@ -350,10 +350,10 @@
   "doctype": "DocField", 
   "label": "Campaign", 
   "oldfieldname": "campaign", 
-  "options": "Campaign", 
+  "permlevel": 0, 
   "fieldname": "campaign", 
   "fieldtype": "Link", 
-  "permlevel": 0
+  "options": "Campaign"
  }, 
  {
   "no_copy": 1, 
@@ -374,12 +374,12 @@
   "doctype": "DocField", 
   "label": "Company", 
   "oldfieldname": "company", 
-  "permlevel": 0, 
+  "options": "Company", 
   "fieldname": "company", 
   "fieldtype": "Link", 
   "search_index": 1, 
   "reqd": 1, 
-  "options": "Company", 
+  "permlevel": 0, 
   "in_filter": 1
  }, 
  {
@@ -392,17 +392,17 @@
  }, 
  {
   "description": "Your sales person who will contact the customer in future", 
-  "permlevel": 0, 
   "oldfieldtype": "Link", 
   "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Next Contact By", 
   "oldfieldname": "contact_by", 
   "width": "75px", 
+  "options": "Profile", 
   "fieldname": "contact_by", 
   "fieldtype": "Link", 
-  "in_filter": 1, 
-  "options": "Profile"
+  "permlevel": 0, 
+  "in_filter": 1
  }, 
  {
   "description": "Your sales person will get a reminder on this date to contact the customer", 
@@ -470,8 +470,8 @@
   "doctype": "DocPerm", 
   "submit": 0, 
   "write": 0, 
-  "cancel": 0, 
   "role": "Sales Manager", 
+  "cancel": 0, 
   "permlevel": 1
  }, 
  {
@@ -480,14 +480,15 @@
   "doctype": "DocPerm", 
   "submit": 1, 
   "write": 1, 
-  "cancel": 1, 
+  "report": 1, 
   "role": "System Manager", 
+  "cancel": 1, 
   "permlevel": 0
  }, 
  {
-  "doctype": "DocPerm", 
   "role": "System Manager", 
-  "permlevel": 1
+  "permlevel": 1, 
+  "doctype": "DocPerm"
  }, 
  {
   "amend": 1, 
@@ -495,8 +496,9 @@
   "doctype": "DocPerm", 
   "submit": 1, 
   "write": 1, 
-  "cancel": 1, 
+  "report": 1, 
   "role": "Sales User", 
+  "cancel": 1, 
   "permlevel": 0
  }, 
  {
@@ -505,8 +507,8 @@
   "doctype": "DocPerm", 
   "submit": 0, 
   "write": 0, 
-  "cancel": 0, 
   "role": "Sales User", 
+  "cancel": 0, 
   "permlevel": 1
  }, 
  {
@@ -515,8 +517,9 @@
   "doctype": "DocPerm", 
   "submit": 1, 
   "write": 1, 
-  "cancel": 1, 
+  "report": 1, 
   "role": "Sales Manager", 
+  "cancel": 1, 
   "permlevel": 0
  }
 ]
\ No newline at end of file
diff --git a/selling/doctype/quotation/quotation.py b/selling/doctype/quotation/quotation.py
index ed09ab0..111b0b4 100644
--- a/selling/doctype/quotation/quotation.py
+++ b/selling/doctype/quotation/quotation.py
@@ -17,12 +17,11 @@
 from __future__ import unicode_literals
 import webnotes
 
-from webnotes.utils import cstr, load_json
-from webnotes.model import db_exists
-from webnotes.model.doc import Document
-from webnotes.model.wrapper import getlist, copy_doclist
+from webnotes.utils import cstr, getdate
+from webnotes.model.wrapper import getlist
 from webnotes.model.code import get_obj
 from webnotes import msgprint
+from setup.utils import get_company_currency
 
 sql = webnotes.conn.sql
 	
@@ -194,7 +193,7 @@
 		sales_com_obj.check_conversion_rate(self)
 		
 		# Get total in words
-		dcc = TransactionBase().get_company_currency(self.doc.company)
+		dcc = get_company_currency(self.doc.company)
 		self.doc.in_words = sales_com_obj.get_total_in_words(dcc, self.doc.rounded_total)
 		self.doc.in_words_export = sales_com_obj.get_total_in_words(self.doc.currency, self.doc.rounded_total_export)
 
diff --git a/selling/doctype/quotation/quotation.txt b/selling/doctype/quotation/quotation.txt
index 3ebdb80..a0e0713 100644
--- a/selling/doctype/quotation/quotation.txt
+++ b/selling/doctype/quotation/quotation.txt
@@ -11,12 +11,12 @@
   "allow_attach": 1, 
   "search_fields": "status,transaction_date,customer,lead,order_type", 
   "module": "Selling", 
+  "doctype": "DocType", 
   "read_only_onload": 1, 
+  "autoname": "naming_series:", 
   "document_type": "Transaction", 
   "allow_email": 0, 
-  "autoname": "naming_series:", 
   "name": "__common__", 
-  "doctype": "DocType", 
   "max_attachments": 1, 
   "hide_toolbar": 0
  }, 
@@ -54,11 +54,11 @@
   "doctype": "DocField", 
   "label": "Naming Series", 
   "oldfieldname": "naming_series", 
-  "permlevel": 0, 
+  "options": "QTN", 
   "fieldname": "naming_series", 
   "fieldtype": "Select", 
   "reqd": 1, 
-  "options": "QTN"
+  "permlevel": 0
  }, 
  {
   "print_hide": 1, 
@@ -66,11 +66,11 @@
   "doctype": "DocField", 
   "label": "Quotation To", 
   "oldfieldname": "quotation_to", 
-  "permlevel": 0, 
+  "options": "\nLead\nCustomer", 
   "fieldname": "quotation_to", 
   "fieldtype": "Select", 
   "reqd": 1, 
-  "options": "\nLead\nCustomer", 
+  "permlevel": 0, 
   "report_hide": 0, 
   "in_filter": 1
  }, 
@@ -80,12 +80,12 @@
   "doctype": "DocField", 
   "label": "Customer", 
   "oldfieldname": "customer", 
-  "permlevel": 0, 
+  "options": "Customer", 
   "fieldname": "customer", 
   "fieldtype": "Link", 
   "search_index": 1, 
   "hidden": 0, 
-  "options": "Customer", 
+  "permlevel": 0, 
   "in_filter": 1
  }, 
  {
@@ -94,11 +94,11 @@
   "doctype": "DocField", 
   "label": "Lead", 
   "oldfieldname": "lead", 
-  "options": "Lead", 
+  "permlevel": 0, 
   "fieldname": "lead", 
   "fieldtype": "Link", 
   "hidden": 0, 
-  "permlevel": 0, 
+  "options": "Lead", 
   "in_filter": 1
  }, 
  {
@@ -189,8 +189,8 @@
   "fieldtype": "Date", 
   "search_index": 1, 
   "reqd": 1, 
-  "in_filter": 1, 
-  "permlevel": 0
+  "permlevel": 0, 
+  "in_filter": 1
  }, 
  {
   "print_hide": 1, 
@@ -218,23 +218,23 @@
   "permlevel": 0
  }, 
  {
+  "permlevel": 0, 
   "oldfieldtype": "Table", 
   "allow_on_submit": 1, 
   "doctype": "DocField", 
   "label": "Quotation Items", 
   "oldfieldname": "quotation_details", 
   "width": "40px", 
-  "options": "Quotation Item", 
   "fieldname": "quotation_details", 
   "fieldtype": "Table", 
-  "permlevel": 0
+  "options": "Quotation Item"
  }, 
  {
   "doctype": "DocField", 
-  "options": "Simple", 
+  "permlevel": 0, 
   "fieldname": "sec_break23", 
   "fieldtype": "Section Break", 
-  "permlevel": 0
+  "options": "Simple"
  }, 
  {
   "doctype": "DocField", 
@@ -285,9 +285,9 @@
   "fieldtype": "Link", 
   "search_index": 0, 
   "hidden": 0, 
-  "in_filter": 1, 
   "options": "Opportunity", 
-  "report_hide": 0
+  "report_hide": 0, 
+  "in_filter": 1
  }, 
  {
   "print_hide": 0, 
@@ -321,19 +321,19 @@
   "fieldtype": "Select", 
   "search_index": 0, 
   "reqd": 1, 
-  "in_filter": 1, 
-  "options": "link:Price List"
+  "options": "link:Price List", 
+  "in_filter": 1
  }, 
  {
   "print_hide": 1, 
   "description": "Select the currency in which price list is maintained", 
   "doctype": "DocField", 
   "label": "Price List Currency", 
-  "options": "link:Currency", 
+  "permlevel": 0, 
   "fieldname": "price_list_currency", 
   "fieldtype": "Select", 
   "reqd": 1, 
-  "permlevel": 0
+  "options": "link:Currency"
  }, 
  {
   "print_hide": 1, 
@@ -365,8 +365,8 @@
   "fieldtype": "Select", 
   "search_index": 0, 
   "reqd": 1, 
-  "in_filter": 1, 
-  "options": "link:Currency"
+  "options": "link:Currency", 
+  "in_filter": 1
  }, 
  {
   "print_hide": 1, 
@@ -396,11 +396,11 @@
   "doctype": "DocField", 
   "label": "Sales Taxes and Charges", 
   "oldfieldname": "charge", 
-  "options": "Sales Taxes and Charges Master", 
+  "permlevel": 0, 
   "fieldname": "charge", 
   "fieldtype": "Link", 
   "hidden": 0, 
-  "permlevel": 0
+  "options": "Sales Taxes and Charges Master"
  }, 
  {
   "print_hide": 1, 
@@ -417,10 +417,10 @@
   "doctype": "DocField", 
   "label": "Sales Taxes and Charges", 
   "oldfieldname": "other_charges", 
-  "options": "Sales Taxes and Charges", 
+  "permlevel": 0, 
   "fieldname": "other_charges", 
   "fieldtype": "Table", 
-  "permlevel": 0
+  "options": "Sales Taxes and Charges"
  }, 
  {
   "print_hide": 1, 
@@ -560,30 +560,30 @@
   "doctype": "DocField", 
   "label": "Select Terms and Conditions", 
   "oldfieldname": "tc_name", 
-  "options": "Terms and Conditions", 
+  "permlevel": 0, 
   "fieldname": "tc_name", 
   "fieldtype": "Link", 
-  "permlevel": 0, 
+  "options": "Terms and Conditions", 
   "report_hide": 1
  }, 
  {
   "oldfieldtype": "Button", 
   "doctype": "DocField", 
   "label": "Get Terms and Conditions", 
-  "options": "get_tc_details", 
+  "permlevel": 0, 
   "fieldname": "get_terms", 
   "fieldtype": "Button", 
-  "permlevel": 0
+  "options": "get_tc_details"
  }, 
  {
   "print_hide": 1, 
   "oldfieldtype": "HTML", 
   "doctype": "DocField", 
   "label": "Terms and Conditions HTML", 
-  "options": "You can add Terms and Notes that will be printed in the Transaction", 
+  "permlevel": 0, 
   "fieldname": "terms_html", 
   "fieldtype": "HTML", 
-  "permlevel": 0
+  "options": "You can add Terms and Notes that will be printed in the Transaction"
  }, 
  {
   "oldfieldtype": "Text Editor", 
@@ -612,11 +612,11 @@
   "print_hide": 1, 
   "doctype": "DocField", 
   "label": "Customer Address", 
-  "options": "Address", 
+  "permlevel": 0, 
   "fieldname": "customer_address", 
   "fieldtype": "Link", 
   "hidden": 0, 
-  "permlevel": 0, 
+  "options": "Address", 
   "in_filter": 1
  }, 
  {
@@ -625,12 +625,12 @@
   "doctype": "DocField", 
   "label": "Contact Person", 
   "oldfieldname": "contact_person", 
-  "permlevel": 0, 
+  "options": "Contact", 
   "fieldname": "contact_person", 
   "fieldtype": "Link", 
   "reqd": 0, 
   "hidden": 0, 
-  "options": "Contact", 
+  "permlevel": 0, 
   "in_filter": 1
  }, 
  {
@@ -646,13 +646,13 @@
   "search_index": 0, 
   "doctype": "DocField", 
   "label": "Territory", 
-  "permlevel": 0, 
+  "options": "Territory", 
   "fieldname": "territory", 
   "fieldtype": "Link", 
   "reqd": 1, 
   "hidden": 0, 
-  "in_filter": 1, 
-  "options": "Territory"
+  "permlevel": 0, 
+  "in_filter": 1
  }, 
  {
   "print_hide": 1, 
@@ -660,12 +660,12 @@
   "doctype": "DocField", 
   "label": "Customer Group", 
   "oldfieldname": "customer_group", 
-  "permlevel": 0, 
+  "options": "Customer Group", 
   "fieldname": "customer_group", 
   "fieldtype": "Link", 
   "search_index": 0, 
   "reqd": 0, 
-  "options": "Customer Group", 
+  "permlevel": 0, 
   "in_filter": 1
  }, 
  {
@@ -685,10 +685,10 @@
   "doctype": "DocField", 
   "label": "Letter Head", 
   "oldfieldname": "letter_head", 
-  "options": "link:Letter Head", 
+  "permlevel": 0, 
   "fieldname": "letter_head", 
   "fieldtype": "Select", 
-  "permlevel": 0
+  "options": "link:Letter Head"
  }, 
  {
   "print_hide": 1, 
@@ -703,8 +703,8 @@
   "fieldtype": "Link", 
   "search_index": 0, 
   "reqd": 1, 
-  "in_filter": 1, 
-  "options": "Company"
+  "options": "Company", 
+  "in_filter": 1
  }, 
  {
   "print_hide": 1, 
@@ -713,11 +713,11 @@
   "doctype": "DocField", 
   "label": "Source", 
   "oldfieldname": "source", 
-  "permlevel": 0, 
+  "options": "\nExisting Customer\nReference\nAdvertisement\nCold Calling\nExhibition\nSupplier Reference\nMass Mailing\nCustomer's Vendor\nCampaign", 
   "fieldname": "source", 
   "fieldtype": "Select", 
   "hidden": 0, 
-  "options": "\nExisting Customer\nReference\nAdvertisement\nCold Calling\nExhibition\nSupplier Reference\nMass Mailing\nCustomer's Vendor\nCampaign", 
+  "permlevel": 0, 
   "report_hide": 0
  }, 
  {
@@ -726,12 +726,12 @@
   "doctype": "DocField", 
   "label": "Fiscal Year", 
   "oldfieldname": "fiscal_year", 
-  "permlevel": 0, 
+  "options": "link:Fiscal Year", 
   "fieldname": "fiscal_year", 
   "fieldtype": "Select", 
   "search_index": 0, 
   "reqd": 1, 
-  "options": "link:Fiscal Year", 
+  "permlevel": 0, 
   "in_filter": 1
  }, 
  {
@@ -780,11 +780,11 @@
   "doctype": "DocField", 
   "label": "Campaign", 
   "oldfieldname": "campaign", 
-  "permlevel": 0, 
+  "options": "Campaign", 
   "fieldname": "campaign", 
   "fieldtype": "Link", 
   "hidden": 0, 
-  "options": "Campaign", 
+  "permlevel": 0, 
   "report_hide": 0
  }, 
  {
@@ -807,10 +807,10 @@
   "doctype": "DocField", 
   "label": "Select Print Heading", 
   "oldfieldname": "select_print_heading", 
-  "permlevel": 0, 
+  "options": "Print Heading", 
   "fieldname": "select_print_heading", 
   "fieldtype": "Link", 
-  "options": "Print Heading", 
+  "permlevel": 0, 
   "report_hide": 1
  }, 
  {
@@ -876,8 +876,8 @@
   "doctype": "DocPerm", 
   "submit": 0, 
   "write": 0, 
-  "cancel": 0, 
   "role": "Sales Manager", 
+  "cancel": 0, 
   "permlevel": 1
  }, 
  {
@@ -886,8 +886,9 @@
   "doctype": "DocPerm", 
   "submit": 1, 
   "write": 1, 
-  "cancel": 1, 
+  "report": 1, 
   "role": "Sales Manager", 
+  "cancel": 1, 
   "permlevel": 0
  }, 
  {
@@ -896,8 +897,9 @@
   "doctype": "DocPerm", 
   "submit": 1, 
   "write": 1, 
-  "cancel": 1, 
+  "report": 1, 
   "role": "Sales User", 
+  "cancel": 1, 
   "permlevel": 0
  }, 
  {
@@ -906,8 +908,8 @@
   "doctype": "DocPerm", 
   "submit": 0, 
   "write": 0, 
-  "cancel": 0, 
   "role": "Sales User", 
+  "cancel": 0, 
   "permlevel": 1
  }, 
  {
@@ -916,8 +918,9 @@
   "doctype": "DocPerm", 
   "submit": 0, 
   "write": 0, 
-  "cancel": 0, 
+  "report": 1, 
   "role": "Customer", 
+  "cancel": 0, 
   "permlevel": 0
  }, 
  {
@@ -926,8 +929,9 @@
   "doctype": "DocPerm", 
   "submit": 1, 
   "write": 1, 
-  "cancel": 1, 
+  "report": 1, 
   "role": "Maintenance Manager", 
+  "cancel": 1, 
   "permlevel": 0
  }, 
  {
@@ -936,8 +940,8 @@
   "doctype": "DocPerm", 
   "submit": 0, 
   "write": 0, 
-  "cancel": 0, 
   "role": "Maintenance Manager", 
+  "cancel": 0, 
   "permlevel": 1
  }, 
  {
@@ -946,8 +950,9 @@
   "doctype": "DocPerm", 
   "submit": 1, 
   "write": 1, 
-  "cancel": 1, 
+  "report": 1, 
   "role": "Maintenance User", 
+  "cancel": 1, 
   "permlevel": 0
  }, 
  {
@@ -956,8 +961,8 @@
   "doctype": "DocPerm", 
   "submit": 0, 
   "write": 0, 
-  "cancel": 0, 
   "role": "Maintenance User", 
+  "cancel": 0, 
   "permlevel": 1
  }
 ]
\ No newline at end of file
diff --git a/selling/doctype/sales_common/sales_common.py b/selling/doctype/sales_common/sales_common.py
index 03280e2..b0b04bf 100644
--- a/selling/doctype/sales_common/sales_common.py
+++ b/selling/doctype/sales_common/sales_common.py
@@ -23,6 +23,7 @@
 from webnotes.model.wrapper import getlist, copy_doclist
 from webnotes.model.code import get_obj
 from webnotes import form, msgprint, _
+from setup.utils import get_company_currency
 
 get_value = webnotes.conn.get_value
 
@@ -351,7 +352,7 @@
 	# Check Conversion Rate (i.e. it will not allow conversion rate to be 1 for Currency other than default currency set in Global Defaults)
 	# ===========================================================================
 	def check_conversion_rate(self, obj):
-		default_currency = TransactionBase().get_company_currency(obj.doc.company)
+		default_currency = get_company_currency(obj.doc.company)
 		if not default_currency:
 			msgprint('Message: Please enter default currency in Company Master')
 			raise Exception		
diff --git a/selling/doctype/sales_order/sales_order.py b/selling/doctype/sales_order/sales_order.py
index 3e7b03d..f035cdc 100644
--- a/selling/doctype/sales_order/sales_order.py
+++ b/selling/doctype/sales_order/sales_order.py
@@ -17,11 +17,11 @@
 from __future__ import unicode_literals
 import webnotes
 
-from webnotes.utils import cstr, date_diff, flt, getdate
-from webnotes.model import db_exists
-from webnotes.model.wrapper import getlist, copy_doclist
+from webnotes.utils import cstr, flt, getdate
+from webnotes.model.wrapper import getlist
 from webnotes.model.code import get_obj
 from webnotes import msgprint
+from setup.utils import get_company_currency
 
 sql = webnotes.conn.sql
 	
@@ -222,7 +222,7 @@
 		self.doclist = sales_com_obj.make_packing_list(self,'sales_order_details')
 
 				# get total in words
-		dcc = TransactionBase().get_company_currency(self.doc.company)		
+		dcc = get_company_currency(self.doc.company)		
 		self.doc.in_words = sales_com_obj.get_total_in_words(dcc, self.doc.rounded_total)
 		self.doc.in_words_export = sales_com_obj.get_total_in_words(self.doc.currency, self.doc.rounded_total_export)
 		
diff --git a/selling/doctype/sales_order/sales_order.txt b/selling/doctype/sales_order/sales_order.txt
index ec20859..984337d 100644
--- a/selling/doctype/sales_order/sales_order.txt
+++ b/selling/doctype/sales_order/sales_order.txt
@@ -12,9 +12,9 @@
   "search_fields": "status,transaction_date,customer,customer_name, territory,order_type,company", 
   "module": "Selling", 
   "read_only_onload": 1, 
-  "autoname": "naming_series:", 
   "document_type": "Transaction", 
   "issingle": 0, 
+  "autoname": "naming_series:", 
   "name": "__common__", 
   "doctype": "DocType"
  }, 
@@ -76,8 +76,8 @@
   "fieldtype": "Link", 
   "search_index": 1, 
   "reqd": 1, 
-  "in_filter": 1, 
-  "options": "Customer"
+  "options": "Customer", 
+  "in_filter": 1
  }, 
  {
   "doctype": "DocField", 
@@ -128,11 +128,11 @@
   "doctype": "DocField", 
   "label": "Order Type", 
   "oldfieldname": "order_type", 
-  "permlevel": 0, 
+  "options": "\nSales\nMaintenance", 
   "fieldname": "order_type", 
   "fieldtype": "Select", 
   "reqd": 1, 
-  "options": "\nSales\nMaintenance"
+  "permlevel": 0
  }, 
  {
   "oldfieldtype": "Column Break", 
@@ -156,21 +156,21 @@
   "fieldtype": "Date", 
   "search_index": 1, 
   "reqd": 1, 
-  "in_filter": 1, 
-  "permlevel": 0
+  "permlevel": 0, 
+  "in_filter": 1
  }, 
  {
   "print_hide": 1, 
-  "depends_on": "eval:doc.order_type == 'Sales'", 
+  "doctype": "DocField", 
   "search_index": 1, 
   "colour": "White:FFF", 
-  "doctype": "DocField", 
+  "oldfieldtype": "Date", 
   "label": "Expected Delivery Date", 
   "oldfieldname": "delivery_date", 
   "width": "160px", 
   "fieldname": "delivery_date", 
   "fieldtype": "Date", 
-  "oldfieldtype": "Date", 
+  "depends_on": "eval:doc.order_type == 'Sales'", 
   "reqd": 0, 
   "hidden": 0, 
   "permlevel": 0, 
@@ -211,11 +211,11 @@
   "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Shipping Address Name", 
-  "options": "Address", 
+  "permlevel": 1, 
   "fieldname": "shipping_address_name", 
   "fieldtype": "Link", 
   "hidden": 1, 
-  "permlevel": 1, 
+  "options": "Address", 
   "in_filter": 1
  }, 
  {
@@ -246,10 +246,10 @@
   "doctype": "DocField", 
   "label": "Sales Order Items", 
   "oldfieldname": "sales_order_details", 
-  "options": "Sales Order Item", 
+  "permlevel": 0, 
   "fieldname": "sales_order_details", 
   "fieldtype": "Table", 
-  "permlevel": 0
+  "options": "Sales Order Item"
  }, 
  {
   "doctype": "DocField", 
@@ -309,8 +309,8 @@
   "fieldname": "quotation_no", 
   "fieldtype": "Link", 
   "search_index": 1, 
-  "in_filter": 1, 
-  "options": "Quotation"
+  "options": "Quotation", 
+  "in_filter": 1
  }, 
  {
   "print_hide": 1, 
@@ -333,10 +333,10 @@
   "oldfieldtype": "Button", 
   "doctype": "DocField", 
   "label": "Pull Quotation Items", 
-  "options": "pull_quotation_details", 
+  "permlevel": 0, 
   "fieldname": "pull_quotation_details", 
   "fieldtype": "Button", 
-  "permlevel": 0
+  "options": "pull_quotation_details"
  }, 
  {
   "doctype": "DocField", 
@@ -366,11 +366,11 @@
   "description": "Select the currency in which price list is maintained", 
   "doctype": "DocField", 
   "label": "Price List Currency", 
-  "options": "link:Currency", 
+  "permlevel": 0, 
   "fieldname": "price_list_currency", 
   "fieldtype": "Select", 
   "reqd": 1, 
-  "permlevel": 0
+  "options": "link:Currency"
  }, 
  {
   "print_hide": 1, 
@@ -437,10 +437,10 @@
   "doctype": "DocField", 
   "label": "Sales Taxes and Charges", 
   "oldfieldname": "charge", 
-  "options": "Sales Taxes and Charges Master", 
+  "permlevel": 0, 
   "fieldname": "charge", 
   "fieldtype": "Link", 
-  "permlevel": 0
+  "options": "Sales Taxes and Charges Master"
  }, 
  {
   "oldfieldtype": "Button", 
@@ -456,10 +456,10 @@
   "doctype": "DocField", 
   "label": "Sales Taxes and Charges", 
   "oldfieldname": "other_charges", 
-  "options": "Sales Taxes and Charges", 
+  "permlevel": 0, 
   "fieldname": "other_charges", 
   "fieldtype": "Table", 
-  "permlevel": 0
+  "options": "Sales Taxes and Charges"
  }, 
  {
   "print_hide": 0, 
@@ -597,31 +597,31 @@
   "doctype": "DocField", 
   "label": "Select Terms and Conditions", 
   "oldfieldname": "tc_name", 
-  "options": "Terms and Conditions", 
+  "permlevel": 0, 
   "fieldname": "tc_name", 
   "fieldtype": "Link", 
   "search_index": 0, 
-  "permlevel": 0
+  "options": "Terms and Conditions"
  }, 
  {
   "print_hide": 1, 
   "oldfieldtype": "Button", 
   "doctype": "DocField", 
   "label": "Get Terms and Conditions", 
-  "options": "get_tc_details", 
+  "permlevel": 0, 
   "fieldname": "get_terms", 
   "fieldtype": "Button", 
-  "permlevel": 0
+  "options": "get_tc_details"
  }, 
  {
   "print_hide": 1, 
   "oldfieldtype": "HTML", 
   "doctype": "DocField", 
   "label": "Terms and Conditions HTML", 
-  "options": "You can add Terms and Notes that will be printed in the Transaction", 
+  "permlevel": 0, 
   "fieldname": "terms_html", 
   "fieldtype": "HTML", 
-  "permlevel": 0
+  "options": "You can add Terms and Notes that will be printed in the Transaction"
  }, 
  {
   "print_hide": 0, 
@@ -651,21 +651,21 @@
   "print_hide": 1, 
   "doctype": "DocField", 
   "label": "Customer Address", 
-  "options": "Address", 
+  "permlevel": 0, 
   "fieldname": "customer_address", 
   "fieldtype": "Link", 
   "hidden": 0, 
-  "permlevel": 0, 
+  "options": "Address", 
   "in_filter": 1
  }, 
  {
   "print_hide": 1, 
   "doctype": "DocField", 
   "label": "Contact Person", 
-  "options": "Contact", 
+  "permlevel": 0, 
   "fieldname": "contact_person", 
   "fieldtype": "Link", 
-  "permlevel": 0, 
+  "options": "Contact", 
   "in_filter": 1
  }, 
  {
@@ -673,11 +673,11 @@
   "search_index": 1, 
   "doctype": "DocField", 
   "label": "Territory", 
-  "options": "Territory", 
+  "permlevel": 0, 
   "fieldname": "territory", 
   "fieldtype": "Link", 
   "reqd": 1, 
-  "permlevel": 0, 
+  "options": "Territory", 
   "in_filter": 1
  }, 
  {
@@ -694,12 +694,12 @@
   "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Customer Group", 
-  "permlevel": 0, 
+  "options": "Customer Group", 
   "fieldname": "customer_group", 
   "fieldtype": "Link", 
   "reqd": 1, 
-  "in_filter": 1, 
-  "options": "Customer Group"
+  "permlevel": 0, 
+  "in_filter": 1
  }, 
  {
   "print_hide": 1, 
@@ -723,15 +723,15 @@
  }, 
  {
   "print_hide": 1, 
-  "allow_on_submit": 1, 
   "oldfieldtype": "Select", 
+  "allow_on_submit": 1, 
   "doctype": "DocField", 
   "label": "Letter Head", 
   "oldfieldname": "letter_head", 
-  "options": "link:Letter Head", 
+  "permlevel": 0, 
   "fieldname": "letter_head", 
   "fieldtype": "Select", 
-  "permlevel": 0
+  "options": "link:Letter Head"
  }, 
  {
   "print_hide": 1, 
@@ -755,11 +755,11 @@
   "doctype": "DocField", 
   "label": "Campaign", 
   "oldfieldname": "campaign", 
-  "options": "Campaign", 
+  "permlevel": 0, 
   "fieldname": "campaign", 
   "fieldtype": "Link", 
   "depends_on": "eval:doc.source == 'Campaign'", 
-  "permlevel": 0
+  "options": "Campaign"
  }, 
  {
   "print_hide": 1, 
@@ -804,8 +804,8 @@
   "fieldtype": "Link", 
   "search_index": 1, 
   "reqd": 1, 
-  "in_filter": 1, 
-  "options": "Company"
+  "options": "Company", 
+  "in_filter": 1
  }, 
  {
   "print_hide": 1, 
@@ -827,14 +827,14 @@
   "no_copy": 1, 
   "depends_on": "eval:!doc.__islocal", 
   "colour": "White:FFF", 
+  "no_column": 0, 
   "doctype": "DocField", 
   "label": "Cancel Reason", 
   "oldfieldname": "cancel_reason", 
-  "permlevel": 1, 
   "fieldname": "cancel_reason", 
   "fieldtype": "Data", 
-  "no_column": 0, 
-  "oldfieldtype": "Data"
+  "oldfieldtype": "Data", 
+  "permlevel": 1
  }, 
  {
   "print_hide": 1, 
@@ -852,10 +852,10 @@
   "doctype": "DocField", 
   "label": "Source", 
   "oldfieldname": "source", 
-  "options": "\nExisting Customer\nReference\nAdvertisement\nCold Calling\nExhibition\nSupplier Reference\nMass Mailing\nCustomer's Vendor\nCampaign", 
+  "permlevel": 0, 
   "fieldname": "source", 
   "fieldtype": "Select", 
-  "permlevel": 0
+  "options": "\nExisting Customer\nReference\nAdvertisement\nCold Calling\nExhibition\nSupplier Reference\nMass Mailing\nCustomer's Vendor\nCampaign"
  }, 
  {
   "description": "Track this Sales Order against any Project", 
@@ -869,8 +869,8 @@
   "fieldname": "project_name", 
   "fieldtype": "Link", 
   "search_index": 1, 
-  "in_filter": 1, 
-  "options": "Project"
+  "options": "Project", 
+  "in_filter": 1
  }, 
  {
   "print_hide": 1, 
@@ -902,8 +902,8 @@
   "fieldname": "per_delivered", 
   "fieldtype": "Currency", 
   "depends_on": "eval:!doc.__islocal", 
-  "in_filter": 1, 
-  "permlevel": 1
+  "permlevel": 1, 
+  "in_filter": 1
  }, 
  {
   "print_hide": 1, 
@@ -918,32 +918,32 @@
   "fieldname": "per_billed", 
   "fieldtype": "Currency", 
   "depends_on": "eval:!doc.__islocal", 
-  "in_filter": 1, 
-  "permlevel": 1
+  "permlevel": 1, 
+  "in_filter": 1
  }, 
  {
   "print_hide": 1, 
   "no_copy": 1, 
   "doctype": "DocField", 
   "label": "Delivery Status", 
-  "options": "Delivered\nNot Delivered\nPartly Delivered\nClosed\nNot Applicable", 
+  "permlevel": 0, 
   "fieldname": "delivery_status", 
   "fieldtype": "Select", 
   "no_column": 0, 
   "hidden": 1, 
-  "permlevel": 0
+  "options": "Delivered\nNot Delivered\nPartly Delivered\nClosed\nNot Applicable"
  }, 
  {
   "print_hide": 1, 
   "no_copy": 1, 
   "doctype": "DocField", 
   "label": "Billing Status", 
-  "options": "Billed\nNot Billed\nPartly Billed\nClosed", 
+  "permlevel": 0, 
   "fieldname": "billing_status", 
   "fieldtype": "Select", 
   "no_column": 0, 
   "hidden": 1, 
-  "permlevel": 0
+  "options": "Billed\nNot Billed\nPartly Billed\nClosed"
  }, 
  {
   "print_hide": 1, 
@@ -964,10 +964,10 @@
   "doctype": "DocField", 
   "label": "Packing Details", 
   "oldfieldname": "packing_details", 
-  "options": "Delivery Note Packing Item", 
+  "permlevel": 1, 
   "fieldname": "packing_details", 
   "fieldtype": "Table", 
-  "permlevel": 1
+  "options": "Delivery Note Packing Item"
  }, 
  {
   "print_hide": 1, 
@@ -1000,8 +1000,8 @@
   "fieldname": "sales_partner", 
   "fieldtype": "Link", 
   "search_index": 1, 
-  "in_filter": 1, 
-  "options": "Sales Partner"
+  "options": "Sales Partner", 
+  "in_filter": 1
  }, 
  {
   "print_hide": 1, 
@@ -1048,10 +1048,10 @@
   "doctype": "DocField", 
   "label": "Sales Team1", 
   "oldfieldname": "sales_team", 
-  "options": "Sales Team", 
+  "permlevel": 0, 
   "fieldname": "sales_team", 
   "fieldtype": "Table", 
-  "permlevel": 0
+  "options": "Sales Team"
  }, 
  {
   "print_hide": 1, 
@@ -1069,6 +1069,7 @@
   "doctype": "DocPerm", 
   "submit": 1, 
   "write": 1, 
+  "report": 1, 
   "role": "Sales User", 
   "cancel": 1, 
   "permlevel": 0
@@ -1079,6 +1080,7 @@
   "doctype": "DocPerm", 
   "submit": 1, 
   "write": 1, 
+  "report": 1, 
   "role": "Maintenance User", 
   "cancel": 1, 
   "permlevel": 0
@@ -1099,6 +1101,7 @@
   "doctype": "DocPerm", 
   "submit": 1, 
   "write": 1, 
+  "report": 1, 
   "role": "Maintenance Manager", 
   "cancel": 1, 
   "permlevel": 0
@@ -1109,6 +1112,7 @@
   "doctype": "DocPerm", 
   "submit": 1, 
   "write": 1, 
+  "report": 1, 
   "role": "Sales Manager", 
   "cancel": 1, 
   "permlevel": 0
@@ -1139,8 +1143,9 @@
   "doctype": "DocPerm", 
   "submit": 0, 
   "write": 0, 
-  "role": "Customer", 
   "cancel": 0, 
+  "role": "Customer", 
+  "report": 1, 
   "permlevel": 0, 
   "match": "customer"
  }, 
diff --git a/selling/doctype/shipping_address/shipping_address.txt b/selling/doctype/shipping_address/shipping_address.txt
index 7458403..16eff90 100755
--- a/selling/doctype/shipping_address/shipping_address.txt
+++ b/selling/doctype/shipping_address/shipping_address.txt
@@ -10,12 +10,12 @@
   "section_style": "Simple", 
   "search_fields": "customer, ship_to, shipping_address", 
   "module": "Selling", 
-  "doctype": "DocType", 
   "allow_trash": 1, 
-  "autoname": "SA.#####", 
   "document_type": "Master", 
+  "autoname": "SA.#####", 
   "name": "__common__", 
   "colour": "White:FFF", 
+  "doctype": "DocType", 
   "show_in_menu": 0, 
   "version": 8
  }, 
@@ -42,8 +42,9 @@
   "create": 1, 
   "doctype": "DocPerm", 
   "write": 1, 
-  "role": "Sales Master Manager", 
   "cancel": 1, 
+  "role": "Sales Master Manager", 
+  "report": 1, 
   "permlevel": 0
  }, 
  {
@@ -55,8 +56,9 @@
   "create": 1, 
   "doctype": "DocPerm", 
   "write": 1, 
-  "role": "Sales Manager", 
   "cancel": 1, 
+  "role": "Sales Manager", 
+  "report": 1, 
   "permlevel": 0
  }, 
  {
@@ -74,11 +76,11 @@
  {
   "doctype": "DocField", 
   "label": "Customer", 
-  "options": "Customer", 
+  "permlevel": 0, 
   "fieldname": "customer", 
   "fieldtype": "Link", 
   "reqd": 1, 
-  "permlevel": 0
+  "options": "Customer"
  }, 
  {
   "doctype": "DocField", 
diff --git a/setup/doctype/authorization_control/authorization_control.py b/setup/doctype/authorization_control/authorization_control.py
index 9455f8a..8e02bdf 100644
--- a/setup/doctype/authorization_control/authorization_control.py
+++ b/setup/doctype/authorization_control/authorization_control.py
@@ -18,9 +18,9 @@
 import webnotes
 
 from webnotes.utils import cstr, flt, has_common, make_esc
-from webnotes.model import db_exists
-from webnotes.model.wrapper import getlist, copy_doclist
+from webnotes.model.wrapper import getlist
 from webnotes import session, msgprint
+from setup.utils import get_company_currency
 
 sql = webnotes.conn.sql
 	
@@ -52,7 +52,7 @@
 			if not has_common(appr_roles, webnotes.user.get_roles()) and not has_common(appr_users, [session['user']]):
 				msg, add_msg = '',''
 				if max_amount:
-					dcc = TransactionBase().get_company_currency(self.doc.company)
+					dcc = get_company_currency(self.doc.company)
 					if based_on == 'Grand Total': msg = "since Grand Total exceeds %s. %s" % (dcc, flt(max_amount))
 					elif based_on == 'Itemwise Discount': msg = "since Discount exceeds %s for Item Code : %s" % (cstr(max_amount)+'%', item)
 					elif based_on == 'Average Discount' or based_on == 'Customerwise Discount': msg = "since Discount exceeds %s" % (cstr(max_amount)+'%')
diff --git a/setup/doctype/authorization_rule/authorization_rule.txt b/setup/doctype/authorization_rule/authorization_rule.txt
index a7d024a..c5949c0 100644
--- a/setup/doctype/authorization_rule/authorization_rule.txt
+++ b/setup/doctype/authorization_rule/authorization_rule.txt
@@ -7,12 +7,12 @@
   "modified": "2012-12-17 17:59:54"
  }, 
  {
-  "autoname": "AR.####", 
+  "document_type": "Master", 
   "name": "__common__", 
-  "search_fields": "transaction,based_on,system_user,system_role,approving_user,approving_role", 
+  "autoname": "AR.####", 
   "module": "Setup", 
   "doctype": "DocType", 
-  "document_type": "Master"
+  "search_fields": "transaction,based_on,system_user,system_role,approving_user,approving_role"
  }, 
  {
   "name": "__common__", 
@@ -32,6 +32,7 @@
   "cancel": 1, 
   "parenttype": "DocType", 
   "role": "System Manager", 
+  "report": 1, 
   "permlevel": 0, 
   "parentfield": "permissions"
  }, 
diff --git a/setup/doctype/brand/brand.txt b/setup/doctype/brand/brand.txt
index f3078ca..2264678 100644
--- a/setup/doctype/brand/brand.txt
+++ b/setup/doctype/brand/brand.txt
@@ -7,10 +7,10 @@
   "modified": "2012-12-25 13:20:51"
  }, 
  {
-  "autoname": "field:brand", 
   "name": "__common__", 
-  "doctype": "DocType", 
+  "autoname": "field:brand", 
   "module": "Setup", 
+  "doctype": "DocType", 
   "in_dialog": 1, 
   "document_type": "Master"
  }, 
@@ -29,6 +29,7 @@
   "read": 1, 
   "doctype": "DocPerm", 
   "parenttype": "DocType", 
+  "report": 1, 
   "permlevel": 0, 
   "parentfield": "permissions"
  }, 
diff --git a/setup/doctype/company/company.txt b/setup/doctype/company/company.txt
index 056508a..e39a416 100644
--- a/setup/doctype/company/company.txt
+++ b/setup/doctype/company/company.txt
@@ -7,11 +7,11 @@
   "modified": "2012-12-03 11:26:05"
  }, 
  {
-  "autoname": "field:company_name", 
   "description": "Legal Entity / Subsidiary with a separate Chart of Accounts belonging to the Organization.", 
+  "autoname": "field:company_name", 
   "allow_rename": 1, 
-  "doctype": "DocType", 
   "module": "Setup", 
+  "doctype": "DocType", 
   "document_type": "Master", 
   "name": "__common__"
  }, 
@@ -85,11 +85,11 @@
  {
   "doctype": "DocField", 
   "label": "Default Currency", 
-  "options": "link:Currency", 
+  "permlevel": 0, 
   "fieldname": "default_currency", 
   "fieldtype": "Select", 
   "reqd": 1, 
-  "permlevel": 0
+  "options": "link:Currency"
  }, 
  {
   "no_copy": 1, 
@@ -97,12 +97,12 @@
   "doctype": "DocField", 
   "label": "Default Bank Account", 
   "oldfieldname": "default_bank_account", 
+  "permlevel": 0, 
   "trigger": "Client", 
   "fieldname": "default_bank_account", 
   "fieldtype": "Link", 
   "depends_on": "eval:!doc.__islocal", 
-  "options": "Account", 
-  "permlevel": 0
+  "options": "Account"
  }, 
  {
   "no_copy": 1, 
@@ -110,12 +110,12 @@
   "doctype": "DocField", 
   "label": "Receivables Group", 
   "oldfieldname": "receivables_group", 
+  "permlevel": 0, 
   "trigger": "Client", 
   "fieldname": "receivables_group", 
   "fieldtype": "Link", 
   "depends_on": "eval:!doc.__islocal", 
-  "options": "Account", 
-  "permlevel": 0
+  "options": "Account"
  }, 
  {
   "no_copy": 1, 
@@ -123,12 +123,12 @@
   "doctype": "DocField", 
   "label": "Payables Group", 
   "oldfieldname": "payables_group", 
+  "permlevel": 0, 
   "trigger": "Client", 
   "fieldname": "payables_group", 
   "fieldtype": "Link", 
   "depends_on": "eval:!doc.__islocal", 
-  "options": "Account", 
-  "permlevel": 0
+  "options": "Account"
  }, 
  {
   "oldfieldtype": "Column Break", 
@@ -164,22 +164,22 @@
   "doctype": "DocField", 
   "label": "If Yearly Budget Exceeded", 
   "oldfieldname": "yearly_bgt_flag", 
-  "options": "\nWarn\nIgnore\nStop", 
+  "permlevel": 0, 
   "fieldname": "yearly_bgt_flag", 
   "fieldtype": "Select", 
   "depends_on": "eval:!doc.__islocal", 
-  "permlevel": 0
+  "options": "\nWarn\nIgnore\nStop"
  }, 
  {
   "oldfieldtype": "Select", 
   "doctype": "DocField", 
   "label": "If Monthly Budget Exceeded", 
   "oldfieldname": "monthly_bgt_flag", 
-  "options": "\nWarn\nIgnore\nStop", 
+  "permlevel": 0, 
   "fieldname": "monthly_bgt_flag", 
   "fieldtype": "Select", 
   "depends_on": "eval:!doc.__islocal", 
-  "permlevel": 0
+  "options": "\nWarn\nIgnore\nStop"
  }, 
  {
   "description": "For reference only.", 
@@ -212,30 +212,30 @@
   "doctype": "DocField", 
   "label": "Phone No", 
   "oldfieldname": "phone_no", 
-  "options": "Phone", 
+  "permlevel": 0, 
   "fieldname": "phone_no", 
   "fieldtype": "Data", 
-  "permlevel": 0
+  "options": "Phone"
  }, 
  {
   "oldfieldtype": "Data", 
   "doctype": "DocField", 
   "label": "Fax", 
   "oldfieldname": "fax", 
-  "options": "Phone", 
+  "permlevel": 0, 
   "fieldname": "fax", 
   "fieldtype": "Data", 
-  "permlevel": 0
+  "options": "Phone"
  }, 
  {
   "oldfieldtype": "Data", 
   "doctype": "DocField", 
   "label": "Email", 
   "oldfieldname": "email", 
-  "options": "Email", 
+  "permlevel": 0, 
   "fieldname": "email", 
   "fieldtype": "Data", 
-  "permlevel": 0
+  "options": "Email"
  }, 
  {
   "oldfieldtype": "Data", 
@@ -284,6 +284,7 @@
   "doctype": "DocPerm", 
   "submit": 0, 
   "write": 1, 
+  "report": 1, 
   "role": "System Manager", 
   "cancel": 1, 
   "permlevel": 0
@@ -294,14 +295,15 @@
   "doctype": "DocPerm", 
   "submit": 0, 
   "write": 1, 
+  "report": 1, 
   "role": "System Manager", 
   "cancel": 1, 
   "permlevel": 0
  }, 
  {
-  "doctype": "DocPerm", 
-  "role": "All", 
   "cancel": 0, 
-  "permlevel": 1
+  "role": "All", 
+  "permlevel": 1, 
+  "doctype": "DocPerm"
  }
 ]
\ No newline at end of file
diff --git a/setup/doctype/country/country.txt b/setup/doctype/country/country.txt
index 87a9d60..e4bb408 100644
--- a/setup/doctype/country/country.txt
+++ b/setup/doctype/country/country.txt
@@ -1,81 +1,82 @@
 [
  {
-  "owner": "Administrator", 
+  "creation": "2013-01-19 10:23:30", 
   "docstatus": 0, 
-  "creation": "2013-01-17 17:02:24", 
+  "modified": "2013-01-21 15:56:50", 
   "modified_by": "Administrator", 
-  "modified": "2013-01-17 17:04:08"
+  "owner": "Administrator"
  }, 
  {
-  "read_only": 0, 
   "autoname": "field:country_name", 
-  "in_create": 0, 
   "doctype": "DocType", 
-  "module": "Setup", 
   "document_type": "Master", 
-  "name": "__common__"
+  "in_create": 0, 
+  "module": "Setup", 
+  "name": "__common__", 
+  "read_only": 0
  }, 
  {
-  "name": "__common__", 
-  "parent": "Country", 
   "doctype": "DocField", 
-  "parenttype": "DocType", 
-  "permlevel": 0, 
-  "parentfield": "fields"
- }, 
- {
   "name": "__common__", 
   "parent": "Country", 
-  "read": 1, 
+  "parentfield": "fields", 
+  "parenttype": "DocType", 
+  "permlevel": 0
+ }, 
+ {
   "create": 1, 
   "doctype": "DocPerm", 
-  "write": 1, 
+  "name": "__common__", 
+  "parent": "Country", 
+  "parentfield": "permissions", 
   "parenttype": "DocType", 
   "permlevel": 0, 
-  "parentfield": "permissions"
+  "read": 1, 
+  "report": 1, 
+  "submit": 0, 
+  "write": 1
  }, 
  {
-  "name": "Country", 
-  "doctype": "DocType"
+  "doctype": "DocType", 
+  "name": "Country"
  }, 
  {
-  "oldfieldtype": "Data", 
   "doctype": "DocField", 
-  "label": "Country Name", 
-  "oldfieldname": "country_name", 
   "fieldname": "country_name", 
   "fieldtype": "Data", 
+  "label": "Country Name", 
+  "oldfieldname": "country_name", 
+  "oldfieldtype": "Data", 
   "reqd": 1
  }, 
  {
   "doctype": "DocField", 
-  "label": "Date Format", 
   "fieldname": "date_format", 
-  "fieldtype": "Data"
+  "fieldtype": "Data", 
+  "label": "Date Format"
  }, 
  {
   "doctype": "DocField", 
-  "label": "Time Zones", 
   "fieldname": "time_zones", 
-  "fieldtype": "Text"
+  "fieldtype": "Text", 
+  "label": "Time Zones"
  }, 
  {
   "amend": 0, 
+  "cancel": 0, 
   "doctype": "DocPerm", 
-  "submit": 0, 
-  "role": "Sales Master Manager", 
-  "cancel": 0
+  "role": "Sales Master Manager"
  }, 
  {
-  "role": "Purchase Master Manager", 
-  "doctype": "DocPerm"
+  "doctype": "DocPerm", 
+  "role": "Purchase Master Manager"
  }, 
  {
-  "role": "HR User", 
-  "doctype": "DocPerm"
+  "doctype": "DocPerm", 
+  "role": "HR User"
  }, 
  {
-  "role": "HR Manager", 
-  "doctype": "DocPerm"
+  "doctype": "DocPerm", 
+  "role": "HR Manager"
  }
 ]
\ No newline at end of file
diff --git a/setup/doctype/customer_group/customer_group.txt b/setup/doctype/customer_group/customer_group.txt
index dc5641c..3ba5c11 100644
--- a/setup/doctype/customer_group/customer_group.txt
+++ b/setup/doctype/customer_group/customer_group.txt
@@ -7,15 +7,15 @@
   "modified": "2012-12-06 10:28:54"
  }, 
  {
-  "in_create": 1, 
-  "search_fields": "name,parent_customer_group", 
-  "module": "Setup", 
-  "document_type": "Master", 
   "read_only": 1, 
+  "document_type": "Master", 
+  "in_create": 1, 
   "autoname": "field:customer_group_name", 
-  "name": "__common__", 
   "allow_rename": 1, 
-  "doctype": "DocType"
+  "module": "Setup", 
+  "doctype": "DocType", 
+  "search_fields": "name,parent_customer_group", 
+  "name": "__common__"
  }, 
  {
   "name": "__common__", 
@@ -64,12 +64,12 @@
   "doctype": "DocField", 
   "label": "Parent Customer Group", 
   "oldfieldname": "parent_customer_group", 
+  "permlevel": 0, 
   "trigger": "Client", 
   "fieldname": "parent_customer_group", 
   "fieldtype": "Link", 
   "reqd": 1, 
-  "options": "Customer Group", 
-  "permlevel": 0
+  "options": "Customer Group"
  }, 
  {
   "description": "Only leaf nodes are allowed in transaction", 
@@ -78,11 +78,11 @@
   "doctype": "DocField", 
   "label": "Has Child Node", 
   "oldfieldname": "is_group", 
-  "options": "\nYes\nNo", 
+  "permlevel": 0, 
   "fieldname": "is_group", 
   "fieldtype": "Select", 
   "reqd": 1, 
-  "permlevel": 0
+  "options": "\nYes\nNo"
  }, 
  {
   "doctype": "DocField", 
@@ -95,10 +95,10 @@
   "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Default Price List", 
-  "options": "Price List", 
+  "permlevel": 0, 
   "fieldname": "default_price_list", 
   "fieldtype": "Link", 
-  "permlevel": 0
+  "options": "Price List"
  }, 
  {
   "print_hide": 1, 
@@ -135,11 +135,11 @@
   "doctype": "DocField", 
   "label": "old_parent", 
   "oldfieldname": "old_parent", 
-  "permlevel": 0, 
+  "options": "Customer Group", 
   "fieldname": "old_parent", 
   "fieldtype": "Link", 
   "hidden": 1, 
-  "options": "Customer Group", 
+  "permlevel": 0, 
   "report_hide": 1
  }, 
  {
@@ -154,6 +154,7 @@
   "create": 0, 
   "doctype": "DocPerm", 
   "write": 0, 
+  "report": 1, 
   "role": "Sales Manager", 
   "cancel": 0, 
   "permlevel": 0
@@ -178,6 +179,7 @@
   "create": 0, 
   "doctype": "DocPerm", 
   "write": 0, 
+  "report": 1, 
   "role": "Sales User", 
   "cancel": 0, 
   "permlevel": 0
@@ -186,6 +188,7 @@
   "create": 1, 
   "doctype": "DocPerm", 
   "write": 1, 
+  "report": 1, 
   "role": "Sales Master Manager", 
   "cancel": 1, 
   "permlevel": 0
diff --git a/setup/doctype/email_digest/email_digest.txt b/setup/doctype/email_digest/email_digest.txt
index f74f1ec..ac5844a 100644
--- a/setup/doctype/email_digest/email_digest.txt
+++ b/setup/doctype/email_digest/email_digest.txt
@@ -11,11 +11,11 @@
   "description": "Send regular summary reports via Email.", 
   "module": "Setup", 
   "doctype": "DocType", 
-  "autoname": "Prompt", 
   "document_type": "System", 
+  "_last_update": "1324556758", 
+  "autoname": "Prompt", 
   "name": "__common__", 
   "colour": "White:FFF", 
-  "_last_update": "1324556758", 
   "show_in_menu": 0, 
   "version": 1
  }, 
@@ -62,21 +62,21 @@
  {
   "doctype": "DocField", 
   "label": "For Company", 
-  "options": "link:Company", 
+  "permlevel": 0, 
   "fieldname": "company", 
   "fieldtype": "Select", 
   "reqd": 1, 
-  "permlevel": 0
+  "options": "link:Company"
  }, 
  {
   "allow_on_submit": 0, 
   "doctype": "DocField", 
   "label": "How frequently?", 
-  "permlevel": 0, 
+  "options": "Daily\nWeekly\nMonthly", 
   "fieldname": "frequency", 
   "fieldtype": "Select", 
   "reqd": 1, 
-  "options": "Daily\nWeekly\nMonthly"
+  "permlevel": 0
  }, 
  {
   "depends_on": "eval:doc.enabled", 
@@ -284,6 +284,7 @@
   "doctype": "DocPerm", 
   "write": 1, 
   "cancel": 1, 
+  "report": 1, 
   "permlevel": 0
  }, 
  {
diff --git a/setup/doctype/global_defaults/global_defaults.py b/setup/doctype/global_defaults/global_defaults.py
index 1d93e24..042b9a3 100644
--- a/setup/doctype/global_defaults/global_defaults.py
+++ b/setup/doctype/global_defaults/global_defaults.py
@@ -21,20 +21,21 @@
 
 keydict = {
 	"fiscal_year": "current_fiscal_year",
-    'company': 'default_company',
-    'currency': 'default_currency',
-    'price_list_name': 'default_price_list',
+	'company': 'default_company',
+	'currency': 'default_currency',
+	'price_list_name': 'default_price_list',
 	'price_list_currency': 'default_price_list_currency',
-    'item_group': 'default_item_group',
-    'customer_group': 'default_customer_group',
-    'cust_master_name': 'cust_master_name', 
-    'supplier_type': 'default_supplier_type',
-    'supp_master_name': 'supp_master_name', 
-    'territory': 'default_territory',
-    'stock_uom': 'default_stock_uom',
-    'fraction_currency': 'default_currency_fraction',
-    'valuation_method': 'default_valuation_method',
+	'item_group': 'default_item_group',
+	'customer_group': 'default_customer_group',
+	'cust_master_name': 'cust_master_name', 
+	'supplier_type': 'default_supplier_type',
+	'supp_master_name': 'supp_master_name', 
+	'territory': 'default_territory',
+	'stock_uom': 'default_stock_uom',
+	'fraction_currency': 'default_currency_fraction',
+	'valuation_method': 'default_valuation_method',
 	'date_format': 'date_format',
+	'number_format': 'number_format',
 	'currency_format':'default_currency_format',
 	'account_url':'account_url',
 	'allow_negative_stock' : 'allow_negative_stock',
diff --git a/setup/doctype/global_defaults/global_defaults.txt b/setup/doctype/global_defaults/global_defaults.txt
index e4b36a9..6854fc7 100644
--- a/setup/doctype/global_defaults/global_defaults.txt
+++ b/setup/doctype/global_defaults/global_defaults.txt
@@ -1,228 +1,237 @@
 [
  {
-  "owner": "Administrator", 
+  "creation": "2013-01-10 16:34:23", 
   "docstatus": 0, 
-  "creation": "2012-10-26 16:49:40", 
+  "modified": "2013-01-21 16:32:30", 
   "modified_by": "Administrator", 
-  "modified": "2012-12-12 14:13:31"
+  "owner": "Administrator"
  }, 
  {
-  "in_create": 1, 
-  "allow_print": 1, 
-  "module": "Setup", 
-  "read_only": 1, 
+  "allow_copy": 1, 
   "allow_email": 1, 
-  "issingle": 1, 
-  "name": "__common__", 
+  "allow_print": 1, 
   "doctype": "DocType", 
   "hide_toolbar": 0, 
-  "allow_copy": 1
+  "in_create": 1, 
+  "issingle": 1, 
+  "module": "Setup", 
+  "name": "__common__", 
+  "read_only": 1
  }, 
  {
-  "name": "__common__", 
-  "parent": "Global Defaults", 
   "doctype": "DocField", 
-  "parenttype": "DocType", 
-  "permlevel": 0, 
-  "parentfield": "fields"
- }, 
- {
   "name": "__common__", 
   "parent": "Global Defaults", 
-  "read": 1, 
+  "parentfield": "fields", 
+  "parenttype": "DocType", 
+  "permlevel": 0
+ }, 
+ {
   "doctype": "DocPerm", 
+  "name": "__common__", 
+  "parent": "Global Defaults", 
+  "parentfield": "permissions", 
   "parenttype": "DocType", 
-  "parentfield": "permissions"
+  "read": 1, 
+  "report": 0, 
+  "submit": 0
  }, 
  {
-  "name": "Global Defaults", 
-  "doctype": "DocType"
+  "doctype": "DocType", 
+  "name": "Global Defaults"
  }, 
  {
   "doctype": "DocField", 
-  "label": "General", 
   "fieldname": "general", 
-  "fieldtype": "Section Break"
+  "fieldtype": "Section Break", 
+  "label": "General"
  }, 
  {
   "description": "Session Expiry in Hours e.g. 06:00", 
   "doctype": "DocField", 
-  "label": "Session Expiry", 
   "fieldname": "session_expiry", 
-  "fieldtype": "Data"
+  "fieldtype": "Data", 
+  "label": "Session Expiry"
  }, 
  {
   "doctype": "DocField", 
-  "label": "Company", 
   "fieldname": "company", 
-  "fieldtype": "Section Break"
+  "fieldtype": "Section Break", 
+  "label": "Company"
  }, 
  {
   "doctype": "DocField", 
-  "label": "Default Company", 
   "fieldname": "default_company", 
   "fieldtype": "Link", 
-  "reqd": 0, 
-  "options": "Company"
+  "label": "Default Company", 
+  "options": "Company", 
+  "reqd": 0
  }, 
  {
   "doctype": "DocField", 
-  "label": "Current Fiscal Year", 
   "fieldname": "current_fiscal_year", 
   "fieldtype": "Link", 
-  "reqd": 1, 
-  "options": "Fiscal Year"
+  "label": "Current Fiscal Year", 
+  "options": "Fiscal Year", 
+  "reqd": 1
  }, 
  {
   "doctype": "DocField", 
-  "label": "Date Format", 
   "fieldname": "date_format", 
   "fieldtype": "Select", 
+  "label": "Date Format", 
   "options": "yyyy-mm-dd\ndd-mm-yyyy\ndd/mm/yyyy\nmm/dd/yyyy\nmm-dd-yyyy"
  }, 
  {
   "doctype": "DocField", 
-  "width": "50%", 
+  "fieldname": "number_format", 
+  "fieldtype": "Select", 
+  "label": "Number Format", 
+  "options": "\n#,###.##\n#.###,##\n# ###.##\n#,##,###.##\n######"
+ }, 
+ {
+  "doctype": "DocField", 
   "fieldname": "column_break1", 
-  "fieldtype": "Column Break"
+  "fieldtype": "Column Break", 
+  "width": "50%"
  }, 
  {
   "default": "INR", 
   "doctype": "DocField", 
-  "label": "Default Currency", 
   "fieldname": "default_currency", 
   "fieldtype": "Select", 
-  "reqd": 1, 
-  "options": "link:Currency"
+  "label": "Default Currency", 
+  "options": "link:Currency", 
+  "reqd": 1
  }, 
  {
   "doctype": "DocField", 
-  "label": "Default Currency Format", 
   "fieldname": "default_currency_format", 
   "fieldtype": "Select", 
+  "label": "Default Currency Format", 
   "options": "Lacs\nMillions"
  }, 
  {
   "doctype": "DocField", 
-  "label": "Default Currency Fraction", 
   "fieldname": "default_currency_fraction", 
-  "fieldtype": "Data"
+  "fieldtype": "Data", 
+  "label": "Default Currency Fraction"
  }, 
  {
   "doctype": "DocField", 
-  "label": "Stock", 
   "fieldname": "stock", 
-  "fieldtype": "Section Break"
+  "fieldtype": "Section Break", 
+  "label": "Stock"
  }, 
  {
   "doctype": "DocField", 
-  "width": "50%", 
   "fieldname": "column_break2", 
-  "fieldtype": "Column Break"
+  "fieldtype": "Column Break", 
+  "width": "50%"
  }, 
  {
   "doctype": "DocField", 
-  "label": "Default Item Group", 
   "fieldname": "default_item_group", 
   "fieldtype": "Link", 
+  "label": "Default Item Group", 
   "options": "Item Group"
  }, 
  {
   "doctype": "DocField", 
-  "label": "IGHelp", 
   "fieldname": "ighelp", 
   "fieldtype": "HTML", 
+  "label": "IGHelp", 
   "options": "<a href=\"#!Sales Browser/Item Group\">To manage Item Groups, click here</a>"
  }, 
  {
   "doctype": "DocField", 
-  "label": "Default Stock UOM", 
   "fieldname": "default_stock_uom", 
   "fieldtype": "Link", 
+  "label": "Default Stock UOM", 
   "options": "UOM"
  }, 
  {
   "doctype": "DocField", 
-  "label": "Default Valuation Method", 
   "fieldname": "default_valuation_method", 
   "fieldtype": "Select", 
+  "label": "Default Valuation Method", 
   "options": "FIFO\nMoving Average"
  }, 
  {
   "description": "Applicable only if valuation method is moving average", 
   "doctype": "DocField", 
-  "label": "Allow Negative Stock", 
   "fieldname": "allow_negative_stock", 
-  "fieldtype": "Check"
+  "fieldtype": "Check", 
+  "label": "Allow Negative Stock"
  }, 
  {
   "doctype": "DocField", 
-  "label": "Default Warehouse Type", 
   "fieldname": "default_warehouse_type", 
   "fieldtype": "Link", 
+  "label": "Default Warehouse Type", 
   "options": "Warehouse Type"
  }, 
  {
   "doctype": "DocField", 
-  "label": "Raise Purchase Request when stock reaches re-order level", 
   "fieldname": "auto_indent", 
-  "fieldtype": "Check"
+  "fieldtype": "Check", 
+  "label": "Raise Purchase Request when stock reaches re-order level"
  }, 
  {
   "default": "1", 
   "doctype": "DocField", 
-  "width": "50%", 
   "fieldname": "column_break3", 
-  "fieldtype": "Column Break"
+  "fieldtype": "Column Break", 
+  "width": "50%"
  }, 
  {
   "description": "Percentage you are allowed to receive or deliver more against the quantity ordered. <p>For example: If you have ordered 100 units. and your Allowance is 10% then you are allowed to receive 110 units</p>", 
   "doctype": "DocField", 
-  "label": "Allowance Percent", 
   "fieldname": "tolerance", 
-  "fieldtype": "Currency"
+  "fieldtype": "Currency", 
+  "label": "Allowance Percent"
  }, 
  {
   "description": "Stock level frozen up to this date, nobody can do / modify entry except authorized person", 
   "doctype": "DocField", 
-  "label": "Stock Frozen Upto", 
   "fieldname": "stock_frozen_upto", 
-  "fieldtype": "Date"
+  "fieldtype": "Date", 
+  "label": "Stock Frozen Upto"
  }, 
  {
   "description": "Users with this role are allowed to do / modify stock entry before frozen date", 
   "doctype": "DocField", 
-  "label": "Authorized Role (Frozen Entry)", 
   "fieldname": "stock_auth_role", 
   "fieldtype": "Link", 
+  "label": "Authorized Role (Frozen Entry)", 
   "options": "Role"
  }, 
  {
   "doctype": "DocField", 
-  "label": "Accounts", 
   "fieldname": "accounts", 
-  "fieldtype": "Section Break"
+  "fieldtype": "Section Break", 
+  "label": "Accounts"
  }, 
  {
   "description": "Accounting entry frozen up to this date, nobody can do / modify entry except authorized person", 
   "doctype": "DocField", 
-  "label": "Accounts Frozen Upto", 
   "fieldname": "acc_frozen_upto", 
-  "fieldtype": "Date"
+  "fieldtype": "Date", 
+  "label": "Accounts Frozen Upto"
  }, 
  {
   "description": "Users with this role are allowed to do / modify accounting entry before frozen date", 
   "doctype": "DocField", 
-  "label": "Authourized Role (Frozen Entry)", 
   "fieldname": "bde_auth_role", 
   "fieldtype": "Link", 
+  "label": "Authourized Role (Frozen Entry)", 
   "options": "Role"
  }, 
  {
   "doctype": "DocField", 
-  "label": "Credit Controller", 
   "fieldname": "credit_controller", 
   "fieldtype": "Link", 
+  "label": "Credit Controller", 
   "options": "Role"
  }, 
  {
@@ -232,197 +241,187 @@
  }, 
  {
   "doctype": "DocField", 
-  "label": "Account Info", 
   "fieldname": "account_info", 
   "fieldtype": "HTML", 
+  "label": "Account Info", 
   "options": "<div class=\"help-box\">For more accounting defaults, Open <a href=\"#!List/Company\">Company</a></div>"
  }, 
  {
   "doctype": "DocField", 
-  "label": "Selling", 
   "fieldname": "selling", 
-  "fieldtype": "Section Break"
+  "fieldtype": "Section Break", 
+  "label": "Selling"
  }, 
  {
   "default": "Customer Name", 
   "doctype": "DocField", 
-  "label": "Customer Master created by ", 
   "fieldname": "cust_master_name", 
   "fieldtype": "Select", 
+  "label": "Customer Master created by ", 
   "options": "Customer Name\nNaming Series"
  }, 
  {
   "doctype": "DocField", 
-  "label": "Default Customer Group", 
   "fieldname": "default_customer_group", 
   "fieldtype": "Link", 
+  "label": "Default Customer Group", 
   "options": "Customer Group"
  }, 
  {
   "doctype": "DocField", 
-  "label": "CGHelp", 
   "fieldname": "cghelp", 
   "fieldtype": "HTML", 
+  "label": "CGHelp", 
   "options": "<a href=\"#!Sales Browser/Customer Group\">To manage Customer Groups, click here</a>"
  }, 
  {
   "doctype": "DocField", 
-  "label": "Default Territory", 
   "fieldname": "default_territory", 
   "fieldtype": "Link", 
+  "label": "Default Territory", 
   "options": "Territory"
  }, 
  {
   "doctype": "DocField", 
-  "label": "TerritoryHelp", 
   "fieldname": "territoryhelp", 
   "fieldtype": "HTML", 
+  "label": "TerritoryHelp", 
   "options": "<a href=\"#!Sales Browser/Territory\">To manage Territory, click here</a>"
  }, 
  {
   "doctype": "DocField", 
-  "width": "50%", 
   "fieldname": "column_break5", 
-  "fieldtype": "Column Break"
+  "fieldtype": "Column Break", 
+  "width": "50%"
  }, 
  {
   "doctype": "DocField", 
-  "label": "Default Price List", 
   "fieldname": "default_price_list", 
   "fieldtype": "Link", 
+  "label": "Default Price List", 
   "options": "Price List"
  }, 
  {
   "doctype": "DocField", 
-  "label": "Default Price List Currency", 
   "fieldname": "default_price_list_currency", 
   "fieldtype": "Link", 
+  "label": "Default Price List Currency", 
   "options": "Currency"
  }, 
  {
   "default": "No", 
   "doctype": "DocField", 
-  "label": "Sales Order Required", 
   "fieldname": "so_required", 
   "fieldtype": "Select", 
+  "label": "Sales Order Required", 
   "options": "No\nYes"
  }, 
  {
   "default": "No", 
   "doctype": "DocField", 
-  "label": "Delivery Note Required", 
   "fieldname": "dn_required", 
   "fieldtype": "Select", 
+  "label": "Delivery Note Required", 
   "options": "No\nYes"
  }, 
  {
   "doctype": "DocField", 
-  "label": "Buying", 
   "fieldname": "buying", 
-  "fieldtype": "Section Break"
+  "fieldtype": "Section Break", 
+  "label": "Buying"
  }, 
  {
   "doctype": "DocField", 
-  "label": "Default Supplier Type", 
   "fieldname": "default_supplier_type", 
   "fieldtype": "Link", 
+  "label": "Default Supplier Type", 
   "options": "Supplier Type"
  }, 
  {
   "default": "Supplier Name", 
   "doctype": "DocField", 
-  "label": "Supplier Master created by ", 
   "fieldname": "supp_master_name", 
   "fieldtype": "Select", 
+  "label": "Supplier Master created by ", 
   "options": "Supplier Name\nNaming Series"
  }, 
  {
   "doctype": "DocField", 
-  "width": "50%", 
   "fieldname": "column_break6", 
-  "fieldtype": "Column Break"
+  "fieldtype": "Column Break", 
+  "width": "50%"
  }, 
  {
   "default": "No", 
   "doctype": "DocField", 
-  "label": "Purchase Order Required", 
   "fieldname": "po_required", 
   "fieldtype": "Select", 
+  "label": "Purchase Order Required", 
   "options": "No\nYes"
  }, 
  {
   "default": "No", 
   "doctype": "DocField", 
-  "label": "Purchase Receipt Required", 
   "fieldname": "pr_required", 
   "fieldtype": "Select", 
+  "label": "Purchase Receipt Required", 
   "options": "No\nYes"
  }, 
  {
   "doctype": "DocField", 
-  "label": "Maintain same rate throughout purchase cycle", 
   "fieldname": "maintain_same_rate", 
-  "fieldtype": "Check"
+  "fieldtype": "Check", 
+  "label": "Maintain same rate throughout purchase cycle"
  }, 
  {
   "doctype": "DocField", 
-  "label": "HR", 
   "fieldname": "hr", 
   "fieldtype": "Section Break", 
+  "label": "HR", 
   "options": "<div style=\"padding-top: 8px;\" class=\"columnHeading\">HR</div>"
  }, 
  {
   "description": "Employee record is created using selected field. ", 
   "doctype": "DocField", 
-  "label": "Employee Records to be created by ", 
   "fieldname": "emp_created_by", 
   "fieldtype": "Select", 
+  "label": "Employee Records to be created by ", 
   "options": "\nNaming Series\nEmployee Number"
  }, 
  {
   "doctype": "DocField", 
-  "label": "System", 
   "fieldname": "system", 
-  "fieldtype": "Section Break"
+  "fieldtype": "Section Break", 
+  "label": "System"
  }, 
  {
   "doctype": "DocField", 
-  "label": "SMS Sender Name", 
   "fieldname": "sms_sender_name", 
-  "fieldtype": "Data"
- }, 
- {
-  "amend": 0, 
-  "create": 1, 
-  "doctype": "DocPerm", 
-  "submit": 0, 
-  "write": 1, 
-  "role": "System Manager", 
-  "cancel": 0, 
-  "permlevel": 0
+  "fieldtype": "Data", 
+  "label": "SMS Sender Name"
  }, 
  {
   "create": 1, 
   "doctype": "DocPerm", 
-  "write": 1, 
+  "permlevel": 0, 
   "role": "System Manager", 
-  "permlevel": 0
+  "write": 1
  }, 
  {
   "doctype": "DocPerm", 
-  "write": 1, 
+  "permlevel": 1, 
   "role": "System Manager", 
-  "permlevel": 1
+  "write": 1
  }, 
  {
   "doctype": "DocPerm", 
-  "role": "All", 
-  "permlevel": 1
+  "permlevel": 1, 
+  "role": "All"
  }, 
  {
   "doctype": "DocPerm", 
-  "write": 1, 
+  "permlevel": 2, 
   "role": "System Manager", 
-  "permlevel": 2
+  "write": 1
  }
 ]
\ No newline at end of file
diff --git a/setup/doctype/item_group/item_group.txt b/setup/doctype/item_group/item_group.txt
index dec92a3..2bc42f0 100644
--- a/setup/doctype/item_group/item_group.txt
+++ b/setup/doctype/item_group/item_group.txt
@@ -7,18 +7,18 @@
   "modified": "2012-12-27 18:50:20"
  }, 
  {
-  "in_create": 1, 
+  "allow_attach": 1, 
   "search_fields": "parent_item_group", 
   "module": "Setup", 
+  "doctype": "DocType", 
   "autoname": "field:item_group_name", 
   "document_type": "Master", 
-  "allow_attach": 1, 
+  "description": "Item Classification", 
   "issingle": 0, 
   "name": "__common__", 
   "allow_rename": 1, 
-  "description": "Item Classification", 
-  "doctype": "DocType", 
-  "max_attachments": 3
+  "max_attachments": 3, 
+  "in_create": 1
  }, 
  {
   "name": "__common__", 
@@ -59,9 +59,9 @@
   "fieldtype": "Data"
  }, 
  {
-  "doctype": "DocField", 
   "fieldname": "cb0", 
-  "fieldtype": "Column Break"
+  "fieldtype": "Column Break", 
+  "doctype": "DocField"
  }, 
  {
   "no_copy": 0, 
@@ -90,9 +90,9 @@
  }, 
  {
   "doctype": "DocField", 
-  "label": "Website Settings", 
   "fieldname": "sb9", 
-  "fieldtype": "Section Break"
+  "fieldtype": "Section Break", 
+  "label": "Website Settings"
  }, 
  {
   "description": "Check this if you want to show in website", 
@@ -177,8 +177,8 @@
   "doctype": "DocPerm", 
   "submit": 0, 
   "write": 0, 
-  "cancel": 0, 
   "role": "Material Manager", 
+  "cancel": 0, 
   "permlevel": 1
  }, 
  {
@@ -187,8 +187,9 @@
   "doctype": "DocPerm", 
   "submit": 0, 
   "write": 0, 
-  "cancel": 0, 
+  "report": 1, 
   "role": "Material Manager", 
+  "cancel": 0, 
   "permlevel": 0
  }, 
  {
@@ -197,8 +198,8 @@
   "doctype": "DocPerm", 
   "submit": 0, 
   "write": 0, 
-  "cancel": 0, 
   "role": "Material User", 
+  "cancel": 0, 
   "permlevel": 1
  }, 
  {
@@ -207,24 +208,27 @@
   "doctype": "DocPerm", 
   "submit": 0, 
   "write": 0, 
-  "cancel": 0, 
+  "report": 1, 
   "role": "Material User", 
+  "cancel": 0, 
   "permlevel": 0
  }, 
  {
   "create": 1, 
   "doctype": "DocPerm", 
   "write": 1, 
+  "cancel": 1, 
   "role": "System Manager", 
-  "cancel": 1, 
+  "report": 1, 
   "permlevel": 0
  }, 
  {
   "create": 1, 
   "doctype": "DocPerm", 
   "write": 1, 
-  "role": "Material Master Manager", 
   "cancel": 1, 
+  "role": "Material Master Manager", 
+  "report": 1, 
   "permlevel": 0
  }
 ]
\ No newline at end of file
diff --git a/setup/doctype/naming_series_options/naming_series_options.txt b/setup/doctype/naming_series_options/naming_series_options.txt
index 64738bf..6115971 100644
--- a/setup/doctype/naming_series_options/naming_series_options.txt
+++ b/setup/doctype/naming_series_options/naming_series_options.txt
@@ -11,12 +11,12 @@
   "in_create": 1, 
   "module": "Setup", 
   "doctype": "DocType", 
-  "autoname": "__NSO.#####", 
-  "show_in_menu": 0, 
   "read_only": 0, 
+  "autoname": "__NSO.#####", 
   "name": "__common__", 
   "colour": "White:FFF", 
   "server_code_error": " ", 
+  "show_in_menu": 0, 
   "version": 5
  }, 
  {
@@ -32,6 +32,7 @@
   "read": 1, 
   "name": "__common__", 
   "doctype": "DocPerm", 
+  "report": 1, 
   "parenttype": "DocType", 
   "role": "System Manager", 
   "permlevel": 0, 
diff --git a/setup/doctype/price_list/price_list.txt b/setup/doctype/price_list/price_list.txt
index 1e3f9f8..1be614c 100644
--- a/setup/doctype/price_list/price_list.txt
+++ b/setup/doctype/price_list/price_list.txt
@@ -8,16 +8,16 @@
  }, 
  {
   "section_style": "Simple", 
+  "doctype": "DocType", 
   "allow_attach": 0, 
   "allow_print": 1, 
   "module": "Setup", 
-  "doctype": "DocType", 
-  "allow_trash": 1, 
   "server_code_error": " ", 
+  "allow_trash": 1, 
+  "autoname": "field:price_list_name", 
   "document_type": "Master", 
   "description": "Price List Master", 
   "allow_email": 1, 
-  "autoname": "field:price_list_name", 
   "name": "__common__", 
   "colour": "White:FFF", 
   "_last_update": "1303100817", 
@@ -38,8 +38,8 @@
   "name": "__common__", 
   "parent": "Price List", 
   "amend": 0, 
-  "doctype": "DocPerm", 
   "submit": 0, 
+  "doctype": "DocPerm", 
   "read": 1, 
   "parenttype": "DocType", 
   "parentfield": "permissions"
@@ -84,6 +84,7 @@
   "create": 0, 
   "doctype": "DocPerm", 
   "write": 0, 
+  "report": 1, 
   "role": "Sales Manager", 
   "cancel": 0, 
   "permlevel": 0
@@ -100,6 +101,7 @@
   "create": 0, 
   "doctype": "DocPerm", 
   "write": 0, 
+  "report": 1, 
   "role": "Sales User", 
   "cancel": 0, 
   "permlevel": 0
@@ -108,6 +110,7 @@
   "create": 1, 
   "doctype": "DocPerm", 
   "write": 1, 
+  "report": 1, 
   "role": "Sales Master Manager", 
   "cancel": 1, 
   "permlevel": 0
diff --git a/setup/doctype/print_heading/print_heading.txt b/setup/doctype/print_heading/print_heading.txt
index 825accb..11929a0 100644
--- a/setup/doctype/print_heading/print_heading.txt
+++ b/setup/doctype/print_heading/print_heading.txt
@@ -10,13 +10,13 @@
   "section_style": "Simple", 
   "search_fields": "print_heading", 
   "module": "Setup", 
-  "doctype": "DocType", 
   "allow_trash": 1, 
-  "document_type": "Master", 
   "autoname": "field:print_heading", 
+  "document_type": "Master", 
+  "_last_update": "1294312215", 
   "name": "__common__", 
   "colour": "White:FFF", 
-  "_last_update": "1294312215", 
+  "doctype": "DocType", 
   "server_code_error": " ", 
   "version": 27
  }, 
@@ -30,10 +30,11 @@
  {
   "parent": "Print Heading", 
   "read": 1, 
-  "doctype": "DocPerm", 
+  "report": 1, 
   "cancel": 1, 
   "name": "__common__", 
   "create": 1, 
+  "doctype": "DocPerm", 
   "write": 1, 
   "parenttype": "DocType", 
   "role": "All", 
diff --git a/setup/doctype/quotation_lost_reason/quotation_lost_reason.txt b/setup/doctype/quotation_lost_reason/quotation_lost_reason.txt
index 8554aeb..8cb6090 100644
--- a/setup/doctype/quotation_lost_reason/quotation_lost_reason.txt
+++ b/setup/doctype/quotation_lost_reason/quotation_lost_reason.txt
@@ -9,13 +9,13 @@
  {
   "section_style": "Simple", 
   "module": "Setup", 
-  "server_code_error": " ", 
-  "allow_trash": 1, 
   "doctype": "DocType", 
-  "autoname": "field:order_lost_reason", 
+  "allow_trash": 1, 
   "document_type": "Master", 
+  "autoname": "field:order_lost_reason", 
   "name": "__common__", 
   "colour": "White:FFF", 
+  "server_code_error": " ", 
   "show_in_menu": 0, 
   "version": 4
  }, 
@@ -35,6 +35,7 @@
   "write": 1, 
   "cancel": 1, 
   "parenttype": "DocType", 
+  "report": 1, 
   "permlevel": 0, 
   "parentfield": "permissions"
  }, 
diff --git a/setup/doctype/sales_partner/sales_partner.txt b/setup/doctype/sales_partner/sales_partner.txt
index a0cfd16..59b4a49 100644
--- a/setup/doctype/sales_partner/sales_partner.txt
+++ b/setup/doctype/sales_partner/sales_partner.txt
@@ -8,11 +8,11 @@
  }, 
  {
   "read_only": 0, 
-  "autoname": "field:partner_name", 
   "in_create": 0, 
+  "autoname": "field:partner_name", 
   "name": "__common__", 
-  "doctype": "DocType", 
   "module": "Setup", 
+  "doctype": "DocType", 
   "document_type": "Master", 
   "description": "A third party distributor / dealer / commission agent / affiliate / reseller who sells the companies products for a commission."
  }, 
@@ -61,11 +61,11 @@
   "doctype": "DocField", 
   "label": "Partner Type", 
   "oldfieldname": "partner_type", 
-  "options": "\nChannel Partner\nDistributor\nDealer\nAgent\nRetailer\nImplementation Partner\nReseller", 
+  "permlevel": 0, 
   "fieldname": "partner_type", 
   "fieldtype": "Select", 
   "search_index": 0, 
-  "permlevel": 0, 
+  "options": "\nChannel Partner\nDistributor\nDealer\nAgent\nRetailer\nImplementation Partner\nReseller", 
   "in_filter": 1
  }, 
  {
@@ -89,11 +89,11 @@
  {
   "doctype": "DocField", 
   "label": "Territory", 
-  "options": "Territory", 
+  "permlevel": 0, 
   "fieldname": "territory", 
   "fieldtype": "Link", 
   "reqd": 1, 
-  "permlevel": 0
+  "options": "Territory"
  }, 
  {
   "doctype": "DocField", 
@@ -106,10 +106,10 @@
   "depends_on": "eval:doc.__islocal", 
   "doctype": "DocField", 
   "label": "Address Desc", 
-  "options": "<em>Addresses will appear only when you save the customer</em>", 
+  "permlevel": 0, 
   "fieldname": "address_desc", 
   "fieldtype": "HTML", 
-  "permlevel": 0
+  "options": "<em>Addresses will appear only when you save the customer</em>"
  }, 
  {
   "doctype": "DocField", 
@@ -128,10 +128,10 @@
   "depends_on": "eval:doc.__islocal", 
   "doctype": "DocField", 
   "label": "Contact Desc", 
-  "options": "<em>Contact Details will appear only when you save the customer</em>", 
+  "permlevel": 0, 
   "fieldname": "contact_desc", 
   "fieldtype": "HTML", 
-  "permlevel": 0
+  "options": "<em>Contact Details will appear only when you save the customer</em>"
  }, 
  {
   "doctype": "DocField", 
@@ -153,11 +153,11 @@
   "doctype": "DocField", 
   "label": "Partner Target Detail", 
   "oldfieldname": "partner_target_details", 
-  "options": "Target Detail", 
+  "permlevel": 0, 
   "fieldname": "partner_target_details", 
   "fieldtype": "Table", 
   "reqd": 0, 
-  "permlevel": 0
+  "options": "Target Detail"
  }, 
  {
   "description": "Select Budget Distribution to unevenly distribute targets across months.", 
@@ -165,10 +165,10 @@
   "doctype": "DocField", 
   "label": "Target Distribution", 
   "oldfieldname": "distribution_id", 
-  "options": "Budget Distribution", 
+  "permlevel": 0, 
   "fieldname": "distribution_id", 
   "fieldtype": "Link", 
-  "permlevel": 0
+  "options": "Budget Distribution"
  }, 
  {
   "amend": 0, 
@@ -186,6 +186,7 @@
   "doctype": "DocPerm", 
   "submit": 0, 
   "write": 0, 
+  "report": 1, 
   "role": "Sales Manager", 
   "cancel": 0, 
   "permlevel": 0
@@ -206,6 +207,7 @@
   "doctype": "DocPerm", 
   "submit": 0, 
   "write": 0, 
+  "report": 1, 
   "role": "Sales User", 
   "cancel": 0, 
   "permlevel": 0
@@ -216,6 +218,7 @@
   "doctype": "DocPerm", 
   "submit": 0, 
   "write": 1, 
+  "report": 1, 
   "role": "Sales Master Manager", 
   "cancel": 1, 
   "permlevel": 0
@@ -234,8 +237,9 @@
   "create": 1, 
   "doctype": "DocPerm", 
   "write": 1, 
+  "cancel": 1, 
   "role": "System Manager", 
-  "cancel": 1, 
+  "report": 1, 
   "permlevel": 0
  }, 
  {
diff --git a/setup/doctype/sales_person/sales_person.txt b/setup/doctype/sales_person/sales_person.txt
index d036565..b46cd49 100644
--- a/setup/doctype/sales_person/sales_person.txt
+++ b/setup/doctype/sales_person/sales_person.txt
@@ -7,14 +7,14 @@
   "modified": "2012-12-06 10:30:15"
  }, 
  {
-  "autoname": "field:sales_person_name", 
+  "document_type": "Master", 
   "in_create": 1, 
-  "name": "__common__", 
+  "autoname": "field:sales_person_name", 
   "allow_rename": 1, 
-  "search_fields": "name,parent_sales_person", 
+  "name": "__common__", 
   "module": "Setup", 
   "doctype": "DocType", 
-  "document_type": "Master", 
+  "search_fields": "name,parent_sales_person", 
   "description": "All Sales Transactions can be tagged against multiple **Sales Persons** so that you can set and monitor targets."
  }, 
  {
@@ -66,23 +66,23 @@
   "doctype": "DocField", 
   "label": "Parent Sales Person", 
   "oldfieldname": "parent_sales_person", 
-  "permlevel": 0, 
   "trigger": "Client", 
   "fieldname": "parent_sales_person", 
   "fieldtype": "Link", 
   "reqd": 1, 
-  "options": "Sales Person"
+  "options": "Sales Person", 
+  "permlevel": 0
  }, 
  {
   "oldfieldtype": "Select", 
   "doctype": "DocField", 
   "label": "Has Child Node", 
   "oldfieldname": "is_group", 
-  "options": "\nYes\nNo", 
+  "permlevel": 0, 
   "fieldname": "is_group", 
   "fieldtype": "Select", 
   "reqd": 1, 
-  "permlevel": 0
+  "options": "\nYes\nNo"
  }, 
  {
   "doctype": "DocField", 
@@ -92,10 +92,10 @@
  }, 
  {
   "doctype": "DocField", 
-  "label": "Employee", 
   "options": "Employee", 
   "fieldname": "employee", 
   "fieldtype": "Link", 
+  "label": "Employee", 
   "permlevel": 0
  }, 
  {
@@ -153,10 +153,10 @@
   "doctype": "DocField", 
   "label": "Target Details1", 
   "oldfieldname": "target_details", 
-  "options": "Target Detail", 
+  "permlevel": 0, 
   "fieldname": "target_details", 
   "fieldtype": "Table", 
-  "permlevel": 0
+  "options": "Target Detail"
  }, 
  {
   "description": "Select Budget Distribution to unevenly distribute targets across months.", 
@@ -165,11 +165,11 @@
   "doctype": "DocField", 
   "label": "Target Distribution", 
   "oldfieldname": "distribution_id", 
-  "options": "Budget Distribution", 
+  "permlevel": 0, 
   "fieldname": "distribution_id", 
   "fieldtype": "Link", 
   "search_index": 0, 
-  "permlevel": 0
+  "options": "Budget Distribution"
  }, 
  {
   "create": 0, 
@@ -183,6 +183,7 @@
   "create": 0, 
   "doctype": "DocPerm", 
   "write": 0, 
+  "report": 1, 
   "role": "Sales Manager", 
   "cancel": 0, 
   "permlevel": 0
@@ -199,6 +200,7 @@
   "create": 0, 
   "doctype": "DocPerm", 
   "write": 0, 
+  "report": 1, 
   "role": "Sales User", 
   "cancel": 0, 
   "permlevel": 0
@@ -207,6 +209,7 @@
   "create": 1, 
   "doctype": "DocPerm", 
   "write": 1, 
+  "report": 1, 
   "role": "Sales Master Manager", 
   "cancel": 1, 
   "permlevel": 0
diff --git a/setup/doctype/state/state.txt b/setup/doctype/state/state.txt
index 8e25d94..2433cf9 100644
--- a/setup/doctype/state/state.txt
+++ b/setup/doctype/state/state.txt
@@ -7,25 +7,25 @@
   "modified": "2012-03-27 14:36:25"
  }, 
  {
+  "show_in_menu": 0, 
   "section_style": "Simple", 
   "in_create": 0, 
   "module": "Setup", 
-  "server_code_error": " ", 
+  "autoname": "field:state_name", 
   "document_type": "Master", 
   "read_only": 0, 
-  "autoname": "field:state_name", 
   "name": "__common__", 
   "colour": "White:FFF", 
   "doctype": "DocType", 
-  "show_in_menu": 0, 
+  "server_code_error": " ", 
   "version": 14
  }, 
  {
   "name": "__common__", 
   "parent": "State", 
   "doctype": "DocField", 
-  "reqd": 1, 
   "parenttype": "DocType", 
+  "reqd": 1, 
   "permlevel": 0, 
   "parentfield": "fields"
  }, 
@@ -36,6 +36,7 @@
   "create": 1, 
   "doctype": "DocPerm", 
   "write": 1, 
+  "report": 1, 
   "parenttype": "DocType", 
   "permlevel": 0, 
   "parentfield": "permissions"
diff --git a/setup/doctype/supplier_type/supplier_type.txt b/setup/doctype/supplier_type/supplier_type.txt
index 96de4a2..44b4651 100644
--- a/setup/doctype/supplier_type/supplier_type.txt
+++ b/setup/doctype/supplier_type/supplier_type.txt
@@ -7,11 +7,11 @@
   "modified": "2012-12-06 10:29:04"
  }, 
  {
-  "autoname": "field:supplier_type", 
   "name": "__common__", 
+  "autoname": "field:supplier_type", 
   "allow_rename": 1, 
-  "doctype": "DocType", 
   "module": "Setup", 
+  "doctype": "DocType", 
   "document_type": "Master"
  }, 
  {
@@ -25,8 +25,8 @@
   "name": "__common__", 
   "parent": "Supplier Type", 
   "amend": 0, 
-  "doctype": "DocPerm", 
   "submit": 0, 
+  "doctype": "DocPerm", 
   "read": 1, 
   "parenttype": "DocType", 
   "parentfield": "permissions"
@@ -66,6 +66,7 @@
   "create": 0, 
   "doctype": "DocPerm", 
   "write": 0, 
+  "report": 1, 
   "role": "Purchase Manager", 
   "cancel": 0, 
   "permlevel": 0
@@ -82,6 +83,7 @@
   "create": 0, 
   "doctype": "DocPerm", 
   "write": 0, 
+  "report": 1, 
   "role": "Purchase User", 
   "cancel": 0, 
   "permlevel": 0
@@ -90,6 +92,7 @@
   "create": 1, 
   "doctype": "DocPerm", 
   "write": 1, 
+  "report": 1, 
   "role": "Purchase Master Manager", 
   "cancel": 1, 
   "permlevel": 0
diff --git a/setup/doctype/terms_and_conditions/terms_and_conditions.txt b/setup/doctype/terms_and_conditions/terms_and_conditions.txt
index d4057c6..da319bb 100644
--- a/setup/doctype/terms_and_conditions/terms_and_conditions.txt
+++ b/setup/doctype/terms_and_conditions/terms_and_conditions.txt
@@ -10,14 +10,14 @@
   "section_style": "Simple", 
   "description": "Standard Terms and Conditions that can be added to Sales and Purchases.\n\nExamples:\n\n1. Validity of the offer.\n1. Payment Terms (In Advance, On Credit, part advance etc).\n1. What is extra (or payable by the Customer).\n1. Safety / usage warning.\n1. Warranty if any.\n1. Returns Policy.\n1. Terms of shipping, if applicable.\n1. Ways of addressing disputes, indemnity, liability, etc.\n1. Address and Contact of your Company.", 
   "module": "Setup", 
-  "doctype": "DocType", 
-  "allow_trash": 1, 
   "server_code_error": " ", 
-  "document_type": "Master", 
+  "allow_trash": 1, 
   "autoname": "field:title", 
+  "document_type": "Master", 
+  "_last_update": "1322549700", 
   "name": "__common__", 
   "colour": "White:FFF", 
-  "_last_update": "1322549700", 
+  "doctype": "DocType", 
   "show_in_menu": 0, 
   "version": 1
  }, 
@@ -56,6 +56,7 @@
   "doctype": "DocPerm", 
   "submit": 0, 
   "write": 1, 
+  "report": 1, 
   "role": "Sales Master Manager", 
   "cancel": 1, 
   "permlevel": 0
@@ -76,6 +77,7 @@
   "doctype": "DocPerm", 
   "submit": 0, 
   "write": 0, 
+  "report": 1, 
   "role": "Sales User", 
   "cancel": 0, 
   "permlevel": 0
@@ -89,16 +91,18 @@
   "create": 1, 
   "doctype": "DocPerm", 
   "write": 1, 
-  "role": "System Manager", 
   "cancel": 1, 
+  "role": "System Manager", 
+  "report": 1, 
   "permlevel": 0
  }, 
  {
   "create": 1, 
   "doctype": "DocPerm", 
   "write": 1, 
-  "role": "Accounts User", 
   "cancel": 1, 
+  "role": "Accounts User", 
+  "report": 1, 
   "permlevel": 0
  }, 
  {
diff --git a/setup/doctype/territory/territory.txt b/setup/doctype/territory/territory.txt
index e431eb2..220d832 100644
--- a/setup/doctype/territory/territory.txt
+++ b/setup/doctype/territory/territory.txt
@@ -7,11 +7,11 @@
   "modified": "2012-12-06 10:29:39"
  }, 
  {
-  "in_create": 1, 
+  "description": "Classification of Customers by region", 
   "search_fields": "name,parent_territory,territory_manager", 
   "module": "Setup", 
   "document_type": "Master", 
-  "description": "Classification of Customers by region", 
+  "in_create": 1, 
   "read_only": 1, 
   "autoname": "field:territory_name", 
   "name": "__common__", 
@@ -65,12 +65,12 @@
   "doctype": "DocField", 
   "label": "Parent Territory", 
   "oldfieldname": "parent_territory", 
+  "permlevel": 0, 
   "trigger": "Client", 
   "fieldname": "parent_territory", 
   "fieldtype": "Link", 
   "reqd": 1, 
-  "options": "Territory", 
-  "permlevel": 0
+  "options": "Territory"
  }, 
  {
   "description": "Only leaf nodes are allowed in transaction", 
@@ -79,11 +79,11 @@
   "doctype": "DocField", 
   "label": "Has Child Node", 
   "oldfieldname": "is_group", 
-  "options": "\nYes\nNo", 
+  "permlevel": 0, 
   "fieldname": "is_group", 
   "fieldtype": "Select", 
   "reqd": 1, 
-  "permlevel": 0
+  "options": "\nYes\nNo"
  }, 
  {
   "doctype": "DocField", 
@@ -98,12 +98,12 @@
   "doctype": "DocField", 
   "label": "Territory Manager", 
   "oldfieldname": "territory_manager", 
-  "permlevel": 0, 
+  "options": "Sales Person", 
   "fieldname": "territory_manager", 
   "fieldtype": "Link", 
   "search_index": 1, 
-  "in_filter": 1, 
-  "options": "Sales Person"
+  "permlevel": 0, 
+  "in_filter": 1
  }, 
  {
   "print_hide": 1, 
@@ -142,11 +142,11 @@
   "doctype": "DocField", 
   "label": "old_parent", 
   "oldfieldname": "old_parent", 
-  "permlevel": 0, 
+  "options": "Territory", 
   "fieldname": "old_parent", 
   "fieldtype": "Link", 
   "hidden": 1, 
-  "options": "Territory", 
+  "permlevel": 0, 
   "report_hide": 1
  }, 
  {
@@ -164,10 +164,10 @@
   "doctype": "DocField", 
   "label": "Target Details", 
   "oldfieldname": "target_details", 
-  "options": "Target Detail", 
+  "permlevel": 0, 
   "fieldname": "target_details", 
   "fieldtype": "Table", 
-  "permlevel": 0
+  "options": "Target Detail"
  }, 
  {
   "description": "Select Budget Distribution to unevenly distribute targets across months.", 
@@ -176,57 +176,60 @@
   "doctype": "DocField", 
   "label": "Target Distribution", 
   "oldfieldname": "distribution_id", 
-  "options": "Budget Distribution", 
+  "permlevel": 0, 
   "fieldname": "distribution_id", 
   "fieldtype": "Link", 
-  "permlevel": 0
+  "options": "Budget Distribution"
  }, 
  {
   "create": 0, 
   "doctype": "DocPerm", 
   "write": 0, 
-  "cancel": 0, 
   "role": "Sales Manager", 
+  "cancel": 0, 
   "permlevel": 1
  }, 
  {
   "create": 0, 
   "doctype": "DocPerm", 
   "write": 0, 
-  "cancel": 0, 
+  "report": 1, 
   "role": "Sales Manager", 
+  "cancel": 0, 
   "permlevel": 0
  }, 
  {
   "create": 0, 
   "doctype": "DocPerm", 
   "write": 0, 
-  "cancel": 0, 
   "role": "Sales Master Manager", 
+  "cancel": 0, 
   "permlevel": 1
  }, 
  {
   "create": 0, 
   "doctype": "DocPerm", 
   "write": 0, 
-  "cancel": 0, 
   "role": "Sales User", 
+  "cancel": 0, 
   "permlevel": 1
  }, 
  {
   "create": 0, 
   "doctype": "DocPerm", 
   "write": 0, 
-  "cancel": 0, 
+  "report": 1, 
   "role": "Sales User", 
+  "cancel": 0, 
   "permlevel": 0
  }, 
  {
   "create": 1, 
   "doctype": "DocPerm", 
   "write": 1, 
-  "cancel": 1, 
+  "report": 1, 
   "role": "Sales Master Manager", 
+  "cancel": 1, 
   "permlevel": 0
  }
 ]
\ No newline at end of file
diff --git a/setup/doctype/uom/uom.txt b/setup/doctype/uom/uom.txt
index beb3868..45ab99e 100644
--- a/setup/doctype/uom/uom.txt
+++ b/setup/doctype/uom/uom.txt
@@ -9,14 +9,14 @@
  {
   "section_style": "Tabbed", 
   "module": "Setup", 
-  "doctype": "DocType", 
-  "allow_trash": 1, 
   "server_code_error": " ", 
-  "document_type": "Master", 
+  "allow_trash": 1, 
   "autoname": "field:uom_name", 
+  "document_type": "Master", 
+  "_last_update": "1307707462", 
   "name": "__common__", 
   "colour": "White:FFF", 
-  "_last_update": "1307707462", 
+  "doctype": "DocType", 
   "show_in_menu": 0, 
   "version": 5
  }, 
@@ -31,8 +31,8 @@
   "name": "__common__", 
   "parent": "UOM", 
   "read": 1, 
-  "doctype": "DocPerm", 
   "submit": 0, 
+  "doctype": "DocPerm", 
   "amend": 0, 
   "parenttype": "DocType", 
   "parentfield": "permissions"
@@ -45,6 +45,7 @@
   "create": 1, 
   "doctype": "DocPerm", 
   "write": 1, 
+  "report": 1, 
   "role": "Material Master Manager", 
   "cancel": 1, 
   "permlevel": 0
@@ -61,6 +62,7 @@
   "create": 0, 
   "doctype": "DocPerm", 
   "write": 0, 
+  "report": 1, 
   "role": "Material Manager", 
   "cancel": 0, 
   "permlevel": 0
@@ -77,6 +79,7 @@
   "create": 0, 
   "doctype": "DocPerm", 
   "write": 0, 
+  "report": 1, 
   "role": "Material User", 
   "cancel": 0, 
   "permlevel": 0
diff --git a/setup/doctype/warehouse_type/warehouse_type.txt b/setup/doctype/warehouse_type/warehouse_type.txt
index e5c5422..522b555 100644
--- a/setup/doctype/warehouse_type/warehouse_type.txt
+++ b/setup/doctype/warehouse_type/warehouse_type.txt
@@ -13,10 +13,10 @@
   "doctype": "DocType", 
   "allow_trash": 1, 
   "autoname": "field:warehouse_type", 
-  "show_in_menu": 0, 
   "name": "__common__", 
   "colour": "White:FFF", 
   "server_code_error": " ", 
+  "show_in_menu": 0, 
   "version": 6
  }, 
  {
@@ -30,8 +30,8 @@
   "name": "__common__", 
   "parent": "Warehouse Type", 
   "read": 1, 
-  "doctype": "DocPerm", 
   "submit": 0, 
+  "doctype": "DocPerm", 
   "amend": 0, 
   "parenttype": "DocType", 
   "parentfield": "permissions"
@@ -44,6 +44,7 @@
   "create": 1, 
   "doctype": "DocPerm", 
   "write": 1, 
+  "report": 1, 
   "role": "Material Master Manager", 
   "cancel": 1, 
   "permlevel": 0
@@ -60,6 +61,7 @@
   "create": 0, 
   "doctype": "DocPerm", 
   "write": 0, 
+  "report": 1, 
   "role": "Material Manager", 
   "cancel": 0, 
   "permlevel": 0
@@ -76,6 +78,7 @@
   "create": 0, 
   "doctype": "DocPerm", 
   "write": 0, 
+  "report": 1, 
   "role": "Material User", 
   "cancel": 0, 
   "permlevel": 0
diff --git a/setup/doctype/workflow_rule/workflow_rule.txt b/setup/doctype/workflow_rule/workflow_rule.txt
index dfa555f..5ff0a4f 100644
--- a/setup/doctype/workflow_rule/workflow_rule.txt
+++ b/setup/doctype/workflow_rule/workflow_rule.txt
@@ -10,12 +10,12 @@
   "section_style": "Tray", 
   "search_fields": "select_form,rule_status", 
   "module": "Setup", 
-  "server_code_error": " ", 
   "doctype": "DocType", 
-  "autoname": "field:rule_name", 
   "document_type": "Master", 
+  "autoname": "field:rule_name", 
   "name": "__common__", 
   "colour": "White:FFF", 
+  "server_code_error": " ", 
   "show_in_menu": 0, 
   "version": 31
  }, 
@@ -30,6 +30,7 @@
  {
   "parent": "Workflow Rule", 
   "read": 1, 
+  "report": 1, 
   "name": "__common__", 
   "create": 1, 
   "doctype": "DocPerm", 
diff --git a/setup/utils.py b/setup/utils.py
new file mode 100644
index 0000000..396dc16
--- /dev/null
+++ b/setup/utils.py
@@ -0,0 +1,49 @@
+# 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 import _, msgprint
+import json
+
+def get_company_currency(company):
+	currency = webnotes.conn.get_value("Company", company, "default_currency")
+	if not currency:
+		currency = webnotes.conn.get_default("currency")
+	if not currency:
+		msgprint(_('Please specify Default Currency in Company Master \
+			and Global Defaults'), raise_exception=True)
+		
+	return currency
+
+@webnotes.whitelist()
+def get_price_list_currency(args):
+	"""
+		args = {
+			"price_list_name": "Something",
+			"use_for": "buying" or "selling"
+		}
+	"""
+	if isinstance(args, basestring):
+		args = json.loads(args)
+	
+	result = webnotes.conn.sql("""select ref_currency from `tabItem Price`
+		where price_list_name=%s and `%s`=1""" % ("%s", args.get("use_for")),
+		(args.get("price_list_name"),))
+	if result and len(result)==1:
+		return {"price_list_currency": result[0][0]}
+	else:
+		return {}
diff --git a/stock/doctype/batch/batch.txt b/stock/doctype/batch/batch.txt
index 8579cf9..51206a5 100644
--- a/stock/doctype/batch/batch.txt
+++ b/stock/doctype/batch/batch.txt
@@ -9,13 +9,13 @@
  {
   "section_style": "Simple", 
   "module": "Stock", 
-  "server_code_error": " ", 
-  "allow_trash": 1, 
   "doctype": "DocType", 
-  "autoname": "field:batch_id", 
+  "allow_trash": 1, 
   "document_type": "Master", 
+  "autoname": "field:batch_id", 
   "name": "__common__", 
   "colour": "White:FFF", 
+  "server_code_error": " ", 
   "version": 12
  }, 
  {
@@ -43,6 +43,7 @@
   "doctype": "DocPerm", 
   "write": 1, 
   "cancel": 1, 
+  "report": 1, 
   "permlevel": 0
  }, 
  {
@@ -111,10 +112,10 @@
   "doctype": "DocField", 
   "label": "Item", 
   "oldfieldname": "item", 
-  "permlevel": 0, 
+  "options": "Item", 
   "fieldname": "item", 
   "fieldtype": "Link", 
   "reqd": 1, 
-  "options": "Item"
+  "permlevel": 0
  }
 ]
\ No newline at end of file
diff --git a/stock/doctype/bin/bin.txt b/stock/doctype/bin/bin.txt
index d284738..a4ecad3 100644
--- a/stock/doctype/bin/bin.txt
+++ b/stock/doctype/bin/bin.txt
@@ -12,9 +12,9 @@
   "search_fields": "item_code,warehouse", 
   "module": "Stock", 
   "server_code_error": " ", 
+  "autoname": "BIN/.#######", 
   "read_only": 0, 
   "_last_update": "1322549701", 
-  "autoname": "BIN/.#######", 
   "name": "__common__", 
   "colour": "White:FFF", 
   "doctype": "DocType", 
@@ -36,6 +36,7 @@
   "read": 1, 
   "doctype": "DocPerm", 
   "parenttype": "DocType", 
+  "report": 1, 
   "permlevel": 0, 
   "parentfield": "permissions"
  }, 
diff --git a/stock/doctype/delivery_note/delivery_note.py b/stock/doctype/delivery_note/delivery_note.py
index 411ce5c..53f66c3 100644
--- a/stock/doctype/delivery_note/delivery_note.py
+++ b/stock/doctype/delivery_note/delivery_note.py
@@ -18,10 +18,10 @@
 import webnotes
 
 from webnotes.utils import cstr, flt, getdate
-from webnotes.model import db_exists
-from webnotes.model.wrapper import getlist, copy_doclist
+from webnotes.model.wrapper import getlist
 from webnotes.model.code import get_obj
 from webnotes import msgprint
+from setup.utils import get_company_currency
 
 sql = webnotes.conn.sql
 
@@ -149,7 +149,7 @@
 		sales_com_obj.check_conversion_rate(self)
 		
 		# Get total in Words
-		dcc = TransactionBase().get_company_currency(self.doc.company)
+		dcc = get_company_currency(self.doc.company)
 		self.doc.in_words = sales_com_obj.get_total_in_words(dcc, self.doc.rounded_total)
 		self.doc.in_words_export = sales_com_obj.get_total_in_words(self.doc.currency, self.doc.rounded_total_export)
 
diff --git a/stock/doctype/delivery_note/delivery_note.txt b/stock/doctype/delivery_note/delivery_note.txt
index 215dd41..1e54b42 100644
--- a/stock/doctype/delivery_note/delivery_note.txt
+++ b/stock/doctype/delivery_note/delivery_note.txt
@@ -88,10 +88,10 @@
   "depends_on": "customer", 
   "doctype": "DocField", 
   "label": "Select Shipping Address", 
-  "options": "Address", 
+  "permlevel": 0, 
   "fieldname": "customer_address", 
   "fieldtype": "Link", 
-  "permlevel": 0, 
+  "options": "Address", 
   "in_filter": 1
  }, 
  {
@@ -149,8 +149,8 @@
   "fieldtype": "Date", 
   "search_index": 1, 
   "reqd": 1, 
-  "in_filter": 1, 
-  "width": "100px"
+  "width": "100px", 
+  "in_filter": 1
  }, 
  {
   "print_hide": 1, 
@@ -219,10 +219,10 @@
   "doctype": "DocField", 
   "label": "Delivery Note Items", 
   "oldfieldname": "delivery_note_details", 
-  "permlevel": 0, 
+  "options": "Delivery Note Item", 
   "fieldname": "delivery_note_details", 
   "fieldtype": "Table", 
-  "options": "Delivery Note Item"
+  "permlevel": 0
  }, 
  {
   "print_hide": 1, 
@@ -234,10 +234,10 @@
  }, 
  {
   "doctype": "DocField", 
-  "options": "Simple", 
+  "permlevel": 0, 
   "fieldname": "section_break0", 
   "fieldtype": "Section Break", 
-  "permlevel": 0
+  "options": "Simple"
  }, 
  {
   "doctype": "DocField", 
@@ -281,21 +281,21 @@
   "doctype": "DocField", 
   "label": "Sales Order No", 
   "oldfieldname": "sales_order_no", 
-  "permlevel": 0, 
+  "options": "Sales Order", 
   "fieldname": "sales_order_no", 
   "fieldtype": "Link", 
-  "options": "Sales Order"
+  "permlevel": 0
  }, 
  {
   "print_hide": 1, 
   "oldfieldtype": "Button", 
   "doctype": "DocField", 
   "label": "Get Items", 
-  "options": "pull_sales_order_details", 
+  "permlevel": 0, 
   "fieldname": "get_items", 
   "fieldtype": "Button", 
   "hidden": 0, 
-  "permlevel": 0
+  "options": "pull_sales_order_details"
  }, 
  {
   "doctype": "DocField", 
@@ -317,22 +317,22 @@
   "doctype": "DocField", 
   "label": "Price List", 
   "oldfieldname": "price_list_name", 
-  "permlevel": 0, 
+  "options": "link:Price List", 
   "fieldname": "price_list_name", 
   "fieldtype": "Select", 
   "reqd": 1, 
-  "options": "link:Price List"
+  "permlevel": 0
  }, 
  {
   "print_hide": 1, 
   "description": "Select the currency in which price list is maintained", 
   "doctype": "DocField", 
   "label": "Price List Currency", 
-  "options": "link:Currency", 
+  "permlevel": 0, 
   "fieldname": "price_list_currency", 
   "fieldtype": "Select", 
   "reqd": 1, 
-  "permlevel": 0
+  "options": "link:Currency"
  }, 
  {
   "print_hide": 1, 
@@ -359,11 +359,11 @@
   "doctype": "DocField", 
   "label": "Currency", 
   "oldfieldname": "currency", 
-  "permlevel": 0, 
+  "options": "link:Currency", 
   "fieldname": "currency", 
   "fieldtype": "Select", 
   "reqd": 1, 
-  "options": "link:Currency"
+  "permlevel": 0
  }, 
  {
   "print_hide": 1, 
@@ -394,10 +394,10 @@
   "doctype": "DocField", 
   "label": "Taxes and Charges", 
   "oldfieldname": "charge", 
-  "options": "Sales Taxes and Charges Master", 
+  "permlevel": 0, 
   "fieldname": "charge", 
   "fieldtype": "Link", 
-  "permlevel": 0
+  "options": "Sales Taxes and Charges Master"
  }, 
  {
   "print_hide": 1, 
@@ -414,10 +414,10 @@
   "doctype": "DocField", 
   "label": "Sales Taxes and Charges", 
   "oldfieldname": "other_charges", 
-  "options": "Sales Taxes and Charges", 
+  "permlevel": 0, 
   "fieldname": "other_charges", 
   "fieldtype": "Table", 
-  "permlevel": 0
+  "options": "Sales Taxes and Charges"
  }, 
  {
   "print_hide": 1, 
@@ -560,30 +560,30 @@
   "doctype": "DocField", 
   "label": "Select Terms and Conditions", 
   "oldfieldname": "tc_name", 
-  "options": "Terms and Conditions", 
+  "permlevel": 0, 
   "fieldname": "tc_name", 
   "fieldtype": "Link", 
-  "permlevel": 0
+  "options": "Terms and Conditions"
  }, 
  {
   "print_hide": 1, 
   "oldfieldtype": "Button", 
   "doctype": "DocField", 
   "label": "Get Terms and Conditions", 
-  "options": "get_tc_details", 
+  "permlevel": 0, 
   "fieldname": "get_terms", 
   "fieldtype": "Button", 
-  "permlevel": 0
+  "options": "get_tc_details"
  }, 
  {
   "print_hide": 1, 
   "oldfieldtype": "HTML", 
   "doctype": "DocField", 
   "label": "Terms and Conditions HTML", 
-  "options": "You can add Terms and Notes that will be printed in the Transaction", 
+  "permlevel": 0, 
   "fieldname": "terms_html", 
   "fieldtype": "HTML", 
-  "permlevel": 0
+  "options": "You can add Terms and Notes that will be printed in the Transaction"
  }, 
  {
   "oldfieldtype": "Text Editor", 
@@ -682,10 +682,10 @@
   "print_hide": 1, 
   "doctype": "DocField", 
   "label": "Contact Person", 
-  "options": "Contact", 
+  "permlevel": 0, 
   "fieldname": "contact_person", 
   "fieldtype": "Link", 
-  "permlevel": 0, 
+  "options": "Contact", 
   "in_filter": 1
  }, 
  {
@@ -701,12 +701,12 @@
   "search_index": 1, 
   "doctype": "DocField", 
   "label": "Territory", 
-  "permlevel": 0, 
+  "options": "Territory", 
   "fieldname": "territory", 
   "fieldtype": "Link", 
   "reqd": 1, 
   "hidden": 0, 
-  "options": "Territory", 
+  "permlevel": 0, 
   "in_filter": 1
  }, 
  {
@@ -714,10 +714,10 @@
   "search_index": 1, 
   "doctype": "DocField", 
   "label": "Customer Group", 
-  "options": "Customer Group", 
+  "permlevel": 0, 
   "fieldname": "customer_group", 
   "fieldtype": "Link", 
-  "permlevel": 0, 
+  "options": "Customer Group", 
   "in_filter": 1
  }, 
  {
@@ -743,8 +743,8 @@
   "fieldtype": "Time", 
   "search_index": 0, 
   "reqd": 1, 
-  "in_filter": 0, 
-  "permlevel": 0
+  "permlevel": 0, 
+  "in_filter": 0
  }, 
  {
   "print_hide": 1, 
@@ -771,10 +771,10 @@
   "doctype": "DocField", 
   "label": "Letter Head", 
   "oldfieldname": "letter_head", 
-  "options": "link:Letter Head", 
+  "permlevel": 0, 
   "fieldname": "letter_head", 
   "fieldtype": "Select", 
-  "permlevel": 0
+  "options": "link:Letter Head"
  }, 
  {
   "print_hide": 1, 
@@ -796,12 +796,12 @@
   "doctype": "DocField", 
   "label": "Project Name", 
   "oldfieldname": "project_name", 
-  "permlevel": 0, 
+  "options": "Project", 
   "fieldname": "project_name", 
   "fieldtype": "Link", 
   "search_index": 1, 
-  "in_filter": 1, 
-  "options": "Project"
+  "permlevel": 0, 
+  "in_filter": 1
  }, 
  {
   "print_hide": 1, 
@@ -809,10 +809,10 @@
   "doctype": "DocField", 
   "label": "Source", 
   "oldfieldname": "source", 
-  "options": "\nExisting Customer\nReference\nAdvertisement\nCold Calling\nExhibition\nSupplier Reference\nMass Mailing\nCustomer's Vendor\nCampaign", 
+  "permlevel": 0, 
   "fieldname": "source", 
   "fieldtype": "Select", 
-  "permlevel": 0
+  "options": "\nExisting Customer\nReference\nAdvertisement\nCold Calling\nExhibition\nSupplier Reference\nMass Mailing\nCustomer's Vendor\nCampaign"
  }, 
  {
   "print_hide": 1, 
@@ -820,11 +820,11 @@
   "doctype": "DocField", 
   "label": "Campaign", 
   "oldfieldname": "campaign", 
-  "options": "Campaign", 
+  "permlevel": 0, 
   "fieldname": "campaign", 
   "fieldtype": "Link", 
   "depends_on": "eval:doc.source == 'Campaign'", 
-  "permlevel": 0
+  "options": "Campaign"
  }, 
  {
   "print_hide": 1, 
@@ -849,44 +849,44 @@
  }, 
  {
   "print_hide": 1, 
-  "depends_on": "eval:!doc.__islocal", 
+  "doctype": "DocField", 
   "description": "% of materials billed against this Delivery Note", 
   "no_copy": 1, 
   "search_index": 1, 
-  "doctype": "DocField", 
+  "oldfieldtype": "Currency", 
   "label": "% Amount Billed", 
   "oldfieldname": "per_billed", 
   "fieldname": "per_billed", 
   "fieldtype": "Currency", 
-  "oldfieldtype": "Currency", 
-  "in_filter": 1, 
-  "permlevel": 1
+  "depends_on": "eval:!doc.__islocal", 
+  "permlevel": 1, 
+  "in_filter": 1
  }, 
  {
   "print_hide": 1, 
   "no_copy": 1, 
   "doctype": "DocField", 
   "label": "Billing Status", 
-  "options": "\nNot Billed\nPartly Billed\nFully Billed", 
+  "permlevel": 0, 
   "fieldname": "billing_status", 
   "fieldtype": "Select", 
   "hidden": 1, 
-  "permlevel": 0
+  "options": "\nNot Billed\nPartly Billed\nFully Billed"
  }, 
  {
   "print_hide": 1, 
-  "depends_on": "eval:!doc.__islocal", 
+  "doctype": "DocField", 
   "description": "% of materials delivered against this Delivery Note", 
   "no_copy": 1, 
   "search_index": 1, 
-  "doctype": "DocField", 
+  "oldfieldtype": "Currency", 
   "label": "% Installed", 
   "oldfieldname": "per_installed", 
   "fieldname": "per_installed", 
   "fieldtype": "Currency", 
-  "oldfieldtype": "Currency", 
-  "in_filter": 1, 
-  "permlevel": 1
+  "depends_on": "eval:!doc.__islocal", 
+  "permlevel": 1, 
+  "in_filter": 1
  }, 
  {
   "print_hide": 1, 
@@ -973,8 +973,8 @@
   "fieldtype": "Link", 
   "search_index": 1, 
   "reqd": 1, 
-  "in_filter": 1, 
-  "options": "Company"
+  "options": "Company", 
+  "in_filter": 1
  }, 
  {
   "print_hide": 1, 
@@ -1020,10 +1020,10 @@
   "doctype": "DocField", 
   "label": "Packing Details", 
   "oldfieldname": "packing_details", 
-  "options": "Delivery Note Packing Item", 
+  "permlevel": 1, 
   "fieldname": "packing_details", 
   "fieldtype": "Table", 
-  "permlevel": 1
+  "options": "Delivery Note Packing Item"
  }, 
  {
   "print_hide": 1, 
@@ -1104,10 +1104,10 @@
   "doctype": "DocField", 
   "label": "Sales Team1", 
   "oldfieldname": "sales_team", 
-  "options": "Sales Team", 
+  "permlevel": 0, 
   "fieldname": "sales_team", 
   "fieldtype": "Table", 
-  "permlevel": 0
+  "options": "Sales Team"
  }, 
  {
   "print_hide": 1, 
@@ -1124,8 +1124,9 @@
   "doctype": "DocPerm", 
   "submit": 0, 
   "write": 0, 
-  "role": "Accounts User", 
   "cancel": 0, 
+  "role": "Accounts User", 
+  "report": 1, 
   "permlevel": 0
  }, 
  {
@@ -1143,6 +1144,7 @@
   "doctype": "DocPerm", 
   "submit": 1, 
   "write": 1, 
+  "report": 1, 
   "role": "Sales User", 
   "cancel": 1, 
   "permlevel": 0
@@ -1160,6 +1162,7 @@
  {
   "doctype": "DocPerm", 
   "role": "Customer", 
+  "report": 1, 
   "permlevel": 0, 
   "match": "customer_name"
  }, 
@@ -1189,6 +1192,7 @@
   "doctype": "DocPerm", 
   "submit": 1, 
   "write": 1, 
+  "report": 1, 
   "role": "Material Manager", 
   "cancel": 1, 
   "permlevel": 0
@@ -1209,6 +1213,7 @@
   "doctype": "DocPerm", 
   "submit": 1, 
   "write": 1, 
+  "report": 1, 
   "role": "Material User", 
   "cancel": 1, 
   "permlevel": 0
diff --git a/stock/doctype/item/item.txt b/stock/doctype/item/item.txt
index 43f9247..c7e88cc 100644
--- a/stock/doctype/item/item.txt
+++ b/stock/doctype/item/item.txt
@@ -2,9 +2,9 @@
  {
   "owner": "Administrator", 
   "docstatus": 0, 
-  "creation": "2013-01-16 11:35:56", 
+  "creation": "2013-01-17 10:57:15", 
   "modified_by": "Administrator", 
-  "modified": "2013-01-19 12:09:54"
+  "modified": "2013-01-17 11:22:07"
  }, 
  {
   "allow_attach": 1, 
@@ -35,6 +35,7 @@
   "parenttype": "DocType", 
   "report": 1, 
   "permlevel": 0, 
+  "amend": 0, 
   "parentfield": "permissions"
  }, 
  {
@@ -51,15 +52,6 @@
   "permlevel": 0
  }, 
  {
-  "oldfieldtype": "Small Text", 
-  "doctype": "DocField", 
-  "label": "Trash Reason", 
-  "oldfieldname": "trash_reason", 
-  "fieldname": "trash_reason", 
-  "fieldtype": "Small Text", 
-  "permlevel": 1
- }, 
- {
   "description": "Item will be saved by this name in the data base.", 
   "oldfieldtype": "Data", 
   "doctype": "DocField", 
@@ -599,18 +591,6 @@
   "permlevel": 0
  }, 
  {
-  "description": "Create a price list from Price List master and enter standard ref rates against each of them. On selection of a price list in Quotation, Sales Order or Delivery Note, corresponding ref rate will be fetched for this item.", 
-  "oldfieldtype": "Table", 
-  "doctype": "DocField", 
-  "label": "Item Prices", 
-  "oldfieldname": "ref_rate_details", 
-  "options": "Item Price", 
-  "fieldname": "ref_rate_details", 
-  "fieldtype": "Table", 
-  "depends_on": "eval:doc.is_sales_item==\"Yes\"", 
-  "permlevel": 0
- }, 
- {
   "description": "For the convenience of customers, these codes can be used in print formats like Invoices and Delivery Notes", 
   "depends_on": "eval:doc.is_sales_item==\"Yes\"", 
   "doctype": "DocField", 
@@ -639,6 +619,25 @@
   "permlevel": 0
  }, 
  {
+  "doctype": "DocField", 
+  "label": "Price Lists and Rates", 
+  "fieldname": "price_list_section", 
+  "fieldtype": "Section Break", 
+  "permlevel": 0
+ }, 
+ {
+  "description": "Create a price list from Price List master and enter standard ref rates against each of them. On selection of a price list in Quotation, Sales Order or Delivery Note, corresponding ref rate will be fetched for this item.", 
+  "oldfieldtype": "Table", 
+  "doctype": "DocField", 
+  "label": "Item Prices", 
+  "oldfieldname": "ref_rate_details", 
+  "options": "Item Price", 
+  "fieldname": "ref_rate_details", 
+  "fieldtype": "Table", 
+  "depends_on": "eval:doc.is_sales_item==\"Yes\"", 
+  "permlevel": 0
+ }, 
+ {
   "oldfieldtype": "Section Break", 
   "doctype": "DocField", 
   "label": "Inspection Criteria", 
diff --git a/stock/doctype/item_price/item_price.txt b/stock/doctype/item_price/item_price.txt
index 2f6133f..eccae61 100644
--- a/stock/doctype/item_price/item_price.txt
+++ b/stock/doctype/item_price/item_price.txt
@@ -2,31 +2,24 @@
  {
   "owner": "Administrator", 
   "docstatus": 0, 
-  "creation": "2012-03-27 14:36:36", 
+  "creation": "2013-01-15 18:43:18", 
   "modified_by": "Administrator", 
-  "modified": "2012-03-27 14:36:36"
+  "modified": "2013-01-17 17:53:42"
  }, 
  {
-  "section_style": "Tray", 
-  "istable": 1, 
-  "in_create": 1, 
-  "module": "Stock", 
-  "server_code_error": " ", 
   "read_only": 0, 
+  "istable": 1, 
   "autoname": "RFD/.#####", 
-  "name": "__common__", 
-  "colour": "White:FFF", 
+  "in_create": 1, 
   "doctype": "DocType", 
-  "show_in_menu": 0, 
-  "version": 3
+  "module": "Stock", 
+  "name": "__common__"
  }, 
  {
   "name": "__common__", 
   "parent": "Item Price", 
-  "search_index": 1, 
   "doctype": "DocField", 
   "parenttype": "DocType", 
-  "in_filter": 1, 
   "permlevel": 0, 
   "parentfield": "fields"
  }, 
@@ -40,9 +33,11 @@
   "label": "Price List Name", 
   "oldfieldname": "price_list_name", 
   "fieldname": "price_list_name", 
-  "fieldtype": "Select", 
+  "fieldtype": "Link", 
+  "search_index": 1, 
   "reqd": 1, 
-  "options": "link:Price List"
+  "options": "Price List", 
+  "in_filter": 1
  }, 
  {
   "oldfieldtype": "Currency", 
@@ -51,7 +46,9 @@
   "oldfieldname": "ref_rate", 
   "fieldname": "ref_rate", 
   "fieldtype": "Currency", 
-  "reqd": 0
+  "search_index": 0, 
+  "reqd": 0, 
+  "in_filter": 1
  }, 
  {
   "oldfieldtype": "Select", 
@@ -60,7 +57,23 @@
   "oldfieldname": "ref_currency", 
   "fieldname": "ref_currency", 
   "fieldtype": "Select", 
+  "search_index": 1, 
   "reqd": 1, 
-  "options": "link:Currency"
+  "options": "link:Currency", 
+  "in_filter": 1
+ }, 
+ {
+  "description": "Allow this price in sales related forms", 
+  "doctype": "DocField", 
+  "label": "For Selling", 
+  "fieldname": "selling", 
+  "fieldtype": "Check"
+ }, 
+ {
+  "description": "Allow this price in purchase related forms", 
+  "doctype": "DocField", 
+  "label": "For Buying", 
+  "fieldname": "buying", 
+  "fieldtype": "Check"
  }
 ]
\ No newline at end of file
diff --git a/stock/doctype/landed_cost_master/landed_cost_master.txt b/stock/doctype/landed_cost_master/landed_cost_master.txt
index 0ee22ba..09f1f5d 100644
--- a/stock/doctype/landed_cost_master/landed_cost_master.txt
+++ b/stock/doctype/landed_cost_master/landed_cost_master.txt
@@ -10,11 +10,11 @@
   "section_style": "Simple", 
   "module": "Stock", 
   "doctype": "DocType", 
-  "autoname": "field:title", 
   "document_type": "Master", 
+  "_last_update": "1309508838", 
+  "autoname": "field:title", 
   "name": "__common__", 
   "colour": "White:FFF", 
-  "_last_update": "1309508838", 
   "server_code_error": " ", 
   "version": 1
  }, 
@@ -68,16 +68,17 @@
   "doctype": "DocField", 
   "label": "Landed Cost", 
   "oldfieldname": "landed_cost", 
-  "permlevel": 0, 
+  "options": "Landed Cost Master Detail", 
   "fieldname": "landed_cost", 
   "fieldtype": "Table", 
-  "options": "Landed Cost Master Detail"
+  "permlevel": 0
  }, 
  {
   "create": 1, 
   "doctype": "DocPerm", 
   "write": 1, 
   "role": "Purchase Manager", 
+  "report": 1, 
   "permlevel": 0
  }, 
  {
@@ -85,6 +86,7 @@
   "doctype": "DocPerm", 
   "write": 1, 
   "role": "System Manager", 
+  "report": 1, 
   "permlevel": 0
  }, 
  {
@@ -92,6 +94,7 @@
   "doctype": "DocPerm", 
   "write": 1, 
   "role": "Purchase User", 
+  "report": 1, 
   "permlevel": 0
  }, 
  {
diff --git a/stock/doctype/packing_slip/packing_slip.txt b/stock/doctype/packing_slip/packing_slip.txt
index 31dc881..a706228 100644
--- a/stock/doctype/packing_slip/packing_slip.txt
+++ b/stock/doctype/packing_slip/packing_slip.txt
@@ -8,19 +8,19 @@
  }, 
  {
   "section_style": "Simple", 
-  "description": "Generate packing slips for packages to be delivered. Used to notify package number, package contents and its weight.", 
   "is_submittable": 1, 
+  "description": "Generate packing slips for packages to be delivered. Used to notify package number, package contents and its weight.", 
   "search_fields": "delivery_note", 
   "module": "Stock", 
-  "doctype": "DocType", 
   "read_only_onload": 1, 
+  "autoname": "PS.#######", 
   "document_type": "Transaction", 
   "subject": "[%(delivery_note)s] Case Nos: %(from_case_no)s - %(to_case_no)s  |  Net Weight: %(net_weight_pkg)s %(net_weight_uom)s  |  Gross Weight: %(gross_weight_pkg)s %(gross_weight_uom)s", 
-  "autoname": "PS.#######", 
+  "_last_update": "1328091392", 
   "name": "__common__", 
   "colour": "White:FFF", 
   "is_transaction_doc": 1, 
-  "_last_update": "1328091392", 
+  "doctype": "DocType", 
   "show_in_menu": 0, 
   "version": 1
  }, 
@@ -49,6 +49,7 @@
   "doctype": "DocPerm", 
   "submit": 1, 
   "write": 1, 
+  "report": 1, 
   "role": "Material User", 
   "cancel": 1, 
   "permlevel": 0
@@ -59,6 +60,7 @@
   "doctype": "DocPerm", 
   "submit": 1, 
   "write": 1, 
+  "report": 1, 
   "role": "Sales User", 
   "cancel": 1, 
   "permlevel": 0
@@ -69,6 +71,7 @@
   "doctype": "DocPerm", 
   "submit": 1, 
   "write": 1, 
+  "report": 1, 
   "role": "Material Master Manager", 
   "cancel": 1, 
   "permlevel": 0
@@ -79,6 +82,7 @@
   "doctype": "DocPerm", 
   "submit": 1, 
   "write": 1, 
+  "report": 1, 
   "role": "Material Manager", 
   "cancel": 1, 
   "permlevel": 0
@@ -89,6 +93,7 @@
   "doctype": "DocPerm", 
   "submit": 1, 
   "write": 1, 
+  "report": 1, 
   "role": "Sales Manager", 
   "cancel": 1, 
   "permlevel": 0
@@ -116,11 +121,11 @@
   "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Delivery Note", 
-  "permlevel": 0, 
+  "options": "Delivery Note", 
   "fieldname": "delivery_note", 
   "fieldtype": "Link", 
   "reqd": 1, 
-  "options": "Delivery Note"
+  "permlevel": 0
  }, 
  {
   "doctype": "DocField", 
@@ -133,11 +138,11 @@
   "no_copy": 0, 
   "doctype": "DocField", 
   "label": "Series", 
-  "permlevel": 0, 
+  "options": "PS", 
   "fieldname": "naming_series", 
   "fieldtype": "Select", 
   "reqd": 1, 
-  "options": "PS"
+  "permlevel": 0
  }, 
  {
   "colour": "White:FFF", 
@@ -243,10 +248,10 @@
   "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Gross Weight UOM", 
-  "permlevel": 0, 
+  "options": "UOM", 
   "fieldname": "gross_weight_uom", 
   "fieldtype": "Link", 
-  "options": "UOM"
+  "permlevel": 0
  }, 
  {
   "colour": "White:FFF", 
@@ -261,10 +266,10 @@
   "no_copy": 1, 
   "doctype": "DocField", 
   "label": "Amended From", 
-  "permlevel": 1, 
+  "options": "Packing Slip", 
   "fieldname": "amended_from", 
   "fieldtype": "Link", 
-  "options": "Packing Slip"
+  "permlevel": 1
  }, 
  {
   "print_hide": 1, 
diff --git a/stock/doctype/purchase_receipt/purchase_receipt.js b/stock/doctype/purchase_receipt/purchase_receipt.js
index 23aa2cc..df2825b 100644
--- a/stock/doctype/purchase_receipt/purchase_receipt.js
+++ b/stock/doctype/purchase_receipt/purchase_receipt.js
@@ -22,6 +22,29 @@
 wn.require('app/buying/doctype/purchase_common/purchase_common.js');
 wn.require('app/utilities/doctype/sms_control/sms_control.js');
 
+erpnext.buying.PurchaseReceiptController = erpnext.buying.BuyingController.extend({
+	refresh: function() {
+		this._super();
+		
+		if(this.frm.doc.docstatus == 1) {
+			if(flt(this.frm.doc.per_billed, 2) < 100) {
+				cur_frm.add_custom_button('Make Purchase Invoice', 
+					cur_frm.cscript['Make Purchase Invoice']);
+			}
+			cur_frm.add_custom_button('Send SMS', cur_frm.cscript['Send SMS']);
+		}
+
+		if(wn.boot.control_panel.country == 'India') {
+			unhide_field(['challan_no', 'challan_date']);
+		}
+	}
+});
+
+var new_cscript = new erpnext.buying.PurchaseReceiptController({frm: cur_frm});
+
+// for backward compatibility: combine new and previous states
+$.extend(cur_frm.cscript, new_cscript);
+
 //========================== On Load ================================================================
 cur_frm.cscript.onload = function(doc, cdt, cdn) {
 	if(!doc.fiscal_year && doc.__islocal){ wn.model.set_default_values(doc);}
@@ -38,26 +61,6 @@
 	cur_frm.cscript.dynamic_label(doc, dt, dn, callback);
 }
 
-//========================== Refresh ===============================================================
-cur_frm.cscript.refresh = function(doc, cdt, cdn) { 
-	cur_frm.clear_custom_buttons();
-	
-	erpnext.hide_naming_series();
-	if(doc.supplier) $(cur_frm.fields_dict.contact_section.row.wrapper).toggle(true);
-	else $(cur_frm.fields_dict.contact_section.row.wrapper).toggle(false);
-
-	if (!cur_frm.cscript.is_onload) cur_frm.cscript.dynamic_label(doc, cdt, cdn);
-
-	if(doc.docstatus == 1){
-		if (flt(doc.per_billed, 2) < 100) cur_frm.add_custom_button('Make Purchase Invoice', cur_frm.cscript['Make Purchase Invoice']);
-		cur_frm.add_custom_button('Send SMS', cur_frm.cscript['Send SMS']);
-	}
-	
-	if(wn.boot.control_panel.country == 'India') {
-		unhide_field(['challan_no', 'challan_date']);
-	}
-}
-
 //Supplier
 cur_frm.cscript.supplier = function(doc,dt,dn) {
 	if (doc.supplier) {
@@ -65,7 +68,6 @@
 			JSON.stringify({ supplier: doc.supplier }),'', doc, dt, dn, 1, function() {
 				cur_frm.refresh();
 			});
-		$(cur_frm.fields_dict.contact_section.row.wrapper).toggle(true);
 	}
 }
 
diff --git a/stock/doctype/purchase_receipt/purchase_receipt.py b/stock/doctype/purchase_receipt/purchase_receipt.py
index 8c2ad01..5c4aebd 100644
--- a/stock/doctype/purchase_receipt/purchase_receipt.py
+++ b/stock/doctype/purchase_receipt/purchase_receipt.py
@@ -18,18 +18,16 @@
 import webnotes
 
 from webnotes.utils import cstr, flt, get_defaults, getdate
-from webnotes.model import db_exists
-from webnotes.model.doc import addchild, make_autoname
-from webnotes.model.wrapper import getlist, copy_doclist
+from webnotes.model.doc import addchild
+from webnotes.model.wrapper import getlist
 from webnotes.model.code import get_obj
 from webnotes import msgprint
+from setup.utils import get_company_currency
 
 sql = webnotes.conn.sql
 
-
-from utilities.transaction_base import TransactionBase
-
-class DocType(TransactionBase):
+from controllers.buying_controller import BuyingController
+class DocType(BuyingController):
 	def __init__(self, doc, doclist=[]):
 		self.doc = doc
 		self.doclist = doclist
@@ -38,32 +36,9 @@
 		self.fname = 'purchase_receipt_details'
 		self.count = 0
 
-	# Autoname
-	# ---------
-	def autoname(self):
-		self.doc.name = make_autoname(self.doc.naming_series+'.#####')
-
 	def validate_fiscal_year(self):
 		get_obj(dt = 'Purchase Common').validate_fiscal_year(self.doc.fiscal_year,self.doc.posting_date,'Transaction Date')
 
-	def get_item_details(self, arg = ''):
-		if arg:
-			return get_obj(dt='Purchase Common').get_item_details(self,arg)
-		else:
-			import json
-			obj = get_obj('Purchase Common')
-			for doc in self.doclist:
-				if doc.fields.get('item_code'):
-					temp = {
-						'item_code': doc.fields.get('item_code'),
-						'warehouse': doc.fields.get('warehouse')
-					}
-					ret = obj.get_item_details(self, json.dumps(temp))
-					for r in ret:
-						if not doc.fields.get(r):
-							doc.fields[r] = ret[r]
-
-
 	# GET TERMS & CONDITIONS
 	# =====================================================================================
 	def get_tc_details(self):
@@ -125,14 +100,6 @@
 				#d.valuation_rate = (flt(d.purchase_rate) + ((flt(d.amount) * (total_b_cost)) / (self.doc.net_total * flt(d.qty))) + (flt(d.rm_supp_cost) / flt(d.qty))) / flt(d.conversion_factor)
 				d.valuation_rate = (flt(d.purchase_rate) + ((flt(d.amount) * (total_b_cost)) / (self.doc.net_total * flt(d.qty))) + (flt(d.rm_supp_cost) / flt(d.qty)) + (flt(d.item_tax_amount)/flt(d.qty))) / flt(d.conversion_factor)
 
-	# Check for Stopped status
-	def check_for_stopped_status(self, pc_obj):
-		check_list =[]
-		for d in getlist(self.doclist, 'purchase_receipt_details'):
-			if d.fields.has_key('prevdoc_docname') and d.prevdoc_docname and d.prevdoc_docname not in check_list:
-				check_list.append(d.prevdoc_docname)
-				pc_obj.check_for_stopped_status( d.prevdoc_doctype, d.prevdoc_docname)
-
 	#check in manage account if purchase order required or not.
 	# ====================================================================================
 	def po_required(self):
@@ -146,6 +113,8 @@
 
 	# validate
 	def validate(self):
+		super(DocType, self).validate()
+		
 		self.po_required()
 		self.validate_fiscal_year()
 
@@ -163,13 +132,12 @@
 		pc_obj = get_obj(dt='Purchase Common')
 		pc_obj.validate_for_items(self)
 		pc_obj.validate_mandatory(self)
-		pc_obj.validate_conversion_rate(self)
 		pc_obj.get_prevdoc_date(self)
 		pc_obj.validate_reference_value(self)
 		self.check_for_stopped_status(pc_obj)
 
 		# get total in words
-		dcc = TransactionBase().get_company_currency(self.doc.company)
+		dcc = get_company_currency(self.doc.company)
 		self.doc.in_words = pc_obj.get_total_in_words(dcc, self.doc.grand_total)
 		self.doc.in_words_import = pc_obj.get_total_in_words(self.doc.currency, self.doc.grand_total_import)
 		# update valuation rate
@@ -255,7 +223,6 @@
 		self.values.append({
 			'item_code'					: d.fields.has_key('item_code') and d.item_code or d.rm_item_code,
 			'warehouse'					: wh,
-			'transaction_date'			: getdate(self.doc.modified).strftime('%Y-%m-%d'),
 			'posting_date'				: self.doc.posting_date,
 			'posting_time'				: self.doc.posting_time,
 			'voucher_type'				: 'Purchase Receipt',
@@ -287,7 +254,6 @@
 				check_list.append(d.prevdoc_docname)
 				pc_obj.check_for_stopped_status( d.prevdoc_doctype, d.prevdoc_docname)
 
-
 	# on submit
 	def on_submit(self):
 		purchase_controller = webnotes.get_obj("Purchase Common")
diff --git a/stock/doctype/purchase_receipt/purchase_receipt.txt b/stock/doctype/purchase_receipt/purchase_receipt.txt
index 608d265..4d5f2e9 100755
--- a/stock/doctype/purchase_receipt/purchase_receipt.txt
+++ b/stock/doctype/purchase_receipt/purchase_receipt.txt
@@ -2,18 +2,19 @@
  {
   "owner": "Administrator", 
   "docstatus": 0, 
-  "creation": "2012-07-17 13:24:57", 
+  "creation": "2013-01-18 12:47:03", 
   "modified_by": "Administrator", 
-  "modified": "2012-12-03 17:10:41"
+  "modified": "2013-01-18 13:25:36"
  }, 
  {
+  "document_type": "Transaction", 
   "is_submittable": 1, 
   "allow_attach": 1, 
-  "search_fields": "status, posting_date, supplier", 
+  "autoname": "naming_series:", 
   "module": "Stock", 
   "doctype": "DocType", 
   "read_only_onload": 1, 
-  "document_type": "Transaction", 
+  "search_fields": "status, posting_date, supplier", 
   "name": "__common__"
  }, 
  {
@@ -36,6 +37,7 @@
   "doctype": "DocType"
  }, 
  {
+  "print_width": "50%", 
   "oldfieldtype": "Column Break", 
   "doctype": "DocField", 
   "width": "50%", 
@@ -48,27 +50,25 @@
   "description": "To manage multiple series please go to Setup > Manage Series", 
   "no_copy": 1, 
   "oldfieldtype": "Select", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Series", 
   "oldfieldname": "naming_series", 
-  "permlevel": 0, 
+  "options": "\nGRN", 
   "fieldname": "naming_series", 
   "fieldtype": "Select", 
   "reqd": 1, 
-  "options": "\nGRN"
+  "permlevel": 0
  }, 
  {
   "print_hide": 1, 
+  "print_width": "150px", 
   "permlevel": 0, 
   "oldfieldtype": "Link", 
-  "colour": "White:FFF", 
   "allow_on_submit": 0, 
   "doctype": "DocField", 
   "label": "Supplier", 
   "oldfieldname": "supplier", 
   "width": "150px", 
-  "trigger": "Client", 
   "fieldname": "supplier", 
   "fieldtype": "Link", 
   "search_index": 1, 
@@ -118,6 +118,7 @@
   "permlevel": 1
  }, 
  {
+  "print_width": "50%", 
   "oldfieldtype": "Column Break", 
   "doctype": "DocField", 
   "width": "50%", 
@@ -128,9 +129,9 @@
  {
   "print_hide": 1, 
   "description": "The date at which current entry will get or has actually executed.", 
+  "print_width": "100px", 
   "no_copy": 1, 
   "oldfieldtype": "Date", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Posting Date", 
   "oldfieldname": "posting_date", 
@@ -139,15 +140,15 @@
   "fieldtype": "Date", 
   "search_index": 1, 
   "reqd": 1, 
-  "in_filter": 1, 
-  "permlevel": 0
+  "permlevel": 0, 
+  "in_filter": 1
  }, 
  {
   "print_hide": 1, 
   "description": "Time at which materials were received", 
+  "print_width": "100px", 
   "no_copy": 1, 
   "oldfieldtype": "Time", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Posting Time", 
   "oldfieldname": "posting_time", 
@@ -156,14 +157,14 @@
   "fieldtype": "Time", 
   "search_index": 0, 
   "reqd": 1, 
-  "in_filter": 0, 
-  "permlevel": 0
+  "permlevel": 0, 
+  "in_filter": 0
  }, 
  {
   "print_hide": 0, 
+  "print_width": "100px", 
   "no_copy": 1, 
   "oldfieldtype": "Data", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Challan No", 
   "oldfieldname": "challan_no", 
@@ -176,9 +177,9 @@
  }, 
  {
   "print_hide": 0, 
+  "print_width": "100px", 
   "no_copy": 1, 
   "oldfieldtype": "Date", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Challan Date", 
   "oldfieldname": "challan_date", 
@@ -191,7 +192,6 @@
  }, 
  {
   "oldfieldtype": "Section Break", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Items", 
   "fieldname": "items", 
@@ -200,20 +200,19 @@
  }, 
  {
   "print_hide": 0, 
-  "allow_on_submit": 1, 
   "oldfieldtype": "Table", 
+  "allow_on_submit": 1, 
   "doctype": "DocField", 
   "label": "Purchase Receipt Items", 
   "oldfieldname": "purchase_receipt_details", 
-  "options": "Purchase Receipt Item", 
+  "permlevel": 0, 
   "fieldname": "purchase_receipt_details", 
   "fieldtype": "Table", 
   "reqd": 0, 
-  "permlevel": 0
+  "options": "Purchase Receipt Item"
  }, 
  {
   "oldfieldtype": "Section Break", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "options": "Simple", 
   "fieldname": "section_break0", 
@@ -222,58 +221,68 @@
  }, 
  {
   "print_hide": 1, 
-  "oldfieldtype": "Currency", 
+  "oldfieldtype": "Button", 
   "doctype": "DocField", 
-  "label": "Net Total", 
-  "oldfieldname": "net_total", 
-  "width": "150px", 
-  "fieldname": "net_total", 
-  "fieldtype": "Currency", 
-  "reqd": 1, 
-  "permlevel": 1
+  "label": "Get Current Stock", 
+  "permlevel": 0, 
+  "fieldname": "get_current_stock", 
+  "fieldtype": "Button", 
+  "options": "get_current_stock"
  }, 
  {
-  "print_hide": 1, 
-  "oldfieldtype": "Currency", 
   "doctype": "DocField", 
-  "label": "Net Total (Import)", 
-  "oldfieldname": "net_total_import", 
-  "fieldname": "net_total_import", 
-  "fieldtype": "Currency", 
-  "permlevel": 1
+  "fieldname": "column_break_18", 
+  "fieldtype": "Column Break", 
+  "permlevel": 0
  }, 
  {
   "oldfieldtype": "Button", 
   "doctype": "DocField", 
   "label": "Re-Calculate Values", 
-  "trigger": "Client", 
   "fieldname": "recalculate_values", 
   "fieldtype": "Button", 
   "permlevel": 0
  }, 
  {
-  "print_hide": 1, 
-  "oldfieldtype": "Button", 
   "doctype": "DocField", 
-  "label": "Get Current Stock", 
-  "options": "get_current_stock", 
-  "fieldname": "get_current_stock", 
-  "fieldtype": "Button", 
+  "fieldname": "section_break_20", 
+  "fieldtype": "Section Break", 
   "permlevel": 0
  }, 
  {
-  "oldfieldtype": "Column Break", 
+  "print_hide": 0, 
+  "description": "You can make a purchase receipt from multiple purchase orders. Select purchase orders one by one and click on the button below.", 
+  "no_copy": 1, 
+  "oldfieldtype": "Link", 
   "doctype": "DocField", 
-  "width": "50%", 
-  "fieldname": "column_break2", 
-  "fieldtype": "Column Break", 
+  "label": "Purchase Order", 
+  "oldfieldname": "purchase_order_no", 
+  "permlevel": 0, 
+  "fieldname": "purchase_order_no", 
+  "fieldtype": "Link", 
+  "options": "Purchase Order"
+ }, 
+ {
+  "print_hide": 1, 
+  "oldfieldtype": "Button", 
+  "doctype": "DocField", 
+  "label": "Pull Purchase Order Details", 
+  "permlevel": 0, 
+  "fieldname": "pull_purchase_order_details", 
+  "fieldtype": "Button", 
+  "options": "get_po_details"
+ }, 
+ {
+  "doctype": "DocField", 
+  "label": "Currency & Price List", 
+  "fieldname": "currency_price_list", 
+  "fieldtype": "Section Break", 
   "permlevel": 0
  }, 
  {
   "print_hide": 1, 
   "description": "Supplier's currency", 
   "oldfieldtype": "Select", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Currency", 
   "oldfieldname": "currency", 
@@ -288,45 +297,56 @@
   "description": "Rate at which supplier's currency is converted to company's base currency", 
   "default": "1.00", 
   "oldfieldtype": "Currency", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
-  "label": "Conversion Rate", 
+  "label": "Exchange Rate", 
   "oldfieldname": "conversion_rate", 
-  "trigger": "Client", 
   "fieldname": "conversion_rate", 
   "fieldtype": "Float", 
   "reqd": 1, 
   "permlevel": 0
  }, 
  {
-  "print_hide": 0, 
-  "description": "You can make a purchase receipt from multiple purchase orders. Select purchase orders one by one and click on the button below.", 
-  "no_copy": 1, 
-  "oldfieldtype": "Link", 
-  "colour": "White:FFF", 
+  "print_width": "50%", 
+  "oldfieldtype": "Column Break", 
   "doctype": "DocField", 
-  "label": "Purchase Order", 
-  "oldfieldname": "purchase_order_no", 
-  "permlevel": 0, 
-  "fieldname": "purchase_order_no", 
-  "fieldtype": "Link", 
-  "options": "Purchase Order"
+  "width": "50%", 
+  "fieldname": "column_break2", 
+  "fieldtype": "Column Break", 
+  "permlevel": 0
  }, 
  {
   "print_hide": 1, 
-  "oldfieldtype": "Button", 
-  "colour": "White:FFF", 
+  "description": "Consider this Price List for fetching rate. (only which have \"For Buying\" as checked)", 
   "doctype": "DocField", 
-  "label": "Pull Purchase Order Details", 
-  "options": "get_po_details", 
-  "fieldname": "pull_purchase_order_details", 
-  "fieldtype": "Button", 
+  "label": "Price List", 
+  "permlevel": 0, 
+  "fieldname": "price_list_name", 
+  "fieldtype": "Link", 
+  "options": "Price List"
+ }, 
+ {
+  "print_hide": 1, 
+  "depends_on": "price_list_name", 
+  "doctype": "DocField", 
+  "label": "Price List Currency", 
+  "permlevel": 0, 
+  "fieldname": "price_list_currency", 
+  "fieldtype": "Link", 
+  "hidden": 0, 
+  "options": "Currency"
+ }, 
+ {
+  "print_hide": 1, 
+  "depends_on": "price_list_name", 
+  "doctype": "DocField", 
+  "label": "Price List Exchange Rate", 
+  "fieldname": "plc_conversion_rate", 
+  "fieldtype": "Float", 
   "permlevel": 0
  }, 
  {
   "description": "Add / Edit Taxes and Charges", 
   "oldfieldtype": "Section Break", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Taxes", 
   "fieldname": "taxes", 
@@ -337,57 +357,45 @@
   "print_hide": 1, 
   "description": "If you have created a standard template in Purchase Taxes and Charges Master, select one and click on the button below.", 
   "oldfieldtype": "Link", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Purchase Taxes and Charges", 
   "oldfieldname": "purchase_other_charges", 
-  "options": "Purchase Taxes and Charges Master", 
+  "permlevel": 0, 
   "fieldname": "purchase_other_charges", 
   "fieldtype": "Link", 
-  "permlevel": 0
+  "options": "Purchase Taxes and Charges Master"
  }, 
  {
   "print_hide": 1, 
   "oldfieldtype": "Button", 
   "doctype": "DocField", 
   "label": "Get Tax Detail", 
-  "options": "get_purchase_tax_details", 
+  "permlevel": 0, 
   "fieldname": "get_tax_detail", 
   "fieldtype": "Button", 
-  "permlevel": 0
+  "options": "get_purchase_tax_details"
  }, 
  {
   "oldfieldtype": "Table", 
   "doctype": "DocField", 
   "label": "Purchase Taxes and Charges", 
   "oldfieldname": "purchase_tax_details", 
-  "options": "Purchase Taxes and Charges", 
+  "permlevel": 0, 
   "fieldname": "purchase_tax_details", 
   "fieldtype": "Table", 
-  "permlevel": 0
+  "options": "Purchase Taxes and Charges"
  }, 
  {
   "print_hide": 1, 
   "oldfieldtype": "Button", 
   "doctype": "DocField", 
   "label": "Calculate Tax", 
-  "trigger": "Client", 
   "fieldname": "calculate_tax", 
   "fieldtype": "Button", 
   "permlevel": 0
  }, 
  {
   "print_hide": 1, 
-  "oldfieldtype": "Currency", 
-  "doctype": "DocField", 
-  "label": "Total Tax", 
-  "oldfieldname": "total_tax", 
-  "fieldname": "total_tax", 
-  "fieldtype": "Currency", 
-  "permlevel": 1
- }, 
- {
-  "print_hide": 1, 
   "oldfieldtype": "HTML", 
   "doctype": "DocField", 
   "label": "Tax Calculation", 
@@ -398,7 +406,6 @@
  {
   "description": "Detailed Breakup of the totals", 
   "oldfieldtype": "Section Break", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Totals", 
   "fieldname": "totals", 
@@ -409,86 +416,15 @@
   "print_hide": 1, 
   "oldfieldtype": "Currency", 
   "doctype": "DocField", 
-  "label": "Grand Total", 
-  "oldfieldname": "grand_total", 
-  "fieldname": "grand_total", 
+  "label": "Net Total (Import)", 
+  "oldfieldname": "net_total_import", 
+  "fieldname": "net_total_import", 
   "fieldtype": "Currency", 
   "permlevel": 1
  }, 
  {
   "print_hide": 1, 
   "oldfieldtype": "Currency", 
-  "colour": "White:FFF", 
-  "doctype": "DocField", 
-  "label": "Rounded Total", 
-  "oldfieldname": "rounded_total", 
-  "fieldname": "rounded_total", 
-  "fieldtype": "Currency", 
-  "permlevel": 1
- }, 
- {
-  "print_hide": 1, 
-  "description": "In Words will be visible once you save the Purchase Receipt.", 
-  "oldfieldtype": "Data", 
-  "colour": "White:FFF", 
-  "doctype": "DocField", 
-  "label": "In Words", 
-  "oldfieldname": "in_words", 
-  "fieldname": "in_words", 
-  "fieldtype": "Data", 
-  "permlevel": 1
- }, 
- {
-  "print_hide": 1, 
-  "oldfieldtype": "Currency", 
-  "doctype": "DocField", 
-  "label": "Taxes and Charges Added", 
-  "oldfieldname": "other_charges_added", 
-  "fieldname": "other_charges_added", 
-  "fieldtype": "Currency", 
-  "permlevel": 1
- }, 
- {
-  "print_hide": 1, 
-  "oldfieldtype": "Currency", 
-  "doctype": "DocField", 
-  "label": "Taxes and Charges Deducted", 
-  "oldfieldname": "other_charges_deducted", 
-  "fieldname": "other_charges_deducted", 
-  "fieldtype": "Currency", 
-  "permlevel": 1
- }, 
- {
-  "doctype": "DocField", 
-  "width": "50%", 
-  "fieldname": "column_break3", 
-  "fieldtype": "Column Break", 
-  "permlevel": 0
- }, 
- {
-  "print_hide": 1, 
-  "oldfieldtype": "Currency", 
-  "doctype": "DocField", 
-  "label": "Grand Total (Import)", 
-  "oldfieldname": "grand_total_import", 
-  "fieldname": "grand_total_import", 
-  "fieldtype": "Currency", 
-  "permlevel": 1
- }, 
- {
-  "print_hide": 1, 
-  "oldfieldtype": "Data", 
-  "colour": "White:FFF", 
-  "doctype": "DocField", 
-  "label": "In Words (Import)", 
-  "oldfieldname": "in_words_import", 
-  "fieldname": "in_words_import", 
-  "fieldtype": "Data", 
-  "permlevel": 1
- }, 
- {
-  "print_hide": 1, 
-  "oldfieldtype": "Currency", 
   "doctype": "DocField", 
   "label": "Taxes and Charges Added (Import)", 
   "oldfieldname": "other_charges_added_import", 
@@ -507,9 +443,110 @@
   "permlevel": 1
  }, 
  {
+  "print_hide": 1, 
+  "oldfieldtype": "Currency", 
+  "doctype": "DocField", 
+  "label": "Grand Total (Import)", 
+  "oldfieldname": "grand_total_import", 
+  "fieldname": "grand_total_import", 
+  "fieldtype": "Currency", 
+  "permlevel": 1
+ }, 
+ {
+  "print_hide": 1, 
+  "oldfieldtype": "Data", 
+  "doctype": "DocField", 
+  "label": "In Words (Import)", 
+  "oldfieldname": "in_words_import", 
+  "fieldname": "in_words_import", 
+  "fieldtype": "Data", 
+  "permlevel": 1
+ }, 
+ {
+  "print_width": "50%", 
+  "doctype": "DocField", 
+  "width": "50%", 
+  "fieldname": "column_break3", 
+  "fieldtype": "Column Break", 
+  "permlevel": 0
+ }, 
+ {
+  "print_hide": 1, 
+  "print_width": "150px", 
+  "oldfieldtype": "Currency", 
+  "doctype": "DocField", 
+  "label": "Net Total", 
+  "oldfieldname": "net_total", 
+  "width": "150px", 
+  "fieldname": "net_total", 
+  "fieldtype": "Currency", 
+  "reqd": 1, 
+  "permlevel": 1
+ }, 
+ {
+  "print_hide": 1, 
+  "oldfieldtype": "Currency", 
+  "doctype": "DocField", 
+  "label": "Taxes and Charges Added", 
+  "oldfieldname": "other_charges_added", 
+  "fieldname": "other_charges_added", 
+  "fieldtype": "Currency", 
+  "permlevel": 1
+ }, 
+ {
+  "print_hide": 1, 
+  "oldfieldtype": "Currency", 
+  "doctype": "DocField", 
+  "label": "Taxes and Charges Deducted", 
+  "oldfieldname": "other_charges_deducted", 
+  "fieldname": "other_charges_deducted", 
+  "fieldtype": "Currency", 
+  "permlevel": 1
+ }, 
+ {
+  "print_hide": 1, 
+  "oldfieldtype": "Currency", 
+  "doctype": "DocField", 
+  "label": "Total Tax", 
+  "oldfieldname": "total_tax", 
+  "fieldname": "total_tax", 
+  "fieldtype": "Currency", 
+  "permlevel": 1
+ }, 
+ {
+  "print_hide": 1, 
+  "oldfieldtype": "Currency", 
+  "doctype": "DocField", 
+  "label": "Grand Total", 
+  "oldfieldname": "grand_total", 
+  "fieldname": "grand_total", 
+  "fieldtype": "Currency", 
+  "permlevel": 1
+ }, 
+ {
+  "print_hide": 1, 
+  "oldfieldtype": "Currency", 
+  "doctype": "DocField", 
+  "label": "Rounded Total", 
+  "oldfieldname": "rounded_total", 
+  "fieldname": "rounded_total", 
+  "fieldtype": "Currency", 
+  "permlevel": 1
+ }, 
+ {
+  "print_hide": 1, 
+  "description": "In Words will be visible once you save the Purchase Receipt.", 
+  "oldfieldtype": "Data", 
+  "doctype": "DocField", 
+  "label": "In Words", 
+  "oldfieldname": "in_words", 
+  "fieldname": "in_words", 
+  "fieldtype": "Data", 
+  "permlevel": 1
+ }, 
+ {
   "description": "Add Terms and Conditions for the Purchase Receipt. You can also prepare a Terms and Conditions Master and use the Template.", 
   "oldfieldtype": "Section Break", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Terms and Conditions", 
   "fieldname": "terms_section_break", 
@@ -522,29 +559,29 @@
   "doctype": "DocField", 
   "label": "Select Terms and Conditions", 
   "oldfieldname": "tc_name", 
-  "options": "Terms and Conditions", 
+  "permlevel": 0, 
   "fieldname": "tc_name", 
   "fieldtype": "Link", 
-  "permlevel": 0
+  "options": "Terms and Conditions"
  }, 
  {
   "oldfieldtype": "Button", 
   "doctype": "DocField", 
   "label": "Get Terms and Conditions", 
-  "options": "get_tc_details", 
+  "permlevel": 0, 
   "fieldname": "get_terms", 
   "fieldtype": "Button", 
-  "permlevel": 0
+  "options": "get_tc_details"
  }, 
  {
   "print_hide": 1, 
   "oldfieldtype": "HTML", 
   "doctype": "DocField", 
   "label": "Terms and Conditions HTML", 
-  "options": "You can add Terms and Notes that will be printed in the Transaction", 
+  "permlevel": 0, 
   "fieldname": "terms_html", 
   "fieldtype": "HTML", 
-  "permlevel": 0
+  "options": "You can add Terms and Notes that will be printed in the Transaction"
  }, 
  {
   "oldfieldtype": "Text Editor", 
@@ -566,24 +603,29 @@
   "print_hide": 1, 
   "doctype": "DocField", 
   "label": "Supplier Address", 
-  "options": "Address", 
+  "permlevel": 0, 
   "fieldname": "supplier_address", 
   "fieldtype": "Link", 
+  "options": "Address"
+ }, 
+ {
+  "doctype": "DocField", 
+  "fieldname": "column_break_57", 
+  "fieldtype": "Column Break", 
   "permlevel": 0
  }, 
  {
   "print_hide": 1, 
   "doctype": "DocField", 
   "label": "Contact Person", 
-  "options": "Contact", 
+  "permlevel": 0, 
   "fieldname": "contact_person", 
   "fieldtype": "Link", 
-  "permlevel": 0
+  "options": "Contact"
  }, 
  {
   "description": "Filing in Additional Information about the Purchase Receipt will help you analyze your data better.", 
   "oldfieldtype": "Section Break", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "More Info", 
   "fieldname": "more_info", 
@@ -593,9 +635,9 @@
  {
   "print_hide": 1, 
   "permlevel": 1, 
+  "print_width": "150px", 
   "no_copy": 1, 
   "oldfieldtype": "Select", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Status", 
   "oldfieldname": "status", 
@@ -612,7 +654,6 @@
   "description": "% of materials billed against this Purchase Receipt", 
   "no_copy": 1, 
   "oldfieldtype": "Currency", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "% Billed", 
   "oldfieldname": "per_billed", 
@@ -626,7 +667,6 @@
   "description": "Select \"Yes\" for sub - contracting items", 
   "default": "No", 
   "oldfieldtype": "Select", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Is Subcontracted", 
   "oldfieldname": "is_subcontracted", 
@@ -637,6 +677,8 @@
  }, 
  {
   "print_hide": 1, 
+  "permlevel": 1, 
+  "print_width": "150px", 
   "no_copy": 1, 
   "oldfieldtype": "Data", 
   "doctype": "DocField", 
@@ -646,26 +688,11 @@
   "fieldname": "amended_from", 
   "fieldtype": "Data", 
   "hidden": 1, 
-  "permlevel": 1
- }, 
- {
-  "print_hide": 1, 
-  "description": "The date at which current entry is corrected in the system.", 
-  "no_copy": 1, 
-  "oldfieldtype": "Date", 
-  "doctype": "DocField", 
-  "label": "Amendment Date", 
-  "oldfieldname": "amendment_date", 
-  "width": "100px", 
-  "fieldname": "amendment_date", 
-  "fieldtype": "Date", 
-  "hidden": 1, 
-  "permlevel": 0
+  "options": "Purchase Receipt"
  }, 
  {
   "print_hide": 1, 
   "oldfieldtype": "Data", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Range", 
   "oldfieldname": "range", 
@@ -700,25 +727,23 @@
   "print_hide": 1, 
   "no_copy": 1, 
   "oldfieldtype": "Link", 
-  "colour": "White:FFF", 
   "allow_on_submit": 1, 
   "doctype": "DocField", 
   "label": "Select Print Heading", 
   "oldfieldname": "select_print_heading", 
-  "permlevel": 0, 
-  "trigger": "Client", 
+  "options": "Print Heading", 
   "fieldname": "select_print_heading", 
   "fieldtype": "Link", 
-  "options": "Print Heading", 
+  "permlevel": 0, 
   "report_hide": 1
  }, 
  {
   "print_hide": 1, 
   "permlevel": 0, 
   "description": "Select the relevant company name if you have multiple companies", 
+  "print_width": "150px", 
   "no_copy": 0, 
   "oldfieldtype": "Link", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Company", 
   "oldfieldname": "company", 
@@ -728,11 +753,12 @@
   "search_index": 1, 
   "reqd": 1, 
   "hidden": 0, 
-  "in_filter": 1, 
-  "options": "Company"
+  "options": "Company", 
+  "in_filter": 1
  }, 
  {
   "print_hide": 1, 
+  "print_width": "150px", 
   "permlevel": 0, 
   "oldfieldtype": "Select", 
   "doctype": "DocField", 
@@ -748,6 +774,7 @@
  }, 
  {
   "print_hide": 1, 
+  "print_width": "50%", 
   "oldfieldtype": "Column Break", 
   "doctype": "DocField", 
   "width": "50%", 
@@ -757,40 +784,39 @@
  }, 
  {
   "print_hide": 1, 
-  "permlevel": 0, 
+  "print_width": "30%", 
   "oldfieldtype": "HTML", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Other Details", 
   "width": "30%", 
+  "options": "<div class='columnHeading'>Other Details</div>", 
   "fieldname": "other_details", 
   "fieldtype": "HTML", 
   "reqd": 0, 
   "hidden": 1, 
-  "options": "<div class='columnHeading'>Other Details</div>"
+  "permlevel": 0
  }, 
  {
   "print_hide": 1, 
   "description": "Warehouse where you are maintaining stock of rejected items", 
   "no_copy": 1, 
   "oldfieldtype": "Link", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Rejected Warehouse", 
   "oldfieldname": "rejected_warehouse", 
-  "permlevel": 0, 
+  "options": "Warehouse", 
   "fieldname": "rejected_warehouse", 
   "fieldtype": "Link", 
   "reqd": 0, 
-  "options": "Warehouse"
+  "permlevel": 0
  }, 
  {
   "print_hide": 1, 
   "permlevel": 0, 
   "description": "Supplier warehouse where you have issued raw materials for sub - contracting", 
+  "print_width": "50px", 
   "no_copy": 1, 
   "oldfieldtype": "Link", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Supplier Warehouse", 
   "oldfieldname": "supplier_warehouse", 
@@ -803,7 +829,6 @@
   "print_hide": 1, 
   "no_copy": 1, 
   "oldfieldtype": "Data", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Cancel Reason", 
   "oldfieldname": "cancel_reason", 
@@ -849,9 +874,9 @@
  {
   "print_hide": 0, 
   "description": "Transporter lorry number", 
+  "print_width": "100px", 
   "no_copy": 1, 
   "oldfieldtype": "Data", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "LR No", 
   "oldfieldname": "lr_no", 
@@ -863,9 +888,9 @@
  {
   "print_hide": 0, 
   "description": "Date on which lorry started from supplier warehouse", 
+  "print_width": "100px", 
   "no_copy": 1, 
   "oldfieldtype": "Date", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "LR Date", 
   "oldfieldname": "lr_date", 
@@ -875,6 +900,7 @@
   "permlevel": 0
  }, 
  {
+  "print_width": "50%", 
   "doctype": "DocField", 
   "width": "50%", 
   "fieldname": "column_break5", 
@@ -885,7 +911,6 @@
   "print_hide": 1, 
   "description": "Following table will show values if items are sub - contracted. These values will be fetched from the master of \"Bill of Materials\" of sub - contracted items.", 
   "oldfieldtype": "Section Break", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Raw Material Details", 
   "fieldname": "raw_material_details", 
@@ -899,10 +924,10 @@
   "doctype": "DocField", 
   "label": "Purchase Receipt Item Supplieds", 
   "oldfieldname": "pr_raw_material_details", 
-  "options": "Purchase Receipt Item Supplied", 
+  "permlevel": 1, 
   "fieldname": "pr_raw_material_details", 
   "fieldtype": "Table", 
-  "permlevel": 1
+  "options": "Purchase Receipt Item Supplied"
  }, 
  {
   "print_hide": 1, 
@@ -920,27 +945,28 @@
   "doctype": "DocPerm", 
   "submit": 1, 
   "write": 1, 
+  "report": 1, 
   "role": "Purchase User", 
   "cancel": 1, 
-  "permlevel": 0, 
-  "match": ""
+  "permlevel": 0
  }, 
  {
-  "doctype": "DocPerm", 
   "role": "Purchase User", 
-  "permlevel": 1
+  "permlevel": 1, 
+  "doctype": "DocPerm"
  }, 
  {
   "doctype": "DocPerm", 
   "role": "Supplier", 
-  "match": "supplier", 
-  "permlevel": 0
+  "report": 1, 
+  "permlevel": 0, 
+  "match": "supplier"
  }, 
  {
   "write": 1, 
-  "doctype": "DocPerm", 
   "role": "All", 
-  "permlevel": 2
+  "permlevel": 2, 
+  "doctype": "DocPerm"
  }, 
  {
   "amend": 0, 
@@ -958,6 +984,7 @@
   "doctype": "DocPerm", 
   "submit": 1, 
   "write": 1, 
+  "report": 1, 
   "role": "Material Manager", 
   "cancel": 1, 
   "permlevel": 0
@@ -978,6 +1005,7 @@
   "doctype": "DocPerm", 
   "submit": 1, 
   "write": 1, 
+  "report": 1, 
   "role": "Material User", 
   "cancel": 1, 
   "permlevel": 0
diff --git a/stock/doctype/sales_bom/sales_bom.txt b/stock/doctype/sales_bom/sales_bom.txt
index 29a70b8..d7b6225 100644
--- a/stock/doctype/sales_bom/sales_bom.txt
+++ b/stock/doctype/sales_bom/sales_bom.txt
@@ -8,16 +8,16 @@
  }, 
  {
   "section_style": "Simple", 
-  "description": "Aggregate group of **Items** into another **Item**. This is useful if you are bundling a certain **Items** into a package and you maintain stock of the packed **Items** and not the aggregate **Item**. \n\nThe package **Item** will have \"Is Stock Item\" as \"No\" and \"Is Sales Item\" as \"Yes\".\n\nFor Example: If you are selling Laptops and Backpacks separately and have a special price if the customer buys both, then the Laptop + Backpack will be a new Sales BOM Item.\n\nNote: BOM = Bill of Materials", 
   "is_submittable": 0, 
+  "description": "Aggregate group of **Items** into another **Item**. This is useful if you are bundling a certain **Items** into a package and you maintain stock of the packed **Items** and not the aggregate **Item**. \n\nThe package **Item** will have \"Is Stock Item\" as \"No\" and \"Is Sales Item\" as \"Yes\".\n\nFor Example: If you are selling Laptops and Backpacks separately and have a special price if the customer buys both, then the Laptop + Backpack will be a new Sales BOM Item.\n\nNote: BOM = Bill of Materials", 
   "module": "Stock", 
-  "doctype": "DocType", 
-  "allow_trash": 1, 
   "server_code_error": " ", 
+  "allow_trash": 1, 
   "document_type": "Master", 
+  "_last_update": "1322549701", 
   "name": "__common__", 
   "colour": "White:FFF", 
-  "_last_update": "1322549701", 
+  "doctype": "DocType", 
   "show_in_menu": 0, 
   "version": 1
  }, 
@@ -33,8 +33,8 @@
   "name": "__common__", 
   "parent": "Sales BOM", 
   "read": 1, 
-  "doctype": "DocPerm", 
   "submit": 0, 
+  "doctype": "DocPerm", 
   "amend": 0, 
   "parenttype": "DocType", 
   "parentfield": "permissions"
@@ -55,6 +55,7 @@
   "create": 1, 
   "doctype": "DocPerm", 
   "write": 1, 
+  "report": 1, 
   "role": "Material Manager", 
   "cancel": 1, 
   "permlevel": 0
@@ -71,6 +72,7 @@
   "create": 0, 
   "doctype": "DocPerm", 
   "write": 0, 
+  "report": 1, 
   "role": "Material User", 
   "cancel": 0, 
   "permlevel": 0
@@ -79,6 +81,7 @@
   "create": 1, 
   "doctype": "DocPerm", 
   "write": 1, 
+  "report": 1, 
   "role": "Sales User", 
   "cancel": 1, 
   "permlevel": 0
diff --git a/stock/doctype/serial_no/serial_no.txt b/stock/doctype/serial_no/serial_no.txt
index 5a9f415..5018f82 100644
--- a/stock/doctype/serial_no/serial_no.txt
+++ b/stock/doctype/serial_no/serial_no.txt
@@ -7,15 +7,15 @@
   "modified": "2012-12-03 11:39:34"
  }, 
  {
-  "allow_attach": 1, 
-  "search_fields": "item_code,status", 
-  "module": "Stock", 
   "document_type": "Master", 
   "description": "Distinct unit of an Item", 
   "autoname": "field:serial_no", 
-  "name": "__common__", 
   "allow_rename": 1, 
-  "doctype": "DocType"
+  "name": "__common__", 
+  "module": "Stock", 
+  "doctype": "DocType", 
+  "search_fields": "item_code,status", 
+  "allow_attach": 1
  }, 
  {
   "name": "__common__", 
@@ -123,12 +123,12 @@
   "doctype": "DocField", 
   "label": "Item Group", 
   "oldfieldname": "item_group", 
-  "options": "Item Group", 
+  "permlevel": 1, 
   "fieldname": "item_group", 
   "fieldtype": "Link", 
   "search_index": 0, 
   "reqd": 1, 
-  "permlevel": 1, 
+  "options": "Item Group", 
   "in_filter": 0
  }, 
  {
@@ -136,12 +136,12 @@
   "doctype": "DocField", 
   "label": "Brand", 
   "oldfieldname": "brand", 
-  "options": "Brand", 
+  "permlevel": 1, 
   "fieldname": "brand", 
   "fieldtype": "Link", 
   "search_index": 0, 
   "reqd": 0, 
-  "permlevel": 1, 
+  "options": "Brand", 
   "in_filter": 0
  }, 
  {
@@ -162,10 +162,10 @@
   "no_copy": 1, 
   "doctype": "DocField", 
   "label": "Purchase Document Type", 
-  "options": "\nPurchase Receipt\nStock Entry", 
+  "permlevel": 0, 
   "fieldname": "purchase_document_type", 
   "fieldtype": "Select", 
-  "permlevel": 0
+  "options": "\nPurchase Receipt\nStock Entry"
  }, 
  {
   "no_copy": 1, 
@@ -226,22 +226,22 @@
   "doctype": "DocField", 
   "label": "Warehouse", 
   "oldfieldname": "warehouse", 
-  "permlevel": 0, 
+  "options": "Warehouse", 
   "fieldname": "warehouse", 
   "fieldtype": "Link", 
   "search_index": 1, 
   "reqd": 0, 
-  "options": "Warehouse", 
+  "permlevel": 0, 
   "in_filter": 1
  }, 
  {
   "no_copy": 1, 
   "doctype": "DocField", 
   "label": "Supplier", 
-  "options": "Supplier", 
+  "permlevel": 0, 
   "fieldname": "supplier", 
   "fieldtype": "Link", 
-  "permlevel": 0, 
+  "options": "Supplier", 
   "in_filter": 1
  }, 
  {
@@ -280,10 +280,10 @@
   "no_copy": 1, 
   "doctype": "DocField", 
   "label": "Delivery Document Type", 
-  "options": "\nDelivery Note\nSales Invoice\nStock Entry", 
+  "permlevel": 1, 
   "fieldname": "delivery_document_type", 
   "fieldtype": "Select", 
-  "permlevel": 1, 
+  "options": "\nDelivery Note\nSales Invoice\nStock Entry", 
   "in_filter": 1
  }, 
  {
@@ -328,11 +328,11 @@
   "doctype": "DocField", 
   "label": "Is Cancelled", 
   "oldfieldname": "is_cancelled", 
-  "options": "\nYes\nNo", 
+  "permlevel": 0, 
   "fieldname": "is_cancelled", 
   "fieldtype": "Select", 
   "hidden": 1, 
-  "permlevel": 0, 
+  "options": "\nYes\nNo", 
   "report_hide": 1
  }, 
  {
@@ -385,10 +385,10 @@
   "doctype": "DocField", 
   "label": "Territory", 
   "oldfieldname": "territory", 
-  "permlevel": 1, 
+  "options": "Territory", 
   "fieldname": "territory", 
   "fieldtype": "Link", 
-  "options": "Territory", 
+  "permlevel": 1, 
   "report_hide": 0, 
   "in_filter": 1
  }, 
@@ -407,17 +407,17 @@
   "permlevel": 0
  }, 
  {
-  "permlevel": 0, 
   "no_copy": 0, 
   "oldfieldtype": "Select", 
   "doctype": "DocField", 
   "label": "Maintenance Status", 
   "oldfieldname": "maintenance_status", 
   "width": "150px", 
+  "options": "\nUnder Warranty\nOut of Warranty\nUnder AMC\nOut of AMC", 
   "fieldname": "maintenance_status", 
   "fieldtype": "Select", 
   "search_index": 1, 
-  "options": "\nUnder Warranty\nOut of Warranty\nUnder AMC\nOut of AMC", 
+  "permlevel": 0, 
   "in_filter": 1
  }, 
  {
@@ -480,22 +480,22 @@
   "search_index": 1, 
   "doctype": "DocField", 
   "label": "Company", 
-  "options": "link:Company", 
+  "permlevel": 0, 
   "fieldname": "company", 
   "fieldtype": "Select", 
   "reqd": 1, 
-  "permlevel": 0, 
+  "options": "link:Company", 
   "in_filter": 1
  }, 
  {
   "search_index": 1, 
   "doctype": "DocField", 
   "label": "Fiscal Year", 
-  "options": "link:Fiscal Year", 
+  "permlevel": 0, 
   "fieldname": "fiscal_year", 
   "fieldtype": "Select", 
   "reqd": 1, 
-  "permlevel": 0, 
+  "options": "link:Fiscal Year", 
   "in_filter": 1
  }, 
  {
@@ -544,6 +544,7 @@
   "doctype": "DocPerm", 
   "submit": 0, 
   "write": 0, 
+  "report": 1, 
   "role": "Material Manager", 
   "cancel": 0, 
   "permlevel": 0
@@ -564,6 +565,7 @@
   "doctype": "DocPerm", 
   "submit": 0, 
   "write": 0, 
+  "report": 1, 
   "role": "Material User", 
   "cancel": 0, 
   "permlevel": 0
@@ -572,26 +574,28 @@
   "create": 1, 
   "doctype": "DocPerm", 
   "write": 1, 
-  "role": "System Manager", 
   "cancel": 1, 
+  "role": "System Manager", 
+  "report": 1, 
   "permlevel": 0
  }, 
  {
   "create": 1, 
   "doctype": "DocPerm", 
   "write": 1, 
-  "role": "Material Master Manager", 
   "cancel": 1, 
+  "role": "Material Master Manager", 
+  "report": 1, 
   "permlevel": 0
  }, 
  {
-  "doctype": "DocPerm", 
   "role": "System Manager", 
-  "permlevel": 1
+  "permlevel": 1, 
+  "doctype": "DocPerm"
  }, 
  {
-  "doctype": "DocPerm", 
   "role": "Sales Master Manager", 
-  "permlevel": 1
+  "permlevel": 1, 
+  "doctype": "DocPerm"
  }
 ]
\ 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 6613ec4..65485b5 100644
--- a/stock/doctype/stock_entry/stock_entry.js
+++ b/stock/doctype/stock_entry/stock_entry.js
@@ -14,7 +14,7 @@
 // You should have received a copy of the GNU General Public License
 // along with this program.	If not, see <http://www.gnu.org/licenses/>.
 
-wn.require("public/app/js/stock_controller.js");
+wn.require("public/app/js/controllers/stock_controller.js");
 wn.provide("erpnext.stock");
 
 erpnext.stock.StockEntry = erpnext.stock.StockController.extend({
diff --git a/stock/doctype/stock_entry/stock_entry.txt b/stock/doctype/stock_entry/stock_entry.txt
index 76a8d42..be6eb88 100644
--- a/stock/doctype/stock_entry/stock_entry.txt
+++ b/stock/doctype/stock_entry/stock_entry.txt
@@ -7,20 +7,20 @@
   "modified": "2013-01-11 11:54:51"
  }, 
  {
-  "in_create": 0, 
   "is_submittable": 1, 
+  "in_create": 0, 
   "allow_print": 0, 
   "search_fields": "transfer_date, from_warehouse, to_warehouse, purpose, remarks", 
   "module": "Stock", 
-  "doctype": "DocType", 
+  "autoname": "naming_series:", 
   "read_only_onload": 0, 
+  "doctype": "DocType", 
   "in_dialog": 0, 
-  "issingle": 0, 
   "allow_attach": 0, 
   "read_only": 0, 
   "allow_email": 0, 
   "hide_heading": 0, 
-  "autoname": "naming_series:", 
+  "issingle": 0, 
   "name": "__common__", 
   "allow_rename": 0, 
   "max_attachments": 0, 
@@ -70,9 +70,9 @@
   "search_index": 0, 
   "reqd": 1, 
   "hidden": 0, 
-  "in_filter": 0, 
   "options": "\nSTE", 
-  "report_hide": 0
+  "report_hide": 0, 
+  "in_filter": 0
  }, 
  {
   "print_hide": 0, 
@@ -105,21 +105,21 @@
  {
   "print_hide": 1, 
   "description": "The date at which current entry will get or has actually executed.", 
-  "default": "Today", 
+  "no_copy": 1, 
   "oldfieldtype": "Date", 
   "allow_on_submit": 0, 
   "doctype": "DocField", 
   "label": "Posting Date", 
   "oldfieldname": "posting_date", 
-  "no_copy": 1, 
+  "default": "Today", 
   "fieldname": "posting_date", 
   "fieldtype": "Date", 
   "search_index": 1, 
   "reqd": 1, 
   "hidden": 0, 
-  "in_filter": 1, 
   "permlevel": 0, 
-  "report_hide": 0
+  "report_hide": 0, 
+  "in_filter": 1
  }, 
  {
   "print_hide": 1, 
@@ -190,10 +190,10 @@
  }, 
  {
   "doctype": "DocField", 
-  "options": "Simple", 
+  "permlevel": 0, 
   "fieldname": "sb0", 
   "fieldtype": "Section Break", 
-  "permlevel": 0
+  "options": "Simple"
  }, 
  {
   "print_hide": 0, 
@@ -219,10 +219,10 @@
   "oldfieldtype": "Button", 
   "doctype": "DocField", 
   "label": "Get Stock and Rate", 
-  "options": "get_stock_and_rate", 
+  "permlevel": 0, 
   "fieldname": "get_stock_and_rate", 
   "fieldtype": "Button", 
-  "permlevel": 0
+  "options": "get_stock_and_rate"
  }, 
  {
   "doctype": "DocField", 
@@ -233,17 +233,17 @@
  }, 
  {
   "print_hide": 1, 
-  "depends_on": "eval:inList([\"Material Transfer\", \"Manufacture/Repack\"], doc.purpose)", 
+  "doctype": "DocField", 
   "no_copy": 0, 
   "search_index": 1, 
   "allow_on_submit": 0, 
-  "doctype": "DocField", 
+  "oldfieldtype": "Link", 
   "label": "Production Order", 
   "oldfieldname": "production_order", 
   "permlevel": 0, 
   "fieldname": "production_order", 
   "fieldtype": "Link", 
-  "oldfieldtype": "Link", 
+  "depends_on": "eval:inList([\"Material Transfer\", \"Manufacture/Repack\"], doc.purpose)", 
   "reqd": 0, 
   "hidden": 1, 
   "options": "Production Order", 
@@ -254,43 +254,43 @@
   "depends_on": "eval:!inList([\"Sales Return\", \"Purchase Return\"], doc.purpose)", 
   "doctype": "DocField", 
   "label": "BOM No", 
-  "options": "BOM", 
+  "permlevel": 0, 
   "fieldname": "bom_no", 
   "fieldtype": "Link", 
-  "permlevel": 0
+  "options": "BOM"
  }, 
  {
   "print_hide": 1, 
-  "depends_on": "eval:!inList([\"Sales Return\", \"Purchase Return\"], doc.purpose)", 
+  "doctype": "DocField", 
   "description": "As per Stock UOM", 
   "no_copy": 0, 
   "search_index": 0, 
   "allow_on_submit": 0, 
-  "doctype": "DocField", 
+  "oldfieldtype": "Currency", 
   "label": "Manufacturing Quantity", 
   "oldfieldname": "fg_completed_qty", 
   "fieldname": "fg_completed_qty", 
   "fieldtype": "Currency", 
-  "oldfieldtype": "Currency", 
+  "depends_on": "eval:!inList([\"Sales Return\", \"Purchase Return\"], doc.purpose)", 
   "reqd": 0, 
   "hidden": 0, 
-  "in_filter": 0, 
   "permlevel": 0, 
-  "report_hide": 0
+  "report_hide": 0, 
+  "in_filter": 0
  }, 
  {
   "print_hide": 1, 
-  "depends_on": "eval:doc.purpose==\"Sales Return\"", 
+  "doctype": "DocField", 
   "no_copy": 1, 
   "search_index": 1, 
   "allow_on_submit": 0, 
-  "doctype": "DocField", 
+  "oldfieldtype": "Link", 
   "label": "Delivery Note No", 
   "oldfieldname": "delivery_note_no", 
   "permlevel": 0, 
   "fieldname": "delivery_note_no", 
   "fieldtype": "Link", 
-  "oldfieldtype": "Link", 
+  "depends_on": "eval:doc.purpose==\"Sales Return\"", 
   "reqd": 0, 
   "hidden": 1, 
   "options": "Delivery Note", 
@@ -299,17 +299,17 @@
  }, 
  {
   "print_hide": 1, 
-  "depends_on": "eval:doc.purpose==\"Purchase Return\"", 
+  "doctype": "DocField", 
   "no_copy": 1, 
   "search_index": 1, 
   "allow_on_submit": 0, 
-  "doctype": "DocField", 
+  "oldfieldtype": "Link", 
   "label": "Purchase Receipt No", 
   "oldfieldname": "purchase_receipt_no", 
   "permlevel": 0, 
   "fieldname": "purchase_receipt_no", 
   "fieldtype": "Link", 
-  "oldfieldtype": "Link", 
+  "depends_on": "eval:doc.purpose==\"Purchase Return\"", 
   "reqd": 0, 
   "hidden": 1, 
   "options": "Purchase Receipt", 
@@ -334,15 +334,15 @@
  }, 
  {
   "print_hide": 1, 
-  "depends_on": "eval:!inList([\"Sales Return\", \"Purchase Return\"], doc.purpose)", 
+  "doctype": "DocField", 
   "no_copy": 0, 
   "search_index": 0, 
   "allow_on_submit": 0, 
-  "doctype": "DocField", 
+  "oldfieldtype": "Button", 
   "label": "Get Items", 
   "fieldname": "get_items", 
   "fieldtype": "Button", 
-  "oldfieldtype": "Button", 
+  "depends_on": "eval:!inList([\"Sales Return\", \"Purchase Return\"], doc.purpose)", 
   "reqd": 0, 
   "hidden": 0, 
   "permlevel": 0, 
@@ -355,11 +355,11 @@
   "depends_on": "eval:doc.purpose==\"Sales Return\"", 
   "doctype": "DocField", 
   "label": "Sales Invoice No", 
-  "options": "Sales Invoice", 
+  "permlevel": 0, 
   "fieldname": "sales_invoice_no", 
   "fieldtype": "Link", 
   "hidden": 1, 
-  "permlevel": 0
+  "options": "Sales Invoice"
  }, 
  {
   "depends_on": "eval:(doc.purpose==\"Sales Return\" || doc.purpose==\"Purchase Return\")", 
@@ -371,17 +371,17 @@
  }, 
  {
   "print_hide": 1, 
-  "depends_on": "eval:doc.purpose==\"Purchase Return\"", 
+  "doctype": "DocField", 
   "no_copy": 1, 
   "search_index": 0, 
   "allow_on_submit": 0, 
-  "doctype": "DocField", 
+  "oldfieldtype": "Link", 
   "label": "Supplier", 
   "oldfieldname": "supplier", 
   "permlevel": 0, 
   "fieldname": "supplier", 
   "fieldtype": "Link", 
-  "oldfieldtype": "Link", 
+  "depends_on": "eval:doc.purpose==\"Purchase Return\"", 
   "reqd": 0, 
   "hidden": 0, 
   "options": "Supplier", 
@@ -390,16 +390,16 @@
  }, 
  {
   "print_hide": 0, 
-  "depends_on": "eval:doc.purpose==\"Purchase Return\"", 
+  "doctype": "DocField", 
   "no_copy": 1, 
   "search_index": 0, 
   "allow_on_submit": 0, 
-  "doctype": "DocField", 
+  "oldfieldtype": "Data", 
   "label": "Supplier Name", 
   "oldfieldname": "supplier_name", 
   "fieldname": "supplier_name", 
   "fieldtype": "Data", 
-  "oldfieldtype": "Data", 
+  "depends_on": "eval:doc.purpose==\"Purchase Return\"", 
   "reqd": 0, 
   "hidden": 0, 
   "permlevel": 1, 
@@ -408,16 +408,16 @@
  }, 
  {
   "print_hide": 0, 
-  "depends_on": "eval:doc.purpose==\"Purchase Return\"", 
+  "doctype": "DocField", 
   "no_copy": 1, 
   "search_index": 0, 
   "allow_on_submit": 0, 
-  "doctype": "DocField", 
+  "oldfieldtype": "Small Text", 
   "label": "Supplier Address", 
   "oldfieldname": "supplier_address", 
   "fieldname": "supplier_address", 
   "fieldtype": "Small Text", 
-  "oldfieldtype": "Small Text", 
+  "depends_on": "eval:doc.purpose==\"Purchase Return\"", 
   "reqd": 0, 
   "hidden": 0, 
   "permlevel": 0, 
@@ -426,17 +426,17 @@
  }, 
  {
   "print_hide": 1, 
-  "depends_on": "eval:doc.purpose==\"Sales Return\"", 
+  "doctype": "DocField", 
   "no_copy": 1, 
   "search_index": 0, 
   "allow_on_submit": 0, 
-  "doctype": "DocField", 
+  "oldfieldtype": "Link", 
   "label": "Customer", 
   "oldfieldname": "customer", 
   "permlevel": 0, 
   "fieldname": "customer", 
   "fieldtype": "Link", 
-  "oldfieldtype": "Link", 
+  "depends_on": "eval:doc.purpose==\"Sales Return\"", 
   "reqd": 0, 
   "hidden": 0, 
   "options": "Customer", 
@@ -445,16 +445,16 @@
  }, 
  {
   "print_hide": 0, 
-  "depends_on": "eval:doc.purpose==\"Sales Return\"", 
+  "doctype": "DocField", 
   "no_copy": 1, 
   "search_index": 0, 
   "allow_on_submit": 0, 
-  "doctype": "DocField", 
+  "oldfieldtype": "Data", 
   "label": "Customer Name", 
   "oldfieldname": "customer_name", 
   "fieldname": "customer_name", 
   "fieldtype": "Data", 
-  "oldfieldtype": "Data", 
+  "depends_on": "eval:doc.purpose==\"Sales Return\"", 
   "reqd": 0, 
   "hidden": 0, 
   "permlevel": 1, 
@@ -463,16 +463,16 @@
  }, 
  {
   "print_hide": 0, 
-  "depends_on": "eval:doc.purpose==\"Sales Return\"", 
+  "doctype": "DocField", 
   "no_copy": 1, 
   "search_index": 0, 
   "allow_on_submit": 0, 
-  "doctype": "DocField", 
+  "oldfieldtype": "Small Text", 
   "label": "Customer Address", 
   "oldfieldname": "customer_address", 
   "fieldname": "customer_address", 
   "fieldtype": "Small Text", 
-  "oldfieldtype": "Small Text", 
+  "depends_on": "eval:doc.purpose==\"Sales Return\"", 
   "reqd": 0, 
   "hidden": 0, 
   "permlevel": 0, 
@@ -500,10 +500,10 @@
   "doctype": "DocField", 
   "label": "Project Name", 
   "oldfieldname": "project_name", 
-  "options": "Project", 
+  "permlevel": 0, 
   "fieldname": "project_name", 
   "fieldtype": "Link", 
-  "permlevel": 0, 
+  "options": "Project", 
   "in_filter": 1
  }, 
  {
@@ -591,6 +591,7 @@
   "doctype": "DocPerm", 
   "submit": 1, 
   "write": 1, 
+  "report": 1, 
   "role": "Material User", 
   "cancel": 1, 
   "permlevel": 0
@@ -631,6 +632,7 @@
   "doctype": "DocPerm", 
   "submit": 1, 
   "write": 1, 
+  "report": 1, 
   "role": "Manufacturing User", 
   "cancel": 1, 
   "permlevel": 0
@@ -650,6 +652,7 @@
   "doctype": "DocPerm", 
   "submit": 1, 
   "write": 1, 
+  "report": 1, 
   "role": "Manufacturing Manager", 
   "cancel": 1, 
   "permlevel": 0
@@ -679,6 +682,7 @@
   "doctype": "DocPerm", 
   "submit": 1, 
   "write": 1, 
+  "report": 1, 
   "role": "Material Manager", 
   "cancel": 1, 
   "permlevel": 0
diff --git a/stock/doctype/stock_ledger_entry/stock_ledger_entry.txt b/stock/doctype/stock_ledger_entry/stock_ledger_entry.txt
index 988ad33..f56f63a 100644
--- a/stock/doctype/stock_ledger_entry/stock_ledger_entry.txt
+++ b/stock/doctype/stock_ledger_entry/stock_ledger_entry.txt
@@ -32,6 +32,7 @@
   "parent": "Stock Ledger Entry", 
   "read": 1, 
   "doctype": "DocPerm", 
+  "report": 1, 
   "parenttype": "DocType", 
   "permlevel": 0, 
   "parentfield": "permissions"
@@ -271,8 +272,8 @@
   "doctype": "DocPerm", 
   "submit": 0, 
   "write": 0, 
-  "cancel": 0, 
-  "role": "Sales User"
+  "role": "Sales User", 
+  "cancel": 0
  }, 
  {
   "amend": 0, 
@@ -280,8 +281,8 @@
   "doctype": "DocPerm", 
   "submit": 0, 
   "write": 0, 
-  "cancel": 0, 
-  "role": "Material User"
+  "role": "Material User", 
+  "cancel": 0
  }, 
  {
   "role": "Accounts Manager", 
diff --git a/stock/doctype/stock_reconciliation/stock_reconciliation.js b/stock/doctype/stock_reconciliation/stock_reconciliation.js
index 62bc69f..f1508ac 100644
--- a/stock/doctype/stock_reconciliation/stock_reconciliation.js
+++ b/stock/doctype/stock_reconciliation/stock_reconciliation.js
@@ -14,7 +14,7 @@
 // You should have received a copy of the GNU General Public License
 // along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-wn.require("public/app/js/stock_controller.js");
+wn.require("public/app/js/controllers/stock_controller.js");
 wn.provide("erpnext.stock");
 
 erpnext.stock.StockReconciliation = erpnext.stock.StockController.extend({
diff --git a/stock/doctype/warehouse/warehouse.txt b/stock/doctype/warehouse/warehouse.txt
index 21afd03..294c2d3 100644
--- a/stock/doctype/warehouse/warehouse.txt
+++ b/stock/doctype/warehouse/warehouse.txt
@@ -7,13 +7,13 @@
   "modified": "2012-12-03 11:24:31"
  }, 
  {
-  "autoname": "field:warehouse_name", 
+  "document_type": "Master", 
   "description": "A logical Warehouse against which stock entries are made.", 
+  "autoname": "field:warehouse_name", 
   "allow_rename": 1, 
-  "search_fields": "warehouse_type", 
   "module": "Stock", 
   "doctype": "DocType", 
-  "document_type": "Master", 
+  "search_fields": "warehouse_type", 
   "name": "__common__"
  }, 
  {
@@ -59,11 +59,11 @@
   "doctype": "DocField", 
   "label": "Warehouse Type", 
   "oldfieldname": "warehouse_type", 
-  "options": "Warehouse Type", 
+  "permlevel": 0, 
   "fieldname": "warehouse_type", 
   "fieldtype": "Link", 
   "reqd": 1, 
-  "permlevel": 0
+  "options": "Warehouse Type"
  }, 
  {
   "oldfieldtype": "Link", 
@@ -71,11 +71,11 @@
   "doctype": "DocField", 
   "label": "Company", 
   "oldfieldname": "company", 
-  "options": "Company", 
+  "permlevel": 0, 
   "fieldname": "company", 
   "fieldtype": "Link", 
   "search_index": 1, 
-  "permlevel": 0, 
+  "options": "Company", 
   "in_filter": 1
  }, 
  {
@@ -103,20 +103,20 @@
   "doctype": "DocField", 
   "label": "Phone No", 
   "oldfieldname": "phone_no", 
-  "options": "Phone", 
+  "permlevel": 0, 
   "fieldname": "phone_no", 
   "fieldtype": "Data", 
-  "permlevel": 0
+  "options": "Phone"
  }, 
  {
   "oldfieldtype": "Int", 
   "doctype": "DocField", 
   "label": "Mobile No", 
   "oldfieldname": "mobile_no", 
-  "options": "Phone", 
+  "permlevel": 0, 
   "fieldname": "mobile_no", 
   "fieldtype": "Data", 
-  "permlevel": 0
+  "options": "Phone"
  }, 
  {
   "oldfieldtype": "Column Break", 
@@ -159,10 +159,10 @@
   "doctype": "DocField", 
   "label": "State", 
   "oldfieldname": "state", 
-  "options": "Suggest", 
+  "permlevel": 0, 
   "fieldname": "state", 
   "fieldtype": "Data", 
-  "permlevel": 0
+  "options": "Suggest"
  }, 
  {
   "oldfieldtype": "Int", 
@@ -184,10 +184,10 @@
  }, 
  {
   "doctype": "DocField", 
-  "label": "Merge With", 
   "options": "Warehouse", 
   "fieldname": "merge_with", 
   "fieldtype": "Link", 
+  "label": "Merge With", 
   "permlevel": 2
  }, 
  {
@@ -203,8 +203,8 @@
   "doctype": "DocPerm", 
   "submit": 0, 
   "write": 0, 
-  "cancel": 0, 
   "role": "Material User", 
+  "cancel": 0, 
   "permlevel": 2
  }, 
  {
@@ -213,8 +213,9 @@
   "doctype": "DocPerm", 
   "submit": 0, 
   "write": 0, 
-  "cancel": 0, 
+  "report": 1, 
   "role": "Material User", 
+  "cancel": 0, 
   "permlevel": 0
  }, 
  {
@@ -223,8 +224,8 @@
   "doctype": "DocPerm", 
   "submit": 0, 
   "write": 0, 
-  "cancel": 0, 
   "role": "Material User", 
+  "cancel": 0, 
   "permlevel": 1
  }, 
  {
@@ -233,8 +234,8 @@
   "doctype": "DocPerm", 
   "submit": 0, 
   "write": 0, 
-  "cancel": 0, 
   "role": "Material Manager", 
+  "cancel": 0, 
   "permlevel": 2
  }, 
  {
@@ -243,8 +244,9 @@
   "doctype": "DocPerm", 
   "submit": 0, 
   "write": 0, 
-  "cancel": 0, 
+  "report": 1, 
   "role": "Material Manager", 
+  "cancel": 0, 
   "permlevel": 0
  }, 
  {
@@ -253,14 +255,14 @@
   "doctype": "DocPerm", 
   "submit": 0, 
   "write": 0, 
-  "cancel": 0, 
   "role": "Material Manager", 
+  "cancel": 0, 
   "permlevel": 1
  }, 
  {
-  "doctype": "DocPerm", 
   "role": "All", 
-  "permlevel": 1
+  "permlevel": 1, 
+  "doctype": "DocPerm"
  }, 
  {
   "amend": 0, 
@@ -268,21 +270,23 @@
   "doctype": "DocPerm", 
   "submit": 0, 
   "write": 1, 
-  "cancel": 1, 
+  "report": 1, 
   "role": "Material Master Manager", 
+  "cancel": 1, 
   "permlevel": 0
  }, 
  {
-  "doctype": "DocPerm", 
   "role": "Material Master Manager", 
-  "permlevel": 1
+  "permlevel": 1, 
+  "doctype": "DocPerm"
  }, 
  {
   "create": 1, 
   "doctype": "DocPerm", 
   "write": 1, 
-  "role": "System Manager", 
   "cancel": 1, 
+  "role": "System Manager", 
+  "report": 1, 
   "permlevel": 0
  }, 
  {
diff --git a/support/doctype/maintenance_schedule/maintenance_schedule.txt b/support/doctype/maintenance_schedule/maintenance_schedule.txt
index 9af7d2c..a97c907 100644
--- a/support/doctype/maintenance_schedule/maintenance_schedule.txt
+++ b/support/doctype/maintenance_schedule/maintenance_schedule.txt
@@ -11,12 +11,12 @@
   "is_submittable": 1, 
   "search_fields": "status,customer,customer_name, sales_order_no", 
   "module": "Support", 
-  "doctype": "DocType", 
   "server_code_error": " ", 
   "autoname": "MS.#####", 
+  "_last_update": "1322549701", 
   "name": "__common__", 
   "colour": "White:FFF", 
-  "_last_update": "1322549701", 
+  "doctype": "DocType", 
   "show_in_menu": 0, 
   "version": 156
  }, 
@@ -45,6 +45,7 @@
   "doctype": "DocPerm", 
   "submit": 1, 
   "write": 1, 
+  "report": 1, 
   "role": "System Manager", 
   "cancel": 1, 
   "permlevel": 0
@@ -60,6 +61,7 @@
   "doctype": "DocPerm", 
   "submit": 1, 
   "write": 1, 
+  "report": 1, 
   "role": "Maintenance Manager", 
   "cancel": 1, 
   "permlevel": 0
@@ -73,10 +75,10 @@
   "oldfieldtype": "Section Break", 
   "doctype": "DocField", 
   "label": "Customer Details", 
-  "permlevel": 0, 
+  "options": "Simple", 
   "fieldname": "customer_details", 
   "fieldtype": "Section Break", 
-  "options": "Simple"
+  "permlevel": 0
  }, 
  {
   "oldfieldtype": "Column Break", 
@@ -104,19 +106,19 @@
   "print_hide": 1, 
   "doctype": "DocField", 
   "label": "Customer Address", 
-  "options": "Address", 
+  "permlevel": 0, 
   "fieldname": "customer_address", 
   "fieldtype": "Link", 
-  "permlevel": 0
+  "options": "Address"
  }, 
  {
   "print_hide": 1, 
   "doctype": "DocField", 
   "label": "Contact Person", 
-  "options": "Contact", 
+  "permlevel": 0, 
   "fieldname": "contact_person", 
   "fieldtype": "Link", 
-  "permlevel": 0
+  "options": "Contact"
  }, 
  {
   "search_index": 0, 
@@ -224,12 +226,12 @@
   "doctype": "DocField", 
   "label": "Company", 
   "oldfieldname": "company", 
-  "options": "Company", 
+  "permlevel": 0, 
   "fieldname": "company", 
   "fieldtype": "Link", 
   "oldfieldtype": "Link", 
   "reqd": 1, 
-  "permlevel": 0, 
+  "options": "Company", 
   "in_filter": 1
  }, 
  {
@@ -237,31 +239,31 @@
   "doctype": "DocField", 
   "label": "Territory", 
   "oldfieldname": "territory", 
-  "options": "Territory", 
+  "permlevel": 0, 
   "fieldname": "territory", 
   "fieldtype": "Link", 
   "oldfieldtype": "Link", 
   "reqd": 1, 
-  "permlevel": 0, 
+  "options": "Territory", 
   "in_filter": 1
  }, 
  {
   "doctype": "DocField", 
   "label": "Customer Group", 
-  "options": "Customer Group", 
+  "permlevel": 0, 
   "fieldname": "customer_group", 
   "fieldtype": "Link", 
   "reqd": 1, 
-  "permlevel": 0
+  "options": "Customer Group"
  }, 
  {
   "oldfieldtype": "Section Break", 
   "doctype": "DocField", 
   "label": "Items", 
-  "permlevel": 0, 
+  "options": "Simple", 
   "fieldname": "items", 
   "fieldtype": "Section Break", 
-  "options": "Simple"
+  "permlevel": 0
  }, 
  {
   "search_index": 1, 
@@ -269,22 +271,22 @@
   "doctype": "DocField", 
   "label": "Sales Order No", 
   "oldfieldname": "sales_order_no", 
+  "permlevel": 0, 
   "trigger": "Client", 
   "fieldname": "sales_order_no", 
   "fieldtype": "Link", 
   "oldfieldtype": "Link", 
   "options": "Sales Order", 
-  "permlevel": 0, 
   "in_filter": 1
  }, 
  {
   "oldfieldtype": "Button", 
   "doctype": "DocField", 
   "label": "Get Items", 
-  "permlevel": 0, 
+  "options": "pull_sales_order_detail", 
   "fieldname": "get_items", 
   "fieldtype": "Button", 
-  "options": "pull_sales_order_detail", 
+  "permlevel": 0, 
   "report_hide": 1
  }, 
  {
@@ -292,19 +294,19 @@
   "doctype": "DocField", 
   "label": "Maintenance Schedule Item", 
   "oldfieldname": "item_maintenance_detail", 
-  "permlevel": 0, 
+  "options": "Maintenance Schedule Item", 
   "fieldname": "item_maintenance_detail", 
   "fieldtype": "Table", 
-  "options": "Maintenance Schedule Item"
+  "permlevel": 0
  }, 
  {
   "oldfieldtype": "Section Break", 
   "doctype": "DocField", 
   "label": "Schedule", 
-  "permlevel": 0, 
+  "options": "Simple", 
   "fieldname": "schedule", 
   "fieldtype": "Section Break", 
-  "options": "Simple"
+  "permlevel": 0
  }, 
  {
   "oldfieldtype": "Button", 
@@ -321,9 +323,9 @@
   "doctype": "DocField", 
   "label": "Maintenance Schedule Detail", 
   "oldfieldname": "maintenance_schedule_detail", 
-  "permlevel": 1, 
+  "options": "Maintenance Schedule Detail", 
   "fieldname": "maintenance_schedule_detail", 
   "fieldtype": "Table", 
-  "options": "Maintenance Schedule Detail"
+  "permlevel": 1
  }
 ]
\ 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 2e58e17..fbbfdd7 100644
--- a/support/doctype/maintenance_visit/maintenance_visit.txt
+++ b/support/doctype/maintenance_visit/maintenance_visit.txt
@@ -8,17 +8,17 @@
  }, 
  {
   "section_style": "Simple", 
-  "tag_fields": "completion_status,maintenance_type", 
   "is_submittable": 1, 
+  "tag_fields": "completion_status,maintenance_type", 
   "search_fields": "status,maintenance_type,customer,customer_name, address,mntc_date,company,fiscal_year", 
   "module": "Support", 
-  "doctype": "DocType", 
   "server_code_error": " ", 
-  "subject": "To %(customer_name)s on %(mntc_date)s", 
   "autoname": "MV.#####", 
+  "subject": "To %(customer_name)s on %(mntc_date)s", 
+  "_last_update": "1322549701", 
   "name": "__common__", 
   "colour": "White:FFF", 
-  "_last_update": "1322549701", 
+  "doctype": "DocType", 
   "show_in_menu": 0, 
   "version": 1
  }, 
@@ -47,6 +47,7 @@
   "doctype": "DocPerm", 
   "submit": 1, 
   "write": 1, 
+  "report": 1, 
   "role": "System Manager", 
   "cancel": 1, 
   "permlevel": 0
@@ -62,6 +63,7 @@
   "doctype": "DocPerm", 
   "submit": 1, 
   "write": 1, 
+  "report": 1, 
   "role": "Maintenance Manager", 
   "cancel": 1, 
   "permlevel": 0
@@ -77,6 +79,7 @@
   "doctype": "DocPerm", 
   "submit": 1, 
   "write": 1, 
+  "report": 1, 
   "role": "Maintenance User", 
   "cancel": 1, 
   "permlevel": 0
@@ -90,10 +93,10 @@
   "oldfieldtype": "Section Break", 
   "doctype": "DocField", 
   "label": "Customer Details", 
-  "permlevel": 0, 
+  "options": "Simple", 
   "fieldname": "customer_details", 
   "fieldtype": "Section Break", 
-  "options": "Simple"
+  "permlevel": 0
  }, 
  {
   "oldfieldtype": "Column Break", 
@@ -191,21 +194,21 @@
   "oldfieldtype": "Section Break", 
   "doctype": "DocField", 
   "label": "Maintenance Details", 
-  "permlevel": 0, 
+  "options": "Simple", 
   "fieldname": "maintenance_details", 
   "fieldtype": "Section Break", 
-  "options": "Simple"
+  "permlevel": 0
  }, 
  {
   "oldfieldtype": "Select", 
   "doctype": "DocField", 
   "label": "Completion Status", 
   "oldfieldname": "completion_status", 
-  "permlevel": 0, 
+  "options": "\nPartially Completed\nFully Completed", 
   "fieldname": "completion_status", 
   "fieldtype": "Select", 
   "reqd": 1, 
-  "options": "\nPartially Completed\nFully Completed"
+  "permlevel": 0
  }, 
  {
   "default": "Unscheduled", 
@@ -236,12 +239,12 @@
   "doctype": "DocField", 
   "label": "Sales Order No", 
   "oldfieldname": "sales_order_no", 
+  "permlevel": 0, 
   "trigger": "Client", 
   "fieldname": "sales_order_no", 
   "fieldtype": "Link", 
   "oldfieldtype": "Link", 
   "options": "Sales Order", 
-  "permlevel": 0, 
   "in_filter": 1
  }, 
  {
@@ -250,12 +253,12 @@
   "doctype": "DocField", 
   "label": "Customer Issue No", 
   "oldfieldname": "customer_issue_no", 
+  "permlevel": 0, 
   "trigger": "Client", 
   "fieldname": "customer_issue_no", 
   "fieldtype": "Link", 
   "oldfieldtype": "Link", 
   "options": "Customer Issue", 
-  "permlevel": 0, 
   "in_filter": 1
  }, 
  {
@@ -272,10 +275,10 @@
   "oldfieldtype": "Button", 
   "doctype": "DocField", 
   "label": "Get Items", 
-  "permlevel": 0, 
+  "options": "fetch_items", 
   "fieldname": "get_items", 
   "fieldtype": "Button", 
-  "options": "fetch_items", 
+  "permlevel": 0, 
   "report_hide": 1
  }, 
  {
@@ -291,10 +294,10 @@
   "doctype": "DocField", 
   "label": "Maintenance Visit Purpose", 
   "oldfieldname": "maintenance_visit_details", 
-  "permlevel": 0, 
+  "options": "Maintenance Visit Purpose", 
   "fieldname": "maintenance_visit_details", 
   "fieldtype": "Table", 
-  "options": "Maintenance Visit Purpose"
+  "permlevel": 0
  }, 
  {
   "oldfieldtype": "Section Break", 
@@ -320,6 +323,7 @@
   "permlevel": 0
  }, 
  {
+  "permlevel": 1, 
   "default": "Draft", 
   "oldfieldtype": "Data", 
   "colour": "White:FFF", 
@@ -327,11 +331,10 @@
   "label": "Status", 
   "oldfieldname": "status", 
   "no_copy": 1, 
-  "options": "\nDraft\nCancelled\nSubmitted", 
   "fieldname": "status", 
   "fieldtype": "Data", 
   "reqd": 1, 
-  "permlevel": 1
+  "options": "\nDraft\nCancelled\nSubmitted"
  }, 
  {
   "print_hide": 1, 
@@ -363,12 +366,12 @@
   "doctype": "DocField", 
   "label": "Company", 
   "oldfieldname": "company", 
-  "options": "link:Company", 
+  "permlevel": 0, 
   "fieldname": "company", 
   "fieldtype": "Select", 
   "search_index": 0, 
   "reqd": 1, 
-  "permlevel": 0, 
+  "options": "link:Company", 
   "in_filter": 1
  }, 
  {
@@ -377,12 +380,12 @@
   "doctype": "DocField", 
   "label": "Fiscal Year", 
   "oldfieldname": "fiscal_year", 
-  "options": "link:Fiscal Year", 
+  "permlevel": 0, 
   "fieldname": "fiscal_year", 
   "fieldtype": "Select", 
   "search_index": 0, 
   "reqd": 1, 
-  "permlevel": 0, 
+  "options": "link:Fiscal Year", 
   "in_filter": 1
  }, 
  {
@@ -396,19 +399,19 @@
   "print_hide": 1, 
   "doctype": "DocField", 
   "label": "Customer Address", 
-  "options": "Address", 
+  "permlevel": 0, 
   "fieldname": "customer_address", 
   "fieldtype": "Link", 
-  "permlevel": 0
+  "options": "Address"
  }, 
  {
   "print_hide": 1, 
   "doctype": "DocField", 
   "label": "Contact Person", 
-  "options": "Contact", 
+  "permlevel": 0, 
   "fieldname": "contact_person", 
   "fieldtype": "Link", 
-  "permlevel": 0
+  "options": "Contact"
  }, 
  {
   "doctype": "DocField", 
@@ -420,18 +423,18 @@
   "print_hide": 1, 
   "doctype": "DocField", 
   "label": "Territory", 
-  "options": "Territory", 
+  "permlevel": 0, 
   "fieldname": "territory", 
   "fieldtype": "Link", 
-  "permlevel": 0
+  "options": "Territory"
  }, 
  {
   "print_hide": 1, 
   "doctype": "DocField", 
   "label": "Customer Group", 
-  "options": "Customer Group", 
+  "permlevel": 0, 
   "fieldname": "customer_group", 
   "fieldtype": "Link", 
-  "permlevel": 0
+  "options": "Customer Group"
  }
 ]
\ No newline at end of file
diff --git a/support/doctype/newsletter/newsletter.txt b/support/doctype/newsletter/newsletter.txt
index 04701e8..020c031 100644
--- a/support/doctype/newsletter/newsletter.txt
+++ b/support/doctype/newsletter/newsletter.txt
@@ -7,10 +7,10 @@
   "modified": "2013-01-02 13:47:36"
  }, 
  {
-  "autoname": "naming_series:", 
   "description": "Create and Send Newsletters", 
-  "doctype": "DocType", 
+  "autoname": "naming_series:", 
   "module": "Support", 
+  "doctype": "DocType", 
   "document_type": "Other", 
   "name": "__common__"
  }, 
@@ -45,11 +45,11 @@
   "default": "NL-", 
   "doctype": "DocField", 
   "label": "Naming Series", 
-  "options": "NL-", 
+  "permlevel": 0, 
   "fieldname": "naming_series", 
   "fieldtype": "Select", 
   "reqd": 1, 
-  "permlevel": 0
+  "options": "NL-"
  }, 
  {
   "doctype": "DocField", 
@@ -150,10 +150,10 @@
  }, 
  {
   "doctype": "DocField", 
-  "label": "Test", 
   "options": "test_send", 
   "fieldname": "test_send", 
   "fieldtype": "Button", 
+  "label": "Test", 
   "permlevel": 0
  }, 
  {
@@ -175,26 +175,28 @@
   "create": 1, 
   "doctype": "DocPerm", 
   "write": 1, 
-  "role": "Sales Manager", 
   "cancel": 1, 
+  "role": "Sales Manager", 
+  "report": 1, 
   "permlevel": 0
  }, 
  {
   "create": 1, 
   "doctype": "DocPerm", 
   "write": 1, 
-  "role": "Support Manager", 
   "cancel": 1, 
+  "role": "Support Manager", 
+  "report": 1, 
   "permlevel": 0
  }, 
  {
-  "doctype": "DocPerm", 
   "role": "Sales Manager", 
-  "permlevel": 1
+  "permlevel": 1, 
+  "doctype": "DocPerm"
  }, 
  {
-  "doctype": "DocPerm", 
   "role": "Support Manager", 
-  "permlevel": 1
+  "permlevel": 1, 
+  "doctype": "DocPerm"
  }
 ]
\ No newline at end of file
diff --git a/utilities/doctype/address/address.txt b/utilities/doctype/address/address.txt
index 8ab6431..4eeb211 100644
--- a/utilities/doctype/address/address.txt
+++ b/utilities/doctype/address/address.txt
@@ -7,12 +7,12 @@
   "modified": "2012-12-27 18:08:55"
  }, 
  {
+  "document_type": "Master", 
   "name": "__common__", 
-  "search_fields": "customer, supplier, sales_partner, country, state", 
   "module": "Utilities", 
   "doctype": "DocType", 
   "in_dialog": 0, 
-  "document_type": "Master"
+  "search_fields": "customer, supplier, sales_partner, country, state"
  }, 
  {
   "name": "__common__", 
@@ -96,21 +96,21 @@
   "search_index": 1, 
   "doctype": "DocField", 
   "label": "Country", 
-  "options": "link:Country", 
+  "permlevel": 0, 
   "fieldname": "country", 
   "fieldtype": "Select", 
   "reqd": 1, 
-  "permlevel": 0, 
+  "options": "link:Country", 
   "in_filter": 1
  }, 
  {
   "search_index": 0, 
   "doctype": "DocField", 
   "label": "State", 
-  "options": "Suggest", 
+  "permlevel": 0, 
   "fieldname": "state", 
   "fieldtype": "Data", 
-  "permlevel": 0, 
+  "options": "Suggest", 
   "in_filter": 1
  }, 
  {
@@ -173,10 +173,10 @@
   "depends_on": "eval:!doc.supplier && !doc.sales_partner", 
   "doctype": "DocField", 
   "label": "Customer", 
-  "options": "Customer", 
+  "permlevel": 0, 
   "fieldname": "customer", 
   "fieldtype": "Link", 
-  "permlevel": 0
+  "options": "Customer"
  }, 
  {
   "depends_on": "eval:!doc.supplier && !doc.sales_partner", 
@@ -191,10 +191,10 @@
   "depends_on": "eval:!doc.customer && !doc.sales_partner", 
   "doctype": "DocField", 
   "label": "Supplier", 
-  "options": "Supplier", 
+  "permlevel": 0, 
   "fieldname": "supplier", 
   "fieldtype": "Link", 
-  "permlevel": 0
+  "options": "Supplier"
  }, 
  {
   "depends_on": "eval:!doc.customer && !doc.sales_partner", 
@@ -210,16 +210,17 @@
   "depends_on": "eval:!doc.customer && !doc.supplier", 
   "doctype": "DocField", 
   "label": "Sales Partner", 
-  "options": "Sales Partner", 
+  "permlevel": 0, 
   "fieldname": "sales_partner", 
   "fieldtype": "Link", 
-  "permlevel": 0
+  "options": "Sales Partner"
  }, 
  {
   "create": 1, 
   "doctype": "DocPerm", 
   "write": 1, 
   "role": "Sales User", 
+  "report": 1, 
   "permlevel": 0
  }, 
  {
@@ -227,6 +228,7 @@
   "doctype": "DocPerm", 
   "write": 1, 
   "role": "Purchase User", 
+  "report": 1, 
   "permlevel": 0
  }, 
  {
@@ -234,6 +236,7 @@
   "doctype": "DocPerm", 
   "write": 1, 
   "role": "Maintenance User", 
+  "report": 1, 
   "permlevel": 0
  }, 
  {
@@ -241,6 +244,7 @@
   "doctype": "DocPerm", 
   "write": 1, 
   "role": "Accounts User", 
+  "report": 1, 
   "permlevel": 0
  }, 
  {
diff --git a/utilities/doctype/answer/answer.txt b/utilities/doctype/answer/answer.txt
index 80d5077..081df83 100644
--- a/utilities/doctype/answer/answer.txt
+++ b/utilities/doctype/answer/answer.txt
@@ -8,17 +8,17 @@
  }, 
  {
   "section_style": "Simple", 
-  "allow_attach": 0, 
+  "in_create": 1, 
   "module": "Utilities", 
   "allow_trash": 1, 
-  "server_code_error": " ", 
-  "in_create": 1, 
-  "read_only": 1, 
   "autoname": "_ANS.#######", 
+  "show_in_menu": 0, 
+  "allow_attach": 0, 
+  "read_only": 1, 
   "name": "__common__", 
   "colour": "White:FFF", 
   "doctype": "DocType", 
-  "show_in_menu": 0, 
+  "server_code_error": " ", 
   "version": 3
  }, 
  {
@@ -32,10 +32,11 @@
  {
   "parent": "Answer", 
   "read": 1, 
-  "doctype": "DocPerm", 
+  "report": 1, 
   "cancel": 1, 
   "name": "__common__", 
   "create": 1, 
+  "doctype": "DocPerm", 
   "write": 1, 
   "parenttype": "DocType", 
   "role": "All", 
diff --git a/utilities/doctype/contact/contact.txt b/utilities/doctype/contact/contact.txt
index 6eb59c6..400c73b 100644
--- a/utilities/doctype/contact/contact.txt
+++ b/utilities/doctype/contact/contact.txt
@@ -8,8 +8,8 @@
  }, 
  {
   "in_create": 0, 
-  "doctype": "DocType", 
   "module": "Utilities", 
+  "doctype": "DocType", 
   "in_dialog": 0, 
   "document_type": "Master", 
   "name": "__common__"
@@ -107,12 +107,12 @@
   "doctype": "DocField", 
   "label": "Customer", 
   "oldfieldname": "customer", 
-  "permlevel": 0, 
   "trigger": "Client", 
   "fieldname": "customer", 
   "fieldtype": "Link", 
   "depends_on": "eval:!doc.supplier && !doc.sales_partner", 
-  "options": "Customer"
+  "options": "Customer", 
+  "permlevel": 0
  }, 
  {
   "depends_on": "eval:!doc.supplier && !doc.sales_partner", 
@@ -128,16 +128,16 @@
   "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Supplier", 
+  "permlevel": 0, 
   "trigger": "Client", 
   "fieldname": "supplier", 
   "fieldtype": "Link", 
-  "options": "Supplier", 
-  "permlevel": 0
+  "options": "Supplier"
  }, 
  {
-  "allow_on_submit": 0, 
   "depends_on": "eval:!doc.customer && !doc.sales_partner", 
   "colour": "White:FFF", 
+  "allow_on_submit": 0, 
   "doctype": "DocField", 
   "label": "Supplier Name", 
   "fieldname": "supplier_name", 
@@ -149,10 +149,10 @@
   "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Sales Partner", 
-  "options": "Sales Partner", 
+  "permlevel": 0, 
   "fieldname": "sales_partner", 
   "fieldtype": "Link", 
-  "permlevel": 0
+  "options": "Sales Partner"
  }, 
  {
   "default": "0", 
@@ -188,20 +188,20 @@
   "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Department", 
-  "options": "Suggest", 
+  "permlevel": 0, 
   "fieldname": "department", 
   "fieldtype": "Data", 
-  "permlevel": 0
+  "options": "Suggest"
  }, 
  {
   "description": "Enter designation of this Contact", 
   "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Designation", 
-  "options": "Suggest", 
+  "permlevel": 0, 
   "fieldname": "designation", 
   "fieldtype": "Data", 
-  "permlevel": 0
+  "options": "Suggest"
  }, 
  {
   "doctype": "DocField", 
@@ -223,8 +223,9 @@
   "create": 1, 
   "doctype": "DocPerm", 
   "write": 1, 
-  "role": "System Manager", 
   "cancel": 1, 
+  "role": "System Manager", 
+  "report": 1, 
   "permlevel": 0
  }, 
  {
@@ -233,6 +234,7 @@
   "doctype": "DocPerm", 
   "submit": 0, 
   "write": 1, 
+  "report": 1, 
   "role": "Sales Master Manager", 
   "cancel": 1, 
   "permlevel": 0
@@ -241,8 +243,9 @@
   "create": 1, 
   "doctype": "DocPerm", 
   "write": 1, 
-  "role": "Purchase Master Manager", 
   "cancel": 1, 
+  "role": "Purchase Master Manager", 
+  "report": 1, 
   "permlevel": 0
  }, 
  {
@@ -250,6 +253,7 @@
   "doctype": "DocPerm", 
   "write": 1, 
   "role": "Sales Manager", 
+  "report": 1, 
   "permlevel": 0
  }, 
  {
@@ -257,6 +261,7 @@
   "doctype": "DocPerm", 
   "write": 1, 
   "role": "Purchase Manager", 
+  "report": 1, 
   "permlevel": 0
  }, 
  {
@@ -264,6 +269,7 @@
   "doctype": "DocPerm", 
   "write": 1, 
   "role": "Maintenance Manager", 
+  "report": 1, 
   "permlevel": 0
  }, 
  {
@@ -271,6 +277,7 @@
   "doctype": "DocPerm", 
   "write": 1, 
   "role": "Accounts Manager", 
+  "report": 1, 
   "permlevel": 0
  }, 
  {
@@ -278,6 +285,7 @@
   "doctype": "DocPerm", 
   "write": 1, 
   "role": "Sales User", 
+  "report": 1, 
   "permlevel": 0
  }, 
  {
@@ -285,6 +293,7 @@
   "doctype": "DocPerm", 
   "write": 1, 
   "role": "Purchase User", 
+  "report": 1, 
   "permlevel": 0
  }, 
  {
@@ -292,6 +301,7 @@
   "doctype": "DocPerm", 
   "write": 1, 
   "role": "Maintenance User", 
+  "report": 1, 
   "permlevel": 0
  }, 
  {
@@ -299,11 +309,12 @@
   "doctype": "DocPerm", 
   "write": 1, 
   "role": "Accounts User", 
+  "report": 1, 
   "permlevel": 0
  }, 
  {
-  "doctype": "DocPerm", 
   "role": "All", 
-  "permlevel": 1
+  "permlevel": 1, 
+  "doctype": "DocPerm"
  }
 ]
\ No newline at end of file
diff --git a/utilities/doctype/gl_mapper/gl_mapper.txt b/utilities/doctype/gl_mapper/gl_mapper.txt
index 3cd26b1..75846c6 100644
--- a/utilities/doctype/gl_mapper/gl_mapper.txt
+++ b/utilities/doctype/gl_mapper/gl_mapper.txt
@@ -10,12 +10,12 @@
   "section_style": "Simple", 
   "module": "Utilities", 
   "doctype": "DocType", 
+  "server_code_error": " ", 
   "autoname": "field:doc_type", 
-  "show_in_menu": 0, 
   "name": "__common__", 
   "colour": "White:FFF", 
   "_last_update": "1305006361", 
-  "server_code_error": " ", 
+  "show_in_menu": 0, 
   "version": 1
  }, 
  {
@@ -33,6 +33,7 @@
   "create": 0, 
   "doctype": "DocPerm", 
   "parenttype": "DocType", 
+  "report": 1, 
   "permlevel": 0, 
   "parentfield": "permissions"
  }, 
diff --git a/utilities/doctype/question/question.txt b/utilities/doctype/question/question.txt
index ef9d7d3..b064e33 100644
--- a/utilities/doctype/question/question.txt
+++ b/utilities/doctype/question/question.txt
@@ -8,11 +8,11 @@
  }, 
  {
   "read_only": 1, 
-  "autoname": "QUES.#######", 
   "in_create": 1, 
+  "autoname": "QUES.#######", 
   "name": "__common__", 
-  "doctype": "DocType", 
   "module": "Utilities", 
+  "doctype": "DocType", 
   "allow_attach": 0
  }, 
  {
@@ -26,6 +26,7 @@
  {
   "parent": "Question", 
   "read": 1, 
+  "report": 1, 
   "cancel": 1, 
   "name": "__common__", 
   "create": 1, 
@@ -72,9 +73,9 @@
  }, 
  {
   "doctype": "DocField", 
-  "label": "Users Voted", 
   "fieldname": "_users_voted", 
-  "fieldtype": "Text"
+  "fieldtype": "Text", 
+  "label": "Users Voted"
  }, 
  {
   "oldfieldtype": "Text", 
diff --git a/utilities/doctype/sms_log/sms_log.txt b/utilities/doctype/sms_log/sms_log.txt
index 455cfef..01d9e4a 100644
--- a/utilities/doctype/sms_log/sms_log.txt
+++ b/utilities/doctype/sms_log/sms_log.txt
@@ -9,11 +9,11 @@
  {
   "section_style": "Simple", 
   "name": "__common__", 
+  "autoname": "SMSLOG/.########", 
   "colour": "White:FFF", 
   "module": "Utilities", 
   "doctype": "DocType", 
   "version": 3, 
-  "autoname": "SMSLOG/.########", 
   "show_in_menu": 0
  }, 
  {
@@ -27,6 +27,7 @@
  {
   "parent": "SMS Log", 
   "read": 1, 
+  "report": 1, 
   "name": "__common__", 
   "create": 0, 
   "doctype": "DocPerm", 
diff --git a/utilities/transaction_base.py b/utilities/transaction_base.py
index 4234597..8502041 100644
--- a/utilities/transaction_base.py
+++ b/utilities/transaction_base.py
@@ -20,7 +20,9 @@
 from webnotes.model.doc import addchild
 from webnotes.model.wrapper import copy_doclist
 
-class TransactionBase:
+from webnotes.model.controller import DocListController
+
+class TransactionBase(DocListController):
 
 	# Get Customer Default Primary Address - first load
 	# -----------------------
@@ -227,14 +229,6 @@
 			ch.incentives = d and flt(d[3]) or 0
 			ch.idx = idx
 			idx += 1
-			
-	# Get Company Specific Default Currency
-	# -------------------------------------
-	def get_company_currency(self, name):
-		ret = webnotes.conn.sql("select default_currency from tabCompany where name = '%s'" %(name))
-		dcc = ret and ret[0][0] or get_defaults()['currency']						
-		return dcc	
-	
 
 	def load_notification_message(self):
 		dt = self.doc.doctype.lower().replace(" ", "_")
diff --git a/website/doctype/blog/blog.txt b/website/doctype/blog/blog.txt
index 962d888..cd0c40e 100644
--- a/website/doctype/blog/blog.txt
+++ b/website/doctype/blog/blog.txt
@@ -8,8 +8,8 @@
  }, 
  {
   "allow_attach": 1, 
-  "doctype": "DocType", 
   "module": "Website", 
+  "doctype": "DocType", 
   "max_attachments": 5, 
   "name": "__common__"
  }, 
@@ -25,6 +25,7 @@
   "parent": "Blog", 
   "read": 1, 
   "doctype": "DocPerm", 
+  "report": 1, 
   "parenttype": "DocType", 
   "permlevel": 0, 
   "parentfield": "permissions"
@@ -83,16 +84,16 @@
   "permlevel": 0
  }, 
  {
-  "create": 1, 
-  "doctype": "DocPerm", 
   "write": 1, 
-  "role": "Website Manager"
+  "create": 1, 
+  "role": "Website Manager", 
+  "doctype": "DocPerm"
  }, 
  {
-  "create": 1, 
-  "doctype": "DocPerm", 
   "write": 1, 
-  "role": "Blogger"
+  "create": 1, 
+  "role": "Blogger", 
+  "doctype": "DocPerm"
  }, 
  {
   "write": 0, 
diff --git a/website/doctype/web_page/web_page.txt b/website/doctype/web_page/web_page.txt
index 56c7344..8237ea4 100644
--- a/website/doctype/web_page/web_page.txt
+++ b/website/doctype/web_page/web_page.txt
@@ -7,13 +7,13 @@
   "modified": "2012-12-25 17:04:19"
  }, 
  {
-  "allow_attach": 1, 
-  "doctype": "DocType", 
-  "module": "Website", 
+  "description": "Page to show on the website\n", 
   "name": "__common__", 
+  "module": "Website", 
+  "doctype": "DocType", 
   "max_attachments": 20, 
   "document_type": "Transaction", 
-  "description": "Page to show on the website\n"
+  "allow_attach": 1
  }, 
  {
   "name": "__common__", 
@@ -78,10 +78,10 @@
   "description": "Begin this page with a slideshow of images", 
   "doctype": "DocField", 
   "label": "Slideshow", 
-  "options": "Website Slideshow", 
+  "permlevel": 0, 
   "fieldname": "slideshow", 
   "fieldtype": "Link", 
-  "permlevel": 0
+  "options": "Website Slideshow"
  }, 
  {
   "description": "Content in markdown format that appears on the main side of your page", 
@@ -101,10 +101,10 @@
  }, 
  {
   "doctype": "DocField", 
-  "label": "Text Align", 
   "options": "Left\nCenter\nRight", 
   "fieldname": "text_align", 
   "fieldtype": "Select", 
+  "label": "Text Align", 
   "permlevel": 0
  }, 
  {
@@ -117,10 +117,10 @@
  }, 
  {
   "doctype": "DocField", 
-  "label": "Javascript", 
   "options": "Javascript", 
   "fieldname": "javascript", 
   "fieldtype": "Code", 
+  "label": "Javascript", 
   "permlevel": 0
  }, 
  {
@@ -132,10 +132,10 @@
  }, 
  {
   "doctype": "DocField", 
-  "label": "CSS", 
   "options": "CSS", 
   "fieldname": "css", 
   "fieldtype": "Code", 
+  "label": "CSS", 
   "permlevel": 0
  }, 
  {
@@ -152,10 +152,11 @@
   "create": 1, 
   "doctype": "DocPerm", 
   "write": 1, 
+  "report": 1, 
   "permlevel": 0
  }, 
  {
-  "doctype": "DocPerm", 
-  "permlevel": 1
+  "permlevel": 1, 
+  "doctype": "DocPerm"
  }
 ]
\ No newline at end of file
diff --git a/website/doctype/website_slideshow/website_slideshow.txt b/website/doctype/website_slideshow/website_slideshow.txt
index 0097665..4caa617 100644
--- a/website/doctype/website_slideshow/website_slideshow.txt
+++ b/website/doctype/website_slideshow/website_slideshow.txt
@@ -7,11 +7,11 @@
   "modified": "2012-12-25 16:56:34"
  }, 
  {
-  "autoname": "field:slideshow_name", 
   "allow_attach": 1, 
+  "autoname": "field:slideshow_name", 
   "name": "__common__", 
-  "doctype": "DocType", 
   "module": "Website", 
+  "doctype": "DocType", 
   "max_attachments": 10, 
   "document_type": "Transaction", 
   "description": "Slideshow like display for the website"
@@ -27,6 +27,7 @@
  {
   "parent": "Website Slideshow", 
   "read": 1, 
+  "report": 1, 
   "cancel": 1, 
   "name": "__common__", 
   "create": 1,