添加功能

This commit is contained in:
李鹏宇
2026-04-20 11:56:00 +08:00
parent 2520f4aac5
commit b7eba93829
2 changed files with 16 additions and 3 deletions
@@ -17,9 +17,12 @@ 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='婚姻状况')
@@ -40,7 +43,7 @@ class YuthonMedicalManage(models.Model):
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_remaining - soong_id.this_year_usage
soong_id.remainder_the_year = soong_id.this_year_quota + soong_id.last_year_balance - soong_id.this_year_usage
if soong_id.year:
soong_id.start_date = f"{soong_id.year}-01-01"
@@ -158,7 +161,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_remaining - medical_manage_rec.this_year_usage
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.start_date = current_date
# 回填上年数据
@@ -170,10 +173,12 @@ class YuthonMedicalManage(models.Model):
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 * 2, last_year_rec.current_year_remaining),
})
# 回填前年数据
prev_last_year_vals = {
'prev_last_year_balance': min(last_year_rec.last_year_quota * 2, last_year_rec.last_year_remaining),
'prev_last_year_remaining': last_year_rec.last_year_remaining,
}
medical_manage_rec.write(prev_last_year_vals)
@@ -187,7 +192,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_remaining - medical_record.this_year_usage
medical_record.remainder_the_year = medical_record.this_year_quota + medical_record.last_year_balance - medical_record.this_year_usage
# 回填上年数据
last_year_rec = self.env['yuthon.medical.manage'].search([
('employee_id', '=', employee.id),
@@ -197,9 +202,11 @@ class YuthonMedicalManage(models.Model):
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 * 2, last_year_rec.current_year_remaining),
})
# 回填前年数据
prev_last_year_vals = {
'prev_last_year_balance': min(last_year_rec.last_year_quota * 2, last_year_rec.last_year_remaining),
'prev_last_year_remaining': last_year_rec.last_year_remaining,
}
medical_record.write(prev_last_year_vals)
@@ -244,9 +251,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)
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,
})
class YuthonMedicalLine(models.Model):