CRMconnect Azuvio · Docs

Workflow: Fleet Management — Viața unui Vehicul

Module implicate: Fleet (Vehicles · Bookings · Logbooks · Work Orders · Fuel · Maintenance · Inspections · Parts · Insurance) · HR Profile · Purchase · Expenses · Invoices
Cine îl folosește: Fleet Manager · Șoferi (Driver role) · Financiar · Mentenanță
Durata tipică: Continuu (booking zilnic) + ciclu lunar (costuri) + ciclu anual (inspecții, asigurări)

Overview

Modulul Fleet gestionează întregul ciclu de viață al unui vehicul de companie: înregistrare, asignare șofer, rezervări (booking), logbook de deplasare, mentenanță, piese de schimb, combustibil, inspecții și asigurări. Costurile de mentenanță sunt trasate financiar prin Expenses (from_fleet=1), iar rezervările facturate prin Invoices (from_fleet=1).

Dependențe obligatorii: Modulele hr_profile și purchase trebuie să fie active. Fleet verifică la fiecare încărcare — dacă unul lipsește, redirecționează cu eroare. Fără aceste module, Fleet nu funcționează.

Note despre Assets: Nu există o legătură funcțională între modulul Fleet și modulul Assets (tblassets). Stub-urile de integrare există în cod dar metodele referite nu sunt implementate.


Diagrama fluxului

[CONFIGURARE INIȚIALĂ — admin]
  │
  ├── Vehicle Groups + Vehicle Types
  ├── Garages (+ Maintenance Teams)
  ├── Insurance Categories / Types / Status / Companies
  ├── Part Groups + Part Types
  ├── Inspection Forms (cu întrebări și criterii de eșec)
  ├── Criteria (pentru beneficii/penalități șoferi)
  └── Atribuire rol 'Fleet: Driver' angajaților care conduc
  │
  ↓
[ÎNREGISTRARE VEHICUL]
  │
  ├── Vehicul nou: tip, grup, număr înmatriculare, VIN, date tehnice
  ├── Asigurare adăugată: categorie, tip, companie, valabilitate, sumă
  └── Piese inventariate și asignate vehiculului
  │
  ↓
[BOOKING — REZERVARE]
  │
  ├── Client sau intern depune rezervare (Fleet_client controller)
  ├── Status inițial: new
  ├── Fleet Manager aprobă manual: new → approved
  │     (sau: rejected / processing)
  └── Booking confirmat → Amount setat pentru facturare ulterioară
  │
  ↓
[LOGBOOK — EXECUȚIE DEPLASARE]
  │
  ├── Logbook creat pentru booking confirmat: vehicul + șofer + dată
  ├── Time Cards adăugate: start_time / end_time per sesiune de lucru
  ├── Status logbook: new → processing → complete
  └── Înregistrare combustibil: odometru, litri, preț, tip, furnizor
  │
  ↓
[MENTENANȚĂ / WORK ORDER (dacă apare defecțiune sau service planificat)]
  │
  ├── Work Order creat: vehicul, furnizor, odometru intrare/ieșire
  ├── Status: open → in_progress → parts_ordered → complete
  ├── Piese consumate adăugate ca Work Order Details (part_id, qty, price)
  ├── La finalizare: Create Expense → Expense creat cu category 'Fleet: Work Order'
  │     from_fleet=1 · vendor = furnizorul din Work Order
  └── (Alternativă mentenanță simplă: Maintenance record fără Work Order)
  │
  ↓
[INSPECȚIE (periodică sau la incident)]
  │
  ├── Inspecție creată pe baza unui Inspection Form configurat
  ├── Rezultate completate per întrebare (answer, boxdescriptionid)
  ├── Răspunsuri cu is_fail=1 → inspecție marcată ca eșuată
  └── Inspecțiile pot fi recurente (recurring_type, cycles)
  │
  ↓
[FACTURARE BOOKING]
  │
  ├── Din booking finalizat: butonul Create Invoice
  ├── Invoice creat automat cu amount din booking + from_fleet=1
  └── Factură urmărită și plătită ca orice invoice standard
  │
  ↓
[RAPOARTE & COSTURI]
  │
  ├── Fleet → Transactions: toate invoice + expense cu from_fleet=1
  ├── Fleet → Reports: Profit & Loss · Sales Chart per vehicul
  └── Beneficii/Penalități șoferi: înregistrate cu criteriu + sumă

[VEHICUL SCOS DIN SERVICIU → out_of_service_date + odometru final]

Pas cu pas

1. Configurare inițială (admin)

Unde: /admin/fleet → Settings

Ordinea de configurare contează — unele entități depind de altele:

1a. Lookup-uri vehicule

Unde: Settings → Vehicle Groups + Vehicle Types

