# Dossier commercial — déploiement sur OVH

Application PHP simple, **sans base de données** : les données sont stockées dans des fichiers
JSON sur le serveur (dossier `data/`). Compatible avec n'importe quel hébergement OVH qui exécute
du PHP — le même type d'hébergement que vos pages de devis.

## 1. Envoyer les fichiers sur votre hébergement

1. Connectez-vous en FileZilla sur `outils.agis-sas.fr`.
2. Placez tout le contenu de ce dossier directement dans `/outils/commercial/`
   (à côté de vos pages de devis, qui restent dans leur propre dossier sous `/outils`).
3. Vérifiez que le dossier `data/` est accessible en écriture par PHP. Sur OVH, c'est
   généralement le cas par défaut ; sinon, mettez-le en droits **775** depuis FileZilla
   (clic droit > permissions de fichier).

## 2. Créer le compte administrateur

1. Rendez-vous sur `https://outils.agis-sas.fr/commercial/setup.php`.
2. Créez votre compte (identifiant + mot de passe d'au moins 8 caractères).
3. **Important : supprimez ensuite le fichier `setup.php` du serveur** (via FTP) — il ne doit
   pas rester en ligne, pour éviter qu'un tiers ne crée un compte administrateur à votre place.

## 3. Créer les accès des commerciaux

1. Connectez-vous avec votre compte administrateur sur `login.php`.
2. Vous arrivez sur le **Rapport** ; allez dans l'onglet **Commerciaux**.
3. Ajoutez chaque commercial (nom affiché, identifiant, mot de passe initial) et communiquez-lui
   ses identifiants. Chaque commercial se connecte ensuite sur la même page `login.php` et
   n'accède qu'à sa propre saisie.

## Utilisation

- **Chaque commercial** se connecte avec son identifiant/mot de passe et arrive directement sur
  sa page de saisie (`saisie.php`). Il ne voit et ne modifie que ses propres informations.
- **Vous (administrateur)** arrivez sur `rapport.php` : rapport global par défaut, ou rapport
  individuel en sélectionnant un commercial dans le filtre (ou via le bouton "Son rapport"
  depuis l'onglet Commerciaux).
- L'onglet **Commerciaux** permet d'ajouter ou de supprimer des accès à tout moment.

## Structure du projet

```
commercial/
├── login.php              page de connexion (commerciaux + admin)
├── logout.php
├── saisie.php              page personnelle du commercial (lignes interactives)
├── rapport.php             rapport global ou individuel, réservé à l'administrateur
├── admin_users.php         gestion des comptes commerciaux (admin)
├── setup.php               création du premier compte admin (à supprimer après usage)
├── .htaccess                 protège les dossiers contre l'affichage de listing
├── data/
│   ├── users.json            comptes (mots de passe hachés)
│   ├── leads.json             informations commerciales
│   ├── .htaccess               bloque tout accès direct depuis un navigateur
│   └── index.php                filet de sécurité supplémentaire
├── includes/
│   ├── store.php              lecture/écriture des fichiers JSON avec verrouillage
│   ├── auth.php                sessions et contrôle des droits (commercial / admin)
│   └── functions.php           fonctions d'affichage partagées
├── actions/                  points d'entrée appelés en Ajax ou en POST
│   ├── add_lead.php
│   ├── update_lead.php
│   ├── delete_lead.php
│   ├── delete_user.php
│   └── export_csv.php
└── assets/
    └── style.css
```

## Sécurité — points à connaître

- Les mots de passe sont stockés hachés (bcrypt via `password_hash`), jamais en clair.
- `data/.htaccess` empêche quiconque d'ouvrir directement `users.json` ou `leads.json` dans un
  navigateur (sinon les mots de passe hachés et les données seraient exposés).
- Chaque commercial ne peut voir ou modifier que ses propres informations (vérifié côté serveur).
- Le rapport n'est accessible qu'au compte de rôle `admin`.
- Activez le HTTPS sur votre domaine OVH (certificat Let's Encrypt gratuit dans le Manager) :
  sans HTTPS, les mots de passe circulent en clair sur le réseau.
- Un commercial ne peut pas changer son propre mot de passe pour l'instant : c'est vous qui
  définissez les identifiants initiaux via l'onglet "Commerciaux". Dites-le-moi si vous voulez
  qu'on ajoute une page de changement de mot de passe.

## Limites de ce mode de stockage

Le stockage par fichiers JSON convient très bien à une petite équipe commerciale (quelques
dizaines de milliers de lignes sans problème). Si votre volume grossit beaucoup ou si vous
voulez brancher d'autres outils dessus plus tard, on pourra migrer vers une vraie base MySQL
sans changer l'expérience utilisateur — dites-le-moi le moment venu.
