# Walk The Line Management — V3

## Mise à jour depuis la V2

Après remplacement des fichiers :

```bash
composer install
php bin/console doctrine:migrations:migrate
php bin/console cache:clear
```

Migration principale V3 : `migrations/Version20260817200000.php`.

## Changements structurants

### Lieux et contacts

Le lieu est maintenant un référentiel indépendant de la prospection.

- `Venue` : informations commerciales, adresse et données administratives de facturation.
- `VenueContact` : plusieurs contacts par lieu.
- `ContactType` : gérant, programmateur, régisseur, administration/facturation, etc.
- un contact peut être marqué comme contact principal.
- une même fiche lieu peut être réutilisée dans plusieurs prospections successives.
- le wizard utilise Select2 pour rechercher le lieu.

Les anciennes prospections sont automatiquement rattachées à des lieux créés par la migration à partir de leurs anciennes données.

### Traçabilité

La prospection conserve directement :

- son créateur ;
- l'auteur du premier contact ;
- l'auteur de la relance 1 ;
- l'auteur de la relance 2 ;
- l'auteur de la proposition ;
- l'auteur de la décision ;
- l'auteur de la réalisation.

Chaque événement de l'historique possède en plus son propre auteur (`ProspectionEvent.actor`).

### Dashboard

La zone « À traiter » est reprise directement en haut du dashboard. La page dédiée est conservée.

### Devis et factures

- devis numérotés par année : `D-AA-XXXX` par défaut ;
- factures numérotées par année : `F-AA-XXXX` par défaut ;
- compteur indépendant pour chaque année et chaque type de document ;
- préfixes et dernier numéro de séquence modifiables dans l'administration ;
- conversion d'un devis en facture ;
- snapshot des coordonnées et conditions au moment de la création ;
- affichage imprimable depuis le navigateur (« Imprimer / PDF »).

La V3 ne génère volontairement pas encore de PDF serveur : elle ne rajoute donc aucune dépendance Composer supplémentaire. Une génération PDF native pourra être ajoutée ensuite si nécessaire.

### Variables dynamiques

Les pieds de page, mentions et conventions acceptent notamment :

`{{ASSOCIATION}}`, `{{ADRESSE_ASSOCIATION}}`, `{{SIRET}}`, `{{RNA}}`, `{{TVA}}`, `{{IBAN}}`, `{{BIC}}`, `{{LIEU}}`, `{{RAISON_SOCIALE_CLIENT}}`, `{{ADRESSE_CLIENT}}`, `{{CONTACT}}`, `{{DATE_SPECTACLE}}`, `{{TARIF_HT}}`, `{{FRAIS_DEPLACEMENT}}`.

### Conventions de cession

- modèles administrables ;
- création d'une nouvelle version plutôt que modification destructive ;
- une seule version active ;
- une convention générée conserve un snapshot du texte ;
- génération automatique depuis une prospection ;
- listing des conventions avec accès aux devis, factures et autres conventions de la même prospection.

Le modèle fourni est une base de travail générique et doit être relu/validé juridiquement avant usage contractuel réel.

## Vérifications recommandées après migration

```bash
php bin/console doctrine:schema:validate
php bin/console debug:router
php bin/console cache:clear
```

Puis tester dans cet ordre :

1. Paramétrage > Association.
2. Administration > Types de contact.
3. Lieux & contacts > créer ou vérifier un lieu.
4. Prospection > nouvelle prospection.
5. Enregistrer plusieurs actions rapides et contrôler leurs auteurs.
6. Paramétrage > Devis & factures.
7. Créer un devis depuis une prospection puis le convertir en facture.
8. Paramétrage > Conventions > créer une nouvelle version du modèle.
9. Générer une convention depuis une prospection.
