Odoo Help


How to change my total field to INR currency in words?

Uppili Arivukkannu
on 8/16/16, 3:51 AM 427 views

I have a field "n_total" which stores the total value.

I want to convert this float value into words as an INR (Indian Rupee) in another field "w_amount".

So I write a function to get the total amount in words.

My function is:

def _amount_in_words(self, cr, uid, ids, field_name, arg, context=None):

cur_obj = self.pool.get('res.currency')

res = {}

for words in self.browse(cr, uid, ids, context=context):

res[words.id] = amount_to_text_en.amount_to_text(float(words.n_total),cur_obj)

return res

The  field is

'w_amount':fields.function(_amount_in_words, string='In Words', type="char", store=True, help="The amount in words"),

The field show in words but it is in Euro.

For example the words are shown like this

Five Thousand, One Hundred Ninety-Two euro and Thirty-One Cents

I want to show this is in INR

How can I achieve this?

My second doubt is I want to add the text Only at the end of the the words. How can I do this?



Ahmed M.Elmubarak

--Ahmed M.Elmubarak--
--Ahmed M.Elmubarak--

Ahmed M.Elmubarak
On 8/16/16, 5:32 AM


For the first part: as here you can pass the currency string so you can do something like:

res[words.id] = amount_to_text_en.amount_to_text(float(words.n_total),currency="INT")

this will override the default 'euro' string.

For the second part, I didn't got it ...


if you don't like the ' and Zero Cent' part and you always do rounding off, you can simply replace it as a quick workaround as:

res[words.id] = amount_to_text_en.amount_to_text(float(words.n_total),currency="INT").replace(' and Zero Cent', '')

Hope this could helps ....

Thanks for your reply but it gives output as

"Five Thousand, One Hundred Ninety-Two INR and Zero Cent"

I have round off the field value and I does not need the decimal value which is shows in cent.

Uppili Arivukkannu
on 8/16/16, 5:46 AM

I've updated !

Ahmed M.Elmubarak
on 8/16/16, 8:47 AM
ayman mohammed adam
On 8/16/16, 8:33 AM
dear Uppili Arivukkannu
I think you need to round the amount lke this 
amount 5.25 Precision  round(5.25, 1)  result is 5.3

Your Answer

Please try to give a substantial answer. If you wanted to comment on the question or answer, just use the commenting tool. Please remember that you can always revise your answers - no need to answer the same question twice. Also, please don't forget to vote - it really helps to select the best questions and answers!

About This Community

This platform is for beginners and experts willing to share their Odoo knowledge. It's not a forum to discuss ideas, but a knowledge base of questions and their answers.


Odoo Training Center

Access to our E-learning platform and experience all Odoo Apps through learning videos, exercises and Quizz.

Test it now

Question tools

1 follower(s)


Asked: 8/16/16, 3:51 AM
Seen: 427 times
Last updated: 8/16/16, 8:33 AM