Files
Odoo-Tutorial/hr_managment/models/employee.py
T
2025-06-06 17:38:33 +07:00

35 lines
1.5 KiB
Python

from odoo import models, fields, api
from datetime import date
class Employee(models.Model):
_name = 'hr.employee'
_description = 'Nhân viên'
name = fields.Char(string='Tên nhân viên', required=True)
employee_code = fields.Char(string='Mã nhân viên', required=True, copy=False, readonly=True, default='New')
job_title = fields.Char(string='Chức vụ')
date_of_birth = fields.Date(string='Ngày sinh')
hire_date = fields.Date(string='Ngày vào làm')
active = fields.Boolean(string='Còn làm việc', default=True)
age = fields.Integer(string='Tuổi', compute='_compute_age')
@api.depends('date_of_birth')
def _compute_age(self):
for rec in self:
if rec.date_of_birth:
today = date.today()
rec.age = today.year - rec.date_of_birth.year
else:
rec.age = 0
@api.model
def create(self, vals):
if vals.get('employee_code', 'New') == 'New':
# Tạo mã tự động, ví dụ: EMP0001
last_employee = self.env['hr.employee'].search([], order='id desc', limit=1)
if last_employee:
last_code = last_employee.employee_code or 'EMP0000'
# Lấy phần số sau "EMP" và tăng lên 1
number = int(last_code.replace('EMP', '')) + 1
vals['employee_code'] = 'EMP%04d' % number
else:
vals['employee_code'] = 'EMP0001'
return super(Employee, self).create(vals)