【发布时间】:2019-12-15 02:00:41
【问题描述】:
我做了这种方法,它计算员工的迟到时间,并在工资单上提交的奉献天数转换它,它工作得很好,但是当有多个工资单时,我需要得到所有工资单的奉献字段的总和对于员工,它只给我一条记录并返回其他记录 = 0.00 , 方法在这里
@api.multi
@api.depends('date_to','date_to','employee_id')
def compute_amount(self):
for rec in self:
rec.attend = self.env['hr.attendance'].search(
[('check_in', '>=', rec.date_from), ('check_out', '<=', rec.date_to),
('employee_id', '=', rec.employee_id.id), ])
late=[float(s.late) for s in rec.attend]
tot_late= float(sum(late))
rec.dedication = tot_late / 8
pass
dedication = fields.Float(string="Dedication", required=False,compute=compute_amount )
如果我尝试打印所有记录,我会得到一个像这样的列表 [0.0, 0.0, 1.7551388888888888] 如果有 3 张工资单,则该列表仅返回一条真实值的记录,其他记录 = 0
任何帮助都会得到帮助
【问题讨论】:
-
pass是干什么用的?你在用什么图书馆?请分享所有相关代码和数据。请参阅:minimal reproducible example。 -
更正
pass前行的缩进。 -
@AlexanderCécile 这是 odoo 框架,亲爱的,我在标签中说
标签: python python-2.7 for-loop orm odoo