diff --git a/accounts/doctype/form_16a/form_16a.txt b/accounts/doctype/form_16a/form_16a.txt
index 17164bb..0104311 100644
--- a/accounts/doctype/form_16a/form_16a.txt
+++ b/accounts/doctype/form_16a/form_16a.txt
@@ -4,7 +4,7 @@
   "docstatus": 0, 
   "creation": "2012-07-03 13:29:51", 
   "modified_by": "Administrator", 
-  "modified": "2012-03-27 14:35:41"
+  "modified": "2012-12-03 17:10:41"
  }, 
  {
   "in_create": 0, 
diff --git a/accounts/doctype/journal_voucher/journal_voucher.txt b/accounts/doctype/journal_voucher/journal_voucher.txt
index 1479a2e..e4b4c92 100644
--- a/accounts/doctype/journal_voucher/journal_voucher.txt
+++ b/accounts/doctype/journal_voucher/journal_voucher.txt
@@ -4,7 +4,7 @@
   "docstatus": 0, 
   "creation": "2012-10-16 12:29:32", 
   "modified_by": "Administrator", 
-  "modified": "2012-10-15 12:38:42"
+  "modified": "2012-12-03 17:10:41"
  }, 
  {
   "is_submittable": 1, 
diff --git a/accounts/doctype/purchase_invoice/purchase_invoice.txt b/accounts/doctype/purchase_invoice/purchase_invoice.txt
index 86150db..b4c539c 100755
--- a/accounts/doctype/purchase_invoice/purchase_invoice.txt
+++ b/accounts/doctype/purchase_invoice/purchase_invoice.txt
@@ -4,7 +4,7 @@
   "docstatus": 0, 
   "creation": "2012-11-28 11:26:17", 
   "modified_by": "Administrator", 
-  "modified": "2012-11-26 11:52:32"
+  "modified": "2012-12-03 17:10:41"
  }, 
  {
   "is_submittable": 1, 
diff --git a/accounts/doctype/sales_invoice/sales_invoice.txt b/accounts/doctype/sales_invoice/sales_invoice.txt
index 8851951..91e3298 100644
--- a/accounts/doctype/sales_invoice/sales_invoice.txt
+++ b/accounts/doctype/sales_invoice/sales_invoice.txt
@@ -4,7 +4,7 @@
   "docstatus": 0, 
   "creation": "2012-09-10 12:22:26", 
   "modified_by": "Administrator", 
-  "modified": "2012-11-30 16:39:08"
+  "modified": "2012-12-03 17:10:41"
  }, 
  {
   "is_submittable": 1, 
diff --git a/buying/doctype/purchase_order/purchase_order.txt b/buying/doctype/purchase_order/purchase_order.txt
index 95bc970..2463a0d 100644
--- a/buying/doctype/purchase_order/purchase_order.txt
+++ b/buying/doctype/purchase_order/purchase_order.txt
@@ -4,7 +4,7 @@
   "docstatus": 0, 
   "creation": "2012-08-06 20:00:37", 
   "modified_by": "Administrator", 
-  "modified": "2012-08-06 17:14:18"
+  "modified": "2012-12-03 17:10:41"
  }, 
  {
   "is_submittable": 1, 
diff --git a/buying/doctype/purchase_request/purchase_request.txt b/buying/doctype/purchase_request/purchase_request.txt
index 54401fa..393367e 100644
--- a/buying/doctype/purchase_request/purchase_request.txt
+++ b/buying/doctype/purchase_request/purchase_request.txt
@@ -4,7 +4,7 @@
   "docstatus": 0, 
   "creation": "2012-07-03 13:29:58", 
   "modified_by": "Administrator", 
-  "modified": "2012-05-01 13:02:17"
+  "modified": "2012-12-03 17:10:41"
  }, 
  {
   "is_submittable": 1, 
diff --git a/buying/doctype/supplier/supplier.txt b/buying/doctype/supplier/supplier.txt
index a8caadb..318316e 100644
--- a/buying/doctype/supplier/supplier.txt
+++ b/buying/doctype/supplier/supplier.txt
@@ -4,7 +4,7 @@
   "docstatus": 0, 
   "creation": "2012-12-03 10:31:02", 
   "modified_by": "Administrator", 
-  "modified": "2012-12-03 11:25:12"
+  "modified": "2012-12-03 17:10:41"
  }, 
  {
   "autoname": "naming_series:", 
diff --git a/buying/report/supplier_quotations/supplier_quotations.txt b/buying/report/supplier_quotations/supplier_quotations.txt
index 860a4328..dba7dc6 100644
--- a/buying/report/supplier_quotations/supplier_quotations.txt
+++ b/buying/report/supplier_quotations/supplier_quotations.txt
@@ -5,7 +5,7 @@
 	{
 		'creation': '2012-08-07 14:52:42',
 		'docstatus': 0,
-		'modified': '2012-08-07 14:57:57',
+	  	'modified': '2012-12-03 17:10:41',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/hr/doctype/salary_manager/salary_manager.py b/hr/doctype/salary_manager/salary_manager.py
index d8f1288..45b78a6 100644
--- a/hr/doctype/salary_manager/salary_manager.py
+++ b/hr/doctype/salary_manager/salary_manager.py
@@ -48,7 +48,7 @@
 			from `tabEmployee` t1, `tabSalary Structure` t2 
 			where t1.docstatus!=2 and t2.docstatus != 2 
 			and t1.name = t2.employee
-		%s """% cond, debug=1)
+		%s """% cond)
 
 		return emp_list
 		
diff --git a/hr/doctype/salary_slip/salary_slip.txt b/hr/doctype/salary_slip/salary_slip.txt
index 731d823..ecab74f 100644
--- a/hr/doctype/salary_slip/salary_slip.txt
+++ b/hr/doctype/salary_slip/salary_slip.txt
@@ -4,7 +4,7 @@
   "docstatus": 0, 
   "creation": "2012-07-03 13:29:40", 
   "modified_by": "Administrator", 
-  "modified": "2012-03-27 14:45:51"
+  "modified": "2012-12-03 17:10:41"
  }, 
  {
   "is_submittable": 1, 
diff --git a/hr/doctype/salary_structure/salary_structure.txt b/hr/doctype/salary_structure/salary_structure.txt
index 9a40edf..f45d873 100644
--- a/hr/doctype/salary_structure/salary_structure.txt
+++ b/hr/doctype/salary_structure/salary_structure.txt
@@ -4,7 +4,7 @@
   "docstatus": 0, 
   "creation": "2012-07-03 13:29:41", 
   "modified_by": "Administrator", 
-  "modified": "2012-03-27 14:36:00"
+  "modified": "2012-12-03 17:10:41"
  }, 
  {
   "name": "__common__", 
diff --git a/patches/november_2012/support_ticket_response_to_communication.py b/patches/november_2012/support_ticket_response_to_communication.py
index 6534bb1..12c1850 100644
--- a/patches/november_2012/support_ticket_response_to_communication.py
+++ b/patches/november_2012/support_ticket_response_to_communication.py
@@ -2,6 +2,7 @@
 import email.utils
 
 def execute():
+	webnotes.reload_doc("core", "doctype", "communication")
 	webnotes.conn.commit()
 	for d in webnotes.conn.sql("""select owner, creation, modified, modified_by, parent, 
 		from_email, mail from `tabSupport Ticket Response`""", as_dict=1):
diff --git a/production/doctype/bom/bom.js b/production/doctype/bom/bom.js
index fd9be8f..dd32fe4 100644
--- a/production/doctype/bom/bom.js
+++ b/production/doctype/bom/bom.js
@@ -16,12 +16,7 @@
 
 // On REFRESH
 cur_frm.cscript.refresh = function(doc,dt,dn){
-	if(!doc.__islocal) {
-		set_field_permlevel('item',1);
-		unhide_field('update_cost_as_on_today');
-	} else {
-		hide_field('update_cost_as_on_today');
-	}
+	cur_frm.toggle_enable("item", doc.__islocal);
 }
 
 
@@ -137,9 +132,6 @@
 }
 
 
-
-// Get Query
-//-----------------------------------------------------------------------------------------------------
 cur_frm.fields_dict['item'].get_query = function(doc) {
 	return 'SELECT DISTINCT `tabItem`.`name`, `tabItem`.description FROM `tabItem` WHERE is_manufactured_item = "Yes" and (IFNULL(`tabItem`.`end_of_life`,"") = "" OR `tabItem`.`end_of_life` = "0000-00-00" OR `tabItem`.`end_of_life` > NOW()) AND `tabItem`.`%(key)s` like "%s" ORDER BY `tabItem`.`name` LIMIT 50';
 }
diff --git a/production/doctype/bom/bom.py b/production/doctype/bom/bom.py
index 68e1c3c..0b634d7 100644
--- a/production/doctype/bom/bom.py
+++ b/production/doctype/bom/bom.py
@@ -152,7 +152,6 @@
 			sql("update `tabItem` set default_bom = %s where name = %s", (self.doc.name, self.doc.item))
 		else:
 			sql("update `tabItem` set default_bom = '' where name = %s and default_bom = %s", (self.doc.item, self.doc.name))
-	
 
 
 	def manage_active_bom(self):
@@ -193,24 +192,22 @@
 		total_op_cost = 0
 		for d in getlist(self.doclist, 'bom_operations'):
 			hour_rate = sql("select hour_rate from `tabWorkstation` where name = %s", cstr(d.workstation))
-			d.hour_rate = hour_rate and flt(hour_rate[0][0]) or 0
-			d.operating_cost = flt(d.hour_rate) * flt(d.time_in_mins) / 60
+			d.hour_rate = hour_rate and flt(hour_rate[0][0]) or d.hour_rate or 0
+			d.operating_cost = d.hour_rate and d.time_in_mins and \
+				flt(d.hour_rate) * flt(d.time_in_mins) / 60 or d.operating_cost
 			d.save()
 			total_op_cost += d.operating_cost
 		self.doc.operating_cost = total_op_cost
 
 
-
 	def calculate_rm_cost(self):
 		"""Fetch RM rate as per today's valuation rate and calculate totals"""
 		total_rm_cost = 0
 		for d in getlist(self.doclist, 'bom_materials'):
