[FIX] hr_fleet: count distinct vehicle_id per driver
closes odoo/odoo#39681 X-original-commit: c98a5041cdad149e14d84e6289a53fd42f617e16 Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com> Co-authored-by: Lucas Lefèvre <lul@odoo.com>
This commit is contained in:
@@ -26,8 +26,11 @@ class Employee(models.Model):
|
||||
def _compute_employee_cars_count(self):
|
||||
driver_ids = (self.mapped('user_id.partner_id') | self.sudo().mapped('address_home_id')).ids
|
||||
fleet_data = self.env['fleet.vehicle.assignation.log'].read_group(
|
||||
domain=[('driver_id', 'in', driver_ids)], fields=['driver_id'], groupby=['driver_id'])
|
||||
mapped_data = {m['driver_id'][0]: m['driver_id_count'] for m in fleet_data}
|
||||
domain=[('driver_id', 'in', driver_ids)], fields=['vehicle_id:array_agg'], groupby=['driver_id'])
|
||||
mapped_data = {
|
||||
group['driver_id'][0]: len(set(group['vehicle_id']))
|
||||
for group in fleet_data
|
||||
}
|
||||
for employee in self:
|
||||
drivers = employee.user_id.partner_id | employee.sudo().address_home_id
|
||||
employee.employee_cars_count = sum(mapped_data.get(pid, 0) for pid in drivers.ids)
|
||||
|
||||
Reference in New Issue
Block a user