From 6f1a5ec209999eb363b7d432d11d6044642af7da Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Wed, 20 Feb 2013 16:25:05 +0530 Subject: [PATCH] Disable rounded total feature --- .../doctype/sales_invoice/sales_invoice.js | 1 + controllers/selling_controller.py | 12 +++++++++--- selling/doctype/quotation/quotation.js | 1 + selling/doctype/sales_common/sales_common.js | 18 ++++++++++++++---- selling/doctype/sales_order/sales_order.js | 2 ++ .../doctype/global_defaults/global_defaults.py | 3 ++- .../global_defaults/global_defaults.txt | 18 +++++++++++------- stock/doctype/delivery_note/delivery_note.js | 1 + 8 files changed, 41 insertions(+), 15 deletions(-) diff --git a/accounts/doctype/sales_invoice/sales_invoice.js b/accounts/doctype/sales_invoice/sales_invoice.js index 8df91a5cb44..a24e256ec9c 100644 --- a/accounts/doctype/sales_invoice/sales_invoice.js +++ b/accounts/doctype/sales_invoice/sales_invoice.js @@ -29,6 +29,7 @@ wn.require('app/utilities/doctype/sms_control/sms_control.js'); // 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 5ff5637baf7..94a56e33007 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 @@ class SellingController(AccountsController): 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 a4d8ee6b0e3..cf7b515d08a 100644 --- a/selling/doctype/quotation/quotation.js +++ b/selling/doctype/quotation/quotation.js @@ -28,6 +28,7 @@ wn.require('app/utilities/doctype/sms_control/sms_control.js'); // 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 6a618c9a1ad..867a711fe47 100644 --- a/selling/doctype/sales_common/sales_common.js +++ b/selling/doctype/sales_common/sales_common.js @@ -182,27 +182,37 @@ cur_frm.cscript.hide_price_list_currency = function(doc, cdt, cdn, callback1) { 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 55854b5b92a..9b1df88f87e 100644 --- a/selling/doctype/sales_order/sales_order.js +++ b/selling/doctype/sales_order/sales_order.js @@ -28,6 +28,8 @@ wn.require('app/utilities/doctype/sms_control/sms_control.js'); 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 1b93e7e2683..69961e88a77 100644 --- a/setup/doctype/global_defaults/global_defaults.py +++ b/setup/doctype/global_defaults/global_defaults.py @@ -40,7 +40,8 @@ keydict = { '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 3344a87f46c..68f6459170f 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__", @@ -332,6 +334,13 @@ "label": "Delivery Note Required", "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", @@ -408,11 +417,6 @@ "fieldtype": "Data", "label": "SMS Sender Name" }, - { - "amend": 0, - "cancel": 0, - "doctype": "DocPerm" - }, { "doctype": "DocPerm" } diff --git a/stock/doctype/delivery_note/delivery_note.js b/stock/doctype/delivery_note/delivery_note.js index 09a7de20219..a8af1073fe7 100644 --- a/stock/doctype/delivery_note/delivery_note.js +++ b/stock/doctype/delivery_note/delivery_note.js @@ -27,6 +27,7 @@ wn.require('app/utilities/doctype/sms_control/sms_control.js'); // 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()});