-			#if self.doc.rm_cost_as_per == 'Valuation Rate':
 			arg = {'item_code': d.item_code, 'qty': d.qty, 'bom_no': d.bom_no}
 			ret = self.get_bom_material_detail(cstr(arg))
 			for k in ret:
 				d.fields[k] = ret[k]
-
 			d.amount = flt(d.rate) * flt(d.qty)
 			d.save()
 			total_rm_cost += d.amount
@@ -284,15 +281,11 @@
 			check_list.append([cstr(item), cstr(op)])
 
 
-
-	#----- Document on Save function------
 	def validate(self):
 		self.validate_main_item()
 		self.validate_operations()
 		self.validate_materials()
 
-
-
 	def check_recursion(self):
 		""" Check whether reqursion occurs in any bom"""
 
diff --git a/production/doctype/bom/bom.txt b/production/doctype/bom/bom.txt
index 646321e..58cb5cb 100644
--- a/production/doctype/bom/bom.txt
+++ b/production/doctype/bom/bom.txt
@@ -1,462 +1,347 @@
-# DocType, BOM
 [
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2012-03-27 14:36:02',
-		'docstatus': 0,
-		'modified': '2012-03-27 14:45:46',
-		'modified_by': u'Administrator',
-		'owner': u'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'_last_update': u'1326963484',
-		'allow_attach': 0,
-		'allow_copy': 0,
-		'allow_email': 0,
-		'allow_print': 0,
-		'allow_rename': 0,
-		'allow_trash': 1,
-		'colour': u'White:FFF',
-		'default_print_format': u'Standard',
-		'doctype': 'DocType',
-		'document_type': u'Master',
-		'hide_heading': 0,
-		'hide_toolbar': 0,
-		'in_create': 0,
-		'is_submittable': 1,
-		'issingle': 0,
-		'istable': 0,
-		'module': u'Production',
-		'name': '__common__',
-		'read_only': 0,
-		'search_fields': u'item',
-		'section_style': u'Simple',
-		'server_code_error': u' ',
-		'show_in_menu': 0,
-		'subject': u'%(item)s',
-		'version': 196
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': u'DocField',
-		'name': '__common__',
-		'parent': u'BOM',
-		'parentfield': u'fields',
-		'parenttype': u'DocType'
-	},
-
-	# These values are common for all DocPerm
-	{
-		'doctype': u'DocPerm',
-		'name': '__common__',
-		'parent': u'BOM',
-		'parentfield': u'permissions',
-		'parenttype': u'DocType',
-		'read': 1
-	},
-
-	# DocType, BOM
-	{
-		'doctype': 'DocType',
-		'name': u'BOM'
-	},
-
-	# DocPerm
-	{
-		'cancel': 1,
-		'create': 1,
-		'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'System Manager',
-		'submit': 1,
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'doctype': u'DocPerm',
-		'permlevel': 1,
-		'role': u'System Manager'
-	},
-
-	# DocPerm
-	{
-		'cancel': 1,
-		'create': 1,
-		'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'Production Manager',
-		'submit': 1,
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'doctype': u'DocPerm',
-		'permlevel': 1,
-		'role': u'Production Manager'
-	},
-
-	# DocPerm
-	{
-		'cancel': 1,
-		'create': 1,
-		'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'Production User',
-		'submit': 1,
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'doctype': u'DocPerm',
-		'permlevel': 1,
-		'role': u'Production User'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'column_break0',
-		'fieldtype': u'Column Break',
-		'oldfieldtype': u'Column Break',
-		'permlevel': 0,
-		'width': u'50%'
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'description': u'Select the item code for which Bill of Material is being created',
-		'doctype': u'DocField',
-		'fieldname': u'item',
-		'fieldtype': u'Link',
-		'in_filter': 1,
-		'label': u'Item',
-		'oldfieldname': u'item',
-		'oldfieldtype': u'Link',
-		'options': u'Item',
-		'permlevel': 0,
-		'reqd': 1,
-		'search_index': 1,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'description': u'Total quantity of items for which raw materials required and operations done will be defined',
-		'doctype': u'DocField',
-		'fieldname': u'quantity',
-		'fieldtype': u'Currency',
-		'label': u'Quantity',
-		'oldfieldname': u'quantity',
-		'oldfieldtype': u'Currency',
-		'permlevel': 0,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'uom',
-		'fieldtype': u'Select',
-		'label': u'UOM',
-		'options': u'link:UOM',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'description',
-		'fieldtype': u'Text',
-		'label': u'Description',
-		'oldfieldname': u'description',
-		'oldfieldtype': u'Text',
-		'permlevel': 0,
-		'width': u'300px'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'column_break1',
-		'fieldtype': u'Column Break',
-		'permlevel': 0,
-		'width': u'50%'
-	},
-
-	# DocField
-	{
-		'description': u'Select name of the project if BOM need to be created against any project',
-		'doctype': u'DocField',
-		'fieldname': u'project_name',
-		'fieldtype': u'Link',
-		'in_filter': 1,
-		'label': u'Project Name',
-		'oldfieldname': u'project_name',
-		'oldfieldtype': u'Link',
-		'options': u'Project',
-		'permlevel': 0,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'allow_on_submit': 1,
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'is_active',
-		'fieldtype': u'Select',
-		'hidden': 0,
-		'label': u'Is Active',
-		'no_copy': 1,
-		'oldfieldname': u'is_active',
-		'oldfieldtype': u'Select',
-		'options': u'\nYes\nNo',
-		'permlevel': 0,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'allow_on_submit': 1,
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'is_default',
-		'fieldtype': u'Check',
-		'label': u'Is Default',
-		'no_copy': 1,
-		'oldfieldname': u'is_default',
-		'oldfieldtype': u'Check',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'maintained_by',
-		'fieldtype': u'Data',
-		'label': u'Maintained By',
-		'oldfieldname': u'maintained_by',
-		'oldfieldtype': u'Data',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'remarks',
-		'fieldtype': u'Text',
-		'label': u'Remarks',
-		'no_copy': 1,
-		'oldfieldname': u'remarks',
-		'oldfieldtype': u'Text',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'operations',
-		'fieldtype': u'Section Break',
-		'label': u'Operations',
-		'oldfieldtype': u'Section Break',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'description': u'Specify the operations, operating cost and give a unique Operation no to your operations.',
-		'doctype': u'DocField',
-		'fieldname': u'bom_operations',
-		'fieldtype': u'Table',
-		'label': u'BOM Operations',
-		'oldfieldname': u'bom_operations',
-		'oldfieldtype': u'Table',
-		'options': u'BOM Operation',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'materials',
-		'fieldtype': u'Section Break',
-		'label': u'Materials',
-		'oldfieldtype': u'Section Break',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'description': u'Enter the raw materials required to manufacture the BOM item. Specify the operation no as entered in the previous tab which will be performed on the raw materials entered.',
-		'doctype': u'DocField',
-		'fieldname': u'bom_materials',
-		'fieldtype': u'Table',
-		'label': u'BOM Item',
-		'oldfieldname': u'bom_materials',
-		'oldfieldtype': u'Table',
-		'options': u'BOM Item',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'costing',
-		'fieldtype': u'Section Break',
-		'label': u'Costing',
-		'oldfieldtype': u'Section Break',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'column_break2',
-		'fieldtype': u'Column Break',
-		'permlevel': 0,
-		'width': u'50%'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'rm_cost_as_per',
-		'fieldtype': u'Select',
-		'label': u'Consider Raw Material Cost As Per',
-		'options': u'Valuation Rate\nLast Purchase Rate\nStandard Rate',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'costing_date',
-		'fieldtype': u'Date',
-		'label': u'Costing Date',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'allow_on_submit': 1,
-		'doctype': u'DocField',
-		'fieldname': u'update_cost_as_on_today',
-		'fieldtype': u'Button',
-		'label': u'Update Cost as on today',
-		'options': u'calculate_cost',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'column_break3',
-		'fieldtype': u'Column Break',
-		'permlevel': 0,
-		'width': u'50%'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'raw_material_cost',
-		'fieldtype': u'Float',
-		'label': u'Raw Material Cost',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'operating_cost',
-		'fieldtype': u'Float',
-		'label': u'Operating Cost',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'total_cost',
-		'fieldtype': u'Float',
-		'label': u'Total Cost',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'section_break0',
-		'fieldtype': u'Section Break',
-		'hidden': 1,
-		'options': u'Simple',
-		'permlevel': 0,
-		'print_hide': 0
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'default': u'No Toolbar',
-		'doctype': u'DocField',
-		'fieldname': u'flat_bom_details',
-		'fieldtype': u'Table',
-		'hidden': 1,
-		'label': u'BOM Explosion Item',
-		'no_copy': 1,
-		'oldfieldname': u'flat_bom_details',
-		'oldfieldtype': u'Table',
-		'options': u'BOM Explosion Item',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'trash_reason',
-		'fieldtype': u'Small Text',
-		'hidden': 1,
-		'label': u'Trash Reason',
-		'oldfieldname': u'trash_reason',
-		'oldfieldtype': u'Small Text',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'depends_on': u'eval:doc.amended_from',
-		'description': u'The date at which current entry is corrected in the system.',
-		'doctype': u'DocField',
-		'fieldname': u'amendment_date',
-		'fieldtype': u'Date',
-		'label': u'Amendment Date',
-		'no_copy': 1,
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'amended_from',
-		'fieldtype': u'Link',
-		'label': u'Amended From',
-		'no_copy': 1,
-		'options': u'Sales Invoice',
-		'permlevel': 1,
-		'print_hide': 1
-	}
+ {
+  "owner": "Administrator", 
+  "docstatus": 0, 
+  "creation": "2012-07-03 13:30:03", 
+  "modified_by": "Administrator", 
+  "modified": "2012-12-03 13:29:26"
+ }, 
+ {
+  "istable": 0, 
+  "in_create": 0, 
+  "allow_print": 0, 
+  "search_fields": "item", 
+  "module": "Production", 
+  "document_type": "Master", 
+  "allow_attach": 0, 
+  "read_only": 0, 
+  "allow_email": 0, 
+  "hide_heading": 0, 
+  "issingle": 0, 
+  "name": "__common__", 
+  "default_print_format": "Standard", 
+  "allow_rename": 0, 
+  "doctype": "DocType", 
+  "is_submittable": 1, 
+  "hide_toolbar": 0, 
+  "allow_copy": 0
+ }, 
+ {
+  "name": "__common__", 
+  "parent": "BOM", 
+  "doctype": "DocField", 
+  "parenttype": "DocType", 
+  "parentfield": "fields"
+ }, 
+ {
+  "name": "__common__", 
+  "parent": "BOM", 
+  "read": 1, 
+  "doctype": "DocPerm", 
+  "parenttype": "DocType", 
+  "parentfield": "permissions"
+ }, 
+ {
+  "name": "BOM", 
+  "doctype": "DocType"
+ }, 
+ {
+  "oldfieldtype": "Column Break", 
+  "doctype": "DocField", 
+  "width": "50%", 
+  "fieldname": "column_break0", 
+  "fieldtype": "Column Break", 
+  "permlevel": 0
+ }, 
+ {
+  "description": "Select the item code for which Bill of Material is being created", 
+  "oldfieldtype": "Link", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "Item", 
+  "oldfieldname": "item", 
+  "permlevel": 0, 
+  "trigger": "Client", 
+  "fieldname": "item", 
+  "fieldtype": "Link", 
+  "search_index": 1, 
+  "reqd": 1, 
+  "in_filter": 1, 
+  "options": "Item"
+ }, 
+ {
+  "description": "Total quantity of items for which raw materials required and operations done will be defined", 
+  "oldfieldtype": "Currency", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "Quantity", 
+  "oldfieldname": "quantity", 
+  "fieldname": "quantity", 
+  "fieldtype": "Currency", 
+  "reqd": 1, 
+  "permlevel": 0
+ }, 
+ {
+  "doctype": "DocField", 
+  "width": "50%", 
+  "fieldname": "column_break1", 
+  "fieldtype": "Column Break", 
+  "permlevel": 0
+ }, 
+ {
+  "no_copy": 1, 
+  "oldfieldtype": "Select", 
+  "colour": "White:FFF", 
+  "allow_on_submit": 1, 
+  "doctype": "DocField", 
+  "label": "Is Active", 
+  "oldfieldname": "is_active", 
+  "permlevel": 0, 
+  "fieldname": "is_active", 
+  "fieldtype": "Select", 
+  "reqd": 1, 
+  "hidden": 0, 
+  "options": "\nYes\nNo"
+ }, 
+ {
+  "allow_on_submit": 1, 
+  "no_copy": 1, 
+  "oldfieldtype": "Check", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "Is Default", 
+  "oldfieldname": "is_default", 
+  "fieldname": "is_default", 
+  "fieldtype": "Check", 
+  "permlevel": 0
+ }, 
+ {
+  "oldfieldtype": "Section Break", 
+  "doctype": "DocField", 
+  "label": "Operations", 
+  "fieldname": "operations", 
+  "fieldtype": "Section Break", 
+  "permlevel": 0
+ }, 
+ {
+  "description": "Specify the operations, operating cost and give a unique Operation no to your operations.", 
+  "oldfieldtype": "Table", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "BOM Operations", 
+  "oldfieldname": "bom_operations", 
+  "options": "BOM Operation", 
+  "fieldname": "bom_operations", 
+  "fieldtype": "Table", 
+  "permlevel": 0
+ }, 
+ {
+  "oldfieldtype": "Section Break", 
+  "doctype": "DocField", 
+  "label": "Materials", 
+  "fieldname": "materials", 
+  "fieldtype": "Section Break", 
+  "permlevel": 0
+ }, 
+ {
+  "doctype": "DocField", 
+  "label": "Consider Raw Material Cost As Per", 
+  "options": "Valuation Rate\nLast Purchase Rate\nStandard Rate", 
+  "fieldname": "rm_cost_as_per", 
+  "fieldtype": "Select", 
+  "permlevel": 0
+ }, 
+ {
+  "description": "Enter the raw materials required to manufacture the BOM item. Specify the operation no as entered in the previous tab which will be performed on the raw materials entered.", 
+  "oldfieldtype": "Table", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "BOM Item", 
+  "oldfieldname": "bom_materials", 
+  "options": "BOM Item", 
+  "fieldname": "bom_materials", 
+  "fieldtype": "Table", 
+  "permlevel": 0
+ }, 
+ {
+  "oldfieldtype": "Section Break", 
+  "doctype": "DocField", 
+  "label": "Costing", 
+  "fieldname": "costing", 
+  "fieldtype": "Section Break", 
+  "permlevel": 0
+ }, 
+ {
+  "doctype": "DocField", 
+  "label": "Raw Material Cost", 
+  "fieldname": "raw_material_cost", 
+  "fieldtype": "Float", 
+  "permlevel": 1
+ }, 
+ {
+  "doctype": "DocField", 
+  "label": "Operating Cost", 
+  "fieldname": "operating_cost", 
+  "fieldtype": "Float", 
+  "permlevel": 1
+ }, 
+ {
+  "doctype": "DocField", 
+  "label": "Total Cost", 
+  "fieldname": "total_cost", 
+  "fieldtype": "Float", 
+  "permlevel": 1
+ }, 
+ {
+  "doctype": "DocField", 
+  "label": "More Info", 
+  "fieldname": "more_info_section", 
+  "fieldtype": "Section Break", 
+  "permlevel": 0
+ }, 
+ {
+  "description": "Select name of the project if BOM need to be created against any project", 
+  "oldfieldtype": "Link", 
+  "label": "Project Name", 
+  "oldfieldname": "project_name", 
+  "trigger": "Client", 
+  "fieldname": "project_name", 
+  "fieldtype": "Link", 
+  "doctype": "DocField", 
+  "options": "Project", 
+  "permlevel": 0, 
+  "in_filter": 1
+ }, 
+ {
+  "doctype": "DocField", 
+  "label": "Item UOM", 
+  "options": "link:UOM", 
+  "fieldname": "uom", 
+  "fieldtype": "Select", 
+  "permlevel": 1
+ }, 
+ {
+  "oldfieldtype": "Text", 
+  "doctype": "DocField", 
+  "label": "Item Description", 
+  "oldfieldname": "description", 
+  "width": "300px", 
+  "fieldname": "description", 
+  "fieldtype": "Small Text", 
+  "permlevel": 0
+ }, 
+ {
+  "doctype": "DocField", 
+  "fieldname": "col_break23", 
+  "fieldtype": "Column Break", 
+  "permlevel": 0
+ }, 
+ {
+  "oldfieldtype": "Data", 
+  "doctype": "DocField", 
+  "label": "Maintained By", 
+  "oldfieldname": "maintained_by", 
+  "fieldname": "maintained_by", 
+  "fieldtype": "Data", 
+  "permlevel": 0
+ }, 
+ {
+  "print_hide": 1, 
+  "no_copy": 1, 
+  "doctype": "DocField", 
+  "label": "Amended From", 
+  "options": "Sales 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, 
+  "depends_on": "eval:doc.amended_from", 
+  "doctype": "DocField", 
+  "label": "Amendment Date", 
+  "fieldname": "amendment_date", 
+  "fieldtype": "Date", 
+  "permlevel": 0
+ }, 
+ {
+  "no_copy": 1, 
+  "oldfieldtype": "Text", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "Remarks", 
+  "oldfieldname": "remarks", 
+  "fieldname": "remarks", 
+  "fieldtype": "Small Text", 
+  "permlevel": 0
+ }, 
+ {
+  "print_hide": 0, 
+  "doctype": "DocField", 
+  "label": "BOM Explosion Items", 
+  "options": "Simple", 
+  "fieldname": "section_break0", 
+  "fieldtype": "Section Break", 
+  "hidden": 0, 
+  "permlevel": 0
+ }, 
+ {
+  "print_hide": 1, 
+  "permlevel": 1, 
+  "no_copy": 1, 
+  "oldfieldtype": "Table", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "BOM Explosion Item", 
+  "oldfieldname": "flat_bom_details", 
+  "default": "No Toolbar", 
+  "fieldname": "flat_bom_details", 
+  "fieldtype": "Table", 
+  "hidden": 0, 
+  "options": "BOM Explosion Item"
+ }, 
+ {
+  "create": 1, 
+  "doctype": "DocPerm", 
+  "submit": 1, 
+  "write": 1, 
+  "role": "System Manager", 
+  "cancel": 1, 
+  "permlevel": 0
+ }, 
+ {
+  "doctype": "DocPerm", 
+  "role": "System Manager", 
+  "permlevel": 1
+ }, 
+ {
+  "create": 1, 
+  "doctype": "DocPerm", 
+  "submit": 1, 
+  "write": 1, 
+  "role": "Production Manager", 
+  "cancel": 1, 
+  "permlevel": 0
+ }, 
+ {
+  "doctype": "DocPerm", 
+  "role": "Production Manager", 
+  "permlevel": 1
+ }, 
+ {
+  "create": 1, 
+  "doctype": "DocPerm", 
+  "submit": 1, 
+  "write": 1, 
+  "role": "Production User", 
+  "cancel": 1, 
+  "permlevel": 0
+ }, 
+ {
+  "doctype": "DocPerm", 
+  "role": "Production User", 
+  "permlevel": 1
+ }
 ]
