[ERP-58] Implémenter l'export XLSX du répertoire clients #37
Reference in New Issue
Block a user
Delete Branch "feature/ERP-58-export-xlsx-clients"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Contexte
Ticket ERP-58 (M1 Commercial, spec-back § 4.6) — export XLSX du répertoire clients.
Branche stackée sur ERP-57. Cible la MR sur `feature/ERP-57-...` (squash merge).
Objectif d'archi : un service d'export RÉUTILISABLE
Le générique vit dans `Shared`, le module Client ne déclare que QUOI exporter.
Shared (le COMMENT — sans métier)
Commercial (le QUOI)
Dépendance
`composer require phpoffice/phpspreadsheet` (^5.7). Nettoyage recipes vérifié : seuls `composer.json`/`composer.lock` modifiés (pas de scaffolding parasite, `symfony.lock` désormais versionné).
Tests (404 OK)
Note
Au démarrage, `symfony/intl` (requis par ERP-57, contrainte `Bic`) manquait du vendor → `composer install` joué pour rétablir une base saine.
⚠️ Heads-up review (@Tristan) — fichiers « propriété » d'ERP-55 touchés
Cette MR refactore deux fichiers introduits par ERP-55 :
ClientRepository::createListQueryBuilder()accueille désormais le filtragesearch+categoryType(signature(bool $includeArchived, ?string $search, ?string $categoryType)).ClientProviderdélègue ce filtrage au repository → il perd sa dépendanceEntityManageret ses méthodes privéesapplySearch/applyCategoryType.Pourquoi : DRY entre la liste paginée (
GET /api/clients) et l'export — une seule source de vérité pour la sélection des clients. Effet de bord positif : ça résout plus proprement la fuite d'abstraction que tu avais pointée en revue ERP-55 (P2) — la sous-requêtecategoryTypen'est plus construite via l'EntityManagerinjecté dans le provider, mais à l'intérieur du repository (là où l'accès Doctrine est légitime).Pas de changement de comportement de l'API liste : régression couverte par
ClientApiTest(tri, exclusion archives, includeArchived, pagination) — tout vert.feat(commercial) : export XLSX du répertoire clients (ERP-58)to [ERP-58] Implémenter l'export XLSX du répertoire clientsc25b3146e8to9f3037c5c4