38 lines
1.5 KiB
Python
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}) |