簡體   English   中英

功能字段,超過最大遞歸深度

[英]function field, maximum recursion depth exceeded

為了創建模塊“ hr_payroll_from_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()來實現此方法,並且效果很好,實際上我想要的是僅在單擊“保存”按鈕時進行所有這些計算。 .. 提前致謝

我喜歡您要執行的操作,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

即使保留arg field_name

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM