2016-12-01 4 views
0

Я хочу переопределить исходную функцию поля в Odoo.Способ переопределения функции поля в v8

В соответствии с ответом здесь: Odoo: How to override original function Мне просто нужно точно определить тот же метод, что и в исходной модели. Итак, вот мой код:

class paiement_client_difference_montant(models.Model): 
    _inherit="account.voucher" 

    #writeoff_amount=fields.Float(compute='_get_writeoff_amount') 

def _get_writeoff_amount(self, cr, uid, ids, name, args, context=None): 
    print '_get_writeoff_amount _inherit' 
    if not ids: return {} 
    currency_obj = self.pool.get('res.currency') 
    res = {} 
    for voucher in self.browse(cr, uid, ids, context=context): 
     debit = credit = 0.0 
     sign = voucher.type == 'payment' and -1 or 1 
     for l in voucher.line_dr_ids: 
      debit += l.amount 
     for l in voucher.line_cr_ids: 
      credit += l.amount 
     currency = voucher.currency_id or voucher.company_id.currency_id 
     res[voucher.id] = currency_obj.round(cr, uid, currency, voucher.amount - sign * (credit - debit)) 
    return res 

Но этот код так и не был достигнут. Любая помощь пожалуйста. Спасибо.

+1

Возможно, это проблема с отступом, я отредактировал ваш вопрос и исправил его, ваш класс никогда не был унаследован от 'account.voucher', потому что поле inherit было вне класса – danidee

+0

По полю вы имеете в виду' writeoff_amount'. Это комментарий. По тому, как я пытался с вашими изменениями, и он все еще не работает. –

+0

'writeoff_amount' - это поле в базе' account.voucher'? – gabrieloliveira

ответ

2

Вам необходимо переопределить это поле в своем классе, чтобы выполнить этот вновь созданный метод.

+0

Спасибо за то, что он сейчас работает. Необходимо снова переопределить это поле и использовать параметр вычисления. –

 Смежные вопросы

  • Нет связанных вопросов^_^