Improve the departure wizard form view aswell as the flow when using it. Removes the confirmation dialog when archiving an employee to directly display the departure wizard. Also changes departure reason to an html field instead of pure text. Task ID: 2575279 closes odoo/odoo#72367 Related: odoo/enterprise#19116 Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
29 lines
1.4 KiB
Python
29 lines
1.4 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from odoo import api, fields, models
|
|
|
|
|
|
class HrDepartureWizard(models.TransientModel):
|
|
_inherit = 'hr.departure.wizard'
|
|
|
|
release_campany_car = fields.Boolean("Release Company Car", default=True,
|
|
help="Release the company car.")
|
|
|
|
def action_register_departure(self):
|
|
super(HrDepartureWizard, self).action_register_departure()
|
|
if self.release_campany_car:
|
|
self._free_campany_car()
|
|
|
|
def _free_campany_car(self):
|
|
"""Find all fleet.vehichle.assignation.log records that link to the employee, if there is no
|
|
end date or end date > departure date, update the date. Also check fleet.vehicle to see if
|
|
there is any record with its dirver_id to be the employee, set them to False."""
|
|
drivers = self.employee_id.user_id.partner_id | self.employee_id.sudo().address_home_id
|
|
assignations = self.env['fleet.vehicle.assignation.log'].search([('driver_id', 'in', drivers.ids)])
|
|
for assignation in assignations:
|
|
if self.departure_date and (not assignation.date_end or assignation.date_end > self.departure_date):
|
|
assignation.write({'date_end': self.departure_date})
|
|
cars = self.env['fleet.vehicle'].search([('driver_id', 'in', drivers.ids)])
|
|
cars.write({'driver_id': False, 'driver_employee_id': False})
|