---
title: "Fleet"
description: "Vehículos y conductores. Cada aplicación es un módulo sobre un único modelo de datos."
canonical: "https://obop.dev/es/apps/fleet/"
lang: "es"
---

# Fleet

## Para qué sirve

Keep a register of company vehicles, who drives them and their service history. It records status and services; it does not compute running costs.

## Qué hace y qué no hace el paquete

Vehicles, drivers and service history for a small fleet. Tracks status and service records; it does not compute running costs or fuel use.

## Modelos

### `fleet_vehicle`

A vehicle the business operates

Grupo de lectura: `fleet.user`. Grupo de escritura: `fleet.manager`.

| Campo | Tipo | Clase de datos | Datos personales | Grupo | Los agentes ven | Descripción |
|---|---|---|---|---|---|---|
| `plate` | text | `none` | no | `fleet.user` | en claro | Registration plate |
| `model` | text | `none` | no | `fleet.user` | en claro | Make and model, for example Renault Master |
| `vin` | text | `none` | no | `fleet.user` | en claro | Vehicle identification number (chassis number) |
| `fuel` | select (petrol, diesel, hybrid, electric, other) | `none` | no | `fleet.user` | en claro | Fuel or drive type: petrol, diesel, hybrid, electric, other |
| `odometer_km` | number | `none` | no | `fleet.user` | en claro | Last known odometer reading in kilometres |
| `acquired_on` | date | `none` | no | `fleet.user` | en claro | Date the vehicle entered the fleet (YYYY-MM-DD) |
| `driver` | text | `internal` | sí | `fleet.user` | enmascarado | Name of the driver currently using the vehicle, as free text |
| `driver_id` | ref → fleet_vehicle_driver | `none` | no | `fleet.user` | en claro | Driver record currently assigned to the vehicle |
| `state` | select (available, in_service, maintenance, retired) | `none` | no | `fleet.user` | en claro | Availability: available, in_service, maintenance, retired |

### `fleet_vehicle_driver`

A person authorised to drive fleet vehicles

Grupo de lectura: `fleet.user`. Grupo de escritura: `fleet.manager`.

| Campo | Tipo | Clase de datos | Datos personales | Grupo | Los agentes ven | Descripción |
|---|---|---|---|---|---|---|
| `name` | text | `public_directory` | sí | `fleet.user` | enmascarado | Full name of the driver |
| `phone` | text | `internal` | sí | `fleet.user` | enmascarado | Work phone number of the driver |
| `licence_number` | text | `confidential_hr` | sí | `fleet.manager` | retenido | Driving licence number |
| `licence_expiry` | date | `confidential_hr` | sí | `fleet.manager` | retenido | Date the driving licence expires (YYYY-MM-DD) |
| `state` | select (active, suspended) | `none` | no | `fleet.user` | en claro | Driver status: active, suspended |

### `fleet_vehicle_service`

A maintenance, repair or inspection job on a vehicle

Grupo de lectura: `fleet.user`. Grupo de escritura: `fleet.user`.

| Campo | Tipo | Clase de datos | Datos personales | Grupo | Los agentes ven | Descripción |
|---|---|---|---|---|---|---|
| `vehicle_id` | ref → fleet_vehicle | `none` | no | `fleet.user` | en claro | The vehicle serviced |
| `kind` | select (maintenance, repair, inspection, tyres, other) | `none` | no | `fleet.user` | en claro | Type of job: maintenance, repair, inspection, tyres, other |
| `service_on` | date | `none` | no | `fleet.user` | en claro | Date of the job (YYYY-MM-DD) |
| `odometer_km` | number | `none` | no | `fleet.user` | en claro | Odometer reading in kilometres when serviced |
| `cost` | money | `none` | no | `fleet.user` | en claro | Total invoiced by the workshop (minor currency units, e.g. cents) |
| `workshop` | text | `none` | no | `fleet.user` | en claro | Name of the workshop or garage |
| `notes` | longtext | `none` | no | `fleet.user` | en claro | What was done or found |
| `state` | select (planned, done, cancelled) | `none` | no | `fleet.user` | en claro | Job status: planned, done, cancelled |

## Flujos de trabajo

### `fleet_vehicle`

| Acción | Mueve | Quién puede ejecutarla | Aprobación |
|---|---|---|---|
| `fleet_vehicle.dispatch` | state: available → in_service | `fleet.manager` | no |
| `fleet_vehicle.return_to_pool` | state: in_service → available | `fleet.manager` | no |
| `fleet_vehicle.retire` | state: available → retired | `fleet.approver` | sí |

### `fleet_vehicle_driver`

| Acción | Mueve | Quién puede ejecutarla | Aprobación |
|---|---|---|---|
| `fleet_vehicle_driver.suspend` | state: active → suspended | `fleet.manager` | no |
| `fleet_vehicle_driver.reactivate` | state: suspended → active | `fleet.manager` | no |

### `fleet_vehicle_service`

| Acción | Mueve | Quién puede ejecutarla | Aprobación |
|---|---|---|---|
| `fleet_vehicle_service.complete` | state: planned → done | `fleet.user` | no |
| `fleet_vehicle_service.cancel` | state: planned → cancelled | `fleet.user` | no |

## Grupos de permisos

Grupos que usa esta aplicación:

- `fleet.approver`
- `fleet.manager`
- `fleet.user`

## Pasos con aprobación

Pasos que un agente solo puede proponer:

- `fleet_vehicle.retire`

## Qué pueden y qué no pueden hacer los agentes

Un agente puede leer, buscar, crear y actualizar registros de esta aplicación, y ejecutar las acciones que no requieren aprobación, dentro de los grupos de permisos de su token.

Solo puede proponer estos pasos, y una persona debe aprobarlos: `fleet_vehicle.retire`, `fleet_vehicle.delete`, `fleet_vehicle_driver.delete`, `fleet_vehicle_service.delete`.

Los datos personales se enmascaran como tokens marcadores: `fleet_vehicle.driver`, `fleet_vehicle_driver.name`, `fleet_vehicle_driver.phone`.

Estos campos se retienen por completo y los agentes no los ven: `fleet_vehicle_driver.licence_number`, `fleet_vehicle_driver.licence_expiry`.

## Dependencias

Ninguna.

## Instalación

Instálala desde la aplicación Customize (Marketplace) o desde la línea de comandos:

```bash
obop modules install-from fleet
```

Requiere una base de datos y derechos de administrador.

## Crea la tuya

[La guía de módulos explica cómo se escriben aplicaciones como esta](/es/docs/reference/module-manifest/)
