加班审批
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from . import inherit_approval_category
|
||||
from . import inherit_approval_request
|
||||
from . import overtime_approval
|
||||
from . import tianhe_construction_business_approval
|
||||
from . import tianhe_process_change_approval
|
||||
from . import tianhe_contentious_matter_approval
|
||||
|
||||
@@ -54,9 +54,8 @@ class ApprovalRequest(models.Model):
|
||||
], string="用章类别")
|
||||
creation_time = fields.Datetime(string='创建时间', default=lambda self: fields.Datetime.now())
|
||||
department_id = fields.Many2one('hr.department', related="request_owner_id.employee_id.department_id", string="申请人部门")
|
||||
overtime_department_id = fields.Many2one('hr.department', string="加班部门")
|
||||
approval_request_ids = fields.One2many('approval.request.line', 'approval_request_id', string="审批明细行")
|
||||
overtime_user_ids = fields.One2many('overtime.user.line', 'approval_request_id', string="审批明细行")
|
||||
|
||||
|
||||
|
||||
class ApprovalRequestLine(models.Model):
|
||||
@@ -101,19 +100,5 @@ class ApprovalRequestLine(models.Model):
|
||||
# 加班
|
||||
|
||||
|
||||
class OvertimeUserLine(models.Model):
|
||||
_name = 'overtime.user.line'
|
||||
_rec_name = 'approval_request_id'
|
||||
|
||||
approval_request_id = fields.Many2one('approval.request', string="关联审批单")
|
||||
|
||||
user_id = fields.Many2one('res.users', string="请假人员")
|
||||
start_time = fields.Datetime(string="开始时间")
|
||||
end_time = fields.Datetime(string="结束时间")
|
||||
overtime_hours = fields.Float(string="加班时长")
|
||||
type_overtime = fields.Selection([('work', '工作日',), ('rest', '休息日',), ('holiday', '节假日')],
|
||||
string="加班类型", default="work")
|
||||
compensation_mode = fields.Selection([('salary', '薪资',), ('rest', '调休',)], string="补偿方式")
|
||||
is_male_pay = fields.Boolean(string="加班餐费")
|
||||
user_attendance = fields.Char(string="考勤信息")
|
||||
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from odoo import api, fields, models, tools, _
|
||||
from datetime import datetime, time, timedelta
|
||||
|
||||
|
||||
class OvertimeApprovals(models.Model):
|
||||
_inherit = 'approval.request'
|
||||
_description = "加班审批"
|
||||
|
||||
overtime_department_id = fields.Many2one('hr.department', string="加班部门")
|
||||
overtime_user_ids = fields.One2many('overtime.user.line', 'approval_request_id', string="审批明细行")
|
||||
|
||||
@api.onchange('overtime_department_id')
|
||||
def onchange_overtime_users(self):
|
||||
if self.approval_category_name == 'overtime_approval':
|
||||
users_data_list = []
|
||||
default_datetime = datetime.combine(datetime.now().date(), time(hour=17, minute=30)) - timedelta(hours=8),
|
||||
for over in self:
|
||||
if not over.overtime_department_id:
|
||||
users_data_list.append((0, 0, {
|
||||
'approval_request_id': over.id,
|
||||
'user_id': over.request_owner_id.id,
|
||||
'start_time': default_datetime[0],
|
||||
'type_overtime': 'work',
|
||||
'compensation_mode': 'salary',
|
||||
}))
|
||||
else:
|
||||
employee_ids = self.env['hr.employee'].search([('department_id', '=', self.overtime_department_id.id)])
|
||||
for user in employee_ids:
|
||||
users_data_list.append((0, 0, {
|
||||
'approval_request_id': over.id,
|
||||
'user_id': user.user_id.id,
|
||||
'start_time': default_datetime[0],
|
||||
'type_overtime': 'work',
|
||||
'compensation_mode': 'salary',
|
||||
}))
|
||||
over.overtime_user_ids = users_data_list
|
||||
|
||||
|
||||
class OvertimeUserLine(models.Model):
|
||||
_name = 'overtime.user.line'
|
||||
_rec_name = 'approval_request_id'
|
||||
_description = "加班明细行"
|
||||
|
||||
default_date = datetime.combine(datetime.now().date(), time(hour=17, minute=30))
|
||||
approval_request_id = fields.Many2one('approval.request', string="关联审批单")
|
||||
user_id = fields.Many2one('res.users', string="请假人员")
|
||||
start_time = fields.Datetime(string="开始时间", default=default_date)
|
||||
end_time = fields.Datetime(string="结束时间")
|
||||
overtime_hours = fields.Float(string="加班时长")
|
||||
type_overtime = fields.Selection([('work', '工作日',), ('rest', '休息日',), ('holiday', '节假日')],
|
||||
string="加班类型", default="work")
|
||||
compensation_mode = fields.Selection([('salary', '薪资',), ('rest', '调休',)], string="补偿方式", default="salary")
|
||||
is_male_pay = fields.Boolean(string="加班餐费")
|
||||
user_attendance = fields.Char(string="考勤信息")
|
||||
Reference in New Issue
Block a user