34 lines
1.4 KiB
Python
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() |