Tableau de bord
Amayas Consulting · Fleet Management
2026
0
Sorties
0
Conducteurs
0
A venir
0
Effectuees
Activite mensuelle
Prochaines sorties
Sorties de la periode

Flotte de vehicules

Historique flotte 2023-2026 · 2026 : reservations passees + futures visibles

Nouvelle reservation

Verification automatique des dates d'entree/sortie collaborateur

Regles : 1/2 journee a 5 jours ouvres max · Pas de weekend · Retour siege le vendredi · Dates verifiees contre periode activite collaborateur
Collaborateur
Periode
Choisir un vehicule

Registre des reservations

2023-2026 · Avantage en nature vehicule · Historique complet

Chargement...
Ref. / AnneeCollaborateurVehicule Prise en chargeRestitution DureeRetour VE Situation

Planning 2026

Calendrier mensuel · Violet = reservation future · Gris = effectuee · WE = vehicules au siege

A venir En cours Effectuee WE = vehicules au siege

Collaborateurs

Chargement...

Collaborateur / Dates activiteFonction 2023202420252026 TotalA venirStatutConges

Historique

Dernieres entrees du registre · Violet = reservation future

Guide d'utilisation

Prise en main de l'outil de gestion de flotte Amayas

Amayas Fleet Management
Outil de gestion des vehicules de societe · Suivi des sorties · Avantage en nature vehicule
Tableau de bord
AnneeSelectionne l'annee via les boutons 2023-2026 pour filtrer les donnees.
MoisClique sur un mois pour affiner l'affichage aux sorties du mois.
KPIsSorties totales · Conducteurs distincts · Reservations a venir · Effectuees.
GrapheActivite mensuelle avec code couleur (orange = mois en cours, bleu = autres).
Nouvelle reservation
1. Selectionner le collaborateur — la fonction se remplit automatiquement.
2. Choisir les dates de depart et de retour (jours ouvrés uniquement).
3. Selectionner un vehicule disponible (en vert = libre sur la periode).
4. Cliquer sur Enregistrer pour valider.
Regles : 5 jours ouvres max · Retour siege le vendredi · Dates coherentes avec la periode d'activite du collaborateur.
Registre des reservations
Filtres : annee, mois, statut (a venir / effectuee / annulee) et recherche libre.
Colonnes : Ref · Collaborateur · Vehicule · Prise en charge · Restitution · Duree · Retour VE · Situation.
Effectuee Sortie passee · A venir Sortie future · Annulee
Export CSV : bouton en haut a droite pour telecharger le registre filtre.
Detail : cliquer sur pour voir la fiche complete d'une sortie.
Planning
Vue calendrier mensuelle de toutes les sorties vehicules.
Violet = reservation future
Gris = sortie effectuee
WE = weekend (vehicules au siege). Naviguer avec les fleches gauche/droite.
Flotte de vehicules
Liste des vehicules par annee avec leur historique de sorties.
Filtrer par annee (2023-2026) ou rechercher par marque, modele ou immatriculation.
Cliquer sur un vehicule pour voir le detail de toutes ses sorties et les prochaines reservations.
Badge N a venir = reservations futures sur ce vehicule.
Collaborateurs
Liste de tous les collaborateurs avec le nombre de sorties par annee.
Actif En poste · Sorti Contrat termine.
Cliquer sur pour filtrer le registre sur ce collaborateur.
Roles et permissions
Admin
Creer des reservations
Annuler des reservations
Gerer les periodes de conges
Exporter le registre CSV
Toutes les consultations
Utilisateur
Creer des reservations
Annuler des reservations
Gerer les periodes de conges
Exporter le registre CSV
Toutes les consultations
Lecteur
Creer des reservations
Annuler des reservations
Gerer les periodes de conges
Exporter le registre CSV
Toutes les consultations
Astuces & bonnes pratiques
'+ '
'+ '
Periodes de conges
'+ '
'+renderConges()+'
'+ '
'+ '
Ajouter une periode
'+ '
'+ '
'+ '
'+ '
'+ ''+ '
'; document.getElementById('mod-foot').innerHTML= ''+ ; document.getElementById('modal').classList.add('open'); } async function addConge(name){ const deb=document.getElementById('em-cdeb').value; const fin=document.getElementById('em-cfin').value; const lbl=document.getElementById('em-clbl').value; if(!deb||!fin){toast('Dates obligatoires','error');return;} if(fine.prenom+' '+e.nom===name); if(emp){if(!emp.conges)emp.conges=[];emp.conges.push({debut:deb,fin:fin,label:lbl||undefined});} toast('Conge ajoute','success'); openEM(name);renderC(); } async function delConge(name,idx){ await fetch('/api/employees/conges',{method:'DELETE',headers:{'Content-Type':'application/json'},body:JSON.stringify({nom:name,index:idx})}); const emp=EMPS.find(e=>e.prenom+' '+e.nom===name); if(emp&&emp.conges)emp.conges.splice(idx,1); toast('Conge supprime','success'); openEM(name);renderC(); } function filterC(name){ show('registre',document.querySelectorAll('.ni')[3]); document.getElementById('rq').value=name;renderR(); } // ===== HISTORIQUE ===== function renderH(){ const n=Math.min(35,RESA.length); const sub=document.getElementById('hist-sub'); if(sub)sub.textContent=n+' dernieres entrees du registre · Violet = reservation future'; const items=RESA.slice(-n).reverse().map(r=>({ text:'Reservation '+r.id+' · '+r.marque+' '+r.modele+' ('+r.immatriculation+') · '+r.prenom+' '+r.nom, meta:fd(r.date_debut)+' '+r.heure_depart+' → '+fd(r.date_fin)+' '+r.heure_retour, fut:r.date_debut>TODAY_STR })); document.getElementById('hist-list').innerHTML=items.map(h=> '
'+ '
'+h.text+'
'+ '
'+h.meta+'
' ).join(''); } // ===== UI ===== function show(name,btn){ document.querySelectorAll('.sec').forEach(s=>s.classList.remove('active')); document.querySelectorAll('.ni').forEach(b=>b.classList.remove('active')); document.getElementById('sec-'+name).classList.add('active'); if(btn)btn.classList.add('active'); const T={dashboard:'Tableau de bord',flotte:'Flotte vehicules',reserver:'Nouvelle reservation', registre:'Registre',planning:'Planning',collabs:'Collaborateurs',historique:'Historique',guide:"Guide d'utilisation"}; document.getElementById('page-title').textContent=T[name]||name; if(name==='flotte')renderFlotte(); if(name==='reserver'){selV=null;initCS();document.getElementById('r-start').value=TODAY_STR;document.getElementById('r-end').value=TODAY_STR;renderBV();} if(name==='registre')renderR(); if(name==='planning')renderCal(); if(name==='collabs')renderC(); if(name==='historique')renderH(); } function closeM(){document.getElementById('modal').classList.remove('open');} document.getElementById('modal').addEventListener('click',function(e){if(e.target===this)closeM();}); function toast(msg,type){ const c=document.getElementById('toasts'),t=document.createElement('div'); t.className='tst '+type; t.innerHTML=''+msg; c.appendChild(t);setTimeout(()=>t.remove(),4000); } function exportCSV(){ const yf=document.getElementById('ryr').value; window.location.href='/api/reservations/export'+(yf?'?year='+yf:''); } // ===== AUTH ===== let CURRENT_USER = null; const ROLE_LBL = {admin:'Administrateur',user:'Utilisateur',viewer:'Lecteur'}; async function checkAuth(){ try{ const r = await fetch('/api/auth/me'); if(!r.ok){ window.location.href='/login.html'; return; } const u = await r.json(); if(!u || !u.email){ window.location.href='/login.html'; return; } CURRENT_USER = u; const ini2 = s => (s||'').split(' ').map(w=>w[0]).join('').slice(0,2).toUpperCase(); document.getElementById('user-av').textContent = ini2(u.nom); document.getElementById('user-nom').textContent = u.nom; document.getElementById('user-role').textContent = ROLE_LBL[u.role]||u.role; if(u.role === 'viewer'){ document.getElementById('btn-reserver').style.display='none'; document.getElementById('nav-reserver').style.display='none'; } init(); }catch{ window.location.href='/login.html'; } } async function logout(){ await fetch('/api/auth/logout',{method:'POST'}); window.location.href='/login.html'; } // INIT checkAuth();