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

Good day, i'm working with odoo8 developing a module that check the payments of employees social benefits. I need to get the last value inserted in a field "accumulated, i'm trying with this code:


@api.one

def _get_sum_payment(self):

payments = self.env['hr.prestaciones'].search([(employee_id','=', self.employee_id),('accumulated')])

self.sum_payments = sum(item.amount for item in payments)

sum_payments = fields.Float(string="Prestaciones Acumuladas", compute='_get_sum_payment')


but that code is not working... how can solve it?

Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

Hi,

    env(Environment) in new API is to provide an encapsulation around cursor, user_id, model, and context, Recordset and caches.

It evades the use of infamous function signature def afun(self, cr, uid, ids, context=None): and in new API its def afun(self):

And if you want to call ORM method directly from an object you can use self.env['obj'].method instead of self.method

An environment wraps data for ORM records:

  • 'cr', the current database cursor.

  • 'uid', the current user id.

  • 'context', the current context dictionary.

For more about env: Link

For getting the value of accumulated from last record of 'hr.prestaciones' you can use this script:-

payments = self.env['hr.prestaciones'].search([])[0].accumulated

Hope this helps.

Ảnh đại diện
Huỷ bỏ
Bài viết liên quan Trả lời Lượt xem Hoạt động
2
thg 8 23
3321
2
thg 12 22
14863
1
thg 11 21
4968
1
thg 1 21
4419
0
thg 1 21
2335