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

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
الصورة الرمزية
إهمال
أفضل إجابة

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

الصورة الرمزية
إهمال
المنشورات ذات الصلة الردود أدوات العرض النشاط
1
مارس 23
2461
0
أكتوبر 15
4746
2
يوليو 24
7699
1
مايو 24
3175
3
فبراير 25
3579