Odoo Help

Welcome!

This community 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.

0

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

By
Uppili Arivukkannu
on 8/16/16, 3:51 AM 340 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?

Thanks.

0

Ahmed M.Elmubarak

--Ahmed M.Elmubarak--
2988
| 5 3 5
Sudan
--Ahmed M.Elmubarak--


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

Hi,

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 ...

Update:

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
0
ayman mohammed adam
On 8/16/16, 8:33 AM
dear Uppili Arivukkannu
I think you need to round the amount lke this 
round(your_amount,Precision)
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 community is for professionals and enthusiasts of our products and services. Read Guidelines

Question tools

1 follower(s)

Stats

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