# -*- 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()