Bỏ qua để đến Nội dung
Menu
Câu hỏi này đã bị gắn cờ
2 Trả lời
3512 Lượt xem

hi

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

thanks

Ảnh đại diện
Huỷ bỏ

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.

Tác giả

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'), }

Câu trả lời hay nhất

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!

Ảnh đại diện
Huỷ bỏ
Tác giả

thnaks :)

Câu trả lời hay nhất

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

 

Ảnh đại diện
Huỷ bỏ
Tác giả

thanks it works ;) ;) ;)