# -*- coding: utf-8 -*- from odoo import models, fields, api class SalaryItem(models.Model): """薪资项目 - 定义薪资单中的各个项目""" _name = 'yuthon.salary.item' _description = '薪资项目' _order = 'sequence, id' name = fields.Char(string='项目名称', required=True) code = fields.Char(string='项目编码', required=True) sequence = fields.Integer(string='排序', default=10) category = fields.Selection([ ('basic', '基本工资'), ('position', '岗位工资'), ('performance', '绩效工资'), ('class_hour', '课时费'), ('allowance', '津贴补贴'), ('deduction', '扣款项'), ('social', '社保公积金'), ('tax', '个人所得税'), ('other_income', '其他收入'), ('other_deduction', '其他扣款'), ], string='项目类别', required=True) item_type = fields.Selection([ ('income', '收入项'), ('deduction', '扣款项'), ], string='项目类型', required=True, default='income') calculation_method = fields.Selection([ ('fixed', '固定金额'), ('formula', '公式计算'), ('manual', '手动录入'), ], string='计算方式', required=True, default='fixed') formula = fields.Text(string='计算公式') is_taxable = fields.Boolean(string='是否计税', default=False) is_social_base = fields.Boolean(string='是否社保基数', default=False) is_required = fields.Boolean(string='必填项', default=False) active = fields.Boolean(string='启用', default=True) note = fields.Text(string='备注') _sql_constraints = [ ('code_uniq', 'unique(code)', '项目编码必须唯一!'), ]