diff --git a/addons/l10n_be_hr_payroll_fleet/models/hr_contract.py b/addons/l10n_be_hr_payroll_fleet/models/hr_contract.py
index 012cc24ce56..70fb251436f 100644
--- a/addons/l10n_be_hr_payroll_fleet/models/hr_contract.py
+++ b/addons/l10n_be_hr_payroll_fleet/models/hr_contract.py
@@ -18,6 +18,15 @@ class HrContract(models.Model):
new_car = fields.Boolean('Request a new car')
new_car_model_id = fields.Many2one('fleet.vehicle.model', string="Model", domain=lambda self: self._get_possible_model_domain())
max_unused_cars = fields.Integer(compute='_compute_max_unused_cars')
+ acquisition_date = fields.Date(related='car_id.acquisition_date')
+ car_value = fields.Float(related="car_id.car_value")
+ fuel_type = fields.Selection(related="car_id.fuel_type")
+ co2 = fields.Float(related="car_id.co2")
+ driver_id = fields.Many2one('res.partner', related="car_id.driver_id")
+ car_open_contracts_count = fields.Integer(compute='_compute_car_open_contracts_count')
+ recurring_cost_amount_depreciated = fields.Float(
+ compute='_compute_recurring_cost_amount_depreciated',
+ inverse="_inverse_recurring_cost_amount_depreciated")
@api.depends('car_id', 'new_car', 'new_car_model_id', 'car_id.total_depreciated_cost',
'car_id.atn', 'new_car_model_id.default_atn', 'new_car_model_id.default_total_depreciated_cost',
@@ -32,6 +41,29 @@ class HrContract(models.Model):
contract.car_atn = contract.new_car_model_id.default_atn
contract.company_car_total_depreciated_cost = contract.new_car_model_id.default_total_depreciated_cost
+ @api.depends('car_id.log_contracts.state')
+ def _compute_car_open_contracts_count(self):
+ for contract in self:
+ contract.car_open_contracts_count = len(contract.car_id.log_contracts.filtered(
+ lambda c: c.state == 'open').ids)
+
+ @api.depends('car_open_contracts_count', 'car_id.log_contracts.recurring_cost_amount_depreciated')
+ def _compute_recurring_cost_amount_depreciated(self):
+ for contract in self:
+ if contract.car_open_contracts_count == 1:
+ contract.recurring_cost_amount_depreciated = contract.car_id.log_contracts.filtered(
+ lambda c: c.state == 'open'
+ ).recurring_cost_amount_depreciated
+ else:
+ contract.recurring_cost_amount_depreciated = 0.0
+
+ def _inverse_recurring_cost_amount_depreciated(self):
+ for contract in self:
+ if contract.car_open_contracts_count == 1:
+ contract.car_id.log_contracts.filtered(
+ lambda c: c.state == 'open'
+ ).recurring_cost_amount_depreciated = contract.recurring_cost_amount_depreciated
+
@api.depends('name')
def _compute_available_cars_amount(self):
for contract in self:
diff --git a/addons/l10n_be_hr_payroll_fleet/views/hr_contract_views.xml b/addons/l10n_be_hr_payroll_fleet/views/hr_contract_views.xml
index 184772fc1e5..1701a79b3f6 100644
--- a/addons/l10n_be_hr_payroll_fleet/views/hr_contract_views.xml
+++ b/addons/l10n_be_hr_payroll_fleet/views/hr_contract_views.xml
@@ -18,7 +18,18 @@
-
+
+
+
+
+
+
+
+
+
+
+
+