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 = []