Skip to Content
Menu
This question has been flagged
2 Replies
3408 Views

hi

how to multiplicate  field.float * field.many2many ???

thanks

Avatar
Discard

You need to explain a whole lot more, because this question makes no sense now. Give some examples and provide code if you already made some. Tell us what you tried already.

Author

def add_a_b(self, cr, uid, ids, name, arg, context=None): res = {} for record in self.browse(cr, uid, ids,context): res[record.id] = record.price_subtotal + record.tax_id return res _columns = { 'p_tax' : fields.function(add_a_b,string='Prix TTC'), }

Best Answer

you need to understand concept of fields and what that field contains:
- field float contains a float number, usable imediatley
- many2many contains ids (from relation table) , you need to get the desired value of other model first...
so you could for example:

for m2m in many2many_field:
    res[m2m.id] = field.float * m2m.some_value_field
    # NOTE: some_value_field  need to be of type float or integer , othervise you will get an error

wich wil return a list of m2m field values multiplied with field.float...

may the source be with you!

Avatar
Discard
Author

thnaks :)

Best Answer

You got to understand the symentics of each data type and its behaviour...

So from your above code, I suppose you are trying to add all taxes ... But Tax_id is of type M2M, which is nothing but again a list of browse records.. hence you got to loop throug it to perform your action...

Your code should be like this....

for record in self.browse(cr, uid, ids,context):
     for tax in record.tax_id:
          res[record.id] += record.price_subtotal * tax.amount   

 

Do refer, standard functionality/ calculations  say Invoice, Purchase... etc so you will get a better idea of it...

 

Avatar
Discard
Author

thanks it works ;) ;) ;)