\ No newline at end of file
diff --git a/production/doctype/production_order/production_order.txt b/production/doctype/production_order/production_order.txt
index 369efd4..5fed2dd 100644
--- a/production/doctype/production_order/production_order.txt
+++ b/production/doctype/production_order/production_order.txt
@@ -4,7 +4,7 @@
   "docstatus": 0, 
   "creation": "2012-07-03 13:30:03", 
   "modified_by": "Administrator", 
-  "modified": "2012-11-30 14:28:03"
+  "modified": "2012-12-03 15:38:54"
  }, 
  {
   "is_submittable": 1, 
@@ -139,7 +139,7 @@
   "oldfieldname": "consider_sa_items", 
   "fieldname": "use_multi_level_bom", 
   "fieldtype": "Check", 
-  "reqd": 1, 
+  "reqd": 0, 
   "in_filter": 1, 
   "permlevel": 0
  }, 
diff --git a/production/doctype/production_planning_tool/production_planning_tool.txt b/production/doctype/production_planning_tool/production_planning_tool.txt
index 42a76f7..bf73641 100644
--- a/production/doctype/production_planning_tool/production_planning_tool.txt
+++ b/production/doctype/production_planning_tool/production_planning_tool.txt
@@ -4,7 +4,7 @@
   "docstatus": 0, 
   "creation": "2012-07-03 13:30:03", 
   "modified_by": "Administrator", 
