Files
gzth/yuthon_catering/models/yuthon_catering_conf.py
T

44 lines
1.7 KiB
Python

# -*- coding: utf-8 -*-
from odoo import api, fields, models
class YuthonCateringConf(models.Model):
_name = 'yuthon.catering.conf'
_order = 'is_active desc, effective_date desc'
company_id = fields.Many2one(string='公司', comodel_name='res.company', required=True, default=lambda self: self.env.company)
employee_ids = fields.Many2many(string='员工', comodel_name='hr.employee')
employee_count = fields.Integer(string='人数', compute='_compute_employee_count', store=True)
effective_date = fields.Date(string='生效日期')
expiry_date = fields.Date(string='失效日期')
is_active = fields.Integer(string='是否生效', compute='_compute_is_active', store=True)
note = fields.Text(string='备注')
@api.depends('employee_ids')
def _compute_employee_count(self):
for record in self:
record.employee_count = len(record.employee_ids)
@api.depends('expiry_date')
def _compute_is_active(self):
for record in self:
record.is_active = 0 if record.expiry_date else 1
def action_change_employees(self):
"""变更员工按鈕:打开wizard"""
return {
'type': 'ir.actions.act_window',
'name': '变更员工',
'res_model': 'catering.conf.change.wizard',
'view_mode': 'form',
'target': 'new',
'context': {'active_id': self.id},
}
def action_fix_null_effective_date(self):
"""一次性修复:将没有生效日期的记录补为 2020-01-01,使其排到最下面"""
from datetime import date as date_cls
records = self.search([('effective_date', '=', False)])
if records:
records.write({'effective_date': date_cls(2020, 1, 1)})