Merge branch 'master' of github.com:webnotes/erpnext
diff --git a/erpnext/accounts/doctype/payable_voucher/payable_voucher.js b/erpnext/accounts/doctype/payable_voucher/payable_voucher.js
index 99bd24c..f8ef91e 100644
--- a/erpnext/accounts/doctype/payable_voucher/payable_voucher.js
+++ b/erpnext/accounts/doctype/payable_voucher/payable_voucher.js
@@ -162,7 +162,7 @@
 
 // Recalculate Button
 // -------------------
-cur_frm.cscript['Recalculate'] = function(doc, dt, dn) {
+cur_frm.cscript['Recalculate'] = function(doc, cdt, cdn) {
 	cur_frm.cscript['Calculate Tax'](doc,cdt,cdn);
 	calc_total_advance(doc,cdt,cdn);
 }
diff --git a/erpnext/patches/jan_mar_2012/update_se_fld_options.py b/erpnext/patches/jan_mar_2012/update_se_fld_options.py
new file mode 100644
index 0000000..fab0b19
--- /dev/null
+++ b/erpnext/patches/jan_mar_2012/update_se_fld_options.py
@@ -0,0 +1,6 @@
+def execute():
+	import webnotes
+	webnotes.conn.sql("update `tabDocField` set options = 'Bill Of Materials' where fieldname = 'bom_no' and parent = 'Stock Entry'")
+
+	from webnotes.modules.module_manager import reload_doc
+	reload_doc('stock', 'doctype', 'stock_entry')
diff --git a/erpnext/patches/patch_list.py b/erpnext/patches/patch_list.py
index db1daf1..3bf4b6a 100644
--- a/erpnext/patches/patch_list.py
+++ b/erpnext/patches/patch_list.py
@@ -202,5 +202,10 @@
 		'patch_file': 'update_purpose_se',
 		'description': 'Purpose SE: Others to Other' 
 	},
+	{
+		'patch_module': 'patches.jan_mar_2012',
+		'patch_file': 'update_se_fld_options',
+		'description': 'Purpose SE: Others to Other' 
+	},
 
 ]
diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.js b/erpnext/stock/doctype/stock_entry/stock_entry.js
index 99eab91..3593fa0 100644
--- a/erpnext/stock/doctype/stock_entry/stock_entry.js
+++ b/erpnext/stock/doctype/stock_entry/stock_entry.js
@@ -25,14 +25,14 @@
   lst = ['supplier','supplier_name','supplier_address','customer','customer_name','customer_address'];
   hide_field(lst);  
 
-  if (doc.purpose == 'Production Order' || doc.purpose == 'Others'){
+  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']);
     
 	doc.from_warehouse = '';
     doc.to_warehosue = '';
-    if (doc.process == 'Backflush' || doc.purpose == 'Others'){
+    if (doc.process == 'Backflush' || doc.purpose == 'Other'){
       unhide_field('fg_completed_qty');
     }
     else{
diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.py b/erpnext/stock/doctype/stock_entry/stock_entry.py
index c50a31b..96642d0 100644
--- a/erpnext/stock/doctype/stock_entry/stock_entry.py
+++ b/erpnext/stock/doctype/stock_entry/stock_entry.py
@@ -231,7 +231,7 @@
 			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)
 			consider_sa_items_as_rm = pro_obj.doc.consider_sa_items
-		elif self.doc.purpose == 'Others':
+		elif self.doc.purpose == 'Other':
 			self.validate_bom_no()
 			bom_no = self.doc.bom_no
 			fg_qty = self.doc.fg_completed_qty
@@ -249,7 +249,7 @@
 			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]}
