Odoo18-Base/addons/hr/models/hr_departure_reason.py
2025-01-06 10:57:38 +07:00

29 lines
966 B
Python

# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import api, fields, models, _
from odoo.exceptions import UserError
class DepartureReason(models.Model):
_name = "hr.departure.reason"
_description = "Departure Reason"
_order = "sequence"
sequence = fields.Integer("Sequence", default=10)
name = fields.Char(string="Reason", required=True, translate=True)
reason_code = fields.Integer()
def _get_default_departure_reasons(self):
return {
'fired': 342,
'resigned': 343,
'retired': 340,
}
@api.ondelete(at_uninstall=False)
def _unlink_except_default_departure_reasons(self):
master_departure_codes = self._get_default_departure_reasons().values()
if any(reason.reason_code in master_departure_codes for reason in self):
raise UserError(_('Default departure reasons cannot be deleted.'))