diff --git a/accounts/doctype/pos_setting/pos_setting.js b/accounts/doctype/pos_setting/pos_setting.js
index 237615b..3ba60b4 100755
--- a/accounts/doctype/pos_setting/pos_setting.js
+++ b/accounts/doctype/pos_setting/pos_setting.js
@@ -53,4 +53,15 @@
 	return 'SELECT `tabPrint Heading`.name FROM `tabPrint Heading` WHERE `tabPrint Heading`.docstatus !=2 AND `tabPrint Heading`.name LIKE "%s" ORDER BY `tabPrint Heading`.name ASC LIMIT 50';
 }
 
+cur_frm.fields_dict["expense_account"].get_query = function(doc) {
+	return {
+		"query": "accounts.utils.get_account_list", 
+		"filters": {
+			"is_pl_account": "Yes",
+			"debit_or_credit": "Debit",
+			"company": doc.company
+		}
+	}
+}
+
 cur_frm.fields_dict.user.get_query = erpnext.utils.profile_query;
\ No newline at end of file
diff --git a/accounts/doctype/purchase_invoice/purchase_invoice.py b/accounts/doctype/purchase_invoice/purchase_invoice.py
index 85fdb47..50d5d43 100644
--- a/accounts/doctype/purchase_invoice/purchase_invoice.py
+++ b/accounts/doctype/purchase_invoice/purchase_invoice.py
@@ -76,7 +76,11 @@
 		self.update_valuation_rate("entries")
 
 	def get_credit_to(self):
-		acc_head = sql("select name, credit_days from `tabAccount` where (name = %s or (master_name = %s and master_type = 'supplier')) and docstatus != 2", (cstr(self.doc.supplier) + " - " + self.company_abbr,self.doc.supplier))		
+		acc_head = sql("""select name, credit_days from `tabAccount` 
+			where (name = %s or (master_name = %s and master_type = 'supplier')) 
+			and docstatus != 2 and company = %s""", 
+			(cstr(self.doc.supplier) + " - " + self.company_abbr, 
+			self.doc.supplier, self.doc.company))
 
 		ret = {}
 		if acc_head and acc_head[0][0]:
@@ -217,7 +221,8 @@
 	# 3. Is not a PL Account
 	# ----------------------------
 	def validate_credit_acc(self):
-		acc = sql("select debit_or_credit, is_pl_account from tabAccount where name = '%s'" % self.doc.credit_to)
+		acc = sql("select debit_or_credit, is_pl_account from tabAccount where name = %s", 
+			self.doc.credit_to)
 		if not acc:
 			msgprint("Account: "+ self.doc.credit_to + "does not exist")
 			raise Exception
@@ -409,7 +414,7 @@
 		purchase_controller.update_prevdoc_detail(self, is_submit = 1)
 
 
-	def make_gl_entries(self, is_cancel = 0):
+	def make_gl_entries(self):
 		from accounts.general_ledger import make_gl_entries
 		auto_inventory_accounting = \
 			cint(webnotes.defaults.get_global_default("auto_inventory_accounting"))
@@ -426,7 +431,7 @@
 					"remarks": self.doc.remarks,
 					"against_voucher": self.doc.name,
 					"against_voucher_type": self.doc.doctype,
-				}, is_cancel)
+				})
 			)
 	
 		# tax table gl entries
@@ -441,7 +446,7 @@
 						"credit": tax.add_deduct_tax == "Deduct" and tax.tax_amount or 0,
 						"remarks": self.doc.remarks,
 						"cost_center": tax.cost_center
-					}, is_cancel)
+					})
 				)
 			
 			# accumulate valuation tax
@@ -469,7 +474,7 @@
 							"debit": flt(item.valuation_rate) * flt(item.conversion_factor) \
 								*  flt(item.qty),
 							"remarks": self.doc.remarks or "Accounting Entry for Stock"
-						}, is_cancel)
+						})
 					)
 			
 			elif flt(item.amount):
@@ -481,7 +486,7 @@
 						"debit": item.amount,
 						"remarks": self.doc.remarks,
 						"cost_center": item.cost_center
-					}, is_cancel)
+					})
 				)
 				
 		if stock_item_and_auto_inventory_accounting and valuation_tax:
@@ -494,7 +499,7 @@
 					"against": self.doc.credit_to,
 					"credit": valuation_tax,
 					"remarks": self.doc.remarks or "Accounting Entry for Stock"
-				}, is_cancel)
+				})
 			)
 		
 		# writeoff account includes petty difference in the invoice amount 
@@ -507,19 +512,19 @@
 					"credit": flt(self.doc.write_off_amount),
 					"remarks": self.doc.remarks,
 					"cost_center": self.doc.write_off_cost_center
-				}, is_cancel)
+				})
 			)
 		
 		if gl_entries:
-			make_gl_entries(gl_entries, cancel=is_cancel)
+			make_gl_entries(gl_entries, cancel=(self.doc.docstatus == 2))
 
 	def on_cancel(self):
 		from accounts.utils import remove_against_link_from_jv
 		remove_against_link_from_jv(self.doc.doctype, self.doc.name, "against_voucher")
-		
-		self.make_gl_entries(is_cancel=1)
 		get_obj(dt = 'Purchase Common').update_prevdoc_detail(self, is_submit = 0)
 		
+		self.make_cancel_gl_entries()
+		
 	def on_update(self):
 		pass
 		
diff --git a/accounts/doctype/purchase_invoice_item/purchase_invoice_item.txt b/accounts/doctype/purchase_invoice_item/purchase_invoice_item.txt
index b8d9a1d..5e9daf7 100755
--- a/accounts/doctype/purchase_invoice_item/purchase_invoice_item.txt
+++ b/accounts/doctype/purchase_invoice_item/purchase_invoice_item.txt
@@ -1,8 +1,8 @@
 [
  {
-  "creation": "2013-02-27 13:45:00", 
+  "creation": "2013-03-07 11:42:55", 
   "docstatus": 0, 
-  "modified": "2013-03-07 07:03:26", 
+  "modified": "2013-03-29 13:44:37", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -35,6 +35,7 @@
   "oldfieldtype": "Link", 
   "options": "Item", 
   "print_hide": 1, 
+  "read_only": 0, 
   "reqd": 0, 
   "search_index": 1
  }, 
@@ -46,6 +47,7 @@
   "label": "Item Name", 
   "oldfieldname": "item_name", 
   "oldfieldtype": "Data", 
+  "read_only": 0, 
   "reqd": 1, 
   "search_index": 0
  }, 
