1) If the contract is running when the employee is archived, we move the contract in the expired stage and we set the date of the archive wizard to the contract's end date. 2) If the contract has expired when the employee is archived, do not change the date. task-3373275 closes odoo/odoo#130714 X-original-commit: e84106cdc5ae8015ee0c15a6c842d91dc2da1343 Signed-off-by: Sofie Gvaladze (sgv) <sgv@odoo.com> Signed-off-by: Kuldeep Singh (kusi) <kusi@odoo.com>
35 lines
1.5 KiB
Python
35 lines
1.5 KiB
Python
# -*- 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),
|
|
)
|
|
|
|
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
|