-  "modified": "2012-11-30 14:08:55"
+  "modified": "2012-12-03 15:39:44"
  }, 
  {
   "read_only": 1, 
@@ -164,7 +164,7 @@
   "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Use Multi-Level BOM", 
-  "reqd": 1, 
+  "reqd": 0, 
   "fieldname": "use_multi_level_bom", 
   "fieldtype": "Check"
  }, 
diff --git a/projects/doctype/project/project.txt b/projects/doctype/project/project.txt
index b58f60a..eaa0ac8 100644
--- a/projects/doctype/project/project.txt
+++ b/projects/doctype/project/project.txt
@@ -4,7 +4,7 @@
   "docstatus": 0, 
   "creation": "2012-11-28 11:26:18", 
   "modified_by": "Administrator", 
-  "modified": "2012-11-14 17:04:57"
+  "modified": "2012-12-03 17:10:41"
  }, 
  {
   "autoname": "field:project_name", 
diff --git a/selling/doctype/customer/customer.txt b/selling/doctype/customer/customer.txt
index 2bc9e89..cc49c0a 100644
--- a/selling/doctype/customer/customer.txt
+++ b/selling/doctype/customer/customer.txt
@@ -4,7 +4,7 @@
   "docstatus": 0, 
   "creation": "2012-12-03 10:31:05", 
   "modified_by": "Administrator", 
-  "modified": "2012-12-03 11:25:29"
+  "modified": "2012-12-03 17:10:41"
  }, 
  {
   "description": "Buyer of Goods and Services.", 
diff --git a/selling/doctype/opportunity/opportunity.txt b/selling/doctype/opportunity/opportunity.txt
index 47d79f2..f3e9d85 100644
--- a/selling/doctype/opportunity/opportunity.txt
+++ b/selling/doctype/opportunity/opportunity.txt
@@ -4,7 +4,7 @@
   "docstatus": 0, 
   "creation": "2012-12-03 10:31:06", 
   "modified_by": "Administrator", 
-  "modified": "2012-12-03 13:57:32"
+  "modified": "2012-12-03 17:10:41"
  }, 
  {
   "is_submittable": 1, 
diff --git a/selling/doctype/quotation/quotation.txt b/selling/doctype/quotation/quotation.txt
index 0a39bc6..6924dcb 100644
--- a/selling/doctype/quotation/quotation.txt
+++ b/selling/doctype/quotation/quotation.txt
@@ -4,7 +4,7 @@
   "docstatus": 0, 
   "creation": "2012-11-28 11:26:20", 
   "modified_by": "Administrator", 
-  "modified": "2012-11-26 11:57:10"
+  "modified": "2012-12-03 17:10:41"
  }, 
  {
   "is_submittable": 1, 
diff --git a/selling/doctype/sales_common/sales_common.js b/selling/doctype/sales_common/sales_common.js
index 4807dc1..c5eed98 100644
--- a/selling/doctype/sales_common/sales_common.js
+++ b/selling/doctype/sales_common/sales_common.js
@@ -304,6 +304,29 @@
 	get_server_fields('get_barcode_details', d.barcode, cur_frm.cscript.fname, doc, cdt, cdn, 1, callback);
 }
 
+cur_frm.fields_dict[cur_frm.cscript.fname].grid.get_field('batch_no').get_query = 
+	function(doc, cdt, cdn) {
+		var d = locals[cdt][cdn];
+		if(d.item_code) {
+			if (d.warehouse) {
+				return "select batch_no from `tabStock Ledger Entry` sle \
+					where item_code = '" + d.item_code + "' and warehouse = '" + d.warehouse +
+					"' and ifnull(is_cancelled, 'No') = 'No' and batch_no like '%s' \
+					and exists(select * from `tabBatch` where \
+					name = sle.batch_no and expiry_date >= '" + doc.posting_date + 
+					"' and docstatus != 2) group by batch_no having sum(actual_qty) > 0 \
+					order by batch_no desc limit 50";
+			} else {
+				return "SELECT name FROM tabBatch WHERE docstatus != 2 AND item = '" + 
+					d.item_code + "' and expiry_date >= '" + doc.posting_date + 
+					"' AND name like '%s' ORDER BY name DESC LIMIT 50";
+			}		
+		} else {
+			msgprint("Please enter Item Code to get batch no");
+		}
+	}
+
+
 
 // *********************** QUANTITY ***************************
 cur_frm.cscript.qty = function(doc, cdt, cdn) { cur_frm.cscript.recalc(doc, 1); }
diff --git a/selling/doctype/sales_order/sales_order.txt b/selling/doctype/sales_order/sales_order.txt
index 637914a..8221411 100644
--- a/selling/doctype/sales_order/sales_order.txt
+++ b/selling/doctype/sales_order/sales_order.txt
@@ -4,7 +4,7 @@
   "docstatus": 0, 
   "creation": "2012-11-28 11:26:20", 
   "modified_by": "Administrator", 
-  "modified": "2012-11-26 11:56:33"
+  "modified": "2012-12-03 17:10:41"
  }, 
  {
   "is_submittable": 1, 
diff --git a/stock/doctype/delivery_note/delivery_note.js b/stock/doctype/delivery_note/delivery_note.js
index 5e9ce32..6227675 100644
--- a/stock/doctype/delivery_note/delivery_note.js
+++ b/stock/doctype/delivery_note/delivery_note.js
@@ -134,16 +134,6 @@
 	loaddoc('Contact', tn);
 }
 
