From b9c10b045cf1406a4f65d9060ce4c52295f8ff18 Mon Sep 17 00:00:00 2001 From: "Dhara (OpenERP)" <> Date: Mon, 12 Sep 2011 21:38:09 -0700 Subject: [PATCH] [IMP] currency position for report bzr revid: dhara_openerp-20110913043809-2gq0chqs4m0yq1nq --- openerp/addons/base/res/res_currency.py | 7 ++++--- openerp/addons/base/res/res_currency_view.xml | 1 + openerp/report/report_sxw.py | 6 ++++-- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/openerp/addons/base/res/res_currency.py b/openerp/addons/base/res/res_currency.py index 3b7e427a923..271c7dd68c0 100644 --- a/openerp/addons/base/res/res_currency.py +++ b/openerp/addons/base/res/res_currency.py @@ -62,12 +62,13 @@ class res_currency(osv.osv): 'active': fields.boolean('Active'), 'company_id':fields.many2one('res.company', 'Company'), 'date': fields.date('Date'), - 'base': fields.boolean('Base') - + 'base': fields.boolean('Base'), + 'position_on_report': fields.selection([('after','After Amount'),('before','Before Amount')], 'Symbol position in reports', help="Determines where the currency symbol is printed within reports, after or before the amount.") } _defaults = { 'active': lambda *a: 1, - 'company_id': lambda self,cr,uid,c: self.pool.get('res.company')._company_default_get(cr, uid, 'res.currency', context=c) + 'company_id': lambda self,cr,uid,c: self.pool.get('res.company')._company_default_get(cr, uid, 'res.currency', context=c), + 'position_on_report' : 'after', } _order = "name" diff --git a/openerp/addons/base/res/res_currency_view.xml b/openerp/addons/base/res/res_currency_view.xml index 8d747c882b1..efd9f8043bb 100644 --- a/openerp/addons/base/res/res_currency_view.xml +++ b/openerp/addons/base/res/res_currency_view.xml @@ -42,6 +42,7 @@ + diff --git a/openerp/report/report_sxw.py b/openerp/report/report_sxw.py index 210a54760c4..81d83026543 100644 --- a/openerp/report/report_sxw.py +++ b/openerp/report/report_sxw.py @@ -264,7 +264,7 @@ class rml_parse(object): d = obj._field.digits[1] or DEFAULT_DIGITS return d - def formatLang(self, value, digits=None, date=False, date_time=False, grouping=True, monetary=False, dp=False): + def formatLang(self, value, digits=None, date=False, date_time=False, grouping=True, monetary=False, dp=False, currency_obj=False): """ Assuming 'Account' decimal.precision=3: formatLang(value) -> digits=2 (default) @@ -302,7 +302,9 @@ class rml_parse(object): date = datetime(*value.timetuple()[:6]) return date.strftime(date_format) - return self.lang_dict['lang_obj'].format('%.' + str(digits) + 'f', value, grouping=grouping, monetary=monetary) + res = self.lang_dict['lang_obj'].format('%.' + str(digits) + 'f', value, grouping=grouping, monetary=monetary) + res = currency_obj and currency_obj.position_on_report and (currency_obj.position_on_report == 'after' and '%s %s'%(res,currency_obj.symbol) or '%s %s'%(currency_obj.symbol, res) ) or res + return res def repeatIn(self, lst, name,nodes_parent=False): ret_lst = []