-		elif self.doc.purpose == 'Others' and self.doc.bom_no:
+		elif self.doc.purpose == 'Other' and self.doc.bom_no:
 			sw, tw = '', ''
 			item = sql("select item, description, uom from `tabBill Of Materials` 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']]}
@@ -427,7 +427,7 @@
 					if cstr(d.s_warehouse) != cstr(pro_obj.doc.wip_warehouse):
 						msgprint("As Item %s is Raw Material. Source Warehouse should be same as WIP Warehouse %s in Production Order %s, at Row No %s. " % ( cstr(d.item_code), cstr(pro_obj.doc.wip_warehouse), cstr(pro_obj.doc.name), cstr(d.idx)))
 						raise Exception
-			if d.fg_item and (self.doc.purpose == 'Others' or self.doc.process == 'Backflush'):
+			if d.fg_item and (self.doc.purpose == 'Other' or self.doc.process == 'Backflush'):
 				fg_qty = flt(fg_qty) + flt(d.transfer_qty)
 
 			d.save()
diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.txt b/erpnext/stock/doctype/stock_entry/stock_entry.txt
index 4f524aa..9792fc9 100644
--- a/erpnext/stock/doctype/stock_entry/stock_entry.txt
+++ b/erpnext/stock/doctype/stock_entry/stock_entry.txt
@@ -451,19 +451,19 @@
 
 	# DocField
 	{
-		'depends_on': u"eval:doc.purpose == 'Others'",
+		'depends_on': u"eval:doc.purpose == 'Other'",
 		'doctype': u'DocField',
 		'fieldname': u'bom_no',
 		'fieldtype': u'Link',
 		'label': u'BOM No',
-		'options': u'Bill of Materials',
+		'options': u'Bill Of Materials',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
 		'colour': u'White:FFF',
-		'depends_on': u"eval:doc.purpose == 'Others'",
+		'depends_on': u"eval:doc.purpose == 'Other'",
 		'description': u'Select "Yes" if stock is maintained and tracked for sub-assembly items. Select "No" if you want child items of sub-assembly for material transfer.',
 		'doctype': u'DocField',
 		'fieldname': u'consider_sa_items_as_raw_materials',
diff --git a/erpnext/utilities/transaction_base.py b/erpnext/utilities/transaction_base.py
index ee23c75..032b52f 100644
--- a/erpnext/utilities/transaction_base.py
+++ b/erpnext/utilities/transaction_base.py
@@ -81,12 +81,12 @@
 			cond = 'name="%s"' % address_name	
 
 		if is_shipping_address:
-			details = webnotes.conn.sql("select name, address_line1, address_line2, city, country, pincode, state, phone from `tabAddress` where %s and docstatus != 2 order by is_shipping_address desc limit 1" % cond, as_dict = 1)
+			details = webnotes.conn.sql("select name, address_line1, address_line2, city, country, pincode, state, phone, fax from `tabAddress` where %s and docstatus != 2 order by is_shipping_address desc limit 1" % cond, as_dict = 1)
 		else:
-			details = webnotes.conn.sql("select name, address_line1, address_line2, city, country, pincode, state, phone from `tabAddress` where %s and docstatus != 2 order by is_primary_address desc limit 1" % cond, as_dict = 1)
+			details = webnotes.conn.sql("select name, address_line1, address_line2, city, country, pincode, state, phone, fax from `tabAddress` where %s and docstatus != 2 order by is_primary_address desc limit 1" % cond, as_dict = 1)
 		
 		extract = lambda x: details and details[0] and details[0].get(x,'') or ''
-		address_fields = [('','address_line1'),('\n','address_line2'),('\n','city'),(' ','pincode'),('\n','state'),('\n','country'),('\nPhone: ','phone')]
+		address_fields = [('','address_line1'),('\n','address_line2'),('\n','city'),(' ','pincode'),('\n','state'),('\n','country'),('\nPhone: ','phone'),('\nFax: ', 'fax')]
 		address_display = ''.join([a[0]+extract(a[1]) for a in address_fields if extract(a[1])])
 		if address_display.startswith('\n'): address_display = address_display[1:]