-//========================= Overloaded query for link batch_no =============================================================
-cur_frm.fields_dict['delivery_note_details'].grid.get_field('batch_no').get_query= function(doc, cdt, cdn) {
-	var d = locals[cdt][cdn];
-	if(d.item_code){
-		return "SELECT tabBatch.name, tabBatch.description FROM tabBatch WHERE tabBatch.docstatus != 2 AND tabBatch.item = '"+ d.item_code +"' AND `tabBatch`.`name` like '%s' ORDER BY `tabBatch`.`name` DESC LIMIT 50"
-	}
-	else{
-		alert("Please enter Item Code.");
-	}
-}
 
 // ***************** Get project name *****************
 cur_frm.fields_dict['project_name'].get_query = function(doc, cdt, cdn) {
diff --git a/stock/doctype/delivery_note/delivery_note.txt b/stock/doctype/delivery_note/delivery_note.txt
index 3752b6e..7f402fa 100644
--- a/stock/doctype/delivery_note/delivery_note.txt
+++ b/stock/doctype/delivery_note/delivery_note.txt
@@ -4,7 +4,7 @@
   "docstatus": 0, 
   "creation": "2012-11-28 11:26:21", 
   "modified_by": "Administrator", 
-  "modified": "2012-11-26 11:56:10"
+  "modified": "2012-12-03 17:10:41"
  }, 
  {
   "is_submittable": 1, 
diff --git a/stock/doctype/purchase_receipt/purchase_receipt.txt b/stock/doctype/purchase_receipt/purchase_receipt.txt
index 2e89d22..4df9383 100755
--- a/stock/doctype/purchase_receipt/purchase_receipt.txt
+++ b/stock/doctype/purchase_receipt/purchase_receipt.txt
@@ -4,7 +4,7 @@
   "docstatus": 0, 
   "creation": "2012-07-17 13:24:57", 
   "modified_by": "Administrator", 
-  "modified": "2012-07-16 16:26:24"
+  "modified": "2012-12-03 17:10:41"
  }, 
  {
   "is_submittable": 1, 
diff --git a/stock/doctype/stock_entry/stock_entry.js b/stock/doctype/stock_entry/stock_entry.js
index bf75826..5805b2a 100644
--- a/stock/doctype/stock_entry/stock_entry.js
+++ b/stock/doctype/stock_entry/stock_entry.js
@@ -8,68 +8,77 @@
 // 
 // 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
+// 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/>.
+// along with this program.	If not, see <http://www.gnu.org/licenses/>.
 
 cur_frm.cscript.onload = function(doc, cdt, cdn) {
-  if (!doc.posting_date) doc.posting_date = dateutil.obj_to_str(new Date());
-  if (!doc.transfer_date) doc.transfer_date = dateutil.obj_to_str(new Date());
-  if(!doc.purpose) set_multiple(cdt, cdn, {purpose:'Material Issue'});
-  cfn_set_fields(doc, cdt, cdn);
+	if (!doc.posting_date) doc.posting_date = dateutil.obj_to_str(new Date());
+	if (!doc.transfer_date) doc.transfer_date = dateutil.obj_to_str(new Date());
+	if(!doc.purpose) set_multiple(cdt, cdn, {purpose:'Material Issue'});
+	cfn_set_fields(doc, cdt, cdn);
 }
 
 
 var cfn_set_fields = function(doc, cdt, cdn) {
-  lst = ['supplier','supplier_name','supplier_address','customer','customer_name','customer_address'];
-  if (in_list(['Material Issue', 'Material Transfer', 'Material Receipt', 'Sales Return', 'Purchase Return', 'Production Order', 'Subcontracting', 'Other'], doc.purpose)) {
-    hide_field(lst);
-	$(cur_frm.fields_dict.contact_section.row.wrapper).toggle(false);
-  } else unhide_field(lst);
+	lst = ['supplier', 'supplier_name', 'supplier_address', 
+		'customer', 'customer_name', 'customer_address'];
+	if (in_list(['Material Issue', 'Material Transfer', 'Material Receipt', 'Sales Return',
+	 	'Purchase Return', 'Production Order', 'Subcontracting', 'Other'], doc.purpose)) {
+		hide_field(lst);
+		$(cur_frm.fields_dict.contact_section.row.wrapper).toggle(false);
+	} else unhide_field(lst);
 
+	if (doc.purpose == 'Production Order' || doc.purpose == 'Other') {
+		unhide_field('get_items');
+		hide_field(['from_warehouse', 'to_warehouse','purchase_receipt_no', 
+			'delivery_note_no', 'sales_invoice_no','warehouse_html', 
+			'transporter', 'is_excisable_goods', 'excisable_goods']);
+		if (doc.purpose=='Production Order') unhide_field(['production_order', 'process']);
+		else {
+			doc.production_order = doc.process = '';
+			hide_field(['production_order', 'process']);
+		}
 
-  if (doc.purpose == 'Production Order' || doc.purpose == 'Other'){
-    unhide_field('get_items');
-    hide_field(['from_warehouse', 'to_warehouse','purchase_receipt_no','delivery_note_no', 'sales_invoice_no','warehouse_html', 'transporter', 'is_excisable_goods', 'excisable_goods']);
-	if (doc.purpose=='Production Order') unhide_field(['production_order', 'process']);
-	else hide_field(['production_order', 'process']);
-
-	doc.from_warehouse = '';
-    doc.to_warehouse = '';
-	refresh_field(['from_warehosue', 'to_warehouse']);
-    if (doc.process == 'Backflush' || doc.purpose == 'Other'){
-      unhide_field('fg_completed_qty');
-    }
-    else{
-      hide_field('fg_completed_qty');
-      doc.fg_completed_qty = 0;
-    }
-  }
-  else{
-    unhide_field(['from_warehouse', 'to_warehouse']);
-    hide_field(['production_order', 'process', 'get_items', 'fg_completed_qty','purchase_receipt_no','delivery_note_no', 'sales_invoice_no']);
-    doc.production_order = '';
-    doc.process = '';
-    doc.fg_completed_qty = 0;
-  }
-  
+		doc.from_warehouse = '';
+		doc.to_warehouse = '';
+		refresh_field(['from_warehosue', 'to_warehouse']);
+		if (doc.process == 'Backflush' || doc.purpose == 'Other') {
+			unhide_field('fg_completed_qty');
+		}
+		else{
+			hide_field('fg_completed_qty');
+			doc.fg_completed_qty = 0;
+		}
+	} else {
+		unhide_field(['from_warehouse', 'to_warehouse']);
+		hide_field(['production_order', 'process', 'get_items',	'fg_completed_qty', 
+			'purchase_receipt_no','delivery_note_no', 'sales_invoice_no']);
+		doc.production_order = '';
+		doc.process = '';
+		doc.fg_completed_qty = 0;
+	}
+	
  
-  if(doc.purpose == 'Purchase Return'){
-    doc.customer=doc.customer_name = doc.customer_address=doc.delivery_note_no=doc.sales_invoice_no='';
-    unhide_field(['supplier','supplier_name','supplier_address','purchase_receipt_no']);
-	$(cur_frm.fields_dict.contact_section.row.wrapper).toggle(true);
-  }
-  else if(doc.purpose == 'Sales Return'){
-    doc.supplier=doc.supplier_name = doc.supplier_address=doc.purchase_receipt_no='';
-    unhide_field(['customer','customer_name','customer_address','delivery_note_no', 'sales_invoice_no']);
-	$(cur_frm.fields_dict.contact_section.row.wrapper).toggle(true);
-  } else{
-    doc.customer=doc.customer_name=doc.customer_address=doc.delivery_note_no=doc.sales_invoice_no='';
-	doc.supplier=doc.supplier_name = doc.supplier_address=doc.purchase_receipt_no='';
-  }
-  refresh_many(lst);
+	if(doc.purpose == 'Purchase Return') {
+		doc.customer = doc.customer_name = doc.customer_address = 
+			doc.delivery_note_no = doc.sales_invoice_no = '';
+		unhide_field(['supplier','supplier_name','supplier_address','purchase_receipt_no']);
+		$(cur_frm.fields_dict.contact_section.row.wrapper).toggle(true);
+	}
+	else if(doc.purpose == 'Sales Return'){
+		doc.supplier=doc.supplier_name = doc.supplier_address=doc.purchase_receipt_no='';
+		unhide_field(['customer', 'customer_name', 'customer_address', 
+			'delivery_note_no', 'sales_invoice_no']);
+		$(cur_frm.fields_dict.contact_section.row.wrapper).toggle(true);
+	} else{
+		doc.customer = doc.customer_name = doc.customer_address = 
+			doc.delivery_note_no = doc.sales_invoice_no = doc.supplier = 
+			doc.supplier_name = doc.supplier_address = doc.purchase_receipt_no = '';
+	}
+	refresh_many(lst);
 }
 
 //Refresh
@@ -77,47 +86,44 @@
 	erpnext.hide_naming_series();
 
 	//India related
-	excise_flds = ['is_excisable_goods', 'excisable_goods', 'under_rule']
+	excise_flds = ['is_excisable_goods', 'excisable_goods', 'under_rule'];
 	if(wn.control_panel.country == 'India') unhide_field(excise_flds);
 	else hide_field(excise_flds);
 }
 
-
 cur_frm.cscript.delivery_note_no = function(doc,cdt,cdn){
-  if(doc.delivery_note_no) get_server_fields('get_cust_values','','',doc,cdt,cdn,1);
+	if(doc.delivery_note_no) get_server_fields('get_cust_values','','',doc,cdt,cdn,1);
 }
 
 cur_frm.cscript.sales_invoice_no = function(doc,cdt,cdn){
-  if(doc.sales_invoice_no) get_server_fields('get_cust_values','','',doc,cdt,cdn,1);
+	if(doc.sales_invoice_no) get_server_fields('get_cust_values','','',doc,cdt,cdn,1);
 }
 
 cur_frm.cscript.customer = function(doc,cdt,cdn){
-  if(doc.customer)  get_server_fields('get_cust_addr','','',doc,cdt,cdn,1);
+	if(doc.customer)	get_server_fields('get_cust_addr','','',doc,cdt,cdn,1);
 }
 
 cur_frm.cscript.purchase_receipt_no = function(doc,cdt,cdn){
-  if(doc.purchase_receipt_no)  get_server_fields('get_supp_values','','',doc,cdt,cdn,1);
+	if(doc.purchase_receipt_no)	get_server_fields('get_supp_values','','',doc,cdt,cdn,1);
 }
 
 cur_frm.cscript.supplier = function(doc,cdt,cdn){
-  if(doc.supplier)  get_server_fields('get_supp_addr','','',doc,cdt,cdn,1);
+	if(doc.supplier)	get_server_fields('get_supp_addr','','',doc,cdt,cdn,1);
 
 }
 
 cur_frm.fields_dict['production_order'].get_query = function(doc) {
-   return 'SELECT DISTINCT `tabProduction Order`.`name` FROM `tabProduction Order` WHERE `tabProduction Order`.`docstatus` = 1 AND `tabProduction Order`.`qty` > ifnull(`tabProduction Order`.`produced_qty`,0) AND `tabProduction Order`.`name` like "%s" ORDER BY `tabProduction Order`.`name` DESC LIMIT 50';
+	 return 'SELECT DISTINCT `tabProduction Order`.`name` FROM `tabProduction Order` WHERE `tabProduction Order`.`docstatus` = 1 AND `tabProduction Order`.`qty` > ifnull(`tabProduction Order`.`produced_qty`,0) AND `tabProduction Order`.`name` like "%s" ORDER BY `tabProduction Order`.`name` DESC LIMIT 50';
 }
 
 cur_frm.cscript.purpose = function(doc, cdt, cdn) {
-  cfn_set_fields(doc, cdt, cdn);
+	cfn_set_fields(doc, cdt, cdn);
 }
 
-
 cur_frm.cscript.process = function(doc, cdt, cdn) {
-  cfn_set_fields(doc, cdt, cdn);
+	cfn_set_fields(doc, cdt, cdn);
 }
 
-//
 // item code - only if quantity present in source warehosue
 //
 var fld = cur_frm.fields_dict['mtn_details'].grid.get_field('item_code');
@@ -147,9 +153,7 @@
 	}
 }
 
-//
 // copy over source and target warehouses
-//
 cur_frm.fields_dict['mtn_details'].grid.onrowadd = function(doc, cdt, cdn){
 	var d = locals[cdt][cdn];
 	if(!d.s_warehouse && doc.from_warehouse) {
@@ -162,73 +166,88 @@
 	}
 }
 
