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/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()});