- Corrige l'erreur SQL 'Unknown column fk_operation in users' - L'opération active est récupérée depuis operations.chk_active = 1 - Jointure avec users pour filtrer par entité de l'admin créateur - Query: SELECT o.id FROM operations o INNER JOIN users u ON u.fk_entite = o.fk_entite WHERE u.id = ? AND o.chk_active = 1
3.1 KiB
Executable File
3.1 KiB
Executable File
Réorganisation de l'arborescence des uploads
📅 Date : 20/08/2025
🎯 Objectif
Uniformiser et simplifier l'arborescence des fichiers uploads pour une meilleure organisation et maintenance.
📂 Arborescence actuelle (PROBLÈME)
uploads/
├── entites/
│ └── 5/
│ ├── logo/
│ ├── operations/
│ │ └── 1525/
│ │ └── documents/
│ │ └── exports/
│ │ └── excel/
│ │ └── geosector-export-*.xlsx
│ └── recus/
│ └── 3124/
│ └── recu_*.pdf
└── 5/
└── operations/
├── 1525/
└── 2021/
Problèmes identifiés :
- Duplication des structures (dossier
5à la racine ET dansentites/) - Chemins trop profonds pour les exports Excel (6 niveaux)
- Incohérence dans les chemins
✅ Nouvelle arborescence (SOLUTION)
uploads/
└── {entite_id}/ # Un seul dossier par entité à la racine
├── logo/ # Logo de l'entité
│ └── logo_*.{jpg,png}
├── operations/ # Exports par opération
│ └── {operation_id}/
│ └── *.xlsx # Exports Excel directement ici
└── recus/ # Reçus par opération
└── {operation_id}/
└── recu_*.pdf
📝 Fichiers à modifier
1. EntiteController.php (Upload logo)
Actuel : /entites/{$entiteId}/logo
Nouveau : /{$entiteId}/logo
2. ReceiptService.php (Stockage reçus PDF)
Actuel : /entites/{$entiteId}/recus/{$operationId}
Nouveau : /{$entiteId}/recus/{$operationId}
3. ExportService.php (Export Excel)
Actuel : /{$entiteId}/operations/{$operationId}/exports/excel
Nouveau : /{$entiteId}/operations/{$operationId}
4. ExportService.php (Export JSON)
Actuel : /{$entiteId}/operations/{$operationId}/exports/json
Nouveau : /{$entiteId}/operations/{$operationId} (ou supprimer si non utilisé)
🔄 Plan de migration
Étape 1 : Modifier le code
- Mettre à jour tous les chemins dans les contrôleurs et services
- Tester en environnement DEV
Étape 2 : Script de migration des fichiers existants
Créer un script PHP pour :
- Lister tous les fichiers existants
- Les déplacer vers la nouvelle structure
- Supprimer les anciens dossiers vides
Étape 3 : Déploiement
- Exécuter le script de migration sur REC
- Vérifier le bon fonctionnement
- Exécuter sur PROD
🚀 Avantages de la nouvelle structure
- Plus simple : Chemins plus courts et plus logiques
- Plus cohérent : Une seule structure pour toutes les entités
- Plus maintenable : Facile de naviguer et comprendre
- Performance : Moins de niveaux de dossiers à parcourir
⚠️ Points d'attention
- Vérifier les permissions (nginx:nobody 775/664)
- S'assurer que les anciens fichiers sont bien migrés
- Mettre à jour la documentation
- Informer l'équipe du changement