-//========================= Overloaded query for link batch_no =============================================================
-cur_frm.fields_dict['mtn_details'].grid.get_field('batch_no').get_query= function(doc, cdt, cdn) {
-  var d = locals[cdt][cdn];
-  if(d.item_code){
-    return "SELECT tabBatch.name, tabBatch.description FROM tabBatch WHERE tabBatch.docstatus != 2 AND tabBatch.item = '"+ d.item_code +"' AND `tabBatch`.`name` like '%s' ORDER BY `tabBatch`.`name` DESC LIMIT 50"
-  }
-  else{
-    alert("Please enter Item Code.");
-  }
+// Overloaded query for link batch_no
+cur_frm.fields_dict['mtn_details'].grid.get_field('batch_no').get_query = function(doc, cdt, cdn) {
+	var d = locals[cdt][cdn];		
+	if(d.item_code) {
+		if (d.s_warehouse) {
+			return "select batch_no from `tabStock Ledger Entry` sle \
+				where item_code = '" + d.item_code + "' and warehouse = '" + d.s_warehouse +
+				"' and ifnull(is_cancelled, 'No') = 'No' and batch_no like '%s' \
+				and exists(select * from `tabBatch` where \
+				name = sle.batch_no and expiry_date >= '" + doc.posting_date + 
+				"' and docstatus != 2) group by batch_no having sum(actual_qty) > 0 \
+				order by batch_no desc limit 50";
+		} else {
+			return "SELECT name FROM tabBatch WHERE docstatus != 2 AND item = '" + 
+				d.item_code + "' and expiry_date >= '" + doc.posting_date + 
+				"' AND name like '%s' ORDER BY name DESC LIMIT 50";
+		}		
+	} else {
+		msgprint("Please enter Item Code to get batch no");
+	}
 }
 
-//==================================================================================================================
-
 cur_frm.cscript.item_code = function(doc, cdt, cdn) {
-  var d = locals[cdt][cdn];
-  // get values
-  args = {
-  	'item_code'		: d.item_code,
-  	'warehouse'		: cstr(d.s_warehouse),
-  	'transfer_qty'	: d.transfer_qty,
-  	'serial_no'		: d.serial_no
-  };
-  get_server_fields('get_item_details',JSON.stringify(args),'mtn_details',doc,cdt,cdn,1);
+	var d = locals[cdt][cdn];
+	args = {
+		'item_code'		: d.item_code,
+		'warehouse'		: cstr(d.s_warehouse) || cstr(d.t_warehouse),
+		'transfer_qty'	: d.transfer_qty,
+		'serial_no'		: d.serial_no,
+		'fg_item'		: d.fg_item,
+		'bom_no'		: d.bom_no
+	};
+	get_server_fields('get_item_details',JSON.stringify(args),'mtn_details',doc,cdt,cdn,1);
 }
 
-//==================================================================================================================
+cur_frm.cscript.s_warehouse = function(doc, cdt, cdn) {
+	var d = locals[cdt][cdn];
+	args = {
+		'item_code'		: d.item_code,
+		'warehouse'		: cstr(d.s_warehouse) || cstr(d.t_warehouse),
+		'transfer_qty'	: d.transfer_qty,
+		'serial_no'		: d.serial_no,
+		'fg_item'		: d.fg_item,
+		'bom_no'		: d.bom_no
+	}
+	get_server_fields('get_warehouse_details', JSON.stringify(args), 
+		'mtn_details', doc, cdt, cdn, 1);
+}
+
+cur_frm.cscript.t_warehouse = cur_frm.cscript.s_warehouse;
 
 cur_frm.cscript.transfer_qty = function(doc,cdt,cdn) {
-  var d = locals[cdt][cdn];
-  if (doc.from_warehouse && (flt(d.transfer_qty) > flt(d.actual_qty))) {
-    alert("Transfer Quantity is more than Available Qty");
-  }
+	var d = locals[cdt][cdn];
+	if (doc.from_warehouse && (flt(d.transfer_qty) > flt(d.actual_qty))) {
+		alert("Transfer Quantity is more than Available Qty");
+	}
 }
 
-
-//==================================================================================================================
-
 cur_frm.cscript.qty = function(doc, cdt, cdn) {
-  var d = locals[cdt][cdn];
-  set_multiple('Stock Entry Detail', d.name, {'transfer_qty': flt(d.qty) * flt(d.conversion_factor)}, 'mtn_details');
-  refresh_field('mtn_details');
+	var d = locals[cdt][cdn];
+	set_multiple('Stock Entry Detail', d.name, {'transfer_qty': flt(d.qty) * flt(d.conversion_factor)}, 'mtn_details');
+	refresh_field('mtn_details');
 }
 
-//==================================================================================================================
-
 cur_frm.cscript.uom = function(doc, cdt, cdn) {
-  var d = locals[cdt][cdn];
-  if(d.uom && d.item_code){
-    var arg = {'item_code':d.item_code, 'uom':d.uom, 'qty':d.qty}
-    get_server_fields('get_uom_details',JSON.stringify(arg),'mtn_details', doc, cdt, cdn, 1);
-  }
+	var d = locals[cdt][cdn];
+	if(d.uom && d.item_code){
+		var arg = {'item_code':d.item_code, 'uom':d.uom, 'qty':d.qty}
+		get_server_fields('get_uom_details',JSON.stringify(arg),'mtn_details', doc, cdt, cdn, 1);
+	}
 }
 
-//==================================================================================================================
-//validate
 cur_frm.cscript.validate = function(doc, cdt, cdn) {
-  cur_frm.cscript.validate_items(doc);
+	cur_frm.cscript.validate_items(doc);
 }
 
-//==================================================================================================================
-//validate items
 cur_frm.cscript.validate_items = function(doc) {
-  cl =  getchildren('Stock Entry Detail',doc.name,'mtn_details');
-  if (!cl.length) {
-    alert("Item table can not be blank");
-    validated = false;
-  }
+	cl =	getchildren('Stock Entry Detail',doc.name,'mtn_details');
+	if (!cl.length) {
+		alert("Item table can not be blank");
+		validated = false;
+	}
 }
 
 cur_frm.fields_dict.customer.get_query = erpnext.utils.customer_query;
diff --git a/stock/doctype/stock_entry/stock_entry.py b/stock/doctype/stock_entry/stock_entry.py
index 29f58bc..67f1643 100644
--- a/stock/doctype/stock_entry/stock_entry.py
+++ b/stock/doctype/stock_entry/stock_entry.py
@@ -35,8 +35,6 @@
 		self.item_dict = {}
 		self.fname = 'mtn_details' 
   
-	# get item details
-	# ----------------
 	def get_item_details(self, arg):
 		import json
 		arg, actual_qty, in_rate = json.loads(arg), 0, 0
@@ -44,28 +42,24 @@
 		item = sql("select stock_uom, description, item_name from `tabItem` where name = %s and (ifnull(end_of_life,'')='' or end_of_life ='0000-00-00' or end_of_life >	now())", (arg.get('item_code')), as_dict = 1)
 		if not item: 
 			msgprint("Item is not active", raise_exception=1)
-			
-		if arg.get('warehouse'):
-			actual_qty = self.get_as_on_stock(arg.get('item_code'), arg.get('warehouse'), self.doc.posting_date, self.doc.posting_time)
-			in_rate = self.get_incoming_rate(arg.get('item_code'), arg.get('warehouse'), self.doc.posting_date, self.doc.posting_time, arg.get('transfer_qty'), arg.get('serial_no')) or 0
-			
+						
 		ret = {
 			'uom'			      	: item and item[0]['stock_uom'] or '',
 			'stock_uom'			  	: item and item[0]['stock_uom'] or '',
 			'description'		  	: item and item[0]['description'] or '',
 			'item_name' 		  	: item and item[0]['item_name'] or '',
-			'actual_qty'		  	: actual_qty,
 			'qty'					: 0,
 			'transfer_qty'			: 0,
-			'incoming_rate'	  		: in_rate,
 			'conversion_factor'		: 1,
-     		'batch_no'          	: ''
+     		'batch_no'          	: '',
+			'actual_qty'			: 0,
+			'incoming_rate'			: 0
 		}
+		stock_and_rate = arg.get('warehouse') and self.get_warehouse_details(json.dumps(arg)) or {}
+		ret.update(stock_and_rate)
 		return ret
 
 
-	# Get UOM Details
-	# ----------------
 	def get_uom_details(self, arg = ''):
 		arg, ret = eval(arg), {}
 		uom = sql("select conversion_factor from `tabUOM Conversion Detail` where parent = %s and uom = %s", (arg['item_code'],arg['uom']), as_dict = 1)
@@ -78,28 +72,44 @@
 				'transfer_qty'			: flt(arg['qty']) * flt(uom[0]['conversion_factor']),
 			}
 		return ret
-
 		
-
-	# get stock and incoming rate on posting date
-	# ---------------------------------------------
+	def get_warehouse_details(self, arg):
+		import json
+		arg, actual_qty, in_rate = json.loads(arg), 0, 0
+		ret = {
+			"actual_qty" : self.get_as_on_stock(arg.get('item_code'), arg.get('warehouse'),
+			 	self.doc.posting_date, self.doc.posting_time),
+			"incoming_rate" : 	self.get_incoming_rate(arg.get('item_code'), 
+			 	arg.get('warehouse'), self.doc.posting_date, self.doc.posting_time, 
+			 	arg.get('transfer_qty'), arg.get('serial_no'), arg.get('fg_item'),
+			 	arg.get('bom_no')) or 0
+		}
+		return ret
+			
+	
 	def get_stock_and_rate(self, bom_no = ''):
+		""" get stock and incoming rate on posting date"""
 		for d in getlist(self.doclist, 'mtn_details'):
 			# assign parent warehouse
-			d.s_warehouse = cstr(d.s_warehouse) or self.doc.purpose != 'Production Order' and self.doc.from_warehouse or ''
-			d.t_warehouse = cstr(d.t_warehouse) or self.doc.purpose != 'Production Order' and self.doc.to_warehouse or ''
+			d.s_warehouse = cstr(d.s_warehouse) or self.doc.purpose != 'Production Order' \
+				and self.doc.from_warehouse or ''
+			d.t_warehouse = cstr(d.t_warehouse) or self.doc.purpose != 'Production Order' \
+				and self.doc.to_warehouse or ''
 			
 			# get current stock at source warehouse
-			d.actual_qty = d.s_warehouse and self.get_as_on_stock(d.item_code, d.s_warehouse, self.doc.posting_date, self.doc.posting_time) or 0
+			d.actual_qty = self.get_as_on_stock(d.item_code, d.s_warehouse or d.t_warehouse, 
+				self.doc.posting_date, self.doc.posting_time) or 0
 
 			# get incoming rate
 			if not flt(d.incoming_rate):
-				d.incoming_rate = self.get_incoming_rate(d.item_code, d.s_warehouse, self.doc.posting_date, self.doc.posting_time, d.transfer_qty, d.serial_no, d.fg_item, d.bom_no or bom_no)
+				d.incoming_rate = self.get_incoming_rate(d.item_code, 
+					d.s_warehouse or d.t_warehouse, self.doc.posting_date, 
+					self.doc.posting_time, d.transfer_qty, d.serial_no, 
+					d.fg_item, d.bom_no or bom_no)
 
 
-	# Get stock qty on any date
-	# ---------------------------
 	def get_as_on_stock(self, item, wh, dt, tm):
+		"""Get stock qty on any date"""
 		bin = sql("select name from tabBin where item_code = %s and warehouse = %s", (item, wh))
 		bin_id = bin and bin[0][0] or ''
 		prev_sle = bin_id and get_obj('Bin', bin_id).get_prev_sle(dt, tm) or {}		
@@ -107,17 +117,15 @@
 		return qty
 
 
-	# Get incoming rate
-	# -------------------
-	def get_incoming_rate(self, item, wh, dt, tm, qty = 0, serial_no = '', fg_item = 0, bom_no = ''):
+	def get_incoming_rate(self, item, wh, dt, tm, qty=0, serial_no='', fg_item=0, bom_no=''):
 		in_rate = 0
 		if fg_item and bom_no:
