2017-01-30 4 views
-2

Привет я хочу, чтобы вычислить сумму сумм как фотосумма сумм (функция)

enter image description here

я попробовал эту функцию, но она не работает какие-либо предложения плз

_name = 'obj.ghb'  
_description = 'objet ghb'       
@api.one 
@api.depends('tax_line_ids.montant')  
def compute_total(self): 
for record in self:   
    total=sum([line.montant for line record.tax_line_ids]) 
    _columns = {  
     'nomprojet': fields.char('Nom du projet'),  
     'responsable': fields.char('Responsable GHB'),  
     'client': fields.char('Client'),  
     'contactclient': fields.char('Contact du client'),  
     'total': fields.float('Total', compute='compute_total', store='True'), 
+0

Но рассчитать сумму ** за запись **? –

+0

Ну, ваш отпечаток неправильный. Это то, что вы подразумеваете под «не работает»? – khelwood

+0

@khelwood: синтаксис неверен: неверное представление списка 'sum' неверно. –

ответ

1

Возможно, я смогу решить вашу проблему.

Я полагаю, вы используете odoo, а отношения ghb и tax_line_ids - One2many.

Если мое предположение верно, вы можете следить за этим:

В odoo, то api.depends не знаю, когда One2many поле изменилось, так это не работает.

Вот мой путь. Вы можете переписать функцию записи модели ghb, если вы измените tax_line_ids, вы должны вызвать функцию compute_total.

Надеюсь, это может вам помочь.

+0

спасибо за ответ, я использовал другую функцию, но у меня такая же проблема, это моя новая функция ( def onchange_total (self, cr, uid, ids, montant, context = {}): data = {} для записи в self.browse (cr, uid, ids, context = context): data ['montant'] + = montant или False return {'value': data}) и я добавляю его в свой xml fields – ilham

+0

Извините, я не понимаю, что вы имеете в виду. – Mellcap

+0

это нормально, спасибо, это работает :) – ilham

0

попробовать это в виде XML: <field name="montant" string="total" sum="montant total"/>

+0

спасибо за ваш ответ на самом деле я использовал это, но мне нужно сэкономить что приводит к базе данных, поэтому мне нужна функция, потому что, когда мы используем этот результат, он не сохраняется в базе данных – ilham

+0

, а не возвращается в вашей вычислительной функции. вам просто нужно назначить общее количество: ex: record.total = "all montant" – badou