Merge branch 'master' of github.com:webnotes/erpnext
diff --git a/accounts/doctype/sales_invoice/sales_invoice.js b/accounts/doctype/sales_invoice/sales_invoice.js
index 8df91a5..a24e256 100644
--- a/accounts/doctype/sales_invoice/sales_invoice.js
+++ b/accounts/doctype/sales_invoice/sales_invoice.js
@@ -29,6 +29,7 @@
 // On Load
 // -------
 cur_frm.cscript.onload = function(doc,dt,dn) {
+	cur_frm.cscript.manage_rounded_total();
 	if(!doc.customer && doc.debit_to) wn.meta.get_docfield(dt, 'debit_to', dn).print_hide = 0;
 	if (doc.__islocal) {
 		if(!doc.due_date) set_multiple(dt,dn,{due_date:get_today()});
diff --git a/controllers/selling_controller.py b/controllers/selling_controller.py
index 5ff5637..94a56e3 100644
--- a/controllers/selling_controller.py
+++ b/controllers/selling_controller.py
@@ -16,6 +16,7 @@
 
 from __future__ import unicode_literals
 import webnotes
+from webnotes.utils import cint
 from setup.utils import get_company_currency
 
 from controllers.accounts_controller import AccountsController
@@ -27,8 +28,13 @@
 	def set_total_in_words(self):
 		from webnotes.utils import money_in_words
 		company_currency = get_company_currency(self.doc.company)
+		
+		disable_rounded_total = cint(webnotes.conn.get_value("Global Defaults", None, 
+			"disable_rounded_total"))
+			
 		if self.meta.get_field("in_words"):
-			self.doc.in_words = money_in_words(self.doc.rounded_total, company_currency)
+			self.doc.in_words = money_in_words(disable_rounded_total and 
+				self.doc.grand_total or self.doc.rounded_total, company_currency)
 		if self.meta.get_field("in_words_export"):
-			self.doc.in_words_export = money_in_words(self.doc.rounded_total_export,
-		 		self.doc.currency)
\ No newline at end of file
+			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)
\ No newline at end of file
diff --git a/home/page/latest_updates/latest_updates.js b/home/page/latest_updates/latest_updates.js
index 42408de..dbb9f21 100644
--- a/home/page/latest_updates/latest_updates.js
+++ b/home/page/latest_updates/latest_updates.js
@@ -1,4 +1,8 @@
 erpnext.updates = [
+	["20th February, 2013", [
+		"Disable Rounded Total: If disable in 'Global Defaults', Rounding related fields \
+			in sales cycle transactions and in corresponding print formats will not be visible"
+	]],
 	["15th February, 2013", [
 		"Calendar: Added new FullCalendar, and Calendar Views",
 		"Leave Application: Added email notifications on Leave Application",
@@ -7,29 +11,66 @@
 		"Employee: If Employee is linked to a Profile, copy Full Name, Date of Birth, \
 			Image and Gender to Profile",
 		"Leave Application: Select Leave Approver by their Full Name",
+		"Fixes in C-Form",
 	]],
+	["12th February, 2013", ["Fixes in Payment Reconciliation "]],
 	["6th February, 2013", [
 		"Bookmarks: Add bookmarks via toolbar by clicking on the <i class='icon-star'></i> sign.",
+		"Fixes in Voucher Import Tool",
 	]],
 	["5th February, 2013", [
+		"Block Negative Account Balance: If enabled, system will not allow to post entry \
+			if balance goes into negative",
 		"Leave Block List: Block users from taking leave on certain days.",
+		"Added project column in 'To Be Delivered/Billed' report ",
+	]],
+	["4th February, 2013", [
+		"Make gl entry only if amount is there",
+		"Fixes in Stock Ledger Report"
 	]],
 	["2nd February, 2013", [
 		"Warehouse: Added table Warehouse User to restrict Warehouse Entry per user.",
+		"Fixes in Gl Entry for Purchase Invoice",
+	]],
+	["1st February, 2013", [
+		"Removed sales order pending items report",
+		"Fixes in Salary Register Report, Sales Invoice and Budget Control",
+	]],
+	["31st January, 2013", [
+		"New Report:  Purchase order items pending to be received",
+		"GL Mapper deprecated",
 	]],
 	["28st January, 2013", [
 		"List Views are now configurable: To set list views, check 'In List View' in Setup > Customize Form View in the fields table.",
+		"Fixes in Financial Statements and Features Setup",
 	]],
-	["24st January, 2013", [
+	["25th January, 2013", [
+		"Fixes for currency in all Modern/Classic/Spartan print formats",
+		"Stock Ageing Report: Added show zero values option"
+	]],
+	["24th January, 2013", [
+		"Sales Analytics based on Sales Order/Delivery Note/Sales Invoice",
 		"Integrated Languages in Profile and via browser settings. To set your language, click on your name in the toolbar then 'My Settings...'",
+		"Fixes in Recurring Invoice",
+		"Fixes for Territory link to Sales Browser ",
+		"Check item/item group with same name while creating item group/item",
+	]],
+	["22nd January, 2013", [
+		"Valuation Rate mandatory for opening Stock Reconciliation",
+		"Show analytics value based on valuation method defined in item master",
 	]],
 	["21st January, 2013", [
 		"Number Formatting: Added Number Format to Global Defaults & Currency",
 	]],
+	["20th January, 2013", [
+		"In payment matching tool only show outstanding invoices"
+	]],
 	["18th January, 2013", [
 		"Buying: Added Price List to purchase cycle",
+		"C-Form now submittable",
 	]],
 	["16th January, 2013", [
+		"Incoming rate for sales return as per delivery note outgoing rate",
 		"Job Applicant: Track Job Applicants and extract them from a mailbox like 'jobs@example.com'. See <a href='#Form/Jobs Email Settings'>Jobs Email Settings</a>.",
 		"Extract leads: Extract Leads from a mailbox like 'sales@example.com'. See <a href='#Form/Sales Email Settings'>Sales Email Settings</a>.",
 	]],
diff --git a/hr/doctype/leave_allocation/leave_allocation.txt b/hr/doctype/leave_allocation/leave_allocation.txt
index 027a447..9027c84 100644
--- a/hr/doctype/leave_allocation/leave_allocation.txt
+++ b/hr/doctype/leave_allocation/leave_allocation.txt
@@ -1,12 +1,13 @@
 [
  {
-  "creation": "2013-01-10 16:34:14", 
+  "creation": "2013-02-20 19:10:38", 
   "docstatus": 0, 
-  "modified": "2013-01-22 14:56:04", 
+  "modified": "2013-02-20 19:11:03", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
  {
+  "allow_import": 1, 
   "autoname": "LAL/.#####", 
   "doctype": "DocType", 
   "is_submittable": 1, 
diff --git a/selling/doctype/quotation/quotation.js b/selling/doctype/quotation/quotation.js
index a4d8ee6..cf7b515 100644
--- a/selling/doctype/quotation/quotation.js
+++ b/selling/doctype/quotation/quotation.js
@@ -28,6 +28,7 @@
 // ONLOAD
 // ===================================================================================
 cur_frm.cscript.onload = function(doc, cdt, cdn) {
+	cur_frm.cscript.manage_rounded_total();
 	if(!doc.quotation_to) hide_field(['customer','customer_address','contact_person','customer_name','lead', 'lead_name', 'address_display', 'contact_display', 'contact_mobile', 'contact_email', 'territory', 'customer_group']);
 	if(!doc.price_list_name) set_multiple(cdt,cdn,{price_list_name:sys_defaults.price_list_name});
 	if(!doc.status) set_multiple(cdt,cdn,{status:'Draft'});
diff --git a/selling/doctype/sales_common/sales_common.js b/selling/doctype/sales_common/sales_common.js
index 6a618c9..867a711 100644
--- a/selling/doctype/sales_common/sales_common.js
+++ b/selling/doctype/sales_common/sales_common.js
@@ -182,27 +182,37 @@
 						if (doc.plc_conversion_rate != 1) 
 							set_multiple(cdt, cdn, {plc_conversion_rate:1})
 						hide_field(['price_list_currency', 'plc_conversion_rate']);
-					}					
+					}
 				}
 
 				if (r.message[1] == doc.currency) {
 					if (doc.conversion_rate != 1) 
 						set_multiple(cdt, cdn, {conversion_rate:1});
 					hide_field(['conversion_rate', 'grand_total_export', 'in_words_export', 'rounded_total_export']);
-				} else unhide_field(['conversion_rate', 'grand_total_export', 'in_words_export', 'rounded_total_export']);
-
+				} else {
+					unhide_field(['conversion_rate', 'grand_total_export', 'in_words_export']);
+					if(!cint(sys_defaults.disable_rounded_total))
+						unhide_field("rounded_total_export");
+				}
 				if (r.message[1] == doc.price_list_currency) {
 					if (doc.plc_conversion_rate != 1) 
 						set_multiple(cdt, cdn, {plc_conversion_rate:1});
 					hide_field('plc_conversion_rate');
 				} else unhide_field('plc_conversion_rate');
-				
 				cur_frm.cscript.dynamic_label(doc, cdt, cdn, r.message[1], callback1);	
 			}
 		})
 	}
 }
 