@@ -57,6 +59,7 @@
   "oldfieldname": "description", 
   "oldfieldtype": "Text", 
   "print_width": "300px", 
+  "read_only": 0, 
   "width": "300px"
  }, 
  {
@@ -67,6 +70,7 @@
   "oldfieldname": "qty", 
   "oldfieldtype": "Currency", 
   "print_hide": 0, 
+  "read_only": 0, 
   "reqd": 1
  }, 
  {
@@ -75,7 +79,8 @@
   "fieldtype": "Link", 
   "label": "UOM", 
   "options": "UOM", 
-  "print_hide": 1
+  "print_hide": 1, 
+  "read_only": 0
  }, 
  {
   "doctype": "DocField", 
@@ -83,14 +88,16 @@
   "fieldtype": "Currency", 
   "label": "Ref Rate ", 
   "options": "currency", 
-  "print_hide": 1
+  "print_hide": 1, 
+  "read_only": 0
  }, 
  {
   "doctype": "DocField", 
   "fieldname": "discount_rate", 
   "fieldtype": "Float", 
   "label": "Discount %", 
-  "print_hide": 0
+  "print_hide": 0, 
+  "read_only": 0
  }, 
  {
   "doctype": "DocField", 
@@ -101,6 +108,7 @@
   "oldfieldtype": "Currency", 
   "options": "currency", 
   "print_hide": 0, 
+  "read_only": 0, 
   "reqd": 1
  }, 
  {
@@ -120,7 +128,8 @@
   "fieldtype": "Currency", 
   "label": "Ref Rate*", 
   "options": "Company:company:default_currency", 
-  "print_hide": 1
+  "print_hide": 1, 
+  "read_only": 0
  }, 
  {
   "doctype": "DocField", 
@@ -131,6 +140,7 @@
   "oldfieldtype": "Currency", 
   "options": "Company:company:default_currency", 
   "print_hide": 1, 
+  "read_only": 0, 
   "reqd": 1
  }, 
  {
@@ -155,7 +165,8 @@
   "options": "Account", 
   "print_hide": 1, 
   "print_width": "120px", 
-  "reqd": 1, 
+  "read_only": 0, 
+  "reqd": 0, 
   "width": "120px"
  }, 
  {
@@ -168,6 +179,7 @@
   "options": "Cost Center", 
   "print_hide": 1, 
   "print_width": "120px", 
+  "read_only": 0, 
   "width": "120px"
  }, 
  {
@@ -177,7 +189,8 @@
   "in_filter": 1, 
   "label": "Project Name", 
   "options": "Project", 
-  "print_hide": 1
+  "print_hide": 1, 
+  "read_only": 0
  }, 
  {
   "doctype": "DocField", 
@@ -187,7 +200,8 @@
   "label": "Brand", 
   "oldfieldname": "brand", 
   "oldfieldtype": "Data", 
-  "print_hide": 1
+  "print_hide": 1, 
+  "read_only": 0
  }, 
  {
   "doctype": "DocField", 
@@ -298,7 +312,8 @@
   "fieldname": "conversion_factor", 
   "fieldtype": "Float", 
   "label": "Conversion Factor", 
-  "print_hide": 1
+  "print_hide": 1, 
+  "read_only": 0
  }, 
  {
   "doctype": "DocField", 
@@ -319,6 +334,7 @@
   "label": "Page Break", 
   "no_copy": 1, 
   "print_hide": 1, 
+  "read_only": 0, 
   "report_hide": 1
  }
 ]
\ No newline at end of file
diff --git a/accounts/doctype/sales_invoice/sales_invoice.js b/accounts/doctype/sales_invoice/sales_invoice.js
index 9532a54..e93a206 100644
--- a/accounts/doctype/sales_invoice/sales_invoice.js
+++ b/accounts/doctype/sales_invoice/sales_invoice.js
@@ -80,7 +80,8 @@
 	'total_commission', 'advances'];
 	
 	item_flds_normal = ['sales_order', 'delivery_note']
