43 lines
1.7 KiB
Python
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='金额') |