Merge pull request !10828 from 李鹏宇/dev
This commit is contained in:
李鹏宇
2026-04-15 06:52:14 +00:00
committed by Gitee
@@ -32,7 +32,29 @@ class YuthonOvertimeLine(models.Model):
@api.depends('last_balance', 'remainder_year')
def _compute_vacation_sum(self):
for rec in self:
rec.vacation_sum = rec.last_balance + rec.remainder_year
current_year = int(self.select_year)
current_month = int(self.select_month)
next_month = current_month + 1 if current_month < 12 else 1
next_year = current_year if current_month < 12 else current_year + 1
cutoff_date_last = date(next_year, next_month, 1) - timedelta(days=1)
cutoff_dt = datetime.combine(cutoff_date_last, datetime.max.time())
dec_2025_end = datetime(2025, 12, 31, 23, 59, 59)
if self.employee_id.company_id.name == '集团本部':
domain = [
('employee_id', '=', self.employee_id.id),
('carry_forward_state', '!=', 'completed'),
'|',
('is_initial_number', '=', True),
'&', ('is_initial_number', '=', False),
'&', ('update_type', '=', 'add'),
'&', ('workflow_record_id', '!=', False),
'&', ('start_time', '>=', dec_2025_end),
'&', ('vacation_id', '!=', False),
('start_time', '<', cutoff_dt)
]
over_ids = self.env['vacation.over.line'].search(domain)
for over_id in over_ids:
self.vacation_sum += over_id.remaining_quantity
def open_record(self):
self.ensure_one()
@@ -43,11 +65,6 @@ class YuthonOvertimeLine(models.Model):
cutoff_date_last = date(next_year, next_month, 1) - timedelta(days=1)
cutoff_dt = datetime.combine(cutoff_date_last, datetime.max.time())
dec_2025_end = datetime(2025, 12, 31, 23, 59, 59)
domain = [
('start_time', '<', cutoff_dt),
('remaining_quantity', '!=', 0.0),
('employee_id', '=', self.employee_id.id)
]
if self.employee_id.company_id.name == '集团本部':
domain = [
('employee_id', '=', self.employee_id.id),
@@ -62,16 +79,16 @@ class YuthonOvertimeLine(models.Model):
('start_time', '<', cutoff_dt)
]
tree_id = self.env.ref("yuthon_hr_attendance.view_yuthon_vacation_overtime_tree").id
return {
'views': [[tree_id, 'tree']],
'name': f'加班明细',
'type': 'ir.actions.act_window',
'res_model': 'vacation.over.line',
'view_mode': 'tree,form',
'domain': domain,
'target': 'current'
}
tree_id = self.env.ref("yuthon_hr_attendance.view_yuthon_vacation_overtime_tree").id
return {
'views': [[tree_id, 'tree']],
'name': f'加班明细',
'type': 'ir.actions.act_window',
'res_model': 'vacation.over.line',
'view_mode': 'tree,form',
'domain': domain,
'target': 'current'
}
def overtime_wizard(self):
overtime_ids = self.env["yuthon.overtime.line"].browse(