-	item_flds_pos = ['warehouse', 'serial_no', 'batch_no', 'actual_qty', 'delivered_qty']
+	item_flds_pos = ['warehouse', 'serial_no', 'batch_no', 'actual_qty', 
+		'delivered_qty', 'expense_account']
 	
 	if(cint(doc.is_pos) == 1) {
 		hide_field(par_flds);
diff --git a/accounts/doctype/sales_invoice/sales_invoice.py b/accounts/doctype/sales_invoice/sales_invoice.py
index 9b17fc0..ea6bfe2 100644
--- a/accounts/doctype/sales_invoice/sales_invoice.py
+++ b/accounts/doctype/sales_invoice/sales_invoice.py
@@ -16,6 +16,7 @@
 
 from __future__ import unicode_literals
 import webnotes
+import webnotes.defaults
 
 from webnotes.utils import add_days, cint, cstr, date_diff, flt, getdate, nowdate, \
 	get_first_day, get_last_day
@@ -131,7 +132,7 @@
 
 		sales_com_obj.update_prevdoc_detail(0, self)
 		
-		self.make_gl_entries()
+		self.make_cancel_gl_entries()
 		
 	def on_update_after_submit(self):
 		self.validate_recurring_invoice()
diff --git a/accounts/utils.py b/accounts/utils.py
index d6b2043..755546c 100644
--- a/accounts/utils.py
+++ b/accounts/utils.py
@@ -264,48 +264,61 @@
 	from webnotes.utils import nowdate
 	today = nowdate()
 	fiscal_year = get_fiscal_year(today)[0]
+	jv_list = []
 	
 	for company in webnotes.conn.sql_list("select name from `tabCompany`"):
 		stock_rbnb_value = get_stock_rbnb_value(company)
+		stock_rbnb_value = reverse and -1*stock_rbnb_value or stock_rbnb_value
+		if stock_rbnb_value:
+			jv = webnotes.bean([
+				{
+					"doctype": "Journal Voucher",
+					"naming_series": "_PATCH-",
+					"company": company,
+					"posting_date": today,
+					"fiscal_year": fiscal_year,
+					"voucher_type": "Journal Entry",
+					"user_remark": "Accounting Entry for Stock: \
+						Initial booking of stock received but not billed account"
+				},
+				{
+					"doctype": "Journal Voucher Detail",
+					"parentfield": "entries",
+					"account": get_company_default(company, "stock_received_but_not_billed"),
+					(stock_rbnb_value > 0 and "credit" or "debit"): abs(stock_rbnb_value)
+				},
+				{
+					"doctype": "Journal Voucher Detail",
+					"parentfield": "entries",
+					"account": get_company_default(company, "stock_adjustment_account"),
+					(stock_rbnb_value > 0 and "debit" or "credit"): abs(stock_rbnb_value),
+					"cost_center": get_company_default(company, "stock_adjustment_cost_center")
+				},
+			])
+			jv.insert()
+			jv.submit()
+			
+			jv_list.append(jv.doc.name)
+	
+	if jv_list:
+		webnotes.msgprint("""Folowing Journal Vouchers has been created automatically: 
+			%s""" % '\n'.join(jv_list))
+			
+	webnotes.msgprint("""Please refresh the system to get effect of Auto Inventory Accounting""")
+			
 		
-		jv = webnotes.bean([
-			{
-				"doctype": "Journal Voucher",
-				"naming_series": "_PATCH-",
-				"company": company,
-				"posting_date": today,
-				"fiscal_year": fiscal_year,
-				"voucher_type": "Journal Entry"
-			},
-			{
-				"doctype": "Journal Voucher Detail",
-				"parentfield": "entries",
-				"account": get_company_default(company, "stock_received_but_not_billed"),
-				(reverse and "debit" or "credit"): stock_rbnb_value
-			},
-			{
-				"doctype": "Journal Voucher Detail",
-				"parentfield": "entries",
-				"account": get_company_default(company, "stock_adjustment_account"),
-				(reverse and "credit" or "debit"): stock_rbnb_value
-			},
-		])
-		jv.insert()
-		jv.submit()
-		
-def get_stock_rbnb_value(company):	
-	total_received_amount = webnotes.conn.sql("""select sum(valuation_rate*qty) 
+def get_stock_rbnb_value(company):
+	total_received_amount = webnotes.conn.sql("""select sum(valuation_rate*qty*conversion_factor) 
 		from `tabPurchase Receipt Item` pr_item where docstatus=1 
 		and exists(select name from `tabItem` where name = pr_item.item_code 
 			and is_stock_item='Yes')
 		and exists(select name from `tabPurchase Receipt` 
 			where name = pr_item.parent and company = %s)""", company)
 		
-	total_billed_amount = webnotes.conn.sql("""select sum(valuation_rate*qty) 
+	total_billed_amount = webnotes.conn.sql("""select sum(valuation_rate*qty*conversion_factor) 
 		from `tabPurchase Invoice Item` pi_item where docstatus=1 
 		and exists(select name from `tabItem` where name = pi_item.item_code 
 			and is_stock_item='Yes')
 		and exists(select name from `tabPurchase Invoice` 
 			where name = pi_item.parent and company = %s)""", company)
-		
 	return flt(total_received_amount[0][0]) - flt(total_billed_amount[0][0])
diff --git a/controllers/selling_controller.py b/controllers/selling_controller.py
index f3fb47f..b22042d 100644
--- a/controllers/selling_controller.py
+++ b/controllers/selling_controller.py
@@ -41,9 +41,10 @@
 			self.doc.in_words_export = money_in_words(disable_rounded_total and 
 				self.doc.grand_total_export or self.doc.rounded_total_export, self.doc.currency)
 
-	def set_buying_amount(self):
+	def set_buying_amount(self, stock_ledger_entries = None):
 		from stock.utils import get_buying_amount
-		stock_ledger_entries = self.get_stock_ledger_entries()
+		if not stock_ledger_entries:
+			stock_ledger_entries = self.get_stock_ledger_entries()
 
 		item_sales_bom = {}
 		for d in self.doclist.get({"parentfield": "packing_details"}):
@@ -65,4 +66,8 @@
 	def check_expense_account(self, item):
 		if item.buying_amount and not item.expense_account:
 			msgprint(_("""Expense account is mandatory for item: """) + item.item_code, 
+				raise_exception=1)
+				
+		if item.buying_amount and not item.cost_center:
+			msgprint(_("""Cost Center is mandatory for item: """) + item.item_code, 
 				raise_exception=1)
\ No newline at end of file
diff --git a/controllers/stock_controller.py b/controllers/stock_controller.py
index 89f62aa..7cfb68c 100644
--- a/controllers/stock_controller.py
+++ b/controllers/stock_controller.py
@@ -16,7 +16,8 @@
 
 from __future__ import unicode_literals
 import webnotes
-from webnotes import msgprint, _
+from webnotes.utils import cint
+import webnotes.defaults
 from controllers.accounts_controller import AccountsController
 
 class StockController(AccountsController):
@@ -72,4 +73,10 @@
 			item_list.append(item.item_code)
 			warehouse_list.append(item.warehouse)
 			
-		return list(set(item_list)), list(set(warehouse_list))
\ No newline at end of file
+		return list(set(item_list)), list(set(warehouse_list))
+		
+	def make_cancel_gl_entries(self):
+		if webnotes.conn.sql("""select name from `tabGL Entry` where voucher_type=%s 
+			and voucher_no=%s and ifnull(is_cancelled, 'No')='No'""",
+			(self.doc.doctype, self.doc.name)):
+				self.make_gl_entries()
\ No newline at end of file
diff --git a/hr/doctype/leave_control_panel/leave_control_panel.py b/hr/doctype/leave_control_panel/leave_control_panel.py
index d26efd4..e771c5c 100644
--- a/hr/doctype/leave_control_panel/leave_control_panel.py
+++ b/hr/doctype/leave_control_panel/leave_control_panel.py
@@ -17,10 +17,8 @@
 from __future__ import unicode_literals
 import webnotes
 
-from webnotes.utils import cint, cstr, flt, now, nowdate
-from webnotes.model import db_exists
+from webnotes.utils import cint, cstr, flt, nowdate
 from webnotes.model.doc import Document
-from webnotes.model.bean import copy_doclist
 from webnotes.model.code import get_obj
 from webnotes import msgprint
 
@@ -49,7 +47,7 @@
     emp_query = "select name from `tabEmployee` "
     if flag == 1:
       emp_query += condition 
-    e = sql(emp_query, debug=1)
+    e = sql(emp_query)
     return e
 
   # ----------------
diff --git a/manufacturing/doctype/bom/bom.py b/manufacturing/doctype/bom/bom.py
index ef07e5e..75bf305 100644
--- a/manufacturing/doctype/bom/bom.py
+++ b/manufacturing/doctype/bom/bom.py
@@ -17,7 +17,7 @@
 from __future__ import unicode_literals
 import webnotes
 from webnotes.utils import cint, cstr, flt, now, nowdate
-from webnotes.model.doc import Document, addchild
+from webnotes.model.doc import addchild
 from webnotes.model.bean import getlist
 from webnotes.model.code import get_obj
 from webnotes import msgprint, _
@@ -76,7 +76,7 @@
 
 	def get_item_details(self, item_code):
 		res = sql("""select description, stock_uom as uom
-			from `tabItem` where item_code = %s""", item_code, as_dict = 1, debug=1)
+			from `tabItem` where item_code = %s""", item_code, as_dict = 1)
 		return res and res[0] or {}
 
 	def get_workstation_details(self,workstation):
diff --git a/patches/march_2013/p03_update_buying_amount.py b/patches/march_2013/p03_update_buying_amount.py
index ae0c5ea..e4a3fcb 100644
--- a/patches/march_2013/p03_update_buying_amount.py
+++ b/patches/march_2013/p03_update_buying_amount.py
@@ -1,10 +1,30 @@
 import webnotes
+from webnotes.utils import now_datetime
 
 def execute():
-	dn_list = webnotes.conn.sql("""select name from `tabDelivery Note` where docstatus < 2""")
-	for dn in dn_list:
-		webnotes.bean("Delivery Note", dn[0]).run_method("set_buying_amount")
+	webnotes.conn.auto_commit_on_many_writes = True
+	for company in webnotes.conn.sql("select name from `tabCompany`"):
+		print company[0]
+		stock_ledger_entries = webnotes.conn.sql("""select item_code, voucher_type, voucher_no,
+			voucher_detail_no, posting_date, posting_time, stock_value, 
+			warehouse, actual_qty as qty from `tabStock Ledger Entry` 
+			where ifnull(`is_cancelled`, "No") = "No" and company = %s
+			order by item_code desc, warehouse desc, 
+			posting_date desc, posting_time desc, name desc""", company[0], as_dict=True)
 		
-	si_list = webnotes.conn.sql("""select name from `tabSales Invoice` where docstatus < 2""")
-	for si in si_list:
-		webnotes.bean("Sales Invoice", si[0]).run_method("set_buying_amount")
\ No newline at end of file
+		dn_list = webnotes.conn.sql("""select name from `tabDelivery Note` 
+			where docstatus < 2 and company = %s""", company[0])
+		print "Total Delivery Note: ", len(dn_list)
+		
+		for dn in dn_list:
+			dn = webnotes.get_obj("Delivery Note", dn[0], with_children = 1)
+			dn.set_buying_amount(stock_ledger_entries)
+		
+		si_list = webnotes.conn.sql("""select name from `tabSales Invoice` 
+			where docstatus < 2	and company = %s""", company[0])
+		print "Total Sales Invoice: ", len(si_list)
+		for si in si_list:
+			si = webnotes.get_obj("Sales Invoice", si[0], with_children = 1)
+			si.set_buying_amount(stock_ledger_entries)
+		
+	webnotes.conn.auto_commit_on_many_writes = False
\ No newline at end of file
diff --git a/patches/march_2013/p07_update_valuation_rate.py b/patches/march_2013/p07_update_valuation_rate.py
index 51e556b..7d11e42 100644
--- a/patches/march_2013/p07_update_valuation_rate.py
+++ b/patches/march_2013/p07_update_valuation_rate.py
@@ -2,12 +2,12 @@
 
 def execute():
 	for purchase_invoice in webnotes.conn.sql_list("""select distinct parent 
-		from `tabPurchase Invoice Item` where docstatus = 1 and ifnull(valuation_rate, 0)=0"""):
-		pi = webnotes.get_obj("Purchase Invoice", purchase_invoice)
-		pi.calculate_taxes_and_totals()
-		pi.update_raw_material_cost()
-		pi.update_valuation_rate("entries")
-		for item in pi.doclist.get({"parentfield": "entries"}):
-			webnotes.conn.set_value("Purchase Invoice Item", item.name, "valuation_rate",
-				item.valuation_rate)
-	
\ No newline at end of file
+		from `tabPurchase Invoice Item` pi_item where docstatus = 1 and ifnull(valuation_rate, 0)=0 
+		and exists(select name from `tabPurchase Invoice` where name = pi_item.parent)"""):
+			pi = webnotes.get_obj("Purchase Invoice", purchase_invoice)
+			pi.calculate_taxes_and_totals()
+			pi.update_raw_material_cost()
+			pi.update_valuation_rate("entries")
+			for item in pi.doclist.get({"parentfield": "entries"}):
+				webnotes.conn.set_value("Purchase Invoice Item", item.name, "valuation_rate",
+					item.valuation_rate)
\ No newline at end of file
diff --git a/patches/march_2013/p08_create_aii_accounts.py b/patches/march_2013/p08_create_aii_accounts.py
index ff53d8b..f6e1e2d 100644
--- a/patches/march_2013/p08_create_aii_accounts.py
+++ b/patches/march_2013/p08_create_aii_accounts.py
@@ -2,6 +2,7 @@
 def execute():
 	add_group_accounts()
 	add_ledger_accounts()
+	add_aii_cost_center()
 	
 def _check(parent_account, company):
 	def _get_root(is_pl_account, debit_or_credit):
@@ -34,7 +35,6 @@
 def add_ledger_accounts():
 	accounts_to_add = [
 		["Stock In Hand", "Stock Assets", "Ledger", ""],
-		["Stock Debit But Not Billed", "Stock Assets", "Ledger", ""],
 		["Cost of Goods Sold", "Stock Expenses", "Ledger", "Expense Account"],
 		["Stock Adjustment", "Stock Expenses", "Ledger", "Expense Account"],
 		["Expenses Included In Valuation", "Stock Expenses", "Ledger", "Expense Account"],
@@ -58,4 +58,21 @@
 					"account_type": account_type,
 					"company": company
 				})
