diff --git a/apps/ops/src/api/roster.js b/apps/ops/src/api/roster.js index abbd15b..d6e3384 100644 --- a/apps/ops/src/api/roster.js +++ b/apps/ops/src/api/roster.js @@ -98,6 +98,8 @@ export const jobCandidates = (job, exclude) => jget('/roster/job-candidates?job= export const redistributePlan = (plan) => jpost('/roster/skill-impact/redistribute', { plan }) // Jobs non assignés (+ groupe/dépendances) pour le panneau glisser-déposer export const unassignedJobs = () => jget('/roster/unassigned-jobs') +// Optimisation de tournées (VRPTW + compétences + temps sur place) via le solveur OR-Tools. payload = { jobs[], vehicles[], ... } +export const optimizeRoutes = (payload) => jpost('/roster/optimize-routes', payload) // Write-back legacy : aperçu (0 écriture) puis application (réassigne ticket.assign_to au tech dans osTicket) export const pushLegacyPreview = () => jget('/dispatch/legacy-sync/push-assignments') export const pushLegacyApply = (notify = true) => jpost('/dispatch/legacy-sync/push-assignments' + (notify ? '' : '?notify=0'), {}) diff --git a/apps/ops/src/pages/PlanificationPage.vue b/apps/ops/src/pages/PlanificationPage.vue index b76f103..c1bcbd9 100644 --- a/apps/ops/src/pages/PlanificationPage.vue +++ b/apps/ops/src/pages/PlanificationPage.vue @@ -975,8 +975,8 @@