Creați cel puțin un grup (ex: „Autoturisme", „Utilitare") și un tip (ex: „Sedan", „SUV", „Camion"). Sunt obligatorii la crearea unui vehicul.

1b. Garaje

Unde: Settings → Garages → Add Garage

Câmpuri: name, country, city, address. După creare, puteți adăuga Maintenance Team: angajați (staff) asignați acelui garaj pentru mentenanță.

1c. Insurance setup (4 tabele separate)

Unde: Settings → Insurance Categories / Insurance Types / Insurance Status / Insurance Company

Toate 4 sunt necesare înainte de adăugarea unei polițe de asigurare pe vehicul.

1d. Part Groups + Part Types

Unde: Settings → Part Groups + Part Types

Necesare înainte de crearea pieselor de inventar.

1e. Inspection Forms

Unde: Settings → Inspection Forms → New Form

Fiecare formular are:

  • Întrebări cu tipuri de răspuns (checkbox, text, etc.)
  • is_fail setat pe răspunsurile care marchează inspecția ca eșuată

Formularele pot fi configurate ca recurente (recurring=1, recurring_type, cycles).

1f. Criteria (pentru beneficii/penalități)

Unde: Settings → Criteria → Add Criteria

Utilizate în Fleet → Benefits & Penalties pentru înregistrarea formală a recompenselor sau penalităților șoferilor.

1g. Atribuire rol șofer

Unde: /admin/staff → editare staff → Roles → bifați „Fleet: Driver"

Rolul Fleet: Driver este creat automat la instalarea modulului. Numai staff-ul cu acest rol apare în dropdown-urile de șofer din Fleet (Assignments, Logbooks, Work Orders etc.).


2. Înregistrare vehicul

Unde: /admin/fleet → Vehicles → Add Vehicle

Câmpuri obligatorii:

Câmp Descriere
name Denumire/identificator vehicul
vehicle_type_id FK → fleet_vehicle_types
vehicle_group_id FK → fleet_vehicle_groups
license_plate Număr înmatriculare

Câmpuri recomandate:

Câmp Descriere
vin VIN (serie șasiu)
make / model / year Date identificare
fuel_type Tip combustibil
in_service_date Data intrării în parcul auto
odometer Kilometraj curent
estimated_service_life_in_months Durata estimată de serviciu

Asigurare vehicul: Unde: fișa vehiculului → tab Insurance → Add Insurance

Câmp Descriere
insurance_category_id FK → fleet_insurance_categories
insurance_type_id FK → fleet_insurance_types
insurance_company_id FK → fleet_insurance_company
insurance_status_id FK → fleet_insurance_status
start_date / end_date Valabilitate
amount Prima de asigurare

Piese asignate vehiculului: Unde: /admin/fleet → Parts → Add Part → asignare vehicul


3. Asignare șofer la vehicul

Unde: /admin/fleet → Vehicle Assignments → Add Assignment

Câmp Descriere
driver_id Staff cu rolul Fleet: Driver
vehicle_id FK → fleet_vehicles
start_time / end_time Intervalul asignării
starting_odometer / ending_odometer Kilometraj la preluare/predare

Un vehicul poate avea mai multe asignări succesive. Istoricul se păstrează integral.


4. Booking — rezervare vehicul

Unde: client extern → portal /clients/fleet (Fleet_client controller) sau admin → /admin/fleet/bookings

Statusuri booking (fleet_bookings.status):

Status Culoare Semnificație
new Albastru Cerere nouă, neprocessată
approved Verde-teal Aprobat de fleet manager
rejected Verde Respins
processing Albastru În curs de procesare
complete Verde Finalizat
cancelled Roșu Anulat

Important: Nu există flux de aprobare automatizat. Coloana approved (INT) există în tabel dar nu este citită sau scrisă de nicio metodă activă din cod. Tranziția statusului este exclusiv manuală — fleet manager-ul schimbă statusul explicit.

Permisiune necesară pentru schimbare status: service_management → edit SAU is_admin().

Câmpuri cheie booking:

Câmp Descriere
subject Descriere rezervare
contactid Contactul care face rezervarea
delivery_date Data livrării
receipt_address / delivery_address Adrese
amount Suma de facturat (completată de admin)

5. Logbook — execuție deplasare

Unde: /admin/fleet → Work Performance (Logbooks) → Add

Logbook-ul documentează execuția unui booking sau o deplasare independentă.

Statusuri logbook (fleet_logbooks.status):

Status Semnificație
new Înregistrat, nestartat
processing În curs
complete Finalizat
cancelled Anulat

Time Cards: per logbook se adaugă sesiuni de lucru cu start_time și end_time (fleet_time_cards). Permit calculul orelor totale.

Combustibil: Unde: /admin/fleet → Fuel History → Add

Câmp Descriere
vehicle_id Vehiculul alimentat
fuel_time Data/ora alimentării
odometer Km la alimentare
gallons Cantitate (litri sau gallons)
price Cost total
fuel_type Tipul combustibilului
vendor_id Furnizorul (stație)

6. Work Order — mentenanță cu piese

Unde: /admin/fleet → Work Orders → New Work Order

Statusuri work order (fleet_work_orders.status):

Status Semnificație
open Deschis (implicit la creare)
in_progress Lucrare în curs
parts_ordered Piese comandate, așteptare
complete Finalizat

Câmpuri cheie:

Câmp Descriere
vehicle_id Vehiculul reparat
vendor_id Furnizorul service
odometer_in / odometer_out Km la intrare/ieșire
issue_date / start_date / complete_date Datele lucrării
work_requested Descrierea lucrărilor cerute
total Cost total calculat din liniile de piese

Piese consumate (Work Order Details): Adăugați linii cu part_id (din inventarul Fleet), qty, pricetotal se calculează automat.

Generare cheltuială din Work Order (status=complete): Butonul Create Expense din Work Order → crează automat:

  • tblexpenses cu from_fleet=1, amount=work_order.total, category='Fleet: Work Order', vendor_id=work_order.vendor_id
  • Work Order primește expense_id în câmpul de legătură

7. Inspecție vehicul

Unde: /admin/fleet → Inspections → New Inspection

Selectați vehiculul + Inspection Form. Completați răspunsurile per întrebare. Răspunsurile marcate is_fail=1 marchează inspecția ca eșuată automat.

Inspecțiile pot fi setate ca recurente (recurring=1): sistemul generează automat viitoarele inspecții conform recurring_type și cycles.


8. Facturare booking

Unde: /admin/fleet → Bookings → fișa booking → Create Invoice

Metoda create_invoice_by_booking($id) generează automat:

  • O factură standard (tblinvoices) cu amount din booking și from_fleet=1
  • Booking-ul primește invoice_id și invoice_hash în câmpurile de legătură

Factura generată apare și în /admin/invoices și poate fi gestionată ca orice factură standard (trimitere, plată, reminder, eFactura).


9. Rapoarte și costuri

Unde: /admin/fleet → Transactions / Reports

Secțiune Ce afișează
Transactions Toate tblinvoices și tblexpenses cu from_fleet=1
Profit & Loss Chart Venituri (invoices from_fleet) vs. Cheltuieli (expenses from_fleet)
Sales Chart Venituri per perioadă pentru vehiculele fleet

Permisiuni necesare

Permisiune Entitate
fleet_vehicle → view/create/edit/delete Vehicule
fleet_driver → view/create/edit/delete Șoferi
fleet_vehicle_assignment → create/edit Asignări vehicul-șofer
fleet_maintenance → view/create/edit/delete Mentenanță simplă
fleet_fuel → view/create/edit/delete Combustibil
fleet_inspection → view/create/edit/delete Inspecții
fleet_bookings → view/create/edit/delete Rezervări
fleet_work_orders → view/create/edit/delete Work Orders
fleet_work_performance → view/create/edit/delete Logbooks + Time Cards
fleet_event → view/create/edit/delete Evenimente
fleet_insurance → view/create/edit/delete Asigurări
fleet_benefit_and_penalty → view/create/edit/delete Beneficii/Penalități
fleet_part → view/create/edit/delete Piese
fleet_garage → create/edit/delete Garaje
fleet_transaction → view Raport costuri
fleet_setting → view/create/edit/delete Configurare
service_management → edit SAU is_admin() Schimbare status booking/logbook/work order

Gotchas

Problemă Cauză Soluție
Modulul Fleet nu se încarcă, eroare redirect hr_profile sau purchase modul inactiv Activați ambele module din /admin/modules
Șoferul nu apare în dropdown Nu are rolul Fleet: Driver asignat Staff → Roles → bifați Fleet: Driver
Booking nu poate fi aprobat Lipsesc permisiunile service_management → edit Asignați permisiunea sau acordați admin
Work Order nu generează Expense Work Order nu este pe status complete Finalizați Work Order-ul (status=complete) înainte de Create Expense
Vehiculul nu apare în booking Nu are Vehicle Type sau Vehicle Group setat Completați ambele câmpuri pe fișa vehiculului
Factura din booking nu apare în Invoices from_fleet=1 filtru — factura există dar cu flag fleet Factura apare normal în /admin/invoices — filtrul Fleet Transactions o arată separat

Referințe module

  • Fleet — documentație modul
  • Assets — managementul activelor (separat de Fleet)
  • Expenses — cheltuielile generate de Work Orders
  • Invoices — facturile generate din Bookings
  • HR — Staff — asignare rol Fleet: Driver
Tip

Verificați raportul Memento-uri Reînnoire Vehicule săptămânal — consolidează toate datele de expirare ale asigurărilor și documentelor într-un singur calendar astfel nimic nu expiră neobservat și aveți timp de avans pentru reînnoire.

Note

Marcați vehiculele retrase ca Inactive în loc să le ștergeți. Ștergerea rupe pista de audit pe toate rezervările, comenzile de lucru, jurnalele de combustibil și polițele de asigurare legate. Înregistrările istorice rămân accesibile numai dacă înregistrarea vehiculului este păstrată.