-				account.insert()
\ No newline at end of file
+				account.insert()
+				
+def add_aii_cost_center():
+	for company, abbr in webnotes.conn.sql("""select name, abbr from `tabCompany`"""):
+		if not webnotes.conn.exists("Cost Center", "Auto Inventory Accounting - %s" % abbr):
+			parent_cost_center = webnotes.conn.get_value("Cost Center", 
+				{"parent_cost_center['']": '', "company_name": company}, 'name')
+			
+			cc = webnotes.bean({
+				"doctype": "Cost Center",
+				"cost_center_name": "Auto Inventory Accounting",
+				"parent_cost_center": parent_cost_center,
+				"group_or_ledger": "Ledger",
+				"company_name": company
+			})
+			cc.insert()
+				
+				
\ No newline at end of file
diff --git a/patches/patch_list.py b/patches/patch_list.py
index 905ea29..08d936d 100644
--- a/patches/patch_list.py
+++ b/patches/patch_list.py
@@ -227,4 +227,7 @@
 	"patches.march_2013.p10_update_against_expense_account",
 	"patches.march_2013.p11_update_attach_files",
 	"patches.march_2013.p12_set_item_tax_rate_in_json",
+	"patches.march_2013.p07_update_valuation_rate",
+	"patches.march_2013.p08_create_aii_accounts",
+	"patches.march_2013.p03_update_buying_amount",
 ]
