跳至內容
選單
此問題已被標幟
2 回覆
14829 瀏覽次數

Hi i need to make module can go through all employee in employee module and create leave allocation record fro each of those employee by making scheduled action 

make the python as below  could any one explain from me how to do that or direct me to any references can help 


many thanks 

# -*- coding: utf-8 -*-
from odoo import models, fields, api
#Import logger
import logging
#Get the logger
_logger = logging.getLogger(__name__)

#External import
import datetime

class scheduler_demo(models.Model):
_name = 'scheduler.demo'

def _daily_leaves(self):


vications = self.env['hr.employee'].search([])
emp=vications.mapped('emplyee_id')
for em in emp:
vd = 20
leave = self.env['hr.holidays'].create({
'employee_id': em,
'holiday_status_id': '1',
'type': 'add',
'holiday_type': 'employee',
'number_of_days_temp': vd
})
leave.action_approve()
if leave.double_validation:
leave.action_validate()


頭像
捨棄
最佳答案

Hi Bassam,

Seems you query is not so clear. But looking to your code.

1. vications = self.env['hr.employee'].search([]), This search will give you all employees objects like hr.employee(1,2,3) etc.

2. emp=vications.mapped('emplyee_id'),  There is no employee_id field, though you already got done search for all employee using above code, so this statement really not needed.

3.lopping  from emp instead use for emp in self.env['hr.employee'].search([]):

Thanks



頭像
捨棄
作者 最佳答案

contract module does have employee_id field i changed the code 


vications = self.env['hr.contract'].search([])
emp=vications('emplyee_id')
for em in emp:
vd = 20
leave = self.env['hr.holidays'].create({
'employee_id': em,
'holiday_status_id': '1',
'type': 'add',
'holiday_type': 'employee',
'number_of_days_temp': vd
})
leave.action_approve()
if leave.double_validation:
leave.action_validate()

get this error TypeError: 'hr.contract' object is not callable
頭像
捨棄
相關帖文 回覆 瀏覽次數 活動
2
2月 23
12620
1
3月 25
821
1
6月 18
7525
1
9月 21
18533
2
3月 24
1594