تخطي للذهاب إلى المحتوى
القائمة
لقد تم الإبلاغ عن هذا السؤال
3 الردود
8950 أدوات العرض

i experienced some problem when override method _amount_all(), 

here the error:

TypeError: _amount_all() got an unexpected keyword argument 'context'

and here my code:

...

    @api.multi
    def _amount_all(self, field_name):
        reslt = {}
        result = super(sale_order, self)._amount_all(field_name)
        for orders in self.browser(self.id):
            reslt[orders.id] = {
                'discount_fidelity': self.discount_fidelity
            }
            result[orders.id]['discount_fidelity'] = cur_obj.round(
                reslt[orders.id]['discount_fidelity'])
            result[orders.id]['amount_total'] = result[orders.id][
                'amount_total'] - reslt[orders.id]['discount_fidelity']
        return result

The point why i override this function because i want to add new field to use when counting total amount.

Thanks.

الصورة الرمزية
إهمال
أفضل إجابة

Hi,

You can simply override method as below.

@api.multi
def _amount_all(self, field_name, arg):
    ret_val = super(sale_order, self)._amount_all(field_name, arg)
    for order in self:
        ret_val[order.id]['field_name'] += order.new_field
    return ret_val

Hope this will help you.

Thanks.

الصورة الرمزية
إهمال
أفضل إجابة

Hi yopi, did you create new module to do that and then you did the inheritance method ?

الصورة الرمزية
إهمال
الكاتب أفضل إجابة

to Nishant Jogi, thanks a lot, it's work.

الصورة الرمزية
إهمال
المنشورات ذات الصلة الردود أدوات العرض النشاط
3
أبريل 22
12065
4
يناير 19
31907
1
مارس 17
8050
0
مايو 16
3772
0
مارس 16
3023