it is very first attempt to use SQL within Odoo
i have created a View (employee_tenure) in database and want to call in a compute method to store in database the tenure of a employee, i run this view on pgAdmin and its working fine.
please help to correct the Compute method, is this correct or what is the correct way to achieve this?
My View in databse:
create or replace view employee_tenure as
select e.id, e.name, c.date_start,
current_date - c.date_start as tenure_days,
(current_date - c.date_start) / 30 as tenure_months,
((current_date - c.date_start) / 30) / 12 as tenure_years
from hr_employee e
left join hr_contract c on e.contract_id = c.id;
My Compute method in Technical -> Models -> Employee:
for rec in self:
query = """select id, name, tenure_days, tenure_months, tenure_years from employee_tenure where id =%s)""" %(rec.id)
#
self.env.cr.execute(query)
result = self.env.cr.dictfetchall()
#
for row in result:
rec['x_emp_tenure_months'] = row.get(tenure_months)
it is showing error:
psycopg2.errors.SyntaxError: syntax error at or near ")" LINE 1: ...nths, tenure_years from employee_tenure where id =NewId_448)
why is NewId_448 instead of 448? how to get rid of this problem?
i have used rec.id and it is an already existing record, i am updating it.
regards
can somebody help for it...
for rec in self:
query = """select id, name, tenure_days, tenure_months, tenure_years from employee_tenure where id =%s)""" %(rec.id)
#
self.env.cr.execute(query)
result = self.env.cr.dictfetchall()
#
for row in result:
rec['x_emp_tenure_months'] = row.get(tenure_months)
it is showing error:
psycopg2.errors.SyntaxError: syntax error at or near ")"
LINE 1: ...nths, tenure_years from employee_tenure where id =NewId_448)
why is NewId_448 instead of 448? how to get rid of this problem?
i have used rec.id and it is an already existing record, i am updating it.