Merge pull request !2720 from 李鹏宇/dev
This commit is contained in:
李鹏宇
2025-05-14 07:30:20 +00:00
committed by Gitee
3 changed files with 27 additions and 14 deletions
+8 -8
View File
@@ -109,13 +109,13 @@ class InheritHrPayslip(models.Model):
def action_refresh_from_work_entries(self):
if any(p.state not in ['draft', 'verify'] for p in self):
raise UserError(_('The payslips should be in Draft or Waiting state.'))
payslip_records = self.browse(self._context.get('active_ids', self._context.get('active_id')))
for pay in payslip_records:
# payslips = self.filtered(lambda p: not p.edited)
pay.mapped('worked_days_line_ids').unlink()
pay.mapped('line_ids').unlink()
pay._compute_worked_days_line_ids()
pay.compute_sheet()
payslip_records = self.browse(self._context.get('active_ids', self._context.get('active_id')))
for pay in payslip_records:
# payslips = self.filtered(lambda p: not p.edited)
pay.mapped('worked_days_line_ids').unlink()
pay.mapped('line_ids').unlink()
pay._compute_worked_days_line_ids()
pay.compute_sheet()
@api.depends('line_ids')
def _compute_salary(self):
@@ -317,7 +317,7 @@ class InheritHrPayslip(models.Model):
"target": "new",
}
def compute_sheet(self):
def compute_sheet_new(self):
payslips = self.filtered(lambda slip: slip.state in ['draft', 'verify'])
# delete old payslip lines
payslips.line_ids.unlink()
+2 -2
View File
@@ -61,10 +61,10 @@ class YuthonSalaryYear(models.Model):
for record in self:
rule = self.env['yuthon.personal.rule'].search([
('start_number', '<', record.sum_salary),
('end_number', '>', record.sum_salary),
('end_number', '>=', record.sum_salary),
], limit=1)
if rule:
record.buckle_salary = record.sum_salary * rule.tax_rate
record.buckle_salary = record.sum_salary * rule.tax_rate - rule.compute_number
else:
record.buckle_salary = 0
+17 -4
View File
@@ -91,10 +91,23 @@ class SalaryComputeWizard(models.Model):
'payslip_run_id': payslip_run_id.id,
'state': 'draft',
})
payslip.mapped('worked_days_line_ids').unlink()
payslip.mapped('line_ids').unlink()
payslip._compute_worked_days_line_ids()
payslip.compute_sheet()
payslip.compute_sheet_new()
month = int(self.select_time)
month_mapping = {
1: '一月', 2: '二月', 3: '三月', 4: '四月',
5: '五月', 6: '六月', 7: '七月', 8: '八月',
9: '九月', 10: '十月', 11: '十一月', 12: '十二月'
}
month_name = month_mapping.get(month, '一月')
payslip_records = self.env['hr.payslip'].search([
('is_push', '=', False),
('payslip_run_id.name', 'like', f'%年-{month_name}') # 匹配格式:"2025年-一月"
])
for pay in payslip_records:
pay.mapped('worked_days_line_ids').unlink()
pay.mapped('line_ids').unlink()
pay._compute_worked_days_line_ids()
pay.compute_sheet()
internship_ids = self.env['hr.payslip'].search([
('employee_id.contract_id.is_probation', '=', True),