Files
gzth/yuthon_hr_employee/wizard/hr_employee_time_wizard.py
T
2024-12-06 20:26:38 +08:00

38 lines
1.5 KiB
Python

# -*- coding: utf-8 -*-
from odoo import models, fields, api, _, SUPERUSER_ID
from odoo.exceptions import ValidationError, UserError
import xlrd
import base64
import datetime
from datetime import datetime
class YuthonHrEmployeeTimeWizard(models.Model):
_name = 'yuthon.hr.employee.time.wizard'
department_id = fields.Many2one('hr.department', string='部门')
employee_ids = fields.Many2many('hr.employee', compute='_compute_all_employees', string='所有员工' ,store=True, )
attendance_id = fields.Many2one('resource.calendar', string='考勤时间表')
@api.depends('department_id')
def _compute_all_employees(self):
for record in self:
if record.department_id:
record.employee_ids = self.get_all_employees(record.department_id)
else:
record.employee_ids = False
def get_all_employees(self, department):
employees = self.env['hr.employee'].search([('department_id', '=', department.id)])
child_departments = self.env['hr.department'].search([('parent_id', '=', department.id)])
for child_department in child_departments:
employees += self.get_all_employees(child_department)
return employees
def confirm(self):
for employee_id in self.employee_ids:
if self.attendance_id:
employee_id.write({'resource_calendar_id': self.attendance_id.id})
else:
employee_id.write({'resource_calendar_id': False})