# -*- coding: utf-8 -*- # Part of Odoo. See LICENSE file for full copyright and licensing details. from odoo import fields, models class HrDepartureWizard(models.TransientModel): _name = 'hr.departure.wizard' _description = 'Departure Wizard' def _get_employee_departure_date(self): return self.env['hr.employee'].browse(self.env.context['active_id']).departure_date def _get_default_departure_date(self): departure_date = False if self.env.context.get('active_id'): departure_date = self._get_employee_departure_date() return departure_date or fields.Date.today() departure_reason_id = fields.Many2one("hr.departure.reason", default=lambda self: self.env['hr.departure.reason'].search([], limit=1), required=True) departure_description = fields.Html(string="Additional Information") departure_date = fields.Date(string="Departure Date", required=True, default=_get_default_departure_date) employee_id = fields.Many2one( 'hr.employee', string='Employee', required=True, default=lambda self: self.env.context.get('active_id', None), ) archive_private_address = fields.Boolean('Archive Private Address', default=True) def action_register_departure(self): employee = self.employee_id if self.env.context.get('toggle_active', False) and employee.active: employee.with_context(no_wizard=True).toggle_active() employee.departure_reason_id = self.departure_reason_id employee.departure_description = self.departure_description employee.departure_date = self.departure_date if self.archive_private_address: # ignore contact links to internal users private_address = employee.address_home_id if private_address and private_address.active and not self.env['res.users'].search([('partner_id', '=', private_address.id)]): private_address.sudo().toggle_active()