Files
gzth/yuthon_salary/wizard/initialize_payroll_wizard.py
T
2025-07-03 22:13:08 +08:00

34 lines
1.4 KiB
Python

# -*- coding: utf-8 -*-
from odoo import models, fields, api, _, SUPERUSER_ID
from odoo.exceptions import ValidationError, UserError
from pypinyin import pinyin, Style
import xlrd
import base64
import datetime
from datetime import datetime
class InitializePayrollWizard(models.Model):
_name = 'initialize.payroll.wizard'
_description = '初始化工资单弹窗'
payslip_ids = fields.Many2many('hr.payslip', string='工资单')
company_id = fields.Many2one('res.company', string="公司", index=True, default=lambda self: self.env.company)
payroll_common_ids = fields.Many2many('yuthon.payroll.common', string='常用项')
payroll_temporary_ids = fields.Many2many('yuthon.payroll.temporary', string='临时项')
payroll_insurances_ids = fields.Many2many('yuthon.payroll.insurances', string='五险一金')
def confirm(self):
target_names = (
[common.name for common in self.payroll_common_ids] +
[temp.name for temp in self.payroll_temporary_ids] +
[insurance.name for insurance in self.payroll_insurances_ids]
)
for payslip in self.payslip_ids:
for line in payslip.line_ids:
if line.name in target_names:
line.write({
'total': 0,
'amount': 0
})
payslip.with_context(recompute=True)._compute_salary()