From ad4e401585c0ad97b171eb451a1cbb63f03531eb 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: Mon, 20 Apr 2026 12:16:28 +0800 Subject: [PATCH] =?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/yuthon_medical_manage.py | 33 ++++++++----------- .../views/yuthon_medical_manage_views.xml | 2 -- 2 files changed, 13 insertions(+), 22 deletions(-) diff --git a/yuthon_hr_employee/models/yuthon_medical_manage.py b/yuthon_hr_employee/models/yuthon_medical_manage.py index 29b4d7454..845acfd50 100644 --- a/yuthon_hr_employee/models/yuthon_medical_manage.py +++ b/yuthon_hr_employee/models/yuthon_medical_manage.py @@ -17,12 +17,9 @@ class YuthonMedicalManage(models.Model): last_year_quota = fields.Float(string="去年额度") last_year_used = fields.Float(string="去年使用", compute="_compute_last_year_used") last_year_remaining = fields.Float(string="去年剩余") - last_year_balance = fields.Float(string="去年结余") prev_last_year_remaining = fields.Float(string="前年剩余") - prev_last_year_balance = fields.Float(string="前年结余") this_year_usage = fields.Float(string='本年使用', compute="_compute_this_year_usage") this_year_quota = fields.Float(string='本年额度') - identification_id = fields.Char(related='employee_id.identification_id', string="身份证") birthday = fields.Date(related='employee_id.birthday', string="出生年月") marital_status = fields.Selection([('married', '已婚'), ('unmarried', '未婚')], related='employee_id.marital', string='婚姻状况') @@ -34,16 +31,16 @@ class YuthonMedicalManage(models.Model): for record in self: record.termination_date = record.employee_id.contract_id.termination_date - @api.depends('this_year_quota', 'this_year_usage', 'last_year_balance') + @api.depends('this_year_quota', 'this_year_usage', 'last_year_remaining') def _compute_current_year_remaining(self): for record in self: - record.current_year_remaining = record.this_year_quota + record.last_year_balance - record.this_year_usage + record.current_year_remaining = record.this_year_quota + record.last_year_remaining - record.this_year_usage def update_remainder_the_year(self): soong_ids = self.env["yuthon.medical.manage"].browse( self._context.get('active_ids', self._context.get('active_id'))) for soong_id in soong_ids: - soong_id.remainder_the_year = soong_id.this_year_quota + soong_id.last_year_balance - soong_id.this_year_usage + soong_id.remainder_the_year = soong_id.this_year_quota + soong_id.last_year_remaining - soong_id.this_year_usage if soong_id.year: soong_id.start_date = f"{soong_id.year}-01-01" @@ -161,7 +158,7 @@ class YuthonMedicalManage(models.Model): continue medical_manage_rec.write({'this_year_quota': this_year_quota, }) - medical_manage_rec.remainder_the_year = medical_manage_rec.this_year_quota + medical_manage_rec.last_year_balance - medical_manage_rec.this_year_usage + medical_manage_rec.remainder_the_year = medical_manage_rec.this_year_quota + medical_manage_rec.last_year_remaining - medical_manage_rec.this_year_usage medical_manage_rec.start_date = current_date # 回填上年数据 @@ -172,14 +169,12 @@ class YuthonMedicalManage(models.Model): if last_year_rec: medical_manage_rec.write({ 'last_year_quota': last_year_rec.this_year_quota, - 'last_year_remaining': last_year_rec.current_year_remaining, - 'last_year_balance': min(last_year_rec.this_year_quota * 3, last_year_rec.current_year_remaining), + 'last_year_remaining': min(last_year_rec.this_year_quota * 2, last_year_rec.current_year_remaining), }) # 回填前年数据 prev_last_year_vals = { - 'prev_last_year_balance': min(last_year_rec.last_year_quota * 3, last_year_rec.last_year_remaining), - 'prev_last_year_remaining': last_year_rec.last_year_remaining, + 'prev_last_year_remaining': min(last_year_rec.this_year_quota * 2, last_year_rec.current_year_remaining), } medical_manage_rec.write(prev_last_year_vals) @@ -192,7 +187,7 @@ class YuthonMedicalManage(models.Model): this_year_quota = self._calculate_medical_quota(employee, current_year) medical_record.write({'this_year_quota': this_year_quota, }) - medical_record.remainder_the_year = medical_record.this_year_quota + medical_record.last_year_balance - medical_record.this_year_usage + medical_record.remainder_the_year = medical_record.this_year_quota + medical_record.last_year_remaining - medical_record.this_year_usage # 回填上年数据 last_year_rec = self.env['yuthon.medical.manage'].search([ ('employee_id', '=', employee.id), @@ -201,13 +196,11 @@ class YuthonMedicalManage(models.Model): if last_year_rec: medical_record.write({ 'last_year_quota': last_year_rec.this_year_quota, - 'last_year_remaining': last_year_rec.current_year_remaining, - 'last_year_balance': min(last_year_rec.this_year_quota * 3, last_year_rec.current_year_remaining), + 'last_year_remaining': min(last_year_rec.this_year_quota * 2, last_year_rec.current_year_remaining), }) # 回填前年数据 prev_last_year_vals = { - 'prev_last_year_balance': min(last_year_rec.last_year_quota * 3, last_year_rec.last_year_remaining), - 'prev_last_year_remaining': last_year_rec.last_year_remaining, + 'prev_last_year_remaining': min(last_year_rec.last_year_quota * 2, last_year_rec.last_year_remaining), } medical_record.write(prev_last_year_vals) @@ -251,13 +244,13 @@ class YuthonMedicalManage(models.Model): last_year_quota = self._calculate_medical_quota(rec.employee_id, last_year) this_year_quota = self._calculate_medical_quota(rec.employee_id, current_year) prev_last_year_quota = self._calculate_medical_quota(rec.employee_id, prev_last_year) - prev_last_year_balance = min(prev_last_year_quota * 2, rec.prev_last_year_remaining) - last_year_balance = min(last_year_quota * 2, rec.last_year_remaining) + prev_last_year_remaining = min(prev_last_year_quota * 2, rec.prev_last_year_remaining) + last_year_remaining = min(last_year_quota * 2, rec.last_year_remaining) rec.write({ 'this_year_quota': this_year_quota, 'last_year_quota': last_year_quota, - 'prev_last_year_balance': prev_last_year_balance, - 'last_year_balance': last_year_balance, + 'prev_last_year_remaining': prev_last_year_remaining, + 'last_year_remaining': last_year_remaining, }) class YuthonMedicalLine(models.Model): diff --git a/yuthon_hr_employee/views/yuthon_medical_manage_views.xml b/yuthon_hr_employee/views/yuthon_medical_manage_views.xml index 6b4028506..863dbb799 100644 --- a/yuthon_hr_employee/views/yuthon_medical_manage_views.xml +++ b/yuthon_hr_employee/views/yuthon_medical_manage_views.xml @@ -16,11 +16,9 @@ - -