# Nouvelle fonctionnalité : Importer des lignes depuis un autre devis

## 🎉 Fonctionnalité ajoutée !

### Qu'est-ce que ça fait ?

Sur une page de devis, un nouveau bouton **"Importer des lignes depuis un autre devis"** permet de :

1. **Sélectionner un devis source** (n'importe lequel, tous statuts, tous tiers)
2. **Cocher les lignes à importer**
3. **Importer les lignes sélectionnées** dans le devis actuel

### Comment ça marche ?

#### Étape 1 : Sur la page du devis
Vous voyez maintenant **2 boutons** :
- **"Modifier le tiers"** (déjà existant)
- **"Importer des lignes depuis un autre devis"** (NOUVEAU !)

#### Étape 2 : Cliquez sur "Importer des lignes"
Une page s'affiche avec :
- Liste déroulante de tous les devis existants
- Affichage : Référence - Tiers - Date

#### Étape 3 : Sélectionnez le devis source
- Choisissez le devis dont vous voulez copier des lignes
- Cliquez sur "Suivant"

#### Étape 4 : Cochez les lignes
- Un tableau affiche toutes les lignes du devis source
- Case à cocher sur chaque ligne
- Bouton "Tout sélectionner" / "Tout désélectionner"
- Affichage : Description, Quantité, Prix unitaire, Total

#### Étape 5 : Importez
- Cliquez sur "Importer les lignes sélectionnées"
- Les lignes sont copiées dans votre devis actuel
- Le PDF est régénéré automatiquement (si activé)
- Message de confirmation : "X ligne(s) importée(s) avec succès"

## 🔐 Permissions

Une nouvelle permission a été créée :
- **"Importer des lignes depuis d'autres devis"**

### Comment activer la permission ?

1. Allez dans **Configuration > Utilisateurs & Groupes**
2. Sélectionnez l'utilisateur
3. Onglet **Permissions**
4. Cherchez **"Module ChangeTiers"**
5. Cochez **"Importer des lignes depuis d'autres devis"**
6. Enregistrez

**Note :** Les administrateurs ont automatiquement cette permission.

## 📁 Fichiers modifiés

1. **core/modules/modChangeTiers.class.php**
   - Ajout de la permission `propal/importlines`

2. **class/actions_changetiers.class.php**
   - Ajout du bouton "Importer des lignes" sur les devis

3. **langs/fr_FR/changetiers.lang**
   - Ajout des traductions pour l'import de lignes

4. **importlines.php** (NOUVEAU)
   - Page complète pour l'import de lignes
   - Sélection du devis source
   - Sélection des lignes
   - Traitement de l'import

## 🧪 Tests à effectuer

### Test 1 : Vérifier le bouton
1. Ouvrez un devis existant
2. Vérifiez que le bouton "Importer des lignes depuis un autre devis" est visible
3. Si le bouton n'apparaît pas :
   - Vérifiez que vous avez la permission
   - Désactivez/réactivez le module

### Test 2 : Importer des lignes
1. Cliquez sur "Importer des lignes"
2. Sélectionnez un devis source
3. Cochez quelques lignes
4. Cliquez sur "Importer"
5. Vérifiez que :
   - Les lignes apparaissent dans le devis
   - Le PDF est régénéré
   - Message de succès affiché

### Test 3 : Cas limites
- Importer depuis un devis d'un autre tiers → Devrait fonctionner
- Importer toutes les lignes → Devrait fonctionner
- Importer sans cocher de lignes → Message d'erreur ?
- Annuler l'import → Retour au devis

## ⚠️ Remarques importantes

### Limitations actuelles
- Fonctionne uniquement sur les **devis** (propositions commerciales)
- Ne fonctionne pas (encore) sur factures, commandes, etc.

### Fonctionnalités futures possibles
- Importer depuis des factures, commandes
- Filtrer les devis sources par tiers
- Filtrer par statut (brouillon, validé, etc.)
- Prévisualisation du total avant import
- Import avec modification des quantités/prix

## 🐛 En cas de problème

### Le bouton n'apparaît pas
1. Vérifiez les permissions utilisateur
2. Vérifiez que `CHANGETIERS_ENABLE_PROPAL` est activé dans Admin
3. Désactivez/réactivez le module
4. Videz le cache navigateur (Ctrl+F5)

### Erreur lors de l'import
1. Regardez le code source HTML (Ctrl+U)
2. Cherchez les erreurs PHP
3. Vérifiez les logs serveur
4. Copiez le message d'erreur exact

### Les lignes ne s'importent pas
1. Vérifiez que le devis de destination n'est pas validé/signé
2. Vérifiez les droits d'écriture sur le devis
3. Regardez les logs PHP pour plus de détails

## 📞 Support

Si vous rencontrez des problèmes ou souhaitez des améliorations :
- Décrivez précisément le problème
- Copiez les messages d'erreur
- Indiquez les étapes pour reproduire
- Je corrigerai rapidement !

## 🎯 Prochaine étape

**Testez la fonctionnalité maintenant et dites-moi :**
1. Le bouton apparaît-il ?
2. L'import fonctionne-t-il ?
3. Y a-t-il des erreurs ?
4. Voulez-vous des améliorations ?