+cur_frm.cscript.manage_rounded_total = function() {
+	if(cint(sys_defaults.disable_rounded_total)) {
+		cur_frm.set_df_property("rounded_total", "print_hide", 1);
+		cur_frm.set_df_property("rounded_total_export", "print_hide", 1);
+		hide_field(["rounded_total", "rounded_total_export"]);
+	}
+}
+
 // TRIGGERS FOR CALCULATIONS
 // =====================================================================================================
 
diff --git a/selling/doctype/sales_order/sales_order.js b/selling/doctype/sales_order/sales_order.js
index 55854b5..9b1df88 100644
--- a/selling/doctype/sales_order/sales_order.js
+++ b/selling/doctype/sales_order/sales_order.js
@@ -28,6 +28,8 @@
 
 
 cur_frm.cscript.onload = function(doc, cdt, cdn) {
+	cur_frm.cscript.manage_rounded_total();
+	
 	if(!doc.status) set_multiple(cdt,cdn,{status:'Draft'});
 	if(!doc.transaction_date) set_multiple(cdt,cdn,{transaction_date:get_today()});
 	if(!doc.price_list_currency) set_multiple(cdt, cdn, {price_list_currency: doc.currency, plc_conversion_rate: 1});
diff --git a/setup/doctype/global_defaults/global_defaults.py b/setup/doctype/global_defaults/global_defaults.py
index 1b93e7e..69961e8 100644
--- a/setup/doctype/global_defaults/global_defaults.py
+++ b/setup/doctype/global_defaults/global_defaults.py
@@ -40,7 +40,8 @@
 	'account_url':'account_url',
 	'allow_negative_stock' : 'allow_negative_stock',
 	'maintain_same_rate' : 'maintain_same_rate',
-	'session_expiry': 'session_expiry'
+	'session_expiry': 'session_expiry',
+	'disable_rounded_total': 'disable_rounded_total',
 }
 
 class DocType:
diff --git a/setup/doctype/global_defaults/global_defaults.txt b/setup/doctype/global_defaults/global_defaults.txt
index 3344a87..68f6459 100644
--- a/setup/doctype/global_defaults/global_defaults.txt
+++ b/setup/doctype/global_defaults/global_defaults.txt
@@ -1,8 +1,8 @@
 [
  {
-  "creation": "2013-01-29 19:25:56", 
+  "creation": "2013-02-19 12:28:27", 
   "docstatus": 0, 
-  "modified": "2013-02-13 09:56:28", 
+  "modified": "2013-02-20 14:08:59", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -27,6 +27,8 @@
   "permlevel": 0
  }, 
  {
+  "amend": 0, 
+  "cancel": 0, 
   "create": 1, 
   "doctype": "DocPerm", 
   "name": "__common__", 
@@ -333,6 +335,13 @@
   "options": "No\nYes"
  }, 
  {
+  "description": "If disable, 'Rounded Total' field will not be visible in any transaction", 
+  "doctype": "DocField", 
+  "fieldname": "disable_rounded_total", 
+  "fieldtype": "Check", 
+  "label": "Disable Rounded Total"
+ }, 
+ {
   "doctype": "DocField", 
   "fieldname": "buying", 
   "fieldtype": "Section Break", 
@@ -409,11 +418,6 @@
   "label": "SMS Sender Name"
  }, 
  {
-  "amend": 0, 
-  "cancel": 0, 
-  "doctype": "DocPerm"
- }, 
- {
   "doctype": "DocPerm"
  }
 ]
\ No newline at end of file
diff --git a/stock/doctype/delivery_note/delivery_note.js b/stock/doctype/delivery_note/delivery_note.js
index 09a7de2..a8af107 100644
--- a/stock/doctype/delivery_note/delivery_note.js
+++ b/stock/doctype/delivery_note/delivery_note.js
@@ -27,6 +27,7 @@
 // ONLOAD
 // ================================================================================================
 cur_frm.cscript.onload = function(doc, dt, dn) {
+	cur_frm.cscript.manage_rounded_total();
 	if(!doc.status) set_multiple(dt,dn,{status:'Draft'});
 	if(!doc.transaction_date) set_multiple(dt,dn,{transaction_date:get_today()});
 	if(!doc.posting_date) set_multiple(dt,dn,{posting_date:get_today()});
diff --git a/stock/utils.py b/stock/utils.py
index 62c2a17..3ab26ce 100644
--- a/stock/utils.py
+++ b/stock/utils.py
@@ -30,7 +30,7 @@
 			"in Item master") % {
 				"item_code": item_code,
 				"date": formatdate(end_of_life),
-				"end_of_life_label": webnotes.get_label("Item", "end_of_life")
+				"end_of_life_label": webnotes.get_doctype("Item").get_label("end_of_life")
 			}
 		
 		_msgprint(msg, verbose)