函数字段,超出最大递归深度

2024-10-02 08:25:37 发布

您现在位置:Python中文网/ 问答频道 /正文

为了创建一个模块“hr\u payroll\u from\u timesheet”,我尝试添加一个字段,这样我就可以计算员工在周六或周五工作的小时数

class hr_timsheet_sheet(osv.osv)
_inherit = 'hr_timsheet_sheet.sheet'

def _woked_days(self,cr,uid,ids,field_name,args=None,context=None)
    sheet = self.browse(cr,uid,ids)
    for record in sheet:
        hr_sup= ["Saturday","Friday"]
        count = 0.0
        for line in record.period_ids:
             day = line.name
             year, month, day = (int(x) for x in day.split('-'))
             days = datetime.date(year,month,day)
             if days.strftime("%A") in hr_sup:
                   count += line.total_attendance
                   self.write(cr,uid,ids,{
                          'weekend' : count,
                           })
     return True

_columns = {
   'weekend' : fields.function(_worked_days,method=True,type='float',store=True)
}

我确实尝试通过添加一个新按钮并将我的字段更改为'weekend' : float()来实现这个方法,它确实工作得很好,实际上我只想在单击save按钮时进行所有计算。。。 提前谢谢


Tags: inselftrueidsforuidcountline
1条回答
网友
1楼 · 发布于 2024-10-02 08:25:37

我喜欢你要做的这个主意,从timsheet发工资单 试试这个:

class hr_timsheet_sheet(osv.osv)
    _inherit = 'hr_timsheet_sheet.sheet'

    def _woked_days(self,cr,uid,ids,weekend,args=None,context=None)
        sheet = self.browse(cr,uid,ids)
        for record in sheet:
            hr_sup= ["Saturday","Friday"]
            count = 0.0
            for line in record.period_ids:
                 day = line.name
                 year, month, day = (int(x) for x in day.split('-'))
                 days = datetime.date(year,month,day)
                 if days.strftime("%A") in hr_sup:
                       count += line.total_attendance
                 res[record.id] = count
         return True

即使保持argfield_name,它也能工作

相关问题 更多 >

    热门问题