Planification
{{ dirtyCount }} non publié(s)
Semaine précédente
Semaine suivante
Annuler (Ctrl+Z)
Rétablir (Ctrl+Shift+Z)
Enregistrer la semaine comme modèle…
Appliquer
{{ tm.name }}
Notifier les techs par SMS à la publication
guard(loadWeek)" />
{{ visibleTechs.length }} / {{ techs.length }} techs
Demande — effectif requis par créneau
Coche les jours fériés (F) dans l'en-tête · fin de semaine = sam/dim (auto). Si Durée/job > 0, les nombres = nb de jobs → effectif = ⌈jobs × durée ÷ heures du shift⌉ (compétences requises = colonne Compétences).
Modèle Zone Compétences Durée/job (h) Semaine Fin de sem. Férié
Aucune ligne — clique « Ajouter ».
{{ solverStats.assignments }} assignations · {{ solverStats.shortfall ? (solverStats.shortfall + ' poste(s) non couvert(s)') : 'couverture complète' }} · équité {{ solverStats.spread }} h · {{ solverStats.ms }} ms
{{ selection.length }} cellule(s) — assigner :
Légende :
{{ code(t) }} {{ t.template_name }}
P pause
· libre
J modifié (non publié)
· glisser = sélection · shift+clic = bloc · clic en-tête = colonne · clic nom = rangée · ctrl+clic = +1
Technicien
{{ d.dow }}
{{ d.dnum }}
{{ gapByDay[d.iso] }}
Marquer férié F
{{ isPaused(t) ? 'Réactiver' : 'Pause' }}
{{ t.name }}
{{ t.group }}
{{ effLabel(t.efficiency) }}
· {{ hoursOf(t.id) }}h
{{ cellCode(a) }}{{ cellHours(a) }}
P
·
Aucun technicien (filtre ?).
👥 Effectif {{ stat(d.iso).staff || '' }}
⏱ Heures {{ stat(d.iso).hours || '' }}
🎫 Tickets {{ stat(d.iso).tickets || '' }}
💲 Coût ({{ Math.round(weekCost) }} $/sem) {{ dayCost(d.iso) || '' }}
Couverture — dispo vs requis
Aucun besoin défini. Utilise « Demande » → « Appliquer à la semaine ».
Créneau {{ d.dow }}
{{ d.dnum }}
{{ row.label }} {{ covText(row.key, d.iso) }}
Types de shift
{{ calcHours(newTpl.start, newTpl.end) }} h
Congés & disponibilités
Technicien Type Du Au Motif Statut
{{ l.technician_name || l.technician }} {{ l.availability_type }} {{ l.from_date }} {{ l.to_date }} {{ l.reason }}
{{ l.status }}
Aucune demande.
Nouvelle demande
Une demande approuvée rend le tech indisponible pour le solveur sur ces dates.
Équipe — cadence & coût
Cadence : 1.00 normal · 1.10 = +10 % (plus lent) · 0.90 = −10 % (plus rapide). Coût chargé/h = salaire × (1 + charges %) + autres (véhicule, outils, frais). Le solveur préfère les techs rapides et moins coûteux.
Technicien Compétences Cadence Salaire/h Charges % Autres/h Coût chargé/h
{{ t.name }}{{ t.group }}
{{ loadedCost(t) }} $
{{ menu.tech && menu.tech.name }} — {{ menu.day && menu.day.dnum }}
{{ cellCode(a) }}
{{ a.shift_name || a.shift }} {{ cellHours(a) }}h
Retirer
Ajouter un shift
{{ code(t) }} {{ t.template_name }}
Libérer tout