-			# re-calculate cost for production item from bom
-			get_obj('BOM Control').calculate_cost(bom_no)
-			bom_obj = get_obj('BOM', bom_no)
-			in_rate = flt(bom_obj.doc.total_cost) / (flt(bom_obj.doc.quantity) or 1)
+			in_rate = webnotes.conn.sql("""select ifnull(total_cost, 0) / ifnull(quantity, 1) 
+				from `tabBOM` where name = %s and docstatus=1""", bom_no, debug=1)
+			in_rate = in_rate and in_rate[0][0] or 0
 		elif wh:
-			in_rate = get_obj('Valuation Control').get_incoming_rate(dt, tm, item, wh, qty, serial_no)
+			in_rate = get_obj('Valuation Control').get_incoming_rate(dt, tm, 
+				item, wh, qty, serial_no)
 		
 		return in_rate
 
@@ -205,6 +213,10 @@
 
 	def validate_bom_no(self):
 		if self.doc.bom_no:
+			if not webnotes.conn.sql("""select name from tabBOM where name = %s and docstatus = 1
+			 		and ifnull(is_active, 'No') = 'Yes'""", self.doc.bom_no):
+				msgprint("""BOM: %s not found, may be it has been cancelled or inactivated""" %
+					self.doc.bom_no, raise_exception=1)
 			if not self.doc.fg_completed_qty:
 				msgprint("Please enter FG Completed Qty", raise_exception=1)
 
@@ -215,7 +227,8 @@
 			self.validate_for_production_order(pro_obj)
 
 			bom_no = pro_obj.doc.bom_no
-			fg_qty = (self.doc.process == 'Backflush') and flt(self.doc.fg_completed_qty) or flt(pro_obj.doc.qty)
+			fg_qty = (self.doc.process == 'Backflush') and flt(self.doc.fg_completed_qty) \
+				or flt(pro_obj.doc.qty)
 			use_multi_level_bom = pro_obj.doc.use_multi_level_bom
 		elif self.doc.purpose == 'Other':
 			self.validate_bom_no()
@@ -234,22 +247,30 @@
 		if self.doc.process == 'Backflush':
 			sw = ''
 			tw = cstr(pro_obj.doc.fg_warehouse)	
-			fg_item_dict = {cstr(pro_obj.doc.production_item) : [self.doc.fg_completed_qty, pro_obj.doc.description, pro_obj.doc.stock_uom]}
+			fg_item_dict = {
+				cstr(pro_obj.doc.production_item) : [self.doc.fg_completed_qty,
+				 	pro_obj.doc.description, pro_obj.doc.stock_uom]
+			}
 		elif self.doc.purpose == 'Other' and self.doc.bom_no:
 			sw, tw = '', ''
 			item = sql("select item, description, uom from `tabBOM` where name = %s", self.doc.bom_no, as_dict=1)
-			fg_item_dict = {item[0]['item'] : [self.doc.fg_completed_qty, item[0]['description'], item[0]['uom']]}
+			fg_item_dict = {
+				item[0]['item'] : [self.doc.fg_completed_qty, 
+					item[0]['description'], item[0]['uom']]
+			}
 
 		if fg_item_dict:
 			self.add_to_stock_entry_detail(sw, tw, fg_item_dict, fg_item = 1, bom_no = bom_no)
 			
+		self.get_stock_and_rate()
+			
 
 
 	def validate_transfer_qty(self):
 		for d in getlist(self.doclist, 'mtn_details'):
 			if flt(d.transfer_qty) <= 0:
-				msgprint("Transfer Quantity can not be less than or equal to zero at Row No " + cstr(d.idx))
-				raise Exception
+				msgprint("Transfer Quantity can not be less than or equal to zero \
+				 at Row No " + cstr(d.idx), raise_exception=1)
 
 
 	def calc_amount(self):
@@ -326,8 +347,10 @@
 		self.validate_incoming_rate()
 		self.validate_bom_belongs_to_item()
 		self.calc_amount()
-		get_obj('Sales Common').validate_fiscal_year(self.doc.fiscal_year,self.doc.posting_date,'Posting Date')
-		
+		get_obj('Sales Common').validate_fiscal_year(self.doc.fiscal_year, 
+			self.doc.posting_date, 'Posting Date')
+		if self.doc.purpose == 'Other':
+			self.validate_bom_no()
 	
 	# If target warehouse exists, incoming rate is mandatory
 	# --------------------------------------------------------
diff --git a/stock/doctype/stock_entry/stock_entry.txt b/stock/doctype/stock_entry/stock_entry.txt
index 24412b8..5d2a79d 100644
--- a/stock/doctype/stock_entry/stock_entry.txt
+++ b/stock/doctype/stock_entry/stock_entry.txt
@@ -4,7 +4,7 @@
   "docstatus": 0, 
   "creation": "2012-11-28 11:26:22", 
   "modified_by": "Administrator", 
