From 86f6360a6f851ad500899fffa932595873beba2a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=B9=8F=E5=AE=87?= <9664676+pengyuthon@user.noreply.gitee.com> Date: Wed, 8 Apr 2026 11:28:02 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- yuthon_hr_attendance/models/overtime_approval.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/yuthon_hr_attendance/models/overtime_approval.py b/yuthon_hr_attendance/models/overtime_approval.py index a244f3c79..7b9815354 100644 --- a/yuthon_hr_attendance/models/overtime_approval.py +++ b/yuthon_hr_attendance/models/overtime_approval.py @@ -32,7 +32,7 @@ class OvertimeApprovals(models.Model): related_issues_id = fields.Many2one('issue.library', string="关联议题") documents_ids = fields.Many2many('ir.attachment', string="附件") overtime_methods = fields.Selection([('leave', '补休'), ('fee', '加班费结算')], string='加班补偿方式', default='leave') - duration = fields.Float(string="结算时长", compute='_compute_duration', store=True) + duration = fields.Float(string="结算时长", compute='_compute_duration', store=True, compute_sudo=True,) overtime_hours = fields.Float(string="本月加班时长", compute='_compute_overtime_hours') overtime_hours1 = fields.Float(string="本月加班时长") # 固定值 start_time = fields.Datetime(string="开始时间") From 32782af1e705e007c3ec97a214b19af1690b4526 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=B9=8F=E5=AE=87?= <9664676+pengyuthon@user.noreply.gitee.com> Date: Wed, 8 Apr 2026 11:29:09 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../models/overtime_approval.py | 25 +++++++++---------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/yuthon_hr_attendance/models/overtime_approval.py b/yuthon_hr_attendance/models/overtime_approval.py index 7b9815354..3145c5fff 100644 --- a/yuthon_hr_attendance/models/overtime_approval.py +++ b/yuthon_hr_attendance/models/overtime_approval.py @@ -32,7 +32,7 @@ class OvertimeApprovals(models.Model): related_issues_id = fields.Many2one('issue.library', string="关联议题") documents_ids = fields.Many2many('ir.attachment', string="附件") overtime_methods = fields.Selection([('leave', '补休'), ('fee', '加班费结算')], string='加班补偿方式', default='leave') - duration = fields.Float(string="结算时长", compute='_compute_duration', store=True, compute_sudo=True,) + duration = fields.Float(string="结算时长", compute='_compute_duration', store=True) overtime_hours = fields.Float(string="本月加班时长", compute='_compute_overtime_hours') overtime_hours1 = fields.Float(string="本月加班时长") # 固定值 start_time = fields.Datetime(string="开始时间") @@ -302,18 +302,17 @@ class OvertimeApprovals(models.Model): @api.model_create_multi def create(self, vals_list): - for vals in vals_list: - company_id = vals.get('company_id') - if company_id: - company = self.env['res.company'].browse(company_id) - if company.name == '天河物管': - duration = vals.get('duration') - if duration < 1: - raise ValidationError(f"时长不能小于1!当前填写的是{duration},请重新编辑") - if (duration * 2) % 1 != 0: - raise ValidationError( - f"时长格式错误!请填写1、1.5、2、2.5...等以0.5递增的数值,当前填写的是{duration}") - return super(OvertimeApprovals, self).create(vals_list) + records = super(OvertimeApprovals, self).create(vals_list) + records._compute_duration() + for rec in records: + if rec.company_id.name == '天河物管': + duration = rec.duration + if duration < 1: + raise ValidationError(f"时长不能小于1!当前填写的是{duration}") + if (duration * 2) % 1 != 0: + raise ValidationError( + f"时长格式错误!请填写1、1.5、2、2.5...等以0.5递增的数值") + return records @api.onchange('is_issues') def _onchange_is_issues(self):