# -*- coding: utf-8 -*- from odoo import api, fields, models, _ from odoo.exceptions import UserError, ValidationError from datetime import datetime import re class YuthonMedicalRule(models.Model): _name = 'yuthon.medical.rule' _description = '体检费规则' base_amount = fields.Float(string='基数金额') starting_age = fields.Integer(string='起始年龄') department_id = fields.Many2one("hr.department", string="部门") party_ids = fields.Many2many('yuthon.party.setting', string='甲方(用人单位)') extension_years = fields.Selection(selection=[(str(i), str(i)) for i in range(1, 13)], string='延续年限') increase_interval_years = fields.Integer(string='递增间隔(年)') increment_amount = fields.Float(string='递增金额') cap = fields.Float(string='封顶金额') allowance_unmarried_women = fields.Float(string='未婚女性补助') allowance_married_women = fields.Float(string='已婚女性补助') start_date = fields.Date(string='开始时间') end_date = fields.Date(string='结束时间') is_enable = fields.Boolean(string="是否启用", default=False, compute='compute_is_enable', store=True) company_id = fields.Many2one("res.company", string="公司", default=lambda self: self.env.company) @api.depends('start_date', 'end_date') def compute_is_enable(self): for rec in self: if rec.start_date and rec.end_date: if rec.start_date <= fields.Date.today() < rec.end_date: rec.is_enable = True else: rec.is_enable = False