Bug #255465 : job routé sur Sainte-Clotilde alors que le service est à Saint-Cyprien. Cause : la
Service Location était appariée par la ville de FACTURATION (t.city) → matchait une vieille SL, et
l'« override SL » propageait cette mauvaise adresse par-dessus l'adresse correcte du billet.
Correctif : la ville de service = celle du SUJET (source de vérité), sinon delivery, sinon facturation.
- resolveServiceLocation apparie par sujet>delivery>facturation, matching st/ste tolérant (cityMatch).
- l'override par la SL ne s'applique QUE si la SL est dans la ville réelle ET que l'adresse du billet
ne l'est PAS (delivery périmée / déménagement, ex. LEG-254850) → sinon on GARDE l'adresse du billet.
Le repli coords SL n'est utilisé que si la SL est dans la ville du ticket.
+ previewTicket(id) : dry-run ciblé (0 écriture) pour vérifier l'adresse/coords résolues d'un ticket.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>