Возможно ли в openerp v7 вывести сумму денег с добавленным перед ней символом евро?Конкатенатная строка и поплавок
Если я попробую, например, '€ ' + 0.0
, то он говорит, что я не могу добавить float в строку.
Возможно ли в openerp v7 вывести сумму денег с добавленным перед ней символом евро?Конкатенатная строка и поплавок
Если я попробую, например, '€ ' + 0.0
, то он говорит, что я не могу добавить float в строку.
Вы можете сделать это легко с money виджет. Мы используем это целую вечность.
В питона файле:
class your_class(orm.Model):
_inherit = 'your.class'
def _get_your_currency_id(self, cr, uid, ids, name, args, context=None):
res = {}
for voucher in self.browse(cr, uid, ids, context=context):
your_currency_id = self.pool.get('res.currency').search(cr, uid, [('name', '=', 'EUR')], context=context)
if your_currency_id:
res[voucher.id] = your_currency_id[0]
return res
_columns = {
'your_amount_field' :fields.float('Your Amount Field'),
'your_currency_id': fields.function(_get_your_currency_id, type='many2one', relation='res.currency', string='Currency', readonly=True, required=True),
}
В XML файле:
<field name="your_currency_id" invisible="1" />
<field name="your_amount_field" class="oe_inline" string="Test Amount" widget="monetary" options="{'currency_field': 'your_currency_id'}" />
Технически, что он делает это, у нас уже есть куча всех возможно доступных валютах стран в таблице называется res_currency ,
Мы только ищем евро и даем знать денежный виджет, чтобы использовать конкретную валюту евро, используя словарь опций. Остальное позаботится сам виджет.
Вы просто только добавить виджет в поле суммы, в которой вы хотите символ валюты,
<field name="your_field" widget="monetary" options="{'currency_field': 'currency_field_of_you_model'}"
Здесь в опции, которые необходимо предоставить поле валюты доступные в вашей модели, поэтому он будет отображать символ валюты который принадлежит, в частности, к этой записи, или вы можете поместить статический идентификатор валюты там, тогда он будет показывать общий символ в каждом случае.