\ 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 729013f..dde4919 100644
--- a/selling/doctype/sales_common/sales_common.py
+++ b/selling/doctype/sales_common/sales_common.py
@@ -361,7 +361,7 @@
 		sales_team_list = obj.doclist.get({"parentfield": "sales_team"})
 		total_allocation = sum([flt(d.allocated_percentage) for d in sales_team_list])
 		if sales_team_list and total_allocation != 100.0:
-			msgprint("Total Allocated %% of Sales Persons should be 100%", raise_exception=True)
+			msgprint("Total Allocated % of Sales Persons should be 100%", raise_exception=True)
 			
 	# Check Conversion Rate (i.e. it will not allow conversion rate to be 1 for Currency other than default currency set in Global Defaults)
 	# ===========================================================================
diff --git a/setup/doctype/company/company.js b/setup/doctype/company/company.js
index 5e78b79..463b922 100644
--- a/setup/doctype/company/company.js
+++ b/setup/doctype/company/company.js
@@ -89,9 +89,6 @@
 cur_frm.fields_dict["expenses_included_in_valuation"].get_query = 
 	cur_frm.fields_dict["stock_adjustment_account"].get_query;
 	
-cur_frm.fields_dict["stock_delivered_but_not_billed"].get_query = 
-	cur_frm.fields_dict["stock_in_hand_account"].get_query;
-
 cur_frm.fields_dict["stock_received_but_not_billed"].get_query = function(doc) {
 	return {
 		"query": "accounts.utils.get_account_list", 
@@ -106,6 +103,6 @@
 cur_frm.fields_dict["stock_adjustment_cost_center"].get_query = function(doc) {
 	return {
 		"query": "accounts.utils.get_cost_center_list", 
-		"filters": {"company": doc.name}
+		"filters": {"company_name": doc.name}
 	}
 }
\ No newline at end of file
diff --git a/setup/doctype/company/company.py b/setup/doctype/company/company.py
index 47b250d..bee1333 100644
--- a/setup/doctype/company/company.py
+++ b/setup/doctype/company/company.py
@@ -49,8 +49,6 @@
 						['Earnest Money','Securities and Deposits','Ledger','No','','Debit',self.doc.name,''],
 					['Stock Assets','Current Assets','Group','No','','Debit',self.doc.name,''],
 						['Stock In Hand','Stock Assets','Ledger','No','','Debit',self.doc.name,''],
-						['Stock Delivered But Not Billed', 'Stock Assets', 'Ledger', 
-							'No', '', 'Debit', self.doc.name, ''],
 					['Tax Assets','Current Assets','Group','No','','Debit',self.doc.name,''],
 				['Fixed Assets','Application of Funds (Assets)','Group','No','','Debit',self.doc.name,''],
 					['Capital Equipments','Fixed Assets','Ledger','No','Fixed Asset Account','Debit',self.doc.name,''],
diff --git a/setup/doctype/company/company.txt b/setup/doctype/company/company.txt
index feb3bca..a49a7e0 100644
--- a/setup/doctype/company/company.txt
+++ b/setup/doctype/company/company.txt
@@ -1,8 +1,8 @@
 [
  {
-  "creation": "2013-03-21 17:41:00", 
+  "creation": "2013-03-26 11:03:08", 
   "docstatus": 0, 
-  "modified": "2013-03-25 15:35:34", 
+  "modified": "2013-03-28 16:04:27", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -25,14 +25,19 @@
  }, 
  {
   "amend": 0, 
+  "cancel": 1, 
+  "create": 1, 
   "doctype": "DocPerm", 
   "name": "__common__", 
   "parent": "Company", 
   "parentfield": "permissions", 
   "parenttype": "DocType", 
+  "permlevel": 0, 
   "read": 1, 
   "report": 1, 
-  "submit": 0
+  "role": "System Manager", 
+  "submit": 0, 
+  "write": 1
  }, 
  {
   "doctype": "DocType", 
@@ -43,7 +48,8 @@
   "fieldname": "details", 
   "fieldtype": "Section Break", 
   "label": "Company Details", 
-  "oldfieldtype": "Section Break"
+  "oldfieldtype": "Section Break", 
+  "read_only": 0
  }, 
  {
   "description": "Please Enter Abbreviation or Short Name properly as it will be added as Suffix to all Account Heads.", 
@@ -54,12 +60,14 @@
   "no_copy": 0, 
   "oldfieldname": "abbr", 
   "oldfieldtype": "Data", 
+  "read_only": 0, 
   "reqd": 1
  }, 
  {
   "doctype": "DocField", 
   "fieldname": "cb0", 
-  "fieldtype": "Column Break"
+  "fieldtype": "Column Break", 
+  "read_only": 0
  }, 
  {
   "doctype": "DocField", 
@@ -69,6 +77,7 @@
   "no_copy": 0, 
   "oldfieldname": "company_name", 
   "oldfieldtype": "Data", 
+  "read_only": 0, 
   "reqd": 1
  }, 
  {
@@ -76,7 +85,8 @@
   "fieldname": "default_settings", 
   "fieldtype": "Section Break", 
   "label": "Default Settings", 
-  "oldfieldtype": "Section Break"
+  "oldfieldtype": "Section Break", 
+  "read_only": 0
  }, 
  {
   "doctype": "DocField", 
@@ -84,6 +94,7 @@
   "fieldtype": "Link", 
   "label": "Default Currency", 
   "options": "Currency", 
+  "read_only": 0, 
   "reqd": 1
  }, 
  {
@@ -95,14 +106,16 @@
   "no_copy": 1, 
   "oldfieldname": "default_bank_account", 
   "oldfieldtype": "Link", 
-  "options": "Account"
+  "options": "Account", 
+  "read_only": 0
  }, 
  {
   "doctype": "DocField", 
   "fieldname": "default_cash_account", 
   "fieldtype": "Link", 
   "label": "Default Cash Account", 
-  "options": "Account"
+  "options": "Account", 
+  "read_only": 0
  }, 
  {
   "depends_on": "eval:!doc.__islocal", 
@@ -113,7 +126,8 @@
   "no_copy": 1, 
   "oldfieldname": "receivables_group", 
   "oldfieldtype": "Link", 
-  "options": "Account"
+  "options": "Account", 
+  "read_only": 0
  }, 
  {
   "depends_on": "eval:!doc.__islocal", 
@@ -124,13 +138,15 @@
   "no_copy": 1, 
   "oldfieldname": "payables_group", 
   "oldfieldtype": "Link", 
-  "options": "Account"
+  "options": "Account", 
+  "read_only": 0
  }, 
  {
   "doctype": "DocField", 
   "fieldname": "column_break0", 
   "fieldtype": "Column Break", 
   "oldfieldtype": "Column Break", 
+  "read_only": 0, 
   "width": "50%"
  }, 
  {
@@ -140,7 +156,8 @@
   "fieldtype": "Int", 
   "label": "Credit Days", 
   "oldfieldname": "credit_days", 
-  "oldfieldtype": "Int"
+  "oldfieldtype": "Int", 
+  "read_only": 0
  }, 
  {
   "depends_on": "eval:!doc.__islocal", 
@@ -150,7 +167,8 @@
   "label": "Credit Limit", 
   "oldfieldname": "credit_limit", 
   "oldfieldtype": "Currency", 
-  "options": "default_currency"
+  "options": "default_currency", 
+  "read_only": 0
  }, 
  {
   "depends_on": "eval:!doc.__islocal", 
@@ -160,7 +178,8 @@
   "label": "If Yearly Budget Exceeded", 
   "oldfieldname": "yearly_bgt_flag", 
   "oldfieldtype": "Select", 
-  "options": "\nWarn\nIgnore\nStop"
+  "options": "\nWarn\nIgnore\nStop", 
+  "read_only": 0
  }, 
  {
   "depends_on": "eval:!doc.__islocal", 
@@ -170,14 +189,16 @@
   "label": "If Monthly Budget Exceeded", 
   "oldfieldname": "monthly_bgt_flag", 
   "oldfieldtype": "Select", 
-  "options": "\nWarn\nIgnore\nStop"
+  "options": "\nWarn\nIgnore\nStop", 
+  "read_only": 0
  }, 
  {
-  "depends_on": "eval:!doc.__islocal && sys_defaults.auto_inventory_accounting", 
+  "depends_on": "eval:!doc.__islocal", 
   "doctype": "DocField", 
   "fieldname": "auto_inventory_accounting_settings", 
   "fieldtype": "Section Break", 
-  "label": "Auto Inventory Accounting Settings"
+  "label": "Auto Inventory Accounting Settings", 
+  "read_only": 0
  }, 
  {
   "description": "This account will be used to maintain value of available stock", 
@@ -195,12 +216,14 @@
   "fieldtype": "Link", 
   "label": "Stock Received But Not Billed", 
   "no_copy": 1, 
-  "options": "Account"
+  "options": "Account", 
+  "read_only": 0
  }, 
  {
   "doctype": "DocField", 
   "fieldname": "col_break23", 
   "fieldtype": "Column Break", 
+  "read_only": 0, 
   "width": "50%"
  }, 
  {
@@ -209,7 +232,8 @@
   "fieldtype": "Link", 
   "label": "Stock Adjustment Account", 
   "no_copy": 1, 
-  "options": "Account"
+  "options": "Account", 
+  "read_only": 0
  }, 
  {
   "doctype": "DocField", 
@@ -217,7 +241,8 @@
   "fieldtype": "Link", 
   "label": "Expenses Included In Valuation", 
   "no_copy": 1, 
-  "options": "Account"
+  "options": "Account", 
+  "read_only": 0
  }, 
  {
   "doctype": "DocField", 
@@ -225,14 +250,16 @@
   "fieldtype": "Link", 
   "label": "Stock Adjustment Cost Center", 
   "no_copy": 1, 
-  "options": "Cost Center"
+  "options": "Cost Center", 
+  "read_only": 0
  }, 
  {
   "description": "For reference only.", 
   "doctype": "DocField", 
   "fieldname": "company_info", 
   "fieldtype": "Section Break", 
-  "label": "Company Info"
+  "label": "Company Info", 
+  "read_only": 0
  }, 
  {
   "doctype": "DocField", 
@@ -240,13 +267,15 @@
   "fieldtype": "Small Text", 
   "label": "Address", 
   "oldfieldname": "address", 
-  "oldfieldtype": "Small Text"
+  "oldfieldtype": "Small Text", 
+  "read_only": 0
  }, 
  {
   "doctype": "DocField", 
   "fieldname": "column_break1", 
   "fieldtype": "Column Break", 
   "oldfieldtype": "Column Break", 
+  "read_only": 0, 
   "width": "50%"
  }, 
  {
@@ -256,7 +285,8 @@
   "label": "Phone No", 
   "oldfieldname": "phone_no", 
   "oldfieldtype": "Data", 
-  "options": "Phone"
+  "options": "Phone", 
+  "read_only": 0
  }, 
  {
   "doctype": "DocField", 
@@ -265,7 +295,8 @@
   "label": "Fax", 
   "oldfieldname": "fax", 
   "oldfieldtype": "Data", 
-  "options": "Phone"
+  "options": "Phone", 
+  "read_only": 0
  }, 
  {
   "doctype": "DocField", 
@@ -274,7 +305,8 @@
   "label": "Email", 
   "oldfieldname": "email", 
   "oldfieldtype": "Data", 
-  "options": "Email"
+  "options": "Email", 
+  "read_only": 0
  }, 
  {
   "doctype": "DocField", 
@@ -282,7 +314,8 @@
   "fieldtype": "Data", 
   "label": "Website", 
   "oldfieldname": "website", 
-  "oldfieldtype": "Data"
+  "oldfieldtype": "Data", 
+  "read_only": 0
  }, 
  {
   "description": "Company registration numbers for your reference. Example: VAT Registration Numbers etc.", 
@@ -291,6 +324,7 @@
   "fieldtype": "Section Break", 
   "label": "Registration Info", 
   "oldfieldtype": "Section Break", 
+  "read_only": 0, 
   "width": "50%"
  }, 
  {
@@ -300,7 +334,8 @@
   "fieldtype": "Code", 
   "label": "Registration Details", 
   "oldfieldname": "registration_details", 
-  "oldfieldtype": "Code"
+  "oldfieldtype": "Code", 
+  "read_only": 0
  }, 
  {
   "doctype": "DocField", 
@@ -313,19 +348,6 @@
   "read_only": 1
  }, 
  {
-  "cancel": 1, 
-  "create": 1, 
-  "doctype": "DocPerm", 
-  "permlevel": 0, 
-  "role": "System Manager", 
-  "write": 1
- }, 
- {
-  "cancel": 0, 
-  "create": 0, 
-  "doctype": "DocPerm", 
-  "permlevel": 1, 
-  "role": "All", 
-  "write": 0
+  "doctype": "DocPerm"
  }
 ]
\ No newline at end of file
diff --git a/setup/doctype/global_defaults/global_defaults.py b/setup/doctype/global_defaults/global_defaults.py
index 3f8de1d..8275513 100644
--- a/setup/doctype/global_defaults/global_defaults.py
+++ b/setup/doctype/global_defaults/global_defaults.py
@@ -62,7 +62,6 @@
 
 	def on_update(self):
 		"""update defaults"""
-		
 		self.validate_session_expiry()
 		
 		for key in keydict:
diff --git a/stock/doctype/delivery_note/delivery_note.js b/stock/doctype/delivery_note/delivery_note.js
index 61df6b0..8870832 100644
--- a/stock/doctype/delivery_note/delivery_note.js
+++ b/stock/doctype/delivery_note/delivery_note.js
@@ -74,6 +74,11 @@
 	cur_frm.toggle_display("contact_info", doc.customer);
 	
 	set_print_hide(doc, cdt, cdn);
+	
+	// unhide expense_account and cost_center is auto_inventory_accounting enabled
+	var aii_enabled = cint(sys_defaults.auto_inventory_accounting)
+	cur_frm.fields_dict[cur_frm.cscript.fname].grid.set_column_disp("expense_account", aii_enabled);
+	cur_frm.fields_dict[cur_frm.cscript.fname].grid.set_column_disp("cost_center", aii_enabled);
 }
 
 
diff --git a/stock/doctype/delivery_note/delivery_note.py b/stock/doctype/delivery_note/delivery_note.py
index daf7d61..90e5bdf 100644
--- a/stock/doctype/delivery_note/delivery_note.py
+++ b/stock/doctype/delivery_note/delivery_note.py
@@ -21,6 +21,8 @@
 from webnotes.model.bean import getlist
 from webnotes.model.code import get_obj
 from webnotes import msgprint
+import webnotes.defaults
+
 
 sql = webnotes.conn.sql
 
@@ -312,7 +314,7 @@
 		webnotes.conn.set(self.doc, 'status', 'Cancelled')
 		self.cancel_packing_slips()
 		
-		self.make_gl_entries()
+		self.make_cancel_gl_entries()
 
 
 	def check_next_docstatus(self):
diff --git a/stock/doctype/purchase_receipt/purchase_receipt.py b/stock/doctype/purchase_receipt/purchase_receipt.py
index 7bc470d..8e81fa5 100644
--- a/stock/doctype/purchase_receipt/purchase_receipt.py
+++ b/stock/doctype/purchase_receipt/purchase_receipt.py
@@ -21,6 +21,7 @@
 from webnotes.model.bean import getlist
 from webnotes.model.code import get_obj
 from webnotes import msgprint
+import webnotes.defaults
 
 sql = webnotes.conn.sql
 
@@ -290,7 +291,7 @@
 		# 6. Update last purchase rate
 		pc_obj.update_last_purchase_rate(self, 0)
 		
-		self.make_gl_entries()
+		self.make_cancel_gl_entries()
 
 	def bk_flush_supp_wh(self, is_submit):
 		for d in getlist(self.doclist, 'pr_raw_material_details'):
@@ -326,7 +327,7 @@
 		gl_entries = self.get_gl_entries_for_stock(against_stock_account, total_valuation_amount)
 		
 		if gl_entries:
-			make_gl_entries(gl_entries, cancel=self.doc.docstatus == 2)
+			make_gl_entries(gl_entries, cancel=(self.doc.docstatus == 2))
 		
 	def get_total_valuation_amount(self):
 		total_valuation_amount = 0.0
diff --git a/stock/doctype/serial_no/serial_no.py b/stock/doctype/serial_no/serial_no.py
index 5b15977..65bd2dd 100644
--- a/stock/doctype/serial_no/serial_no.py
+++ b/stock/doctype/serial_no/serial_no.py
@@ -19,7 +19,7 @@
 
 from webnotes.utils import cint, getdate, nowdate
 import datetime
-from webnotes import msgprint, _
+from webnotes import msgprint
 	
 from controllers.stock_controller import StockController
 
@@ -103,7 +103,12 @@
 		elif self.doc.status == 'In Store': 
 			webnotes.conn.set(self.doc, 'status', 'Not in Use')
 			self.make_stock_ledger_entry(-1)
-			self.make_gl_entries(cancel=True)
+			
+			if cint(webnotes.defaults.get_global_default("auto_inventory_accounting")) \
+				and webnotes.conn.sql("""select name from `tabGL Entry`
+				where voucher_type=%s and voucher_no=%s and ifnull(is_cancelled, 'No')='No'""",
+				(self.doc.doctype, self.doc.name)):
+					self.make_gl_entries(cancel=True)
 
 
 	def on_cancel(self):
diff --git a/stock/doctype/stock_entry/stock_entry.js b/stock/doctype/stock_entry/stock_entry.js
index 9b89d78..339c945 100644
--- a/stock/doctype/stock_entry/stock_entry.js
+++ b/stock/doctype/stock_entry/stock_entry.js
@@ -77,7 +77,7 @@
 		};
 		
 		if (sys_defaults.auto_inventory_accounting) {
-			this.frm.add_fetch("company", "expense_adjustment_account", "stock_adjustment_account");
+			this.frm.add_fetch("company", "stock_adjustment_account", "expense_adjustment_account");
 
 			this.frm.fields_dict["expense_adjustment_account"].get_query = function() {
 				return {
diff --git a/stock/doctype/stock_entry/stock_entry.py b/stock/doctype/stock_entry/stock_entry.py
index a176188..fa60072 100644
--- a/stock/doctype/stock_entry/stock_entry.py
+++ b/stock/doctype/stock_entry/stock_entry.py
@@ -16,6 +16,7 @@
 
 from __future__ import unicode_literals
 import webnotes
+import webnotes.defaults
 
 from webnotes.utils import cstr, cint, flt, comma_or
 from webnotes.model.doc import Document, addchild
@@ -67,7 +68,7 @@
 		self.update_serial_no(0)
 		self.update_stock_ledger(1)
 		self.update_production_order(0)
-		self.make_gl_entries()
+		self.make_cancel_gl_entries()
 		
 	def validate_fiscal_year(self):
 		import accounts.utils
@@ -426,16 +427,18 @@
 		
 	def get_warehouse_details(self, args):
 		args = json.loads(args)
-		args.update({
-			"posting_date": self.doc.posting_date,
-			"posting_time": self.doc.posting_time,
-		})
-		args = webnotes._dict(args)
+		ret = {}
+		if args.get('warehouse') and args.get('item_code'):
+			args.update({
+				"posting_date": self.doc.posting_date,
+				"posting_time": self.doc.posting_time,
+			})
+			args = webnotes._dict(args)
 		
-		ret = {
-			"actual_qty" : get_previous_sle(args).get("qty_after_transaction") or 0,
-			"incoming_rate" : self.get_incoming_rate(args)
-		}
+			ret = {
+				"actual_qty" : get_previous_sle(args).get("qty_after_transaction") or 0,
+				"incoming_rate" : self.get_incoming_rate(args)
+			}
 		return ret
 		
 	def get_items(self):
diff --git a/stock/doctype/stock_entry/stock_entry.txt b/stock/doctype/stock_entry/stock_entry.txt
index 91f9bb4..fef710b 100644
--- a/stock/doctype/stock_entry/stock_entry.txt
+++ b/stock/doctype/stock_entry/stock_entry.txt
@@ -1,8 +1,8 @@
 [
  {
-  "creation": "2013-03-26 06:51:17", 
+  "creation": "2013-03-28 15:56:40", 
   "docstatus": 0, 
-  "modified": "2013-03-26 07:24:53", 
+  "modified": "2013-03-29 15:31:42", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -116,6 +116,7 @@
   "oldfieldtype": "Link", 
   "options": "Delivery Note", 
   "print_hide": 1, 
+  "read_only": 0, 
   "report_hide": 0, 
   "reqd": 0, 
   "search_index": 1
@@ -129,7 +130,8 @@
   "label": "Sales Invoice No", 
   "no_copy": 1, 
   "options": "Sales Invoice", 
-  "print_hide": 1
+  "print_hide": 1, 
+  "read_only": 0
  }, 
  {
   "allow_on_submit": 0, 
@@ -145,6 +147,7 @@
   "oldfieldtype": "Link", 
   "options": "Purchase Receipt", 
   "print_hide": 1, 
+  "read_only": 0, 
   "report_hide": 0, 
   "reqd": 0, 
   "search_index": 1
@@ -201,7 +204,9 @@
   "fieldname": "expense_adjustment_account", 
   "fieldtype": "Link", 
   "label": "Expense/Adjustment Account", 
-  "options": "Account"
+  "options": "Account", 
+  "print_hide": 1, 
+  "read_only": 0
  }, 
  {
   "doctype": "DocField", 
@@ -550,6 +555,7 @@
   "label": "Fiscal Year", 
   "options": "link:Fiscal Year", 
   "print_hide": 1, 
+  "read_only": 0, 
   "reqd": 1
  }, 
  {
@@ -620,5 +626,13 @@
  {
   "doctype": "DocPerm", 
   "role": "Manufacturing User"
+ }, 
+ {
+  "doctype": "DocPerm", 
+  "role": "Manufacturing Manager"
+ }, 
+ {
+  "doctype": "DocPerm", 
+  "role": "Material Manager"
  }
 ]
\ No newline at end of file
diff --git a/stock/doctype/stock_reconciliation/stock_reconciliation.py b/stock/doctype/stock_reconciliation/stock_reconciliation.py
index 5604179..9aa2916 100644
--- a/stock/doctype/stock_reconciliation/stock_reconciliation.py
+++ b/stock/doctype/stock_reconciliation/stock_reconciliation.py
@@ -16,6 +16,7 @@
 
 from __future__ import unicode_literals
 import webnotes
+import webnotes.defaults
 import json
 from webnotes import msgprint, _
 from webnotes.utils import cstr, flt, cint
@@ -37,7 +38,7 @@
 		
 	def on_cancel(self):
 		self.delete_stock_ledger_entries()
-		self.make_gl_entries()
+		self.make_cancel_gl_entries()
 		
 	def validate_data(self):
 		if not self.doc.reconciliation_json:
