Files
gzth/yuthon_salary/wizard/salary_active_wizard.py
T
2026-01-24 22:07:03 +08:00

43 lines
1.7 KiB
Python

# -*- coding: utf-8 -*-
from dateutil.relativedelta import relativedelta
from odoo import models, fields, api, _, SUPERUSER_ID
from odoo.exceptions import ValidationError, UserError
from odoo.exceptions import ValidationError
import calendar
from pypinyin import pinyin, Style
import math
import xlrd
import base64
import datetime
from datetime import datetime, timedelta
class SalaryActiveWizard(models.TransientModel):
_name = 'salary.active.wizard'
_description = '工资条查询'
active_line = fields.One2many('salary.active.line', 'active_id', string='明细')
select_time = fields.Selection([('1', '一月'), ('2', '二月'), ('3', '三月'), ('4', '四月'),
('5', '五月'), ('6', '六月'), ('7', '七月'), ('8', '八月'),
('9', '九月'), ('10', '十月'), ('11', '十一月'),
('12', '十二月')], string='月份',
default=lambda self: self._get_default_month())
select_year = fields.Selection(selection=[(str(i), str(i)) for i in range(2024, 2040)], string='年份')
select_name = fields.Char(compute='_get_default_name')
actual_wages = fields.Float(string='实发工资')
@api.depends('select_year', 'select_time')
def _get_default_name(self):
for rec in self:
rec.select_name = rec.select_year + '年' + rec.select_time + '月'
class SalaryActiveLine(models.TransientModel):
_name = 'salary.active.line'
_description = '明细'
sequence = fields.Char(string='序号', store=True)
active_id = fields.Many2one('salary.active.wizard', string='工资条')
name = fields.Char(string='工资条')
amount = fields.Float(string='金额')