-  "modified": "2012-11-30 14:10:02"
+  "modified": "2012-12-03 12:00:59"
  }, 
  {
   "is_submittable": 1, 
@@ -414,7 +414,9 @@
  }, 
  {
   "print_hide": 1, 
+  "description": "Get valuation rate and available stock at source/target warehouse on mentioned posting date-time. If serialized item, please press this button after entering serial nos.", 
   "oldfieldtype": "Button", 
+  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Get Stock and Rate", 
   "options": "get_stock_and_rate", 
diff --git a/stock/doctype/stock_entry_detail/stock_entry_detail.txt b/stock/doctype/stock_entry_detail/stock_entry_detail.txt
index 031bd8f..503dd5b 100644
--- a/stock/doctype/stock_entry_detail/stock_entry_detail.txt
+++ b/stock/doctype/stock_entry_detail/stock_entry_detail.txt
@@ -1,266 +1,218 @@
-# DocType, Stock Entry Detail
 [
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2012-04-13 11:56:38',
-		'docstatus': 0,
-		'modified': '2012-05-01 16:16:20',
-		'modified_by': u'Administrator',
-		'owner': u'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'autoname': u'MTND/.######',
-		'colour': u'White:FFF',
-		'default_print_format': u'Standard',
-		'doctype': 'DocType',
-		'istable': 1,
-		'module': u'Stock',
-		'name': '__common__',
-		'section_style': u'Tray',
-		'server_code_error': u' ',
-		'show_in_menu': 0,
-		'version': 1
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': u'DocField',
-		'name': '__common__',
-		'parent': u'Stock Entry Detail',
-		'parentfield': u'fields',
-		'parenttype': u'DocType'
-	},
-
-	# DocType, Stock Entry Detail
-	{
-		'doctype': 'DocType',
-		'name': u'Stock Entry Detail'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u's_warehouse',
-		'fieldtype': u'Link',
-		'in_filter': 1,
-		'label': u'Source Warehouse',
-		'oldfieldname': u's_warehouse',
-		'oldfieldtype': u'Link',
-		'options': u'Warehouse',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u't_warehouse',
-		'fieldtype': u'Link',
-		'in_filter': 1,
-		'label': u'Target Warehouse',
-		'oldfieldname': u't_warehouse',
-		'oldfieldtype': u'Link',
-		'options': u'Warehouse',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'item_code',
-		'fieldtype': u'Link',
-		'in_filter': 1,
-		'label': u'Item Code',
-		'oldfieldname': u'item_code',
-		'oldfieldtype': u'Link',
-		'options': u'Item',
-		'permlevel': 0,
-		'reqd': 1,
-		'search_index': 1,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'description',
-		'fieldtype': u'Text',
-		'label': u'Description',
-		'oldfieldname': u'description',
-		'oldfieldtype': u'Text',
-		'permlevel': 0,
-		'width': u'300px'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'qty',
-		'fieldtype': u'Currency',
-		'label': u'Qty',
-		'oldfieldname': u'qty',
-		'oldfieldtype': u'Currency',
-		'permlevel': 0,
-		'reqd': 1,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'uom',
-		'fieldtype': u'Link',
-		'label': u'UOM',
-		'oldfieldname': u'uom',
-		'oldfieldtype': u'Link',
-		'options': u'UOM',
-		'permlevel': 0,
-		'reqd': 1,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'incoming_rate',
-		'fieldtype': u'Currency',
-		'label': u'Incoming Rate',
-		'oldfieldname': u'incoming_rate',
-		'oldfieldtype': u'Currency',
-		'permlevel': 0,
-		'reqd': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'amount',
-		'fieldtype': u'Currency',
-		'label': u'Amount',
-		'oldfieldname': u'amount',
-		'oldfieldtype': u'Currency',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'serial_no',
-		'fieldtype': u'Text',
-		'label': u'Serial No',
-		'no_copy': 1,
-		'oldfieldname': u'serial_no',
-		'oldfieldtype': u'Text',
-		'permlevel': 0,
-		'reqd': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'batch_no',
-		'fieldtype': u'Link',
-		'label': u'Batch No',
-		'oldfieldname': u'batch_no',
-		'oldfieldtype': u'Link',
-		'options': u'Batch',
-		'permlevel': 0,
-		'print_hide': 1,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'reqd_qty',
-		'fieldtype': u'Currency',
-		'in_filter': 0,
-		'label': u'Reqd Qty',
-		'oldfieldname': u'reqd_qty',
-		'oldfieldtype': u'Currency',
-		'permlevel': 3,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'actual_qty',
-		'fieldtype': u'Read Only',
-		'in_filter': 1,
-		'label': u'Actual Qty (at source)',
-		'no_copy': 1,
-		'oldfieldname': u'actual_qty',
-		'oldfieldtype': u'Read Only',
-		'permlevel': 1,
-		'print_hide': 1,
-		'reqd': 0,
-		'search_index': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'conversion_factor',
-		'fieldtype': u'Currency',
-		'label': u'Conversion Factor',
-		'oldfieldname': u'conversion_factor',
-		'oldfieldtype': u'Currency',
-		'permlevel': 1,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'transfer_qty',
-		'fieldtype': u'Currency',
-		'label': u'Stock Qty',
-		'oldfieldname': u'transfer_qty',
-		'oldfieldtype': u'Currency',
-		'permlevel': 1,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'stock_uom',
-		'fieldtype': u'Link',
-		'in_filter': 0,
-		'label': u'Stock UOM',
-		'oldfieldname': u'stock_uom',
-		'oldfieldtype': u'Link',
-		'options': u'UOM',
-		'permlevel': 1,
-		'reqd': 1,
-		'search_index': 0
-	},
-
-	# DocField
-	{
-		'description': u'BOM No. for a Finished Good Item',
-		'doctype': u'DocField',
-		'fieldname': u'bom_no',
-		'fieldtype': u'Link',
-		'label': u'BOM No.',
-		'options': u'BOM',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'fg_item',
-		'fieldtype': u'Check',
-		'in_filter': 1,
-		'label': u'FG Item',
-		'oldfieldname': u'fg_item',
-		'oldfieldtype': u'Check',
-		'permlevel': 0,
-		'print_hide': 1
-	}
+ {
+  "owner": "Administrator", 
+  "docstatus": 0, 
+  "creation": "2012-07-03 13:29:47", 
+  "modified_by": "Administrator", 
+  "modified": "2012-12-03 11:37:17"
+ }, 
+ {
+  "istable": 1, 
+  "autoname": "MTND/.######", 
+  "name": "__common__", 
+  "default_print_format": "Standard", 
+  "doctype": "DocType", 
+  "module": "Stock"
+ }, 
+ {
+  "name": "__common__", 
+  "parent": "Stock Entry Detail", 
+  "doctype": "DocField", 
+  "parenttype": "DocType", 
+  "parentfield": "fields"
+ }, 
+ {
+  "name": "Stock Entry Detail", 
+  "doctype": "DocType"
+ }, 
+ {
+  "oldfieldtype": "Link", 
+  "doctype": "DocField", 
+  "label": "Source Warehouse", 
+  "oldfieldname": "s_warehouse", 
+  "options": "Warehouse", 
+  "fieldname": "s_warehouse", 
+  "fieldtype": "Link", 
+  "permlevel": 0, 
+  "in_filter": 1
+ }, 
+ {
+  "oldfieldtype": "Link", 
+  "doctype": "DocField", 
+  "label": "Target Warehouse", 
+  "oldfieldname": "t_warehouse", 
+  "options": "Warehouse", 
+  "fieldname": "t_warehouse", 
+  "fieldtype": "Link", 
+  "permlevel": 0, 
+  "in_filter": 1
+ }, 
+ {
+  "oldfieldtype": "Link", 
+  "doctype": "DocField", 
+  "label": "Item Code", 
+  "oldfieldname": "item_code", 
+  "permlevel": 0, 
+  "trigger": "Client", 
+  "fieldname": "item_code", 
+  "fieldtype": "Link", 
+  "search_index": 1, 
+  "reqd": 1, 
+  "options": "Item", 
+  "in_filter": 1
+ }, 
+ {
+  "oldfieldtype": "Text", 
+  "doctype": "DocField", 
+  "label": "Description", 
+  "oldfieldname": "description", 
+  "width": "300px", 
+  "fieldname": "description", 
+  "fieldtype": "Text", 
+  "permlevel": 0
+ }, 
+ {
+  "oldfieldtype": "Currency", 
+  "doctype": "DocField", 
+  "label": "Qty", 
+  "oldfieldname": "qty", 
+  "trigger": "Client", 
+  "fieldname": "qty", 
+  "fieldtype": "Currency", 
+  "reqd": 1, 
+  "permlevel": 0
+ }, 
+ {
+  "oldfieldtype": "Link", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "UOM", 
+  "oldfieldname": "uom", 
+  "trigger": "Client", 
+  "fieldname": "uom", 
+  "fieldtype": "Link", 
+  "reqd": 1, 
+  "options": "UOM", 
+  "permlevel": 0
+ }, 
+ {
+  "oldfieldtype": "Currency", 
+  "doctype": "DocField", 
+  "label": "Valuation Rate", 
+  "oldfieldname": "incoming_rate", 
+  "fieldname": "incoming_rate", 
+  "fieldtype": "Currency", 
+  "reqd": 0, 
+  "permlevel": 0
+ }, 
+ {
+  "oldfieldtype": "Currency", 
+  "doctype": "DocField", 
+  "label": "Amount", 
+  "oldfieldname": "amount", 
+  "fieldname": "amount", 
+  "fieldtype": "Currency", 
+  "permlevel": 1
+ }, 
+ {
+  "no_copy": 1, 
+  "oldfieldtype": "Text", 
+  "doctype": "DocField", 
+  "label": "Serial No", 
+  "oldfieldname": "serial_no", 
+  "fieldname": "serial_no", 
+  "fieldtype": "Text", 
+  "reqd": 0, 
+  "permlevel": 0
+ }, 
+ {
+  "print_hide": 1, 
+  "oldfieldtype": "Link", 
+  "doctype": "DocField", 
+  "label": "Batch No", 
+  "oldfieldname": "batch_no", 
+  "trigger": "Client", 
+  "fieldname": "batch_no", 
+  "fieldtype": "Link", 
+  "options": "Batch", 
+  "permlevel": 0
+ }, 
+ {
+  "print_hide": 1, 
+  "oldfieldtype": "Currency", 
+  "doctype": "DocField", 
+  "label": "Reqd Qty", 
+  "oldfieldname": "reqd_qty", 
+  "fieldname": "reqd_qty", 
+  "fieldtype": "Currency", 
+  "permlevel": 3, 
+  "in_filter": 0
+ }, 
+ {
+  "print_hide": 1, 
+  "no_copy": 1, 
+  "oldfieldtype": "Read Only", 
+  "doctype": "DocField", 
+  "label": "Actual Qty (at source/target)", 
+  "oldfieldname": "actual_qty", 
+  "fieldname": "actual_qty", 
+  "fieldtype": "Read Only", 
+  "search_index": 1, 
+  "reqd": 0, 
+  "permlevel": 1, 
+  "in_filter": 1
+ }, 
+ {
+  "oldfieldtype": "Currency", 
+  "doctype": "DocField", 
+  "label": "Conversion Factor", 
+  "oldfieldname": "conversion_factor", 
+  "fieldname": "conversion_factor", 
+  "fieldtype": "Currency", 
+  "reqd": 1, 
+  "permlevel": 1
+ }, 
+ {
+  "oldfieldtype": "Currency", 
+  "doctype": "DocField", 
+  "label": "Stock Qty", 
+  "oldfieldname": "transfer_qty", 
+  "fieldname": "transfer_qty", 
+  "fieldtype": "Currency", 
+  "reqd": 1, 
+  "permlevel": 1
+ }, 
+ {
+  "oldfieldtype": "Link", 
+  "doctype": "DocField", 
+  "label": "Stock UOM", 
+  "oldfieldname": "stock_uom", 
+  "options": "UOM", 
+  "fieldname": "stock_uom", 
+  "fieldtype": "Link", 
+  "search_index": 0, 
+  "reqd": 1, 
+  "permlevel": 1, 
+  "in_filter": 0
+ }, 
+ {
+  "description": "BOM No. for a Finished Good Item", 
+  "doctype": "DocField", 
+  "label": "BOM No", 
+  "options": "BOM", 
+  "fieldname": "bom_no", 
+  "fieldtype": "Link", 
+  "permlevel": 0
+ }, 
+ {
+  "print_hide": 1, 
+  "oldfieldtype": "Check", 
+  "doctype": "DocField", 
+  "label": "FG Item", 
+  "oldfieldname": "fg_item", 
+  "fieldname": "fg_item", 
+  "fieldtype": "Check", 
+  "permlevel": 0, 
+  "in_filter": 1
+ }
 ]
\ No newline at end of file
diff --git a/stock/doctype/stock_ledger_entry/stock_ledger_entry.py b/stock/doctype/stock_ledger_entry/stock_ledger_entry.py
index facd052..e6c4dee 100644
--- a/stock/doctype/stock_ledger_entry/stock_ledger_entry.py
+++ b/stock/doctype/stock_ledger_entry/stock_ledger_entry.py
@@ -37,15 +37,12 @@
 
 			if (batch_bal + self.doc.actual_qty) < 0:
 				msgprint("""Not enough quantity (requested: %(actual_qty)s, current: %(batch_bal)s in Batch 
-		<b>%(batch_no)s</b> for Item <b>%(item_code)s</b> at Warehouse<b>%(warehouse)s</b> 
+		<b>%(batch_no)s</b> for Item <b>%(item_code)s</b> at Warehouse <b>%(warehouse)s</b> 
 		as on %(posting_date)s %(posting_time)s""" % self.doc.fields, raise_exception = 1)
 
 			self.doc.fields.pop('batch_bal')
 			 
 
-	# mandatory
-	# ---------
-	
 	def validate_mandatory(self):		
 		mandatory = ['warehouse','transaction_date','posting_date','voucher_type','voucher_no','actual_qty','company','fiscal_year']
 		for k in mandatory:
@@ -55,9 +52,6 @@
 				if not sql("select name from tabWarehouse where name = '%s'" % self.doc.fields.get(k)):
 					msgprint("Warehouse: '%s' does not exist in the system. Please check." % self.doc.fields.get(k), raise_exception = 1)
 
-	# validate for item
-	# -----------------
-	
 	def validate_item(self):
 		item_det = sql("select name, has_batch_no, docstatus from tabItem where name = '%s'" % self.doc.item_code)
 
diff --git a/support/doctype/customer_issue/customer_issue.txt b/support/doctype/customer_issue/customer_issue.txt
index 675f75e..cc03fff 100644
--- a/support/doctype/customer_issue/customer_issue.txt
+++ b/support/doctype/customer_issue/customer_issue.txt
@@ -4,7 +4,7 @@
   "docstatus": 0, 
   "creation": "2012-11-28 11:26:23", 
   "modified_by": "Administrator", 
-  "modified": "2012-11-26 11:19:39"
+  "modified": "2012-12-03 17:10:41"
  }, 
  {
   "is_submittable": 1, 
diff --git a/support/doctype/newsletter/newsletter.txt b/support/doctype/newsletter/newsletter.txt
index 738084f..b32b875 100644
--- a/support/doctype/newsletter/newsletter.txt
+++ b/support/doctype/newsletter/newsletter.txt
@@ -4,7 +4,7 @@
   "docstatus": 0, 
   "creation": "2012-11-28 11:26:23", 
   "modified_by": "Administrator", 
-  "modified": "2012-11-26 11:18:43"
+  "modified": "2012-12-03 17:10:41"
  }, 
  {
   "autoname": "naming_series:", 
