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

Hello Community

Getting above error creating new record in one2many field.

code is below:

def _compute_timesheet_hour(self):
for val in self:
self._cr.execute('''SELECT project_id, employee_id, SUM(unit_amount) FROM account_analytic_line
where project_id = %(project_id)s and employee_id = %(employee_id)s
GROUP BY project_id, employee_id'''
, { 'project_id': val.project_id.id, 'employee_id': val.employee_id.id,})
  res = self._cr.fetchone()
if res and res[2]:
  val.timesheet_hour = res[2]
else:
  val.timesheet_hour = 0.0
Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

Hi,

This issue may be with the data type being passed as an argument in the SQL query.
Try this,

def _compute_timesheet_hour(self):
for val in self:
self._cr.execute('''SELECT project_id, employee_id, SUM(unit_amount) FROM account_analytic_line
WHERE project_id = %s AND employee_id = %s
GROUP BY project_id, employee_id''', (val.project_id.id, val.employee_id.id,))
res = self._cr.fetchone()
if res and res[2]:
val.timesheet_hour = res[2]
else:
val.timesheet_hour = 0.0

The SQL query passes a tuple of parameters (val.project_id.id, val.employee_id.id,) using placeholders of the form '%s'. This should help resolve the issue you're facing with adapting the argument types correctly

Regards

Ảnh đại diện
Huỷ bỏ
Bài viết liên quan Trả lời Lượt xem Hoạt động
1
thg 3 23
2445
0
thg 10 15
4716
2
thg 7 24
7680
1
thg 5 24
3156
3
thg 2 25
3553