mirror of
https://github.com/bringout/oca-ocb-hr.git
synced 2026-04-23 11:52:01 +02:00
29 lines
1.1 KiB
Python
29 lines
1.1 KiB
Python
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from odoo import api, fields, models, _
|
|
from odoo.exceptions import UserError
|
|
|
|
|
|
class HrDepartureReason(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)
|
|
country_id = fields.Many2one('res.country', string='Country', default=lambda self: self.env.company.country_id)
|
|
country_code = fields.Char(related='country_id.code')
|
|
|
|
@api.model
|
|
def _get_default_departure_reasons(self):
|
|
return {self.env.ref(reason_ref) for reason_ref in (
|
|
'hr.departure_fired',
|
|
'hr.departure_resigned',
|
|
'hr.departure_retired',
|
|
)}
|
|
|
|
@api.ondelete(at_uninstall=False)
|
|
def _unlink_except_default_departure_reasons(self):
|
|
master_departure_codes = self._get_default_departure_reasons()
|
|
if any(reason in master_departure_codes for reason in self):
|
|
raise UserError(_('Default departure reasons cannot be deleted.'))
|