Odoo-Tutorial/cenhomes_student/models/models_tuyen_sinh.py
2025-03-04 16:53:07 +07:00

96 lines
3.0 KiB
Python

from odoo import models, fields, api
from .models_constants import TuyenSinh
class CenhomesPhongTuyenSinh(models.Model):
_name = "cenhomes.phong_tuyen_sinh"
_description = "Phòng tuyển snh"
name = fields.Char(string="Tên", required=True)
nhan_vien_ids = fields.One2many(
comodel_name="cenhomes.nhan_vien_tuyen_sinh",
inverse_name="phong_tuyen_sinh",
string="Nhân viên",
)
truong_phong = fields.Char(string="Trưởng Phòng")
trang_thai = fields.Selection(
selection=TuyenSinh.trang_thai,
string="Trạng Thái",
default="dang_tuyen_sinh",
required=True,
)
def name_get(self):
return [(record.id, record.name) for record in self]
class CenhomesNhanVienTuyenSinh(models.Model):
_name = "cenhomes.nhan_vien_tuyen_sinh"
_description = "Nhân viên tuyển sinh"
name = fields.Char(string="Tên", required=True)
phong_tuyen_sinh = fields.Many2one(
comodel_name="cenhomes.phong_tuyen_sinh",
string="Phòng",
ondelete="cascade",
)
thoi_gian_bat_dau = fields.Date(string="Thời Gian Bắt Đầu Công Tác")
trang_thai = fields.Selection(
selection=TuyenSinh.trang_thai,
string="Trạng Thái",
default="dang_tuyen_sinh",
required=True,
)
doanh_so = fields.Float(string="Doanh Số")
def name_get(self):
return [(record.id, record.name) for record in self]
class CenhomesQuanHeTuyenSinhHocVien(models.Model):
_name = "cenhomes.quan_he_tuyen_sinh_hoc_vien"
_description = "Quan Hệ Tuyển Sinh - Học Viên"
hoc_vien_id = fields.Many2one(
comodel_name="cenhomes.hoc_vien",
string="Học viên",
ondelete="cascade",
required=True,
)
mshv = fields.Char(
string="Mã Số Học Viên",
related="hoc_vien_id.mshv",
store=True,
readonly=True,
)
nhan_vien_tuyen_sinh_id = fields.Many2one(
comodel_name="cenhomes.nhan_vien_tuyen_sinh",
string="Nhân Viên Tuyển Sinh Phụ Trách",
required=True,
ondelete="cascade",
)
ngay_bat_dau = fields.Date(string="Ngày Bắt Đầu Phụ Trách")
trang_thai = fields.Selection(
selection=TuyenSinh.trang_thai_phu_trach,
string="Trạng Thái",
default="dang_ho_tro",
)
ban_giao = fields.Boolean(string="Bàn Giao", default=False)
@api.model
def create(self, vals):
if vals.get("ban_giao"):
vals["trang_thai"] = "da_ban_giao"
return super(CenhomesQuanHeTuyenSinhHocVien, self).create(vals)
def write(self, vals):
if "ban_giao" in vals and vals["ban_giao"]:
vals["trang_thai"] = "da_ban_giao"
return super(CenhomesQuanHeTuyenSinhHocVien, self).write(vals)
def action_ban_giao(self):
"""
Hành động thực hiện bàn giao qua giao diện.
"""
self.write({"ban_giao": True, "trang_thai": "da_ban_giao"})