This question has been flagged

Hi, I tried to put the employee_id from hr.payslip model in the account_analytic_line in a new field called employee_test.

This is my code


# -*- coding: utf-8 -*-

from openerp import models, fields, api, osv

from openerp.http import request

from openerp import SUPERUSER_ID

class account_analytic_line(models.Model):

_inherit = ['account.analytic.line']

employee_id = fields.Char('test')

employee_test = fields.Integer(compute="employee")

@api.multi

def employee(self, ref):

cr, uid, context, pool = request.cr, request.uid, request.context,

objpayslip = self.pool.get('hr.payslip')

result = objpayslip.search_read(cr, SUPERUSER_ID, [('number', '=', ref)], [])

print result

return result.id


But I get error.

How can I fix this?

I tried this with the self.pool method too.


I have in 'account.analytic.line' a ref field, in 'hr.payslip' I have the number field.

The inside of these two fields is the same. I need to filter that and give the employee_id from 'hr.payslip' to the model 'account.analytic.line' model.

How can I make that work?


Avatar
Discard

Sorry, Pls use the api as per the function.

eg:

@api.one

Author

with your function you have write down I get this error:

TypeError: search() takes at least 4 arguments (2 given)

Author

with my code I get this:

cr, uid, context, pool = request.cr, request.uid, request.context,

ValueError: need more than 3 values to unpack

Best Answer

Hi wizardz

can you show me the error message.


Hi wizardz:

can you try this .

def employee(self):

     objpayslip = self.pool.get('hr.payslip')

     if self.ref:

         result = objpayslip.search([('number', '=', self.ref)]) # i hope it should return one record   

       for record in objpayslip.browse(result):         

            return record.id

Avatar
Discard
Author

only 1 argument given. is the error.

I need to get the ref from 'account.analytic.line' and then look at 'hr.payslip' - number to get the employee_id there. Then I need to put the employee_id in a new field in 'account.analytic.line'

Author

I tried youre code, I get this error:

TypeError: search() takes at least 4 arguments (2 given)