================================================================================ MODULE BOUTIQUE/STOCK - INFORMATIONS DE VERSION ================================================================================ VERSION ACTUELLE: 2.0 DATE DE RELEASE: 2025-12-07 NOM DE CODE: "MultiLignes" STABILITÉ: Stable ================================================================================ CHANGELOG DÉTAILLÉ ================================================================================ Version 2.0 (2025-12-07) - "MultiLignes" ======================================== NOUVELLES FONCTIONNALITÉS: -------------------------- + Ventes multi-lignes: Support de plusieurs articles par transaction + Table shop_ventes_lignes pour le détail des ventes + Interface JavaScript dynamique pour ajout/suppression de lignes + Validation de stock par ligne avant création de vente + Support des remises globales (pourcentage sur total) + Calcul automatique des totaux avec mise à jour en temps réel + Nouvelle méthode ShopVenteModel::createVente() avec support multi-lignes + Nouveau model ShopVenteLigneModel pour gestion des lignes + Ticket PDF avec détail de toutes les lignes vendues + Statistiques par article vendues via shop_ventes_lignes CORRECTIONS DE BUGS: -------------------- ✓ FIX CRITIQUE: Gestion transactionnelle corrigée dans ShopVenteModel - Stock updates déplacés APRÈS commit pour éviter auto-commit MySQL - Transactions imbriquées éliminées (ShopVenteLigneModel) - Rollback fonctionnel en cas d'erreur - Problème "Vente introuvable" résolu ✓ FIX: Variable $articles manquante dans ShopVentesController::index() ✓ FIX: Permissions view_own_ventes vs view_all_ventes correctement appliquées ✓ FIX: Validation du stock avant décrémentation AMÉLIORATIONS: -------------- • Méthodes getLastError() et getLastErrorDetails() pour meilleur debugging • Formulaire de vente avec prévisualisation des totaux • Indicateurs visuels de stock disponible par ligne • Messages d'erreur détaillés avec validation par ligne • Documentation exhaustive (2000+ lignes) • Script d'installation automatique • Template de configuration réutilisable SÉCURITÉ: --------- • Validation renforcée des quantités et prix • Vérification de permission edit_prix_vente pour modification prix • Échappement HTML systématique dans les vues • Requêtes préparées PDO pour toutes les queries • Protection contre les stocks négatifs PERFORMANCE: ------------ • Index optimisés sur shop_ventes_lignes • Colonnes générées pour calculs (montant_ligne) • Requêtes avec JOIN pour éviter N+1 • Vue SQL v_shop_top_ventes refactorisée DOCUMENTATION: -------------- + SHOP_MODULE_README.md (500+ lignes) + SHOP_MODULE_DEPENDENCIES.md (400+ lignes) + SHOP_MODULE_INTEGRATION_GUIDE.md (600+ lignes) + shop_module_config_template.php (350+ lignes) + MANIFEST.txt (liste complète des fichiers) + QUICKSTART.md (guide 5 minutes) MIGRATION: ---------- • Script de migration v1.0 -> v2.0 fourni • Sauvegarde automatique (shop_ventes_backup) • Migration préserve toutes les données existantes • Compatibilité ascendante: ventes v1.0 deviennent ventes v2.0 avec 1 ligne FICHIERS MODIFIÉS: ------------------ M app/Controllers/Shop/ShopVentesController.php (390 lignes) M app/Models/Shop/ShopVenteModel.php (550 lignes) A app/Models/Shop/ShopVenteLigneModel.php (250 lignes) [NOUVEAU] M app/Views/shop/ventes/create.php (440 lignes) M app/Views/shop/ventes/show.php M app/Views/shop/ventes/index.php A database/database_shop_module_migration_ventes_multilignes.sql [NOUVEAU] TABLES DE BASE DE DONNÉES: --------------------------- M shop_ventes (colonnes id_article, quantite, prix_unitaire supprimées) A shop_ventes_lignes [NOUVELLE TABLE] M v_shop_top_ventes [VUE REFACTORISÉE] BREAKING CHANGES: ----------------- ⚠️ La structure de shop_ventes a changé - migration obligatoire ⚠️ Les vues existantes devront être adaptées pour multi-lignes ⚠️ API de création de vente modifiée (accepte tableau de lignes) COMPATIBILITÉ: -------------- • PHP: 8.0+ (requis) • MySQL: 5.7+ / MariaDB 10.3+ • AdminLTE: 3.x • Bootstrap: 4.6+ • DomPDF: 2.0+ ================================================================================ Version 1.0 (2025-11-XX) - "Initial" ==================================== FONCTIONNALITÉS INITIALES: --------------------------- + Gestion des articles (CRUD) + Gestion des catégories (CRUD) + Gestion du stock (entrées/sorties) + Ventes simples (1 article par vente) + Mouvements de stock tracés + Dashboard avec statistiques + Rapports PDF (ventes, stock) + Permissions par rôle + Support multi-sites TABLES CRÉÉES: -------------- + shop_categories + shop_articles + shop_ventes (version mono-ligne) + shop_mouvements LIMITATIONS v1.0: ----------------- ✗ Une seule ligne par vente ✗ Pas de support multi-articles ✗ Transactions basiques (problèmes d'auto-commit) OBSOLÈTE: --------- ⚠️ Cette version est obsolète, migrer vers v2.0 ================================================================================ ROADMAP FUTURE (Suggestions) ================================================================================ Version 2.1 (Planifiée) ----------------------- [ ] Gestion des fournisseurs [ ] Bons de commande [ ] Alertes email pour stock faible [ ] Export Excel des rapports [ ] Codes-barres pour articles [ ] Impression étiquettes en lot [ ] API REST pour intégration externe [ ] Cache des statistiques dashboard Version 3.0 (Future) -------------------- [ ] Interface mobile responsive [ ] Application caisse tactile [ ] Synchronisation multi-sites [ ] Inventaire physique avec écarts [ ] Gestion des promotions [ ] Programme de fidélité [ ] Tableau de bord temps réel (WebSocket) ================================================================================ NOTES DE MISE À JOUR ================================================================================ Pour mettre à jour depuis v1.0 vers v2.0: ----------------------------------------- 1. SAUVEGARDER LA BASE: mysqldump -u root -p votre_db > backup_v1.sql 2. EXÉCUTER LA MIGRATION: mysql -u root -p votre_db < database_shop_module_migration_ventes_multilignes.sql 3. REMPLACER LES FICHIERS: - ShopVentesController.php - ShopVenteModel.php - Ajouter ShopVenteLigneModel.php - Remplacer les vues shop/ventes/* 4. TESTER: - Créer une nouvelle vente multi-lignes - Vérifier les anciennes ventes - Générer un rapport PDF - Vérifier les stocks 5. SUPPRIMER LE BACKUP (si tout OK): DROP TABLE shop_ventes_backup; ================================================================================ SUPPORT DES VERSIONS ================================================================================ Version 2.0: ✅ Supportée (active) Version 1.0: ⚠️ Obsolète (migration recommandée) ================================================================================ INFORMATIONS SYSTÈME ================================================================================ Testé sur: ---------- - PHP 8.1.10 - MySQL 8.0.30 - MariaDB 10.4.24 - Apache 2.4.54 - Windows 10 + XAMPP - Ubuntu 20.04 + LAMP Compatible avec: ---------------- - PHP 8.0, 8.1, 8.2 - MySQL 5.7, 8.0 - MariaDB 10.3, 10.4, 10.5, 10.6 - Apache 2.4 - Nginx 1.18+ Dépendances: ------------ - dompdf/dompdf: ^2.0 - AdminLTE: 3.x - Bootstrap: 4.6 - jQuery: 3.6+ - Select2: 4.1+ ================================================================================ STATISTIQUES DE CODE ================================================================================ Lignes de code (v2.0): ---------------------- Controllers: 1,234 lignes Models: 1,567 lignes Vues: ~2,000 lignes Documentation: 2,500+ lignes SQL: 247 lignes TOTAL: ~7,500 lignes Fichiers: --------- Controllers: 6 fichiers Models: 5 fichiers Vues: 17 fichiers Documentation: 9 fichiers Scripts SQL: 1 fichier Tables: ------- 5 tables créées 1 vue SQL 46 routes définies ================================================================================ CRÉDITS ================================================================================ Développement: Module Boutique/Stock v2.0 Architecture: MVC Pattern avec Repository Framework UI: AdminLTE 3.x Génération PDF: DomPDF Année: 2025 ================================================================================ FIN DES INFORMATIONS DE VERSION ================================================================================