2017-09-11 78 views
-2

我一直在試圖重寫(DEF get_worked_day_lines)總人次擺脫time_sheet_sheet.sheet總人次爲每一位員工這樣我就可以使基於total_attendance爲他工資單。得到time_sheet

class hr_payslip(osv.osv): 
_inherit = 'hr.payslip' 


_columns = { 

} 


def get_worked_day_lines(self, cr, uid, ids, employee_id, date_to, context=None): 

      res = [] 
    working_days = self.pool.get('hr_timesheet_sheet.sheet') 
    for record in self.browse(cr, uid, ids, context = context): 
     search_sheet = working_days.search(cr, uid, [('state','=','draft')]) 
     for rec in working_days.browse(cr, uid, search_sheet, context=None): 

      attendances = { 
      'name': _("Normal Working Days paid at 100%"), 
      'sequence': 1, 
      'code': 'WORK100', 
      'number_of_days': 0.0, 
      'number_of_hours': 0.0, 
      #'contract_id': , 
     } 
      if rec.day == record.numero : 

       attendances['code'] = rec.day 
      leaves = {} 
      leaves = [value for key,value in leaves.items()] 
      res += [attendances] + leaves 
    return res 

PS:當我把 search_sheet = working_days.search(cr, uid,[('state','=','draft')]) 我將能夠從所有的時間草案張

output for search_sheet = working_days.search(cr, uid,[('state','=','draft')])得到total_attendance

+0

歡迎堆棧溢出得到任何數據備份!發佈代碼時,嘗試將其簡化爲[MCVE]。你的問題似乎很簡單,但任何試圖幫助你的人都需要花費幾分鐘的時間閱讀你的代碼以找到相關的部分。既然你已經知道你的代碼以及它的工作原理,那麼你可以把最重要的東西拿出來,並且拯救那些想要幫助你的人。 –

+0

謝謝,我試着讓我的代碼儘可能簡單,這樣任何知道一點python和odoo的人都能理解它...我在這裏所做的只是瀏覽和搜索,但是我無法獲得結果.. ... –

+1

代碼可能很簡單,但是除非您提供樣本數據,否則您的問題無法重現。目前還不清楚你的問題是什麼 - 現在這個功能的輸出是什麼樣的,你希望它看起來如何? – cmaher

回答

0

我實際上是在OpenERP的V7工作,所以我知道是怎麼回事這裏。如果您沒有得到[('employee_id','=',employee_id)]搜索條件的任何信息,那麼它是因爲employee_id參數的值不等於數據庫中的任何employee_id。

你應該做的是檢查傳入作爲參數傳遞給函數的EMPLOYEE_ID的價值。如果該值是一個整數,則檢查數據庫中是否存在該標識。如果該表存在該ID,則應該看到數據。如果EMPLOYEE_ID的值是FALSE,或者沒有,